Texy – chyby v ovladači blockHandler – pro zvýraznění kódu
- m.brecher
- Generous Backer | 889
V Nette aplikaci používám Texy 3.1.4. takto:
config.neon:
ArticlePresenter.php:
Article.show.latte:
Metodu blockHandler jsem vytvořil podle návodu DG zde https://texy.info/cs/try-settings – volá se v startup() presenteru:
V této variantě blockHandler Tracy ohlásí chybu
Argument #4 ($lang) must be of type string, null given
Zkusil jsem tu chybu obejít takto – neúspěšně, zřejmě Texy do proměnné $lang tak jako tak předá hodnotu null.
Povolením null jsem vyhození chyby odstranil, ale do proměnné $lang se zřejmě stejně předá null:
Pro správnou funkci zvýraznění syntaxe kódu php javascriptem prism.js by se kód měl zformátovat do html takto:
Otestoval jsem opravený blockhandler textem podle návodu https://texy.info/cs/try-settings:
```
... nějaké php ...
Texy na výstupu poskytlo správné tagy html, ale u třídy tagu <pre> chybí "php" - zřejmě proto, že jazyk php ve vstupním textu zadán
```html
<pre class="language-">
<code>... nějaký kód php...</code>
</pre>
Zkoušel jsem v testovacím textu měnit /--code za něco jiného, ale když
nebyl parametr $blocktype = ‚block/code‘ tak se spustila metoda
$invocation->proceed(), která neměla dělat nic, ale ta vyhodila
chybu App\Utils\TexyUtils::blockHandler(): Return value must be of type Texy\HtmlElement, null returned
Zkoušel jsem také syntaxi označení bloku kódu php stejně jako na fóru nette ```php ... ```, ale ani to nefunguje.
Napadá mne co by mohlo být špatně:
- zápis bloku ve vstupním textu zdrojového kódu (kde se má zvýraznit syntaxe) podle ukázky u návodu (dg) není správně /--code
- v uvedeném návodu na blockHandler (dg) je chyba
- v mnou použité verzi Texy 3.1.4. je chyba
Určité závěry mohu učinit již nyní:
- není – li $blocktype = ‚block/code‘ tak se vyhodí chyba, takže v blockHandleru, nebo v Texy je skoro určitě nějaká chyba
- ve vstupním textu podle návodu je použito /--code, což neumožňuje zadat jazyk ke zformátování, takže i zde to nebude správně
Neporadil by někdo, jak docílit správného formátování zdrojového kódu a označit příslušné jazyky např. php, html, css?
Dík předem za jakékoliv info.
Editoval m.brecher (20. 9. 2021 13:42)