Nice Markup Language!
this is the 'specification' for a markup language I made up, it's mostly based on gemtext, markdown, bismark and my crazy ideas.
| LICENSE | Initial commit | |
| README.md | Warn that development on this project is now paused. | |
Nice Markup Language!
WARNING: I WILL NOT BE WORKING ON THIS PROJECT ANY MORE, SO THAT I CAN FOCUS ON reticulum_ex. NOTE: THIS SPEC(and the language it specifies) IS STILL WIP!
this is the 'specification' for a markup language I made up, it's mostly based on gemtext, markdown, bismark and my crazy ideas.
Features
- line-based, except for some optional elements.
- extensible(a lot)
- can be used for websites, books, forms, slideshows and can be extended for more!
Quick Introduction
here are all the elements that exist in NML:
| Name | Required* | Format | Description | Example |
|---|---|---|---|---|
| text | yes | is the default if it isn't detected to be another element. you can force a line to be text by beginning it with a backslash. | normal text, nothing fancy | Lorem ipsum dolor sit amet. |
| heading 1(title) | yes | begins with # followed by optional whitespace |
the name of the document | # Welcome to My Website! |
| heading 2(section) | yes | begins with ## followed by optional whitespace |
the title of a section of the document | ## Contact me! |
| heading 3(subsection) | yes | begins with ### followed by optional whitespace |
the title of a subsection of the document | ### By Email |
| link | yes | begins with => followed by optional whitespace, then there's the url, and there can be, optionally, a label placed after the url, with whitespace between them |
a link with an optional label | => https://example.com Example Website |
| verbatim block toggle(code block toggle) | yes | begins with ```. text in the line that starts a new verbatim block, after the ```, specifies a format/programming language for syntaxt highlighting |
toggles if the content below is in a verbatim block or not(default is no) | ```python\nprint("Hello, world!")\n``` |
| table line | no, but reccomended | columns are separated with | and can have optional whitespace around the |.the first line will always be the header. pipe( |) characters can be escaped using a backslash(\), meaning \| will just be a pipe. |
tables which can contains nice data! | | username | email || int32 | int32@example.com || someone | someone@example.com | |
| thematic breaks | no | a line with only ---. |
like a heading, it means we're in a new section, but it doesn't have a name | Lorem ipsum dolor sit amet.---The quick brown fox jumps over the lazy dog. |
| dinkus | no | a line with only ***. |
thematic breaks but fancy | Lorem ipsum dolor sit amet.\n***\nThe quick brown fox jumps over the lazy dog. |
| metadata tag | yes | begins with #!(shebang!), followed by the tag name, whitespace and finally it's value |
provides metadata about the (non-metadata) element following it | #!author Int32 |
| bold formatting | no | can be anywhere in any kind of text, begins and ends with *(there needs to be a space before the first and after the last *, but the space will still be rendered) |
be bold | I **love** pasta. |
| italic formatting | no | can be anywhere in any kind of text, begins and ends with _(there needs to be a space before the first and after the last _, but the space will still be rendered) |
be italic | _dura lex, sed lex_ |
verbatim formatting |
no | can be anywhere in any kind of text, begins and ends with ` |
be verbatim |
println!("Hello, world!") |
* all clients SHOULD support these!
Elements
TODO