# Main Headline Normal text that is wrapped should become one long line in the output. ### Skipped header level H3s should be preceded by at least one H2. H2 should be preceded by at least one H1. Should die on error unless you have a flag saying that it's OK. ## Inline **markup** We need \*escape characters\* to work \`well\`. **This** _text_ *should* become ***really* good** `plain` text. Change strike-through to ^W style syntax. Delete these three words and call it a day. ### Unordered Lists * How to make an unordered list * And what to do about nesting * Turn it into a sequence of flat lists? - Or some other solution? - Not sure * Just flatten them for now but print a warning. ### Ordered Lists 1. Hardwrapped lists is apparently a thing in lowdown that we need to deal with. 2. Just turn them into normal hardwrapped lines is the plan. #### Header Level 4 Should just become: "Header Level 4." with a period. Print a warning on H4, H5, H6 on but don't die. ##### Header Level 5. Should just become: "Header Level 4." with one period, not two. ###### Ordered lists 1. Ordered lists should renumber their numbers 1. And hardwrap 1. Same nesting problem 1. as unordered lists have. 2. Flatten, and then renumber, and print a warning.

Blockquote joining

> These lines > should *be* all on > one line > > This should be > two separate lines. ### Blockquote Nesting >> This is an example of a nested quote. > > It should go through. Good luck Gemini clients. This isn't to extend the client necessarily. Maybe I should die with error and make this an option instead. >>> Here is an even deeper >>> nested quote. >> >> I just pass them through. > > List flattened, quotes not. ### Preformatted text We need a untouched *pre-formatted* mode that respects line breaks and empty lines. We want to replace horizontal rules with one extra newline. ----- So there should be two newlines between these paragraphs. Other than that, we want to collapse blank lines down to one, outside of preformat toggled lines. Images and Links ---------------- ### Images ![Images are treated like any other links](https://idiomdrottning.org/idiomdrottning_dark_thistle.png "Hover titles are ditched") ### Links Some text with [a link](gemini://url.to/url) in the middle of it. Maybe some [longer text][lt] with several [links inside] is a good thing to test. And [a non-link bracket]. [lt]: gemini://so.boring/and/long "My Favorite Longer Text" [links inside]: gemini://some.url The correct placement for all accumulated links that have been "extracted" in such a way, is which ever comes first out of: - Just before the next non-"extracted" link (i.e. a link from a list or stand-alone `

`, see below) - Just before the next header - Just before the end of the document Some examples of non-extracted links: - another plain list entry - some [link](gemini://some.url) in a list - [some other link in a list](gemini://some.url) - a non-linked list entry for lists. Both `

` and `
  • ` should be turned into link lines without blank lines in between. A [very short p with a link](gemini://some.url) [An all-link p](gemini://some.url) --- A p that's [shorter](gemini://some.url) than sixty characters counts as short A p that's [longer](gemini://some.url) than sixty characters counts as long and needs to be extracted. Unless [the link is more than half longer of that p regardless of length then it counts](gemini://some.url) as non-extracted. ---- [My friend](gemini://some.url) wrote: > The perfect quote intro. > Classic idomatic gemini. ## Tables
    col a col b
    a html
    table also
    without any colspan
    ## Extensions It doesn't need to handle LaTeX math. On the longer roadmap, make a separate preprocessor to turn LaTeX math into AsciiMath. I do want it to support liquid style includes like {% include_absolute 'foo' %}