When Markdown was devised in 2004, there was no HTML5 and hence no <section>
element type, just <hr>
. Should a modern implementation (per user-select option or extension) treat one or all “horizontal line” markup as section breaks? Should it introduce new repeated character lines instead, e.g. ====
, ####
, ....
or ''''
?
# First chapter
----
# Second chapter
<section>
<h1>First chapter</h1>
</section><section>
<h1>Second chapter</h1>
</section>
Paged media
Slides
For slide-based presentations made with Markdown, horizontal lines (mostly dashed ones ---
) have already been used to imply slide breaks: Remark, Slidify, IO Slides, Swipe, Landslide, Deckset, Pandoc, Biggie, but MarkdownPresenter uses a line with only an exclamation mark in it and Keydown even adds an English keyword !SLIDE
. Slides are a good example of paged media, print-outs are another one.
Leanpub and its offspring Markua, both tailored for traditional page-based publishing, support page breaks and book sections ‘frontmatter’, ‘mainmatter’ and ‘backmatter’ (like LaTeX’s ‘book’ document class). They do so with English keywords enclosed in curly braces as sole line content. Since Markua is still in the making, should Commonmark recommend a different approach?
{frontmatter}
TOC, imprint, preface etc.
{mainmatter}
Chapters
{pagebreak}
Sections etc.
{backmatter}
Appendices, glossary, index, etc.
TOC, imprint, preface etc.
====
Chapters
----
Sections etc.
====
Appendices, glossary, index, etc.
Alternative markup
I have always fancied the simple scissors emoticon / ASCII art which could be used for page breaks unambiguously.
----8<----
<hr class="page">
hr.page {page-break-after: always; height: 0;}
Meta data
YAML markup blocks, mostly at the top of the document, use ---
as fences (and sometimes ...
as an ending fence), e.g. in Pandoc.
---
Title: Document title
---
Content
<html><head>
<title>Document title</title>
</head><body>
<p>Content</p>
</body></html>
Hierarchy
If horizontal lines were interpreted as section breaks, should different kinds of line characters imply different hierarchic levels of sections, e.g. ***
ends a section at the current heading level, ---
ends a top-level section?
# h1
top section
## h2
lower section
* * *
top section again
<section><h1>h1</h1>
<p>top section</p>
<section><h2>h2</h2>
<p>lower section</p>
</section>
<p>top section again</p>
</section>
PS: There is related Spec discussion at Horizontal Rule or Thematic Break?.