macana

Static site generator for Obsidian Vault

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
  41. 41
  42. 42
  43. 43
  44. 44
  45. 45
  46. 46
  47. 47
  48. 48
  49. 49
  50. 50
  51. 51
  52. 52
  53. 53
  54. 54
  55. 55
  56. 56
  57. 57
  58. 58
  59. 59
  60. 60
  61. 61
  62. 62
  63. 63
  64. 64
  65. 65
  66. 66
  67. 67
  68. 68
  69. 69
  70. 70
  71. 71
  72. 72
  73. 73
  74. 74
  75. 75
  76. 76
  77. 77
  78. 78
  79. 79
  80. 80
  81. 81
  82. 82
  83. 83
  84. 84
  85. 85
  86. 86
  87. 87
  88. 88
  89. 89
  90. 90
  91. 91
  92. 92
  93. 93
  94. 94
  95. 95
  96. 96
  97. 97
  98. 98
  99. 99
  100. 100
  101. 101
  102. 102
  103. 103
  104. 104
  105. 105
  106. 106
  107. 107
  108. 108
  109. 109
  110. 110
  111. 111
  112. 112
  113. 113
  114. 114
  115. 115
  116. 116
  117. 117
  118. 118
  119. 119
  120. 120
  121. 121
  122. 122
  123. 123
  124. 124
  125. 125
  126. 126
  127. 127
  128. 128
  129. 129
  130. 130
Obsidian's Markdown dialect, called [[en/Features/Markdown/Obsidian Flavored Markdown|Obsidian Flavored Markdown (OFM)]], is based on another dialect called GitHub Flavored Markdown (GFM).
GFM is based on CommonMark, and has additional syntax extension and undocumented widgets that abuses existing Markdown syntax.

- [GitHub Flavored Markdown Spec](https://github.github.com/gfm/)

## Supported features

### Strikethrough

Surround text with a pair of one or two tildes (`~`) to make the part strikethrough.

- [Specification](https://github.github.com/gfm/#strikethrough-extension-)

```markdown
~~This text is rendered with strikethrough~~.
```

~~This text is rendered with strikethrough~~.

### Task list items

Add `[ ]` (unchecked) or `[x]` (checked) before a list item to make it task list item.

- [Specification](https://github.github.com/gfm/#task-list-items-extension-)

```markdown
- [x] Checked
- [ ] Unchecked
- Normal item
	- Normal item
	- [x] Nested task item
```

- [x] Checked
- [ ] Unchecked
- Normal item
	- Normal item
	- [x] Nested task item

### Footnotes

This feature is not officially documented at the specification.

- [Footnotes now supported in Markdown fields - The GitHub Blog](https://github.blog/changelog/2021-09-30-footnotes-now-supported-in-markdown-fields/)
- [Basic writing and formatting syntax - GitHub Docs](https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax#footnotes)

```markdown
This is a normal paragraph[^1].

[^1]: I'm not.
```

This is a normal paragraph[^1].

[^1]: I'm not.

### Autolinks

Parser treats URL-ish text as a link.

- [Specification](https://github.github.com/gfm/#autolinks-extension-)

```markdown
https://github.github.com/gfm/
```

https://github.github.com/gfm/

### Tables

- [Specification](https://github.github.com/gfm/#tables-extension-)

```markdown
|  Language  | Execution         |
| :--------: | ----------------- |
| JavaScript | Interpreter & JIT |
```

|  Language  | Execution         |
| :--------: | ----------------- |
| JavaScript | Interpreter & JIT |
|    Dart    | AOT or JIT        |

## Unsupported features

### Alerts

This feature is not officially documented at the specification.

- [Basic writing and formatting syntax - GitHub Docs](https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax#alerts)

Syntax-wise, a valid GFM Alert is a valid OFM Callout: <math><mi>Alert</mi><mo></mo><mi>Callout</mi></math>.
However, the `CAUTION` type will be rendered as same variant as `WARNING` type, as shown below. ^alert-callout-compat

```markdown
> [!WARNING]
> Urgent info that needs immediate user attention to avoid problems.

> [!CAUTION]
> Advises about risks or negative outcomes of certain actions.
```

> [!WARNING]
> Urgent info that needs immediate user attention to avoid problems.

> [!CAUTION]
> Advises about risks or negative outcomes of certain actions.

### MermaidJS diagrams

This feature is not officially documented at the specification.

- [Creating diagrams - GitHub Docs](https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/creating-diagrams)

Due to the library neither be able to output without headless Chrome/Chromium nor exposes syntax parser, Macana does not support for this feature currently.

### Mathematical expressions

This feature is not officially documented at the specification.

- [Writing mathematical expressions - GitHub Docs](https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/writing-mathematical-expressions)

OFM defines [its own syntax for mathematical expressions](https://help.obsidian.md/Editing+and+formatting/Advanced+formatting+syntax#Math).
While both OFM and GFM use dollar sign as a marker, GFM also supports an alternative syntax for inline mathematical expression:

```markdown
Answer is $`x = 5`$.
```

Macana does not support this alternative syntax.