# Markdown Examples in barf 2023-01-05 This following was lifted from [https://github.com/karlb/smu](https://github.com/karlb/smu) `smu` Syntax ============ smu was started as a rewrite of [markdown](http://daringfireball.net/projects/markdown/) but became something more lightweight and consistent. It differs from [CommonMark](https://commonmark.org/) in the following ways: * No support for _reference style links_ * Stricter indentation rules for lists * Lists don't end paragraphs by themselves (blank line needed) * Horizontal rules (`
`) must use `- - -` as syntax * Code fences have stricter syntax Patches that increase the CommonMark compatibility are welcome as long as they don't increase the code complexity significantly. This project is a fork of the [original smu](https://github.com/gottox/smu) by [Enno Boland (gottox)](https://eboland.de). The main differences to the original smu are: * Support for code fences * Improved [CommonMark](https://commonmark.org/) compatibility. E.g. * Code blocks need four spaces indentation instead of three * Skip empty lines at end of code blocks * Ignore single spaces around code spans * Keep HTML comments in output * Improved spec compliance for lists * Nesting code block in blockquotes works * "Empty" lines in lists behave identically, no matter how much whitespace they contain * No backslash escapes in code blocks * Use first number as start number for ordered lists * Added a simple test suite to check for compliance and avoid regressions Inline patterns --------------- There are several patterns you can use to highlight your text: * Emphasis * Surround your text with `*` or `_` to get *emphasised* text: This *is* cool. This _is_ cool, too. * Surround your text with `**` or `__` to get **strong** text: This **is** cool. This __is__ cool, too. * Surround your text with `***` or `___` to get ***strong and emphasised*** text: This ***is*** cool. This ___is___ cool, too. * But this example won't work as expected: ***Hello** you* This is a wontfix bug because it would make the source too complex. Use this instead: ***Hello*** *you* * inline Code You can produce inline code by surrounding it with backticks. Use `rm -rf /` if you're a N00b. Use ``rm -rf /`` if you're a N00b. Use ```rm -rf /``` if you're a N00b. Double and triple backticks can be used if the code itself contains backticks. Titles ------ Creating titles in smu is very easy. There are two different syntax styles. The first is underlining with at least three characters: Heading ======= Topic ----- This is very intuitive and self explaining. The resulting sourcecode looks like this:

Heading

Topic

Use the following prefixes if you don't like underlining: # h1 ## h2 ### h3 #### h4 ##### h5 ###### h6 Links ----- The simplest way to define a link is with simple `<>`. You can do the same for E-Mail addresses: If you want to define a label for the url, you have to use a different syntax [smu - simple mark up](http://s01.de/~gottox/index.cgi/proj_smu) The resulting HTML-Code smu - simple mark up

Lists ----- Defining lists is very straightforward: * Item 1 * Item 2 * Item 3 Result: Defining ordered lists is also very easy: 1. Item 1 2. Item 2 3. Item 3 Only the first number in a list is meaningful. All following list items are continously counted. If you want a list starting at 2, you could write: 2. Item 1 2. Item 2 2. Item 3 and get the following HTML which will render with the numbers 2, 3, 4:
  1. Item 1
  2. Item 2
  3. Item 3
Code & Blockquote ----------------- Use the `> ` as a line prefix for defining blockquotes. Blockquotes are interpreted as well. This makes it possible to embed links, headings and even other quotes into a quote: > Hello > This is a quote with a [link](http://s01.de/~gottox) Result:

Hello This is a quote with a link

You can define a code block with a leading Tab or with __4__ leading spaces this.is(code) this.is(code, too) Result:
this.is(code)
this.is(code, too)
	
Please note that you can't use HTML or smu syntax in a code block. Another way to write code blocks is to use code fences: ```json {"some": "code"} ``` This has two advantages: * The optional language identifier will be turned into a `language-` class name * You can keep the original indentation which helps when doing copy & paste Tables ------ Tables can be generated with the following syntax: | Heading1 | Heading2 | | -------- | -------- | | Cell 1 | Cell2 | Aligning the columns make the input nicer to read, but is not necessary to get correct table output. You could just write | Heading1 | Heading2 | | --- | --- | | Cell 1 | Cell2 | To align the content of table cells, use `|:--|` for left, `|--:|` for right and `|:--:|` for centered alignment in the row which separates the header from the table body. | Heading1 | Heading2 | Heading3 | | :------- | :------: | -------: | | Left | Center | Right | Other interesting stuff ----------------------- * to insert a horizontal rule simple add `- - -` into an empty line: Hello - - - Hello2 Result:

Hello


Hello2

* Any ASCII punctuation character may escaped by precedeing them with a backslash to avoid them being interpreted: !"#$%&'()*+,-./:;<=>?@[]^_`{|}~\ * To force a linebreak simple add two spaces to the end of the line: No linebreak here. But here is one. embed HTML ---------- You can include arbitrary HTML code in your documents. The HTML will be passed through to the resulting document without modification. This is a good way to work around features that are missing in smu. If you don't want this behaviour, use the `-n` flag when executing smu to stricly escape the HTML tags.