Oznámení
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)