# General text Paragraphs are printed verbatim in gmnhg. Single newlines (like in this multi-line paragraph) will get replaced by a space, as Gemini specification p. 5.4.1 recommends this for soft-wrapping text by clients. Inline formatting bits (like this **bold** text, _emphasized_ text, ~~strikethrough~~ text, `preformatted text`) are kept to make sure Gemini readers still have the stylistic context of your text. Adding two spaces at the end of a line will insert a hard break. You can also create a hard break using a backslash at the end\ of a line. Hard breaks at the end of a paragraph are ignored. ## Blockquotes Newlines in blockquote paragraphs, unlike usual paragraphs, aren't replaced with a space. This facilitates appending authorship information to the quote, or using blockquotes to write poems. > "Never trouble another for what you can do yourself" > — Thomas Jefferson, 3rd president of the US > "Wow, writing comprehensive test suites is hard!" > — Timur Demin, while writing this very test file > "Somehow I know these two paragraphs will be broken into two separate > blockquotes by gmnhg. I think my knowledge of that comes from being > the author of this program." > > — also Timur Demin, in the process of writing this test file > Hard breaks are also supported in blockquotes, > for compatibility. Hard breaks at the end of a blockquote are ignored. ## Code gmnhg will use Gemtext preformatted blocks for that. Markdown alt-text for preformatted blocks is supported, and is used to render alt-text as specified by Gemini spec p. 5.4.3. ```go package main func main() { println("gmnhg is awesome!") } ``` Preformatted Markdown of course isn't rendered: ``` # I am a test Markdown document I contain text in **bold**. ``` ## Links gmnhg supports links, images, and footnotes. Links are a very interesting topic on itself; see a [separate document](links.md) for those. ## Lists Definition lists, numbered and ordered lists are all supported in gmnhg. There's also a [separate document](lists.md) displaying those. ## Tables Markdown tables are supported in gmnhg, and are better displayed by a [separate document](tables.md). ## Headings Gemini specification allows up to three heading levels, with an optional space after the last heading symbol, `#`. With Markdown, you get 6; gmnhg will simply print the relevant number of #-s, making the client up to parse more heading levels and keeping context of the source document. Since clients like Lagrange treat the fourth and the rest of #-s as heading content, it's best to avoid using H4-H6 in Gemini-aware Markdown entirely. Headings from H3 to H6 are provided below so you can test how your client handles that. ### Heading 3 #### Heading 4 ##### Heading 5 ###### Heading 6 ## HTML Inline HTML is currently stripped, but HTML contents remain on-screen. This may change in the future. HTML tags can be escaped with \ as in \\ or enclosed with \`\`.
HTML tags are stripped from HTML blocks. (Note that HTML blocks must begin and end with a supported HTML block tag, and must have blank lines before and after the block.)
### Break tags Hard breaksHard breaks using <br> are supported
inside HTML blocks.
HTML escaped entities like < and > are also unescaped inside HTML blocks. Backslash escapes have no effect: \&.
### Forbidden tags Tags that are unable to output Gemini-compatible text are completely removed from the output. Note that the contents of "forbidden" tags will be rendered if they are placed , although the tags themselves will be stripped. Placing HTML block elements inline in this manner violates the spec of common Markdown flavors, but gmnhg handles it the best it can. ### HTML in blockquotes > HTML spans are stripped from > inside blockquotes. > Non HTML block text before the block. >HTML blocks are stripped from inside blockquotes.
> Non HTML block text after the block. >Standalone blockquoted HTML blocks
are also stripped of their tags.