🍄Mycomarkup

Mycomarkup is a markup language designed specifically for MycorrhizaWiki. Although it can be used anywhere, no other implementations have been spotted yet. It draws inspiration from Gemini markup (gemtext, see section 5 of the Gemini spec),Creole, other wiki markups and some Markdown maybe.

Why not use an existing markup language?

  • I don't particularly enjoy any of the existing solutions.
  • Creole is really nice but lacks many features needed for MycorrhizaWiki.
  • Gemtext is really nice, MycorrhizaWiki used to use it for a long time. Even now, Mycomarkup is somewhat compatible with Gemtext. But still, it lacks many features, even more than Creole does.
  • Markdown is bad. By implementing it for MycorrhizaWiki it'd get even worse.

See my rant on Markdown on my gemlog (web proxy)

Features

This list is meant to be always up-to-date.

Headings

There are six levels of headings:

# level 1
## level 2
### level 3
#### level 4
##### level 5
###### level 6

level 1

level 2

level 3

level 4

level 5
level 6

You'll rarely need more than 3.

You must put a space after the octothrops (#).

Lists

You can use unordered lists:

* list element a
* list element b
  • list element a
  • list element b

You must put a space after the asterisk (*).

There are also numbered lists:

*. list element 1
*. list element 2
  1. list element 1
  2. list element 2

You must put a space after the dot (.).

Nested lists are not implemented yet; they will be similar to Creole ones.

Links

See link for details.

=> wikilink
=> wikilink display text
=> name_with_spaces

A paragraph with a link to a [[hypha]], perhaps, with a [[hypha|display text]]. External links are a thing: [[https://example.org]]! Sometimes you can omit the brackets for external links: https://example.org

A paragraph with a link to a hypha, perhaps, with a display text. External links are a thing: example.org! Sometimes you can omit the brackets for external links: example.org

Transclusion

See transclusion for details.

Blockquotes

> quote 1
> quote 2
quote 1
quote 2

They can't be nested for now.

Preformatted blocks

 ```alt text
 some code here
 ```

Paragraphs

Other lines are considered to be paragraphs. You can use //italic//, **bold**, `monospace`, !!highlighted!!, ^lifted^, ,,lowered,, or ~~striked-through~~ text. You can also !!//combine//!! them!

Other lines are considered to be paragraphs. You can use italic, bold, monospace, highlighted, lifted, lowered or striked-through text. You can also combine them!

The same formatting can be used in list items, headings and image descriptions.

Horizontal bar

----

----
It does not always work and I have no idea why. TODO: fix the bug.

Image galleries

img {
Apple
Apple| 200
Apple| *100 { A //description// }
https://upload.wikimedia.org/wikipedia/commons/7/70/A.png
}

If you put just one image, it will be displayed with no decorations:

img { https://mycorrhiza.lesarbr.es/favicon.ico }

Tables

tables

You can organize data into tables. Mycomarkup syntax for tables is easy enough.

Tables are delimited by table {...}. Both delimeters have to be on their own lines. You can write table's caption on the first line.

Empty table:
table {
}

Empty table:

table { Empty table but with proper caption
}
Empty table but with proper caption

Heading cells start with !, normal cells start with |. Table rows are separated with line breaks:

table {
! Monday  ! Friday
| sad day | happy day
}
Monday Friday
sad day happy day

Table cells support all paragraph styling:

table {
! Monday ! Friday
| sad day | //happy day//
}
Monday Friday
sad day happy day

If you a cell to span several columns, write cell starting character that many times without spaces:

table {
! Monday ! Friday
|| ok day
}
Monday Friday
ok day

Currently cells spanning several rows are not supported.

If want to write a multiline cell, wrap its contents in {} and continue the table:

table {
| a | b
| { there are
//two// paragraphs in this cell! } | d
}
a b
there are
two paragraphs in this cell!
d

You can omit the initial pipe characters. They will be inserted automatically:

table {
a | b
c | d
}
a b
c d