src/data/extra/docs/en/markdown_guide.md
This is a quick guide 1 for Markdown, a lightweight and easy-to-use syntax for writing.
Markdown is a way to style text via a few simple markers. You could write the document in plain text and then read it with a beautiful typesetting.
There is no standard Markdown syntax and many editors will support its own additional syntax. VNote supports only the widely-used basic syntax.
If you are new to Markdown, it is better to learn the syntax elements step by step. Knowing headers and emphasis is enough to survive. You could learn another new syntax and practise it every one or two days.
Here is an overview of Markdown syntax supported by VNote.
# This is a <h1> tag
## This is a <h2> tag
###### This is a <h6> tag
Notes:
#*This text will be italic*
_This text will be italic_
**This text will be bold**
__This text will be bold__
Notes:
* is recommended in VNote* and after the last *. The space is necessary if the surrounded text begins or ends with full width punctuation* Item 1
This is a text under Item 1. Notice that there are two spaces at the end above.
* Item 2
* Item 2a
* Item 2b
* Item 3
To end a list, there should be one empty line above.
1. Item 1
1. Item 2
Notice that the sequence number is irrelevant. Markdown will change the sequence automatically when renderring.
3. Item 3
1. Item 3a
2. Item 3b
4. Item 4
| col 1 | col 2 | col 3 |
| --- | --- | --- |
| cell1 | cell2 | cell3 |
| cell4 | cell5 | cell6 |





[Link Text](/url/of/the/link)
Notes:
As VNote suggests:
> VNote is the best Markdown note-taking application
> ever.
>
> THere is two spaces after `ever.` above to insert a
> new line.
It also suggests:
> VNote is good.
Here is another sentence within the quote.
Notes:
>> at the first line```lang
This is a fenced code block.
```
~~~cpp
This is another fenced code block.
~~~
Notes:
lang is optional to specify the language of the code; if not specified, VNote won't highlight the code
VNote supports the following engines to draw diagrams. You should specify particular language of the fenced code block and write the definition of your diagram within it.
flow or flowchartmermaidwavedromFor example,
```flowchart
st=>start: Start:>http://www.google.com[blank]
e=>end:>http://www.google.com
op1=>operation: My Operation
sub1=>subroutine: My Subroutine
cond=>condition: Yes
or No?:>http://www.google.com
io=>inputoutput: catch something...
st->op1->cond
cond(yes)->io->e
cond(no)->sub1(right)->op1
```
VNote supports PlantUML to draw UML diagrams. You should use puml specified as the language of the fenced code block and write the definition of your diagram within it.
```puml
@startuml
Bob -> Alice : hello
@enduml
```
VNote supports Graphviz to draw diagrams. You should use dot specified as the language of the fenced code block and write the definition of your diagram within it.
VNote supports math formulas via MathJax. The default math delimiters are $$...$$ for displayed mathematics, and $...$ for inline mathematics.
3$abc$, $abc$4, $ abc$, and $abc $ will not be treated as mathematics\ to escape $$$ and after closing $$\\ to new a line within a displayed mathematicsVNote also supports displayed mathematics via fenced code block with language mathjax specified.
```mathjax
$$
J(\theta) = \frac 1 2 \sum_{i=1}^m (h_\theta(x^{(i)})-y^{(i)})^2
$$
```
Equation number of displayed mathematics is supported:
$$vnote x markdown = awesome$$ (1.2.1)
Here is a `inline code`.
To insert one `, you need to use two ` to enclose it, such as `` ` ``. To insert two `, you need to use three `.
Here is a ~~text~~ with strikethrough.
* [x] this is a complete item.
* [ ] this is an incomplete item.
This is a footnote [^1].
[^1]: Here is the detail of the footnote.
This is the 1^st^ superscript.
This is the H~2~O subscript.
Let's mark the ==word==.
::: alert-info
This is an info text.
:::
::: alert-danger
This is a danger text.
:::
Available variants:
alert-primary
alert-secondary
alert-success
alert-info
alert-warning
alert-danger
alert-light
alert-dark
If you want to enter a new line, you should add two spaces after current line and then continue your input. VNote provides Shift+Enter to help.
If you want to enter a new paragraph, you should add an empty line and then continue entering the new paragraph.
Generally, you need to add an empty line after a block element (such as code block, lists, blockquote) to explicitly end it.
This guide references Mastering Markdown. ↩