# 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^W to ^W style syntax. Delete these three words^W^W^W 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 2. And hardwrap 3. Same nesting problem 4. as unordered lists have. 5. 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 ```Code 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 => https://idiomdrottning.org/idiomdrottning_dark_thistle.png Images are treated like any other links ### Links => gemini://url.to/url Some text with a link in the middle of it. Maybe some longer text with several links inside is a good thing to test. And [a non-link bracket]. => gemini://so.boring/and/long My Favorite Longer Text => gemini://some.url links inside 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 => gemini://some.url some link in a list => gemini://some.url some other link in a list * a non-linked list entry for lists. Both

and
  • should be turned into link lines without blank lines in between. => gemini://some.url A very short p with a link => gemini://some.url An all-link p => gemini://some.url A p that's shorter than sixty characters counts as short A p that's longer than sixty characters counts as long and needs to be extracted. => gemini://some.url longer => gemini://some.url Unless the link is more than half longer of that p regardless of length then it counts as non-extracted. => gemini://some.url My friend wrote: > The perfect quote intro. Classic idomatic gemini. ## Tables ```Tab-separated values 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 this was included from foo before parsing.