<page>
<title>Typesetting:_Indentation</title>
<author_name>stjohn_piano</author_name>
<content>


Indentation is commonly used to show the boundaries between an item and its sub-items.

Example:

<datablock_lines>
<preserve_whitespace_lines>
\<article\>
  \<title\>Viewpoint\</title\>
  \<author_name\>stjohn_piano\</author_name\>
  \<date\>2017-06-28\</date\>
  \<signed_by_author\>no\</signed_by_author\>
  \<content\>
    "Human behavior is economic behavior. The particulars may vary, but competition for limited resources remains a constant."
    ~ Nwabudike Morgan
  \</content\>
\</article\>
</preserve_whitespace_lines>
</datablock_lines>

Starting from the left-hand side, there are two levels of indentation in this example.

There are some difficulties with managing indentation:
- Spaces vs tabs
- With many levels of indentation, it can be hard to keep track of how many indents to do in a particular section of the text.
- The introduction of spurious whitespace into the base text. In the example above, there are now four extra spaces between <code>constant."</code> and <code>~ Nwabudike</code>. These spaces are only there to handle indentation. This has several consequences: The need to manage indentation when re-using a section of text in another article, the problem of search (the indented text is now a different text string), and the difficulty involved in getting browsers to accurately render indentation.




Edgecase has decided to primarily indent by using extra blank lines.

Example:

<datablock_lines>
<preserve_whitespace_lines>
\<article\>
\<title\>Viewpoint\</title\>
\<author_name\>stjohn_piano\</author_name\>
\<date\>2017-06-28\</date\>
\<signed_by_author\>no\</signed_by_author\>
\<content\>

"Human behavior is economic behavior. The particulars may vary, but competition for limited resources remains a constant."
~ Nwabudike Morgan

\</content\>
\</article\>
</preserve_whitespace_lines>
</datablock_lines>




The difference is hopefully clearer in a more complex example:




<datablock_lines>
<preserve_whitespace_lines>
\<article\>
\<title\>Recipe_for_generating_entropy_bytes_using_dice\</title\>
\<author_name\>stjohn_piano\</author_name\>
\<date\>2018-11-13\</date\>
\<signed_by_author\>no\</signed_by_author\>
\<content\>



\<bold_lines\>
Parts
\</bold_lines\>

- Description
- Assets
- Notes
- Recipe



\<bold_lines\>
Description
\</bold_lines\>

This recipe describes a method of using dice to generate entropy bytes.



\<bold_lines\>
Assets
\</bold_lines\>

Description: A script that converts dice roll results into bytes.
\<link\>
\<type\>asset_of_another_article\</type\>
\<article_title\>Using_a_transaction_to_validate_a_Bitcoin_address\</article_title\>
\<datafeed\>edgecase\</datafeed\>
\<datafeed_article_id\>66\</datafeed_article_id\>
\<filename\>convert_dice_rolls_to_hex_bytes_2.py\</filename\>
\<text\>convert_dice_rolls_to_hex_bytes_2.py\</text\>
\<sha256\>e29d31cfa9a6a7bdb3ddad31efa86168aaf62270ce09712728b20bf9613aaf0e\</sha256\>
\</link\>



\</content\>
\</article\>
</preserve_whitespace_lines>
</datablock_lines>




Summary of the approach: Every time you wish to visually indicate that a new sub-item has started, use blank lines to separate it from its parent item. Try to balance the number of blank lines above and below the sub-item.




</content>
</page>
