⋮ Obsah
Podpora Markdownu
Od vydání veze pro vývojáře může DokuWiki nativně parsovat GitHub Flavored Markdown (GFM), a to společně s tradiční syntaxí DokuWiki nebo místo ní.
Podpora Markdownu je nová a měla by být považována za částečně experimentální (viz chybějící části níže).
Nastavení syntaxe
Nová konfigurační volba $conf['syntax'] určuje, který parser je aktivní:
| Hodnota | Chování |
|---|---|
dw | Pouze syntaxe DokuWiki (výchozí, nezměněné chování) |
md | Pouze Markdown (GFM) |
dw+md | Obě syntaxe povoleny, při konfliktu má přednost DokuWiki |
md+dw | Obě syntaxe povoleny, při konfliktu má přednost Markdown |
„Přednost“ určuje, který dialekt vyhraje v případě, že oba interpretují stejné znaky odlišně. Například __text__ je v DokuWiki podtržení, ale v Markdownu silné zvýraznění (bold).
Podporované prvky Markdownu
Nativní parser pokrývá nejběžnější konstrukce GFM:
- ATX nadpisy (
# Nadpis 1. úrovněaž###### Nadpis 6. úrovně) - Ohraničené bloky kódu (
```a~~~), včetně info řetězců pro jazyk a název souboru - Citace (
>), včetně obsahu uvnitř (seznamy, kód, tabulky) - Neuspořádané a číslované seznamy, včetně vlastního počátečního čísla (
5. položka→<ol start="5">) - Tabulky s oddělovačem
|a zarovnáním sloupců - Přeškrtnutí (
~~text~~) - Kurzíva a tučné (
*em*,**strong**,***oboje***a varianty s podtržítkem) - Inline úseky kódu (
`code`a``code``) - Odkazy a obrázky, včetně formy „odkazovaný obrázek“
[](target) - Automatické odkazy
- Tvrdé zalomení řádku (dvě koncové mezery nebo koncové zpětné lomítko)
- Escapování zpětným lomítkem
- HTML5 znakové entity
Parametry médií DokuWiki fungují i v Markdownovém zápisu obrázků, např. , a klíčová slova ?left/?right/?center jsou dostupná pro zarovnání.
Co není podporováno
Některé prvky Markdownu/GFM jsou záměrně vynechány, většinou kvůli tomu, že DokuWiki používá jednoprůchodový parser:
- Setext nadpisy (podtržené symbolem
=nebo-) - Inline formátování uvnitř nadpisů (vyžadovalo by větší změny rendereru)
- Seznamy úkolů (
- [ ]) -> vhodnější jako plugin - GitHub emoji zkratky (
:smile:) -> mohou být doplněny později - Průchod nezpracovaného HTML -> není podporováno v žádné syntaxi kvůli bezpečnosti
- Různé okrajové případy CommonMarku (asymetrické běhy oddělovačů, „lazy continuation“, některé interakce s odsazeným kódem atd.)
Úplný seznam vynechaných specifikací s vysvětlením je k dispozici v testovací sadě.
Pluginy
Všechny existující syntaxové pluginy nadále fungují. DokuWiki stále používá stejné interní instrukce parseru a renderer API, takže výstup pluginů není ovlivněn nastavením syntax.
Jiné pluginy, které samy parsují syntaxi nebo generují syntaxi (např. vlastní editory), nemusí fungovat správně, pokud je syntax nastavena na jinou hodnotu než dw.
Chybějící části
Aktuální implementace se zaměřila pouze na parsování a renderování Markdownu. Budoucí vydání by měla zlepšit integraci:
- Panel editoru zatím generuje pouze syntaxi DokuWiki
- Pravděpodobně existují i další drobnosti