abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 21:33 | Komunita

    Fedora 40 release party v Praze proběhne v pátek 17. května od 18:30 v prostorách společnosti Etnetera Core na adrese Jankovcova 1037/49, Praha 7. Součástí bude program kratších přednášek o novinkách ve Fedoře.

    Ladislav Hagara | Komentářů: 2
    včera 21:11 | IT novinky

    Stack Overflow se dohodl s OpenAI o zpřístupnění obsahu Stack Overflow pro vylepšení OpenAI AI modelů.

    Ladislav Hagara | Komentářů: 0
    včera 17:55 | Nová verze

    AlmaLinux byl vydán v nové stabilní verzi 9.4 (Mastodon, 𝕏). S kódovým názvem Seafoam Ocelot. Přehled novinek v příspěvku na blogu a v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    včera 17:11 | IT novinky

    Před 50 lety, 5. května 1974 v žurnálu IEEE Transactions on Communications, Vint Cerf a Bob Kahn popsali protokol TCP (pdf).

    Ladislav Hagara | Komentářů: 0
    včera 13:44 | Zajímavý článek

    Bylo vydáno do češtiny přeložené číslo 717 týdeníku WeeklyOSM přinášející zprávy ze světa OpenStreetMap.

    Ladislav Hagara | Komentářů: 0
    včera 04:00 | Nová verze

    Byla vydána (Mastodon, 𝕏) nová stabilní verze 2.10.38 svobodné aplikace pro úpravu a vytváření rastrové grafiky GIMP (GNU Image Manipulation Program). Přehled novinek v oznámení o vydání a v souboru NEWS na GitLabu. Nový GIMP je již k dispozici také na Flathubu.

    Ladislav Hagara | Komentářů: 6
    včera 00:22 | Komunita

    Google zveřejnil seznam 1220 projektů od 195 organizací (Debian, GNU, openSUSE, Linux Foundation, Haiku, Python, …) přijatých do letošního, již dvacátého, Google Summer of Code.

    Ladislav Hagara | Komentářů: 2
    5.5. 22:22 | IT novinky

    Na základě DMCA požadavku bylo na konci dubna z GitHubu odstraněno 8535 repozitářů se zdrojovými kódy open source emulátoru přenosné herní konzole Nintendo Switch yuzu.

    Ladislav Hagara | Komentářů: 7
    5.5. 00:33 | Nová verze

    Webový prohlížeč Dillo (Wikipedie) byl vydán ve verzi 3.1.0. Po devíti letech od vydání předchozí verze 3.0.5. Doména dillo.org již nepatří vývojářům Dilla.

    Ladislav Hagara | Komentářů: 0
    4.5. 15:00 | Komunita

    O víkendu probíhá v Bostonu, a také virtuálně, konference LibrePlanet 2024 organizovaná nadací Free Software Foundation (FSF).

    Ladislav Hagara | Komentářů: 0
    Podle hypotézy Mrtvý Internet mj. tvoří většinu online interakcí boti.
     (63%)
     (8%)
     (15%)
     (14%)
    Celkem 119 hlasů
     Komentářů: 8, poslední 4.5. 08:25
    Rozcestník

    Převod formátovaného textu na prostý text

    18.10.2011 21:03 | Přečteno: 1876× | XML | poslední úprava: 18.10.2011 21:03

    Zrovna v rámci jednoho svého projektu řeším úkol: převést (X)HTML formátovaný text na prostý text (např. pro zobrazení v textových e-mailech nebo terminálu).

    Jelikož uživatelé jsou často rypáci a nerozumí tomu, nebývá někdy výstupem jejich snažení platné XML. Typické chyby: neuzavřené značky, používání neexistujících entit (často v odkazech), křížení značek. Pro vykydání toho největšího hnoje jsem použil skvělý program/knihovnu HTML Tidy.

    Teď už konečně máme XML a můžeme s ním nějak normálně pracovat – ne se brodit v nějakém textu a přehrabovat ho jen regulárními výrazy.

    Další věc, co uživatelé rádi dělají, je, že nepoužívají značky <p>pro odstavce</p> a místo toho dělají mezi „odstavci“ prázdný řádek. Což je sice celkem přirozené, ale je to špatně, protože se celý text slije do jednoho odstavce a informace zmizí. Vytvořil jsem tedy XSL šablonu, která rozseká textové uzly na odstavce a pak je zase poslepuje – uvnitř odstavce totiž může být inline element (třeba <strong>zvýrazněné písmo</strong>) a za ním další textový uzel (pokračování odstavce), který je potřeba připojit.

    Když už máme slušné odstavce, můžeme konečně přistoupit k interpretaci jednotlivých značek. K tomu jsem opět použil skvělý jazyk XSL. I když je trochu ukecanější, práce jde pěkně od ruky a dá se v tom dobře vyznat.

    Zatím jsem implementoval: Ukázky vstupu a výstupu: S výstupem už jsem celkem spokojený. Ale říkal jsem si, že napíšu tenhle zápisek, protože třeba někoho napadne, co by se ještě dalo implementovat nebo udělat lépe.

    Šablony zveřejním společně s tím projektem pod nějakou svobodnou licencí, až to bude celé v nějakém publikovatelném stavu.

    U těch nadpisů (jejich podtržení) jsem se inspiroval syntaxí Markdown – nicméně cílem není výstup v nějaké syntaxi zpětně převoditelné na XHTML, to je nesmysl, výstup by měl být pro člověka, ne nějaký překladač – tedy intuitivní a příjemný na čtení (v rámci omezených možností, které prostý text poskytuje). Může (a bude) to ztrátový převod z původního formátovaného textu.

    Např. u odkazů jsem URL vložil do ostrých závorek a text odkazu do 'apostrofů' – přišlo mi škoda zahodit tu informaci, kde odkaz začíná a kde končí, ale možná to není nutné (?).        

    Hodnocení: 86 %

            špatnédobré        

    Anketa

    Máte rádi XML?
     (12 %)
     (34 %)
     (54 %)
    Celkem 50 hlasů

    Anketa

    Máte radši XML nebo SQL
     (11 %)
     (38 %)
     (51 %)
    Celkem 37 hlasů

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    =^..^= AmigaPower® avatar 18.10.2011 21:13 =^..^= AmigaPower® | skóre: 30 | blog: BLB | Praha
    Rozbalit Rozbalit vše Re: Převod formátovaného textu na prostý text
    ...skvělý jazyk XSL.
    "Skvělý jazyk" je jazyk nadrbaný samičky na mejch koulích, né XSL :-D
    xkucf03 avatar 18.10.2011 21:14 xkucf03 | skóre: 49 | blog: xkucf03
    Rozbalit Rozbalit vše Re: Převod formátovaného textu na prostý text
    ačkoli je to trochu mimo téma, musím souhlasit :-D
    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
    =^..^= AmigaPower® avatar 18.10.2011 21:22 =^..^= AmigaPower® | skóre: 30 | blog: BLB | Praha
    Rozbalit Rozbalit vše Re: Převod formátovaného textu na prostý text
    Mně to bylo hned jasný... :-D
    kotyz avatar 18.10.2011 21:25 kotyz | skóre: 25 | blog: kotyzblog | Plzeň
    Rozbalit Rozbalit vše Re: Převod formátovaného textu na prostý text
    Někdo zase třeba radši uzenej jazyk s hořčicí a křenem ... :-D
    Hrdý člen KERNEL ULTRAS. | Furry/Brony/Otaku | Nemám čas ztrácet čas. | In 'pacman -Syu' we trust!
    =^..^= AmigaPower® avatar 18.10.2011 21:28 =^..^= AmigaPower® | skóre: 30 | blog: BLB | Praha
    Rozbalit Rozbalit vše Re: Převod formátovaného textu na prostý text
    Na to máš v anketě tu položku "Ano, ale sex je lepší" ;-) :-D
    =^..^= AmigaPower® avatar 18.10.2011 21:29 =^..^= AmigaPower® | skóre: 30 | blog: BLB | Praha
    Rozbalit Rozbalit vše Re: Převod formátovaného textu na prostý text
    ...a zmáčkni si F5 :-D
    Bedňa avatar 20.10.2011 08:46 Bedňa | skóre: 34 | blog: Žumpa | Horňany
    Rozbalit Rozbalit vše Re: Převod formátovaného textu na prostý text
    Jediná robota čo má na starosti aj tu fláka :-D
    KERNEL ULTRAS video channel >>>
    kotyz avatar 18.10.2011 21:24 kotyz | skóre: 25 | blog: kotyzblog | Plzeň
    Rozbalit Rozbalit vše Re: Převod formátovaného textu na prostý text
    Na to máš v anketě tu položku "Ano, ale sex je lepší" ;-)
    Hrdý člen KERNEL ULTRAS. | Furry/Brony/Otaku | Nemám čas ztrácet čas. | In 'pacman -Syu' we trust!
    18.10.2011 21:54 w4rr10r
    Rozbalit Rozbalit vše Re: Převod formátovaného textu na prostý text
    Nadrbaný jako nastrouhaný? Kanibalismus moc nemusím... Koule se strouhaným jazykem.
    18.10.2011 21:26 kralyk z abclinuxu | skóre: 29 | blog:
    Rozbalit Rozbalit vše Re: Převod formátovaného textu na prostý text
    SEX? Solid Extension of XML? Securely Encrypted XML? Sarcasm Embedding in XML? Takový formát neznám :-D
    18.10.2011 21:32 w4rr10r
    Rozbalit Rozbalit vše Re: Převod formátovaného textu na prostý text
    Nemachruj, osobní džedáju.
    =^..^= AmigaPower® avatar 18.10.2011 21:41 =^..^= AmigaPower® | skóre: 30 | blog: BLB | Praha
    Rozbalit Rozbalit vše Re: Převod formátovaného textu na prostý text
    18.10.2011 23:30 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
    Rozbalit Rozbalit vše Re: Převod formátovaného textu na prostý text
    K tomu jsem opět použil skvělý jazyk XSL. I když je trochu ukecanější, práce jde pěkně od ruky a dá se v tom dobře vyznat.
    Tomu se za našich mladých let říkalo vyšší dívčí sebeklamu.
    Ještě na tom nejsem tak špatně, abych četl Viewegha.
    xkucf03 avatar 18.10.2011 23:50 xkucf03 | skóre: 49 | blog: xkucf03
    Rozbalit Rozbalit vše Re: Převod formátovaného textu na prostý text
    Já věděl, že se ozveš :-) Schválně ti to pak můžu poslat a zkus to přepsat do něčeho přehlednějšího.
    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
    19.10.2011 10:07 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
    Rozbalit Rozbalit vše Re: Převod formátovaného textu na prostý text
    Chraň bůh! V předchozí práci jsme měli něco podobného (plaintext <-> XHTML, i když ten plaintext byl opravdu plaintext, řešili jsme jenom odstavce a odrážkové seznamy) a byl strašlivý porod to udržovat. Napsat to, to ani ne, to bylo celkem v klidu.
    Ještě na tom nejsem tak špatně, abych četl Viewegha.
    xkucf03 avatar 19.10.2011 11:08 xkucf03 | skóre: 49 | blog: xkucf03
    Rozbalit Rozbalit vše Re: Převod formátovaného textu na prostý text
    Tak jste to asi dělali blbě (nebo to teď v XSLT 2.0 jde efektivněji). Ten můj převodník do prostého textu má cca 230 řádek* a ta část, která se stará o odrážky a číslování (včetně neomezeného zanořování) má 22 řádků.

    BTW: k původnímu tématu – koukal jsi na ten výstup? Napadá tě, co by tam šlo vylepšit?

    *) a to to píšu dost roztahaně, většinou jedna značka na řádek + dost prázdných řádků
    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
    19.10.2011 11:26 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
    Rozbalit Rozbalit vše Re: Převod formátovaného textu na prostý text
    Hlavně jsme to nepsali v XSLT :-) Průšvih je, že to XHTML prostě může vypadat pokaždé jinak, toho se člověk nezbaví. A co jsou některé prohlížeče schopné poslat (ideálně když se to zkopíruje z Wordu), z toho mi vstávaly vlasy hrůzou na hlavě.
    Ještě na tom nejsem tak špatně, abych četl Viewegha.
    xkucf03 avatar 19.10.2011 11:37 xkucf03 | skóre: 49 | blog: xkucf03
    Rozbalit Rozbalit vše Re: Převod formátovaného textu na prostý text
    A v čem jste to psali?

    Právě proto jsem si to rozdělil na víc fází:
    1. Tidy – jen pokud je na tom dokument tak špatně, že neprojde XML parserem.
    2. Rozsekání neuzavřeného textu na <p/> odstavce.
    3. Očesání nepovolených značek a atributů.
    4. Naformátování XHTML – doplnění hlavičky (CSS, base href atd.) a patičky. Tahle fáze je v současnosti spojená s předchozí.
    5. Převod na prostý text.
    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
    Josef Kufner avatar 19.10.2011 11:37 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Převod formátovaného textu na prostý text
    Tidy má na tohle přímo parametr. S ním to je v pohodě.
    Hello world ! Segmentation fault (core dumped)
    Marián Kyral avatar 19.10.2011 09:34 Marián Kyral | skóre: 29 | blog: Sem_Tam | Frýdek-Místek
    Rozbalit Rozbalit vše Re: Převod formátovaného textu na prostý text
    Nějak mi do toho nepasují ti uživatelé. Jaké XML to vyrábí? Nějaké manuály? Než řešit ty hrůzy, které vygenerují, raději nasadit nějaký editor, kde to nemůžou pokazit. Kdysi jsem četl o nějakém XML editoru, kde lze omezit použité značky a nic mimo uživatelé nezadají. Taky to nepovolí nevalidní XML.
    xkucf03 avatar 19.10.2011 11:15 xkucf03 | skóre: 49 | blog: xkucf03
    Rozbalit Rozbalit vše Re: Převod formátovaného textu na prostý text
    V současnosti to provozuji nad databází Drupalu, kam ty texty zadávají uživatelé buď přes WYSIWYG editor nebo ručně. Což o to, Drupal má nějaké svoje vlastní filtry a před vypsáním textu na stránku ho trochu učeše. Ale to moje řešení by mělo být obecné a mělo by být schopné vzít libovolný vstup alespoň vzdáleně připomínající HTML a nějak ho zobrazit. Jedním výstupem je XHTML (s omezenou množinou značek a atributů) a druhým ten prostý text.
    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
    19.10.2011 13:55 lacik
    Rozbalit Rozbalit vše Re: Převod formátovaného textu na prostý text
    Zrovna po nějakém takovém editoru pátrám; ideálně takovém, který dokáže načíst DTD a v místě kurzoru povolí jen ty značky (s parametry), které DTD povolí. A wysiwyg nepotřebuji (nechci). Jakékoli tipy vítám.
    pavlix avatar 20.10.2011 12:36 pavlix | skóre: 54 | blog: pavlix
    Rozbalit Rozbalit vše Re: Převod formátovaného textu na prostý text
    <!DOCTYPE html>
    Já už tu vlastně ani nejsem. Abclinuxu umřelo.
    xkucf03 avatar 20.10.2011 16:49 xkucf03 | skóre: 49 | blog: xkucf03
    Rozbalit Rozbalit vše Re: Převod formátovaného textu na prostý text
    Co je to za editor?
    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
    pavlix avatar 20.10.2011 16:51 pavlix | skóre: 54 | blog: pavlix
    Rozbalit Rozbalit vše Re: Převod formátovaného textu na prostý text
    Jaký proboha editor? To je platný začátek dokumentu nejnovější verze HTML, tak jak se píše ve standardu.
    Já už tu vlastně ani nejsem. Abclinuxu umřelo.
    xkucf03 avatar 20.10.2011 16:58 xkucf03 | skóre: 49 | blog: xkucf03
    Rozbalit Rozbalit vše Re: Převod formátovaného textu na prostý text
    Ale lacik se ptal na editoru, který by umožňoval vkládat jen značky/atributy na daném místě povolené. Myslel jsem, že to nějak souvisí, když jsi to vložil jako reakci na něj.
    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
    pavlix avatar 20.10.2011 17:10 pavlix | skóre: 54 | blog: pavlix
    Rozbalit Rozbalit vše Re: Převod formátovaného textu na prostý text
    Ale on psal o tom, že by podle DOCTYPE určoval, co tam přesně smí a nesmí být. Tak mě zajímá, kolik toho určí podle tohoto DOCTYPE, který se dává jenom kvůli zpětné kompatibilitě a buď zůstane stejný, nebo postupně vymizí. Vždyť tam není ani odkaz na DTD a navíc nebude ustálené v čase!
    Já už tu vlastně ani nejsem. Abclinuxu umřelo.
    xkucf03 avatar 20.10.2011 18:16 xkucf03 | skóre: 49 | blog: xkucf03
    Rozbalit Rozbalit vše Re: Převod formátovaného textu na prostý text
    Ale on psal o tom, že by podle DOCTYPE určoval, co tam přesně smí a nesmí být.
    tam tedy DOCTYPE nikde nevidím. Pochopil jsem ho tak, že by ten editor měl jako parametr cestu k DTD a podle něj nabízel uživateli značky (nebo aspoň zakazoval napsat ty nepovolené).
    Tak mě zajímá, kolik toho určí podle tohoto DOCTYP
    Podle toho, který jsi napsal ty, asi nijak, což mi přijde jako nevýhoda (té deklarace, ne toho editoru).
    Vždyť tam není ani odkaz na DTD
    Což je podle mého krok zpátky.
    a navíc nebude ustálené v čase!
    Zrovna svačím a ty mi píšeš takové věci, ze kterých se mi dělá špatně. Fuj! :-)

    Fakt mi přijde jako dost důležitá a užitečná věc, vědět, v jaké verzi formátu je nějaký dokument vytvořený – i kdybych to nakonec riskl a pokusil se ho nějak zpracovat, přestože jde o novější formát, než můj software podporuje. Minimálně můžu aspoň uživatele varovat, že může dojít k chybám a jestli chce pokračovat.

    Na světě se může současně používat různě starý software – ne všichni musí mít nejnovější verzi a podporovat nejnovější formát. A teď si představ, že na tom dokumentu pracuje třeba víc lidí a každý má jiný editor. Když bude verze uvedená přímo v dokumentu, dá se snadno předejít situaci, že někdo v dokumentu použije nové vlastnosti a ostatním to přestane fungovat. Když tam ta verze není, tak musíš např. všem napsat e-mail, které funkce/značky mohou používat a které ne. Ale přijde mi zbytečné a hloupé tu informaci o použité verzi šířit takhle bokem a nespolehlivě, když může být přímo v tom dokumentu. Naštěstí snad každý slušný formát takhle verzovaný je.
    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
    pavlix avatar 20.10.2011 18:40 pavlix | skóre: 54 | blog: pavlix
    Rozbalit Rozbalit vše Re: Převod formátovaného textu na prostý text
    Mně to přijde jako výhoda té deklarace, že se podle ní lidi nebudou snažit odvodit víc než jen že je to nějaké html.

    HTML je taková sprasenina, XHTML (tak jak bylo vymyšleno se zpětnou kompatibilitou k HTML) je sprasenina velmi podobná, nehledě na to, že celý smysl XML je v rozšiřitelnosti a skládání různých typů značek, a DTD tuto rozšiřitelnost moc nezvládají.

    Takže když už to musí být nutně XML, které jako formát není nic moc a doprovodné jazyky jako XSL apod taky nejsou kdejaké zázraky, tak aspoň ať je to postaveno tak, aby to fungovalo všechno dohromady.

    Takže když identifikátor verze, tak třeba namespace, protože některé typy dokumentů můžou obsahovat kontejnery s libovolnými jinými vloženými dokumenty.

    Ono vůbec celé XML bojuje s tím, že se do něj dávají jak strukturovaná data, tak strukturované dokumenty (tzn. včetně whitespace a mixed content), což jsou dva diametrálně odlišné účely, které vyžadují diametrálně odlišné postupy (zvlášť ohledně ubírání/přidávání whitespace), že fakt nevím, co komu muselo spadnout na hlavu.

    Kdykoli můžu, tak na strukturovaná data používám třeba JSON (a třeba si v něm sám ošetřím namespaces), a světe div se, ani ty dokumenty obvyle nepíšu v XML, ale radši si napíšu konvertor z wiki-like jazyka, než abych to musel psát přímo.
    Já už tu vlastně ani nejsem. Abclinuxu umřelo.
    xkucf03 avatar 20.10.2011 20:18 xkucf03 | skóre: 49 | blog: xkucf03
    Rozbalit Rozbalit vše Re: Převod formátovaného textu na prostý text
    Mně to přijde jako výhoda té deklarace, že se podle ní lidi nebudou snažit odvodit víc než jen že je to nějaké html.
    Že jde o HTML/XHTML zjistím podle MIME typu nebo třeba podle přípony – tedy ještě vně dokumentu. Uvnitř toho dokumentu bych pak ale čekal, že se někde dozvím, která verze formátu to je (jakýmkoli rozumným způsobem, nemusí to být DOCTYPE deklarace).

    nehledě na to, že celý smysl XML je v rozšiřitelnosti a skládání různých typů značek, a DTD tuto rozšiřitelnost moc nezvládají.

    Můžeš vkládat SVG, MathML, RDF… přímo do XHTML dokumentu a oddělené je to jmennými prostory. Řekl bych, že to tedy celkem zvládá (a DTDčka jsou modulární). Ale stejně bych místo DTD používal spíš XSD případně jiný novější jazyk pro popis dokumentů.
    a doprovodné jazyky jako XSL apod taky nejsou kdejaké zázraky
    No vidíš a mně ty šablony <xsl:template match="…"/> přijdou docela šikovné. Např. u toho převodníku, co jsem teď psal, si to moc nedovedu představit v něčem jiném tak, aby to bylo přehlednější a lépe se to psalo. A i ty další „doprovodné jazyky“ jako XPath nebo XQuery jsou dost dobré – skoro tak dobré jako SQL, možná v něčem i lepší :-)
    Takže když identifikátor verze, tak třeba namespace, protože některé typy dokumentů můžou obsahovat kontejnery s libovolnými jinými vloženými dokumenty.

    To můžou, ale přijde mi lepší dát tu verzi např. do atributu kořenového elementu, než pro každou verzi formátu zavádět nový jmenný prostor. Takže můžu mít třeba XHTML dokument a v něm dva SVG obrázky, každý v jiné verzi SVG, ale ve stejném jmenném prostoru – nevidím v tom problém.
    Ono vůbec celé XML bojuje s tím, že se do něj dávají jak strukturovaná data, tak strukturované dokumenty (tzn. včetně whitespace a mixed content), což jsou dva diametrálně odlišné účely, které vyžadují diametrálně odlišné postupy (zvlášť ohledně ubírání/přidávání whitespace), že fakt nevím, co komu muselo spadnout na hlavu.
    Ten „mixed content“ není až taková věda. Máme třeba dokument:
    <kořen>
    nějaký text
    <značka>…</značka>
    zase nějaký text
    </kořen>
    Kde kořen má tři uzly a z toho první a třetí jsou textové uzly. Nesmíš to prostě vnímat jako text, do kterého je vložená nějaká značka, ale jako tři uzly různých typů. A v XSL si pak můžeš udělat šablonu pro značka a šablonu pro text() – že je jedno obalené v ostrých závorkách a druhé je tam jen tak, je celkem jedno – na téhle úrovni se s tím pracuje stejně.

    BTW: co ti konkrétně nešlo s tím „whitespace“?
    radši si napíšu konvertor z wiki-like jazyka
    Prosím, jen to ne! :-) Těch už je až až. A každý si vymýšlí trochu jinou syntaxi, takže když člověk chce udělat třeba nadpis nebo odkaz, musí přemýšlet, jak se to zrovna v téhle syntaxi píše. Docela peklo, když píšeš na různá místa – třeba Wiki, Trac, nějaký web s Markdownem, jiný web s Texy atd. Standardizované a intuitivní jsou snad leda odrážky a číslování, to se dá jakž takž trefit od boku (i když i tam se to trochu různí – třeba jestli odražený řádek musí začínat mezerou nebo je - hned na začátku, nebo jestli je tam * místo - atd.)
    než abych to musel psát přímo.

    Pro hodně jednoduché věci budiž. Uznávám, že je jednodušší tam naflákat:
    - první
    - druhá
    - třetí
    než se psát s <ul/> a <li/>. To je daň za univerzálnost – zase ale nemusím řešit, jestli se odkaz píše jako "Nějaký odkaz":[http://example.com/] nebo [http://example.com/ Nějaký odkaz] či [Nějaký odkaz](http://example.com/ "Taky tu může být titulek") a místo toho zadám nejrozšířenější <a href="http://example.com/" title="Titulek">Nějaký odkaz</a> a nemusím vědět, že se URL píše do takových a takových závorek, text do jiných a titulek se dává do uvozovek do druhé závorky – a teď ještě nepoplést, jestli první byly hranaté a druhé kulaté nebo obráceně. Prostě stačí vědět, že to jsou atributy a jak se jmenují – ale zapisují se vždy stejně.

    Někdy se ty odlehčené syntaxe hodí, ale vidím tam dva problémy: 1) spousta různých syntaxí, naučíš se jeden jazyk, přijdeš k jinému systému a musíš se učit trochu jinou syntaxi. Nebyla by od věci nějaká standardizace, aby se sjednotily třeba ty zápisy odkazů, nadpisů a dalších základních věcí – ale nevím, jestli by na to ti autoři jazyků/konvertorů přistoupili – vzdát se části svého díla a přizpůsobit se ostatním. Často se různí i syntaxe v rámci jednoho „wiki“ jazyka – např. některé značky můžeš „parametrizovat“ a jednou to děláš v takové závorce, jindy v jiné, nebo v uvozovkách, apostrofech… v XHTML/XML jsou maximálně dvě možnosti: atribut nebo vnořený element, většinou to jsou atributy a zápis je vždy stejný: klíč="hodnota" 2) Dříve či později narazíš na nějakou nejednoznačnost, něco ti nepůjde vložit nebo to formátovač pochopí jinak, než jsi to myslel. V XML máš jasně dané řídící znaky a jednotný způsob jejich escapování – a všechny ostatní můžeš v dokumentu volně používat, nemusíš váhat, jestli nějakou posloupnost znaků náhodou nepochopí program jako značku nebo příkaz.
    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
    20.10.2011 21:10 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
    Rozbalit Rozbalit vše Re: Převod formátovaného textu na prostý text
    Ten „mixed content“ není až taková věda. Máme třeba dokument:
    <kořen>
    nějaký text
    <značka>…</značka>
    zase nějaký text
    </kořen>
    Kde kořen má tři uzly a z toho první a třetí jsou textové uzly
    … které začínají a končí znakem konce řádku. Fujtajbl. Takový uzel
    <uzel>
    </uzel>
    má taky jednoho textového potomka. A co teprv když do toho narvu komentář!
    Nesmíš to prostě vnímat jako text, do kterého je vložená nějaká značka, ale jako tři uzly různých typů.
    Jasněěě, uzlyyy. Hele, tímhle ale končí veškeré zbytky použitelnosti XML pro lidský zápis. Tohle je prostě pakárna.
    Ještě na tom nejsem tak špatně, abych četl Viewegha.
    20.10.2011 21:13 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
    Rozbalit Rozbalit vše Re: Převod formátovaného textu na prostý text
    má taky jednoho textového potomka. A co teprv když do toho narvu komentář!
    Co, komentář. Entitu!
    Ještě na tom nejsem tak špatně, abych četl Viewegha.
    xkucf03 avatar 20.10.2011 21:55 xkucf03 | skóre: 49 | blog: xkucf03
    Rozbalit Rozbalit vše Re: Převod formátovaného textu na prostý text
    které začínají a končí znakem konce řádku
    Když je tam uděláš, tak tam jsou. Jak jinak by se to mělo chovat?

    Jestli je tam nechceš (přestože ve zdrojovém dokumentu jsou), tak si dej normalize-space() nebo ořízni počáteční a koncové \s* Ale někdo naopak tu informaci (že je na začátku \n\n) potřebuje – např. já, když jsem dělal to dělení na odstavce (oddělené prázdnou řádkou).
    má taky jednoho textového potomka
    No však – třeba je to značka, kterou se zadává nějaký oddělovač – někdo odděluje mezerou, někdo středníkem a někdo koncem řádku. Pokud chceš bílá místa (\s*) považovat za prázdnou hodnotu, stačí ti jedno zavolání matches() – naopak ten, kdo to považuje za platnou hodnotu to může pomocí XML zapisovat a číst.
    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
    pavlix avatar 22.10.2011 17:07 pavlix | skóre: 54 | blog: pavlix
    Rozbalit Rozbalit vše Re: Převod formátovaného textu na prostý text
    Normalizace mezer a odsazení není obecně pevně daná a může ovlivnit chování aplikací. Celá ta věc je očividně dělaná na koleni a postupně záplatovaná tak dlouho, že už je to spíš samá záplata.
    Já už tu vlastně ani nejsem. Abclinuxu umřelo.
    pavlix avatar 22.10.2011 17:05 pavlix | skóre: 54 | blog: pavlix
    Rozbalit Rozbalit vše Re: Převod formátovaného textu na prostý text
    TL;DR, navíc mám pocit, že se snažíš vysvětlit věci, které jsou zcela jasné a nechce se mi v tom hledat to zajímavé.
    Já už tu vlastně ani nejsem. Abclinuxu umřelo.
    xkucf03 avatar 20.10.2011 18:35 xkucf03 | skóre: 49 | blog: xkucf03
    Rozbalit Rozbalit vše Jaxe
    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
    19.10.2011 11:13 petr_p | skóre: 59 | blog: pb
    Rozbalit Rozbalit vše Re: Převod formátovaného textu na prostý text

    A teď zalomení na určitém sloupci. A hezky v XSLT 1.1. Ne že by to nešlo, ale zrovna tady je vidět, že zpracovávat něco jiného než XML strom je v XSLT/XPath opravdu ohavné.

    Až to budeš mít, tak to nabídni redakci do redakčního systému. Ten současný vůbec neumí preformátovaný text.

    xkucf03 avatar 19.10.2011 11:29 xkucf03 | skóre: 49 | blog: xkucf03
    Rozbalit Rozbalit vše Re: Převod formátovaného textu na prostý text
    A hezky v XSLT 1.1.
    O to jsem se zpočátku snažil, protože jsem chtěl co největší přenositelnost, asi dva dny jsem s tím bojoval a pak to vzdal a přešel na 2.0. Trochu pomáhá EXSLT, ale např. funkce tokenize (split) tam jako oddělovač má jen znaky, ne regulární výraz (který je možné použít v XSLT 2.0).
    A teď zalomení na určitém sloupci.
    O tom uvažuji, ale zatím to pro moje potřeby není nutné – např. v e-mailu se o to potřebné zalomení převodník do quoted-printable, takže např. u citací nemusím řešit přidávání > na každý řádek po zalomení.
    Ten současný vůbec neumí preformátovaný text.
    Jak ho neumí? Občas sem kusy kódu v <pre/> vkládám a přijde mi, že to funguje.
    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
    19.10.2011 13:47 petr_p | skóre: 59 | blog: pb
    Rozbalit Rozbalit vše Re: Převod formátovaného textu na prostý text
    Zalamuje je. Příklad. A taky neumí označit blockquote.
    xkucf03 avatar 19.10.2011 15:20 xkucf03 | skóre: 49 | blog: xkucf03
    Rozbalit Rozbalit vše Re: Převod formátovaného textu na prostý text
    Tak jsem si stáhl zdrojáky a vypadá to, že se to teď nijak netransformuje, jen se zahodí všechny značky (což dělá možná freemarker, v javovském kódu jsem to zatím nenašel).

    Při té příležitosti jsem chtěl opravit patičky e-mailů, aby byly podle RFC (chybí tam mezera za --) ale když jsem udělal patch v gitu a zkusil ho cvičně aplikovat, gitu se nelíbilo, že jsou na konci řádků mezery (jenže ty tam jsou zrovna důležité, kvůli tomu ten patch dělám :-) )
    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
    19.10.2011 17:25 David Jaša | skóre: 44 | blog: Dejvův blog
    Rozbalit Rozbalit vše Re: Převod formátovaného textu na prostý text
    Co ty XML/XSLT orgie umí navíc oproti lynx -dump nebo links -dump ?
    xkucf03 avatar 19.10.2011 19:27 xkucf03 | skóre: 49 | blog: xkucf03
    Rozbalit Rozbalit vše Re: Převod formátovaného textu na prostý text
    Namátkou: rozpoznávání odstavců*, vkládání odkazů (URL, titulek), podtrhávání nadpisů, přidávání > u blokových citací, doplňování „uvozovek“ u inline citací (jen tam, kde uvozovky chybí)

    Kromě toho je pro mě důležitý nejen ten textový výstup, ale i ten krok, který tomu předchází – jednoduché XHTML, které obsahuje jen vybrané značky a atributy.

    *) tam, kde text není uzavřený do <p/> značek, ale pouze oddělený prázdným řádkem.
    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
    xkucf03 avatar 25.10.2011 21:56 xkucf03 | skóre: 49 | blog: xkucf03
    Rozbalit Rozbalit vše Re: Převod formátovaného textu na prostý text
    Kdo by si to chtěl vyzkoušet v praxi, může tady: Přístup k našemu serveru protokolem NNTP.
    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.