summaryrefslogtreecommitdiff
path: root/docs/content/references/hfm.md
blob: 271d7cd3b69f4ac1e86029e1ae0ea1dad3d02c23 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
# HedgeDoc Flavored Markdown

HedgeDoc mostly follows the [CommonMark][commonmark] standard. It shares some extensions with the [GFM][gfm] standard, but for historical reasons HedgeDoc does support not exactly GFM, but a bit more in places (and a bit less in other places).

These tables will tell you what exactly we support in HedgeDoc 1.x (HFM 1) and will support in HedgeDoc 2 (HFM 2).

**Please keep in mind that HedgeDoc 2 is still in development and not functional yet.**


## Typography


| Feature       | HFM 1 | HFM 2 | CommonMark          | GFM               |
|---------------|:-----:|:-----:|:-------------------:|:-----------------:|
| bold          | ☑️     | ☑️     | ☑️                   | ☑️                 |
| italic        | ☑️     | ☑️     | ☑️                   | ☑️                 |
| underline     | ☑️     | ☑️     | (☑️ with `<ins>`)    | (☑️ with `<ins>`)  |
| strikethrough | ☑️     | ☑️     | (☑️ with `<del>`)    | ☑️                 |
| subscript     | ☑️     | ☑️     | (☑️ with `<sub>`)    | (☑️ with `<sub>`)  |
| superscript   | ☑️     | ☑️     | (☑️ with `<sup>`)    | (☑️ with `<sup>`)  |
| marked        | ☑️     | ☑️     | (☑️ with `<mark>`)   | (☑️ with `<mark>`) |

## Extended typography features

| Feature                        | HFM 1 | HFM 2 | CommonMark | GFM |
|--------------------------------|:-----:|:-----:|:----------:|:---:|
| heading                        | ☑️     | ☑️     | ☑️          | ☑️   |
| inline code                    | ☑️     | ☑️     | ☑️          | ☑️   |
| indented code blocks           | ☑️     | ☑️     | ☑️          | ☑️   |
| code block with language[^highlight]       | ☑️     | ☑️     | ☑️          | ☑️   |
| code block with extra features[^extra-code] | ☑️     | ☑️     |            |     |
| block quote                    | ☑️     | ☑️     | ☑️          | ☑️   |
| name tag (`[name=...]`)        | (☑️)[^in-bq-list]     | ☑️     |            |     |
| time tag (`[time=...]`)        | (☑️)[^in-bq-list]     | ☑️     |            |     |
| color tag (`[color=...]`)      | (☑️)[^in-bq-list]     | ☑️     |            |     |
| unorderd list                  | ☑️     | ☑️     | ☑️          | ☑️   |
| ordered list                   | ☑️     | ☑️     | ☑️          | ☑️   |
| task list                      | ☑️     | ☑️     |            | ☑️   |
| defition list                  | ☑️     | ☑️     |            |     |
| emoji             | [Unicode 6.1][unicode-6] | [Unicode 13][unicode-13] |                      |                      |
| [ForkAwesome][fa] | ☑️ with `<i class='fa'>`  | ☑️ with shortcodes        |                      |                      |
| LaTeX             | ☑️[^mj]                   | ☑️[^kt]                   |                      |                      |

[^highlight]: Code-blocks with a given language are rendered with syntax-highlighting for the code.
[^extra-code]: Several special "language" keywords can be used for rendering diagrams, charts, etc.
[^in-bq-list]: Use of these tags is only supported within blockquotes or (un)ordered lists.
[^mj]: LaTeX is rendered with [MathJax][mathjax].
[^kt]: LaTeX is rendered with [KaTeX][katex].

## Links & Images

