Markdown Examples in barf

2023-01-05

This following was lifted from https://github.com/karlb/smu

smu Syntax

smu was started as a rewrite of markdown but became something more lightweight and consistent. It differs from CommonMark in the following ways:

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 by Enno Boland (gottox). The main differences to the original smu are:

Inline patterns

There are several patterns you can use to highlight your text:

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:

<h1>Heading</h1>
<h2>Topic</h2>

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 <>.

<http://s01.de>

You can do the same for E-Mail addresses:

<yourname@s01.de>

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

<a href="http://s01.de/~gottox/index.cgi/proj_smu">smu - simple mark up</a></p>

Lists

Defining lists is very straightforward:

* Item 1
* Item 2
* Item 3

Result:

<ul>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ul>

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:

<ol start="2">
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ol>

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:

<blockquote><p>
Hello
This is a quote with a <a href="http://s01.de/~gottox">link</a></p>
</blockquote>

You can define a code block with a leading Tab or with 4 leading spaces

	this.is(code)

    this.is(code, too)

Result:

<pre><code>this.is(code)</code></pre>
<pre><code>this.is(code, too)
</code></pre>

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:

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

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.