Přeskočit na obsah
W
Přihlásit

Šablony a Markdown

Zjistěte, jakou syntaxi Markdownu WBengine podporuje, jak se zdroj převádí na bezpečné HTML a v čem se liší soubory od obsahu v databázi.

Nativní šablony

Nativní engine kompiluje .tpl do PHP a může využívat OPcache. {$value} se standardně escapuje pro HTML; |raw používejte pouze pro HTML, které aplikace záměrně vykreslila nebo kterému důvěřuje.

<h1>{$title}</h1>
{$bodyHtml|raw}
{include 'Shared/footer.tpl'}

Markdown soubory

Soubor .md lze vykreslit nativním rendererem přímo nebo jej vložit do HTML šablony:

{include 'Central/notice.md'}

Markdown se zpracuje jako obsah. PHP tagy, proměnné a direktivy šablony uvnitř se nevykonávají. Vestavěný parser escapuje syrové HTML a omezuje protokoly odkazů.

Když už máte řetězec Markdownu, použijte sdílenou službu:

$html = $this->getSite()->getParent()->getMarkdown()->render($source);

Markdown v článcích databáze

V cms_articles nebo cms_article_translations nastavte content_format na markdown. Existující řádky po migraci zůstávají legacy_html. Staré HTML neoznačujte jako Markdown bez převodu a kontroly.

Podporovaná syntaxe Markdownu

Vestavěný parser podporuje CommonMark 0.31.2 a z GitHub Flavored Markdown tabulky, přeškrtnutí a úkolové seznamy. Mezi blokové prvky patří nadpisy, odstavce, vodorovné oddělovače, citace, číslované i nečíslované seznamy, odsazené bloky kódu a bloky kódu ohraničené zpětnými apostrofy nebo vlnovkami. Tabulky používají svislé čáry a oddělovací řádek.

V textu lze použít kurzívu, tučné písmo, řádkový kód, odkazy, obrázky, escapování interpunkce, automatické odkazy a e-mailové adresy i pevné zalomení řádku. Rozšíření GFM přidává ~~přeškrtnutí~~ a značky úkolů jako - [x] hotovo. Jazyk uvedený za úvodní značkou bloku kódu se zachová jako třída language-*.

## Nadpis

Odstavec s **tučným písmem**, *kurzívou*, `kódem` a [odkazem](https://example.com).

- první položka
- druhá položka

| Název | Hodnota |
| --- | --- |
| web | WBengine |

- [x] zkontrolováno

```php
echo "Ahoj";
```

Jak probíhá vykreslení

Parser převede zdroj na strom dokumentu. HTML renderer z něj vytvoří omezenou sadu prvků a escapuje text i atributy. Syrové HTML v Markdownu se zobrazí jako text a odkazy povolují jen bezpečná schémata, například relativní adresy, HTTP, HTTPS a mailto. Markdown nespouští PHP ani direktivy šablon. Výstup vestavěného rendereru lze bezpečně vypsat pomocí |raw; tento filtr nepoužívejte pro libovolný vstup.

U souboru .md nativní renderer zvolí Markdown podle přípony, ať se soubor vykreslí přímo, nebo vloží do .tpl. U databázových článků je content_format uložen samostatně u článku i jeho překladu. Pokud má hodnotu markdown, box Article nejprve zpracuje textová pole a šablona vypíše vytvořené HTML. Řádky označené legacy_html zachovávají dosavadní chování. Staré HTML nejprve zkontrolujte a převeďte, než jeho formát změníte.

Živě na tomto požadavku

Syntaxe šablon, vykreslená teď

Tabulka ukazuje escapování nativní šablony; příklad pod ní je Markdown vložený šablonou.

ZdrojVýsledek
{$hostile}<script>alert("x")</script> Tom & "Jerry"
{$html}<strong>trusted</strong> markup
{$html|raw}trusted markup
{$name|default:'anonymous'|upper}ANONYMOUS
{$text|truncate:24}WBengine compiles templa...
{$items|join:' / '}Site / Section / Box
{$price|number:2}1 234,50
{$time|ldate:'long'}27. října 2026
{foreach $items as $i}{$i}{/foreach}SiteSectionBox
{if $price > 1000}...{/if}nad 1000

Markdown jako zdroj šablony

Tento soubor vkládá šablona Templates.tpl. Nativní renderer jej zpracuje jako Markdownový obsah, takže se PHP ani syntaxe šablon uvnitř souboru .md nevykonávají.