| Feature               | HFM 1 | HFM 2 | CommonMark       | GFM              |
|-----------------------|:-----:|:-----:|:----------------:|:----------------:|
| link                  | ☑️     | ☑️     | ☑️                | ☑️                |
| link reference        | ☑️     | ☑️     | ☑️                | ☑️                |
| link title            | ☑️     | ☑️     | ☑️                | ☑️                |
| autolink with `<>`    | ☑️     | ☑️     | ☑️                | ☑️                |
| autolink without `<>` | ☑️     | ☑️     |                  | ☑️                |
| footnotes             | ☑️     | ☑️     |                  |                  |
| image                 | ☑️     | ☑️     | ☑️                | ☑️                |
| image with given size | ☑️     | ☑️     | (☑️ with `<img>`) | (☑️ with `<img>`) |
| table of contents     | ☑️     | ☑️     |                  |                  |


## Structural elements

| Feature           | HFM 1                    | HFM 2                    | CommonMark           | GFM                  |
|-------------------|:------------------------:|:------------------------:|:--------------------:|:--------------------:|
| table             | ☑️                        | ☑️                        | (☑️ with `<table>`)   | ☑️                    |
| horizontal line   | ☑️                        | ☑️                        | ☑️                    | ☑️                    |
| collapsable block | (☑️ with `<details>`)     | ☑️                        | (☑️ with `<details>`) | (☑️ with `<details>`) |
| Alerts            | ☑️                        | ☑️                        |                      |                      |

## Embeddings
HFM1 included support for certain embeddings of external content. These were defined in markdown by the uncommon `{%keyword parameter %}` syntax.

Instead of this uncommon syntax, HFM2 uses just plain links to external content and creates embeddings for supported providers.

| Feature                  | HFM 1 | HFM 2              | CommonMark | GFM |
|--------------------------|:-----:|:------------------:|:----------:|:---:|
| PDF (`{%pdf ... %}`)     | ☑️     | removed            |            |     |
| [YouTube][youtube] (`{%youtube ... %}`)       | ☑️     | with plain link[^embed] |            |     |
| [Vimeo][vimeo] (`{%vimeo ... %}`)          | ☑️     | with plain link[^embed] |            |     |
| [Slideshare][slideshare] (`{%slideshare ... %}`) | ☑️     | removed            |            |     |
| [Speakerdeck][speakerdeck] (`{%speakerdeck ... %}`) | ☑️     | removed            |            |     |
| [GitHub Gist][gist] (`{%gist ... %}`)             | ☑️     | with plain link[^embed] |            |     |

[^embed]: The special syntax is deprecated but will continue to work. However a plain link to the content will generate the same embedding and is preferred.

## HTML
Besides the basic HTML typography elements (`<p>`, `<a>`, `<b>`, `<ins>`, `<del>`) the following more special HTML elements are supported by some specification.

|    Feature    | HedgeDocMark 1 | HedgeDocMark 2 | CommonMark | GFM |
|:-------------:|:--------------:|:--------------:|:----------:|:---:|
|   `<title>`   |                |                | ☑️          |     |
|  `<textarea>` |                | ☑️              | ☑️          |     |
|   `<style>`   | ☑️              | ☑️              | ☑️          |     |
|    `<xmp>`    |                |                | ☑️          |     |
|   `<iframe>`  | ☑️              | ☑️              | ☑️          |     |
|  `<noembed>`  | ☑️              |                | ☑️          |     |
|  `<noframes>` | ☑️              |                | ☑️          |     |
|   `<script>`  |                |                | ☑️          |     |
| `<plaintext>` |                | ☑️              | ☑️          |     |

[fa]: https://forkaweso.me/
[youtube]: https://www.youtube.com/
[vimeo]: https://vimeo.com/
[slideshare]: https://www.slideshare.net/
[speakerdeck]: https://speakerdeck.com/
[gist]: https://gist.github.com/
[mathjax]: https://www.mathjax.org/
[katex]: https://katex.org/
[gfm]: https://github.github.com/gfm/
[commonmark]: https://spec.commonmark.org/
[unicode-6]: https://unicode.org/versions/Unicode6.1.0/
[unicode-13]: https://unicode.org/versions/Unicode13.0.0/