Oznámení

Provoz fóra byl ukončen

Chyba v nadpisech

před 12 lety

Michal Hantl
Člen | 4

https://texy.info/cs/try/bzsxc

Vygenerovaný HTML kód:

<pre>Vítejte!</pre>
<h2 id=„toc-vitejte-2“>Vítejte!</h2>
<!-- by Texy2! -->

Jak je vidno, texy sice správně v <pre> nevykreslí nadpis, ale sežere rovnítka a co je horší, provede heading() callback a obsadí id „toc-vitejte“

Očekával bych, že obsah <pre> spíš nechá na pokoji a hlavně nespustí callback.

Mimo bug :
Na problém jsem narazil, když jsem se snažil rozdělit text psaný pomocí texy na jednotlivé „kapitoly“ pomocí nadpisů. Po chvíli zkoumání jsem se ropzhodl použít callback, ale narazil jsem na to, že $offset v TexyBlockParser, který by mi celkem pomohl je private. (potřebuju vědět, kde právě jsem v textu psaném pomocí texy, abych ho podle těch nadpisů mohl rozdělit)

Prozatím jsem nepřišel na to, jak toto s texy dobře realizovat.

Editoval Michal Hantl (6. 5. 2007 12:19)

před 12 lety

David Grudl
Nette Core | 6806

Jde o to, že Texy HTML značky nezohledňuje tak, aby se přepnulo do „pre režimu“, toho je potřeba docílit syntaxí bloků /--. (otázka: mělo by Texy takto značky zohledňovat? Nepůsobilo by to problémy?)

Takže Texy nadpis skutečně vygeneruje, zavolá callback atd. Nepovolené značky eliminuje až „výstupní kontrola“, konkrétně objekt $texy->formatter třídy TexyHtmlFormatter. Ten je oproti první verzi Texy značně vyspělejší, ví, že v PRE nemůže být H1 a zpětně ho odstraní.

K tomu rozdělování textu: na hodnotu $offset se nedá spoléhat, protože před začátkem formátování projde různými filtry a ty ho změní. Testuju ale takovou novinku, která je k rozdělování přímo určená. Jde o tzv. sekce. Tady je příklad. Výsledný text pak lze rozsekat regulárním výrazem na jednotlivé části.

Podpora sekcí je v inkubační fázy, připomínky vítám.

před 12 lety

Michal Hantl
Člen | 4

Aha, rozumím. No, hned ze startu jsem si myslel, že to pořeším regexpem. Pak ale mě napadlo, co když někdo napíše nadpis někam kam nepatří, tak jsem to zkusil a tohle..

A ani s tím offsetem jsem to opravdu nevyřešil. Je to tak, jak říkáš.

Ty „sekce“ vypadají fajn. Zkusím si asi napsat něco, co by formátovalo textile-like syntax a uvidím (experimentuju). Dík za info.

Editoval Michal Hantl (7. 5. 2007 21:11)