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í
×
    dnes 01:00 | Nová verze

    ESPHome, tj. open source systém umožňující nastavovat zařízení s čipy ESP (i dalšími) pomocí konfiguračních souborů a připojit je do domácí automatizace, například do Home Assistantu, byl vydán ve verzi 2024.4.0.

    Ladislav Hagara | Komentářů: 0
    včera 22:11 | IT novinky Ladislav Hagara | Komentářů: 0
    včera 20:55 | Nová verze

    Neziskové průmyslové konsorcium Khronos Group vydalo verzi 1.1 specifikace OpenXR (Wikipedie), tj. standardu specifikujícího přístup k platformám a zařízením pro XR, tj. platformám a zařízením pro AR (rozšířenou realitu) a VR (virtuální realitu). Do základu se z rozšíření dostalo XR_EXT_local_floor. Společnost Collabora implementuje novou verzi specifikace do platformy Monado, tj. open source implementace OpenXR.

    Ladislav Hagara | Komentářů: 2
    včera 17:22 | Nová verze

    Byla vydána nová verze 0.38.0 multimediálního přehrávače mpv (Wikipedie) vycházejícího z přehrávačů MPlayer a mplayer2. Přehled novinek, změn a oprav na GitHubu. Požadován je FFmpeg 4.4 nebo novější a také libplacebo 6.338.2 nebo novější.

    Ladislav Hagara | Komentářů: 1
    včera 17:11 | Nová verze

    ClamAV (Wikipedie), tj. multiplatformní antivirový engine s otevřeným zdrojovým kódem pro detekci trojských koní, virů, malwaru a dalších škodlivých hrozeb, byl vydán ve verzích 1.3.1, 1.2.3 a 1.0.6. Ve verzi 1.3.1 je mimo jiné řešena bezpečnostní chyba CVE-2024-20380.

    Ladislav Hagara | Komentářů: 1
    včera 12:11 | IT novinky

    Digitální a informační agentura (DIA) oznámila (PDF, X a Facebook), že mobilní aplikace Portál občana je ode dneška oficiálně venku.

    Ladislav Hagara | Komentářů: 7
    včera 05:11 | Komunita

    #HACKUJBRNO 2024, byly zveřejněny výsledky a výstupy hackathonu města Brna nad otevřenými městskými daty, který se konal 13. a 14. dubna 2024.

    Ladislav Hagara | Komentářů: 2
    17.4. 17:55 | IT novinky

    Společnost Volla Systeme stojící za telefony Volla spustila na Kickstarteru kampaň na podporu tabletu Volla Tablet s Volla OS nebo Ubuntu Touch.

    Ladislav Hagara | Komentářů: 3
    17.4. 17:44 | IT novinky

    Společnost Boston Dynamics oznámila, že humanoidní hydraulický robot HD Atlas šel do důchodu (YouTube). Nastupuje nová vylepšená elektrická varianta (YouTube).

    Ladislav Hagara | Komentářů: 1
    17.4. 15:11 | Nová verze

    Desktopové prostředí LXQt (Lightweight Qt Desktop Environment, Wikipedie) vzniklé sloučením projektů Razor-qt a LXDE bylo vydáno ve verzi 2.0.0. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 5
    KDE Plasma 6
     (68%)
     (10%)
     (2%)
     (19%)
    Celkem 556 hlasů
     Komentářů: 4, poslední 6.4. 15:51
    Rozcestník

    Jak udělat z WYSIWYG editoru WYSIWYM editor?

    28.12.2017 21:17 | Přečteno: 1619× | Softwarové inženýrství | poslední úprava: 28.12.2017 21:17

    Mám pár nápadů na projekty, ke kterým bych potřeboval komponentu WYSIWYM editoru (what you see is what you mean). Nikoli WYSIWYG (what you see is what you get).

    Při tvorbě obsahu máme několik možností:

    Výsledkem WYSIWYG editace je většinou nějaký prasecký výstup, nic hezkého, co byste třeba někdy chtěli revidovat či editovat ručně nebo si to uložit do verzovacího systému.

    Psát zdrojový kód je pro většinu uživatelů problém, nechtějí učit další jazyk. A i pokročilým uživatelům bude chybět to, že při editaci nevidí na první pohled strukturu dokumentu. A taky jsou zde problémy s jednoznačností/spolehlivostí vs. stručností/jednoduchostí zápisu – různé „wiki“ syntaxe vypadají na první pohled lákavě, ale pak člověk narazí na různé nejednoznačnosti, problémy s escapováním a neintuitivní konstrukce. XML tyhle problémy sice nemá, ale většinu uživatelů tam zase bude otravovat, že musejí uzavírat elementy a že se tam pořád píší nějaké závorky a uvozovky. Bez podpory ze strany editoru to prostě není tak pohodlné (na nějaké delší psaní).

    Z toho mi vychází, že ve většině případů je správná volba WYSIWYM editor. Uživatel zde vyjadřuje svoje myšlenky, sémantiku, nesoustředí se na vizuální stránku výsledku, přesto se ale nemusí učit programovací jazyk a vidí už při editaci strukturu dokumentu.

    Tak se chci zeptat, jestli nevíte o hotové komponentě. Samozřejmě by to měl být svobodný software, jinak je to nepoužitelné. Znám WYMeditor, který je celkem dobrý, ale bohužel je to webová záležitost. A přijde mi nesmyslné pouštět v rámci desktopové aplikace jádro webového prohlížeče, což je nesmírně komplexní věc. Chtěl bych tedy něco pro Qt případně GTK, ale spíš asi Qt.

    Takový WYSIWYM editor jsem zatím nenašel a myslím, že je to docela škoda. Našel jsem ale komponentu MRichTextEditor, která používá Qt5, rozšiřuje QTextEdit a sama o sobě není moc složitá:

    $ cloc-sql.sh MRichTextEditor/
     ╭──────────────┬─────────┬───────────┬───────────┬──────┬────────┬──────────────────────────────────────────────────────────────────────────────────╮
     │ jazyk        │ souborů │ prázdných │ komentářů │ kódu │ celkem │ celkem_graf                                                                      │
     ├──────────────┼─────────┼───────────┼───────────┼──────┼────────┼──────────────────────────────────────────────────────────────────────────────────┤
     │ C++          │       3 │       111 │        49 │  540 │    700 │ ████████████████████████████████████████████████████████████████████████████████ │
     │ C/C++ Header │       2 │        17 │        25 │   76 │    118 │ █████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ │
     │ IDL          │       1 │         3 │         0 │   12 │     15 │ ██░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ │
     │ celkem       │       6 │       131 │        74 │  628 │    833 │                                                                                  │
     ╰──────────────┴─────────┴───────────┴───────────┴──────┴────────┴──────────────────────────────────────────────────────────────────────────────────╯
    Record count: 4
    

    Výsledkem bohužel je – jak už to u WYSIWYG editorů bývá – nějaké nechutné HTML:

    MRichTextEditor – WYSIWYG editor

    Přitom ta nejtěžší práce na tom je IMHO už hotová. Nešlo by to upravit na WYSIWYM editor? Dokážete odhadnout, kolik by to tak bylo práce? Při pohledu na zdroják mi přijde, že asi nebude stačit udělat potomka QTextEdit, ale bude to chtít vytvořit spíš jeho sémantického sourozence.

    Moje představa je taková, že by to byla obecná komponenta, která by dostala jako konfiguraci seznam stylů pro blokové a řádkové elementy a nějakou jejich vizuální (pro režim editace) reprezentaci – např. že <aaa/> bude modře a <bbb/> bude tučně, aby se v textu dalo během editace vyznat. K tomu by bylo nějaké API, na které by si člověk napojil tlačítka a případně editor atributů (pro daný uzel, ve kterém je kurzor) a pak asi nějaká možnost zobrazit si hranice mezi elementy a strukturu + možnost třeba spojit dva elementy stejného typu hned za sebou do jednoho… to by se dalo vyvíjet postupně. Cílem je, aby uživatel napsal text, vyznačil v něm sémantiku a pak z toho vypadlo nějaké XML1 validní podle určitého schématu (což by bylo dané tou konfigurací). Dokumentem může být cokoli, článek, poznámky, e-mail, kniha, záznam v databázi… cokoli.

    [1] BTW: když už je řeč o XML editorech – narazil jsem na QXmlEdit, což je tedy něco úplně jiného, ale svým způsobem taky zajímavé

           

    Hodnocení: 60 %

            špatnédobré        

    Anketa

    Hodila by se vám taková WYSIWYM komponenta?
     (18 %)
     (75 %)
     (0 %)
     (7 %)
    Celkem 28 hlasů

    Anketa

    Jste schopní to naprogramovat?
     (47 %)
     (18 %)
     (35 %)
    Celkem 17 hlasů

    Obrázky

    Jak udělat z WYSIWYG editoru WYSIWYM editor?, obrázek 1

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

    Komentáře

    Vložit další komentář

    28.12.2017 21:31 Käyttäjä 11133 | skóre: 58 | blog: Ajattelee menneisyyttä
    Rozbalit Rozbalit vše Re: Jak udělat z WYSIWYG editoru WYSIWYM editor?
    Off-topic: Nechceš na 3 ze 4 webů které tady odkazuješ nasadit Let's encrypt certifikáty? 1 (blog) už ho má, ostatní mají revoked certifikáty :)
    xkucf03 avatar 28.12.2017 21:34 xkucf03 | skóre: 49 | blog: xkucf03
    Rozbalit Rozbalit vše Re: Jak udělat z WYSIWYG editoru WYSIWYM editor?

    Vím o tom, udělám to teď přes Vánoce (stejně ty servery budu přeinstalovávat, tak to spojí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
    Josef Kufner avatar 29.12.2017 11:11 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Jak udělat z WYSIWYG editoru WYSIWYM editor?
    Co odkazuješ, tak jsou všechno jen rich text editory (WYSIWYG), které produkují bordel.

    Koukni na LyX. Možná by z toho šel ten editační widget vytáhnout.

    Hello world ! Segmentation fault (core dumped)
    Bedňa avatar 30.12.2017 00:12 Bedňa | skóre: 34 | blog: Žumpa | Horňany
    Rozbalit Rozbalit vše Re: Jak udělat z WYSIWYG editoru WYSIWYM editor?
    V NV.js by som to dokázal napísať za dva dni. Bolo by to multiplatfomné ale s tým, že by to bol proste JavaScript.

    Vidím to tak, klikneš na tag, do kóda sa vloží príslučný tag a zobrazí sa hotová forma a zdrojový kód zároveň. (Základ HTML5 nadpisy, odseky, PRE atď.)

    Obsiahnuť potom všetky HTML značky a prípadné vloženie všetkých CSS štýlov na niekoľko dní.

    Je otázka či sa nájde jedinec, alebo komunita, ktorá by to chcela zaplatiť. Samozrejme by to bolo pod slobodnou licenciou.
    KERNEL ULTRAS video channel >>>
    30.12.2017 17:48 instantní invektiva
    Rozbalit Rozbalit vše Re: Jak udělat z WYSIWYG editoru WYSIWYM editor?
    lol!! KERNEL ULTRAS: "wayland - toe hnuj ty pico! <3 BASH a Xorg ale piseme v javaskripte"
    Vidím to tak, klikneš na tag, do kóda sa vloží príslučný tag a zobrazí sa hotová forma a zdrojový kód zároveň.
    :DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
    Bedňa avatar 30.12.2017 22:44 Bedňa | skóre: 34 | blog: Žumpa | Horňany
    Rozbalit Rozbalit vše Re: Jak udělat z WYSIWYG editoru WYSIWYM editor?
    Neriešiš GUI, je to multiplatformné a funguje to.

    Práve na také veci ako je táto úloha, úplne ideálne. Proste spravíš len funkcionalitu.

    Máme nejakú alternatívu v tvojom COOL jazyku?
    KERNEL ULTRAS video channel >>>
    30.12.2017 22:53 ehm
    Rozbalit Rozbalit vše Re: Jak udělat z WYSIWYG editoru WYSIWYM editor?
    Cituji z blogpostu:
    Znám WYMeditor, který je celkem dobrý, ale bohužel je to webová záležitost. A přijde mi nesmyslné pouštět v rámci desktopové aplikace jádro webového prohlížeče, což je nesmírně komplexní věc. Chtěl bych tedy něco pro Qt případně GTK, ale spíš asi Qt.
    Čemu přesně jsi na tom nerozuměl?

    Nemluvě o tom, že to, co jsi navrhl, je v podstatě totéž jako formulář pro zadávání komentářů zde na Abclinuxu, jen by se náhled aktualizoval dynamicky namísto až po kliknutí na tlačítko. To není WYSIWYM, po kterém se xkucf03 ptal. Četl jsi ten blogpost vůbec?
    Bedňa avatar 30.12.2017 23:09 Bedňa | skóre: 34 | blog: Žumpa | Horňany
    Rozbalit Rozbalit vše Re: Jak udělat z WYSIWYG editoru WYSIWYM editor?
    Čítal, ale po návrate z oslavy a nejak mi to uniklo :)
    KERNEL ULTRAS video channel >>>
    31.12.2017 08:56 :-) občasná návšteva z SK
    Rozbalit Rozbalit vše Re: Jak udělat z WYSIWYG editoru WYSIWYM editor?
    Ty dosť často oslavuješ, Debna, však? ;-)
    Bedňa avatar 31.12.2017 16:31 Bedňa | skóre: 34 | blog: Žumpa | Horňany
    Rozbalit Rozbalit vše Re: Jak udělat z WYSIWYG editoru WYSIWYM editor?
    Je smutné keď ťa nemá kto pozvať cez sviatky na návštevu a ani ty nemáš koho.
    KERNEL ULTRAS video channel >>>
    xkucf03 avatar 31.12.2017 12:43 xkucf03 | skóre: 49 | blog: xkucf03
    Rozbalit Rozbalit vše Re: Jak udělat z WYSIWYG editoru WYSIWYM editor?

    BTW: jak funguje ten web Kernel ultras? Koukal jsem, že tam jde i vytvářet adresáře a soubory a je to persistentní – vytvořený obsah vidí i uživatel z jiného prohlížeče. To je celé nějak emulované nebo je pod tím normální operační a souborový systém, na který je to napojené?

    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
    Bedňa avatar 31.12.2017 16:18 Bedňa | skóre: 34 | blog: Žumpa | Horňany
    Rozbalit Rozbalit vše Re: Jak udělat z WYSIWYG editoru WYSIWYM editor?
    Na operačný systém to vôbec nešahá, všetko je napísané from scratch a beží to na webservery. Prípadne mrkni na video chanell.

    Videl som tam tvoj odkaz, aj som ti odpísal :)
    KERNEL ULTRAS video channel >>>
    30.12.2017 21:57 Petr Tomášek
    Rozbalit Rozbalit vše Re: Jak udělat z WYSIWYG editoru WYSIWYM editor?
    Takový WYSIWYM editor jsem zatím nenašel a myslím, že je to docela škoda.
    Taky si to myslím, a to docela dlouho.

    Jenomže použít pro toto nějaký WSIYWYG paskvil je blbost. To je jako dělat rovnák na vohejbák...

    xkucf03 avatar 30.12.2017 22:47 xkucf03 | skóre: 49 | blog: xkucf03
    Rozbalit Rozbalit vše Re: Jak udělat z WYSIWYG editoru WYSIWYM editor?

    To záleží, jak je uvnitř udělaná ta komponenta a jaký má objektový model – z dobře napsaného WYSIWYGu by měl jít ten základ vykuchat a použít. Ale často to asi bude bohužel prolezlé tím formátováním a HTML.

    Koukal jsem trochu na ten LyX – v něm ten editor vypadá dobře, akorát je to obrovský projekt, takže vypreparovat z toho jen komponentu editoru asi taky nebude triviální.

    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
    31.12.2017 10:58 Petr Tomášek
    Rozbalit Rozbalit vše Re: Jak udělat z WYSIWYG editoru WYSIWYM editor?
    No, ono už asi bude problém v tom, že pokud budu chtít WYSIWYM, tak budu chtít nějakým "stylesheetem" nejprve nadefinovat, které elementy za jakých okolností se kde můžou vyskytovat - a kde se vyskytovat nemůžou, tam to prostě natvrdo nedovolit. (Což znamená i otázku: mohou elementy obsahovat rekurzivně další elementy či nikoliv?)

    Takhle ale WYSIWYG komponenty (co jsem viděl) postaveny nejsou, tam může uživatel kdekoliv nasrat cokoliv, navíc o nějaké "struktuře" se člověku může jen zdát (jakože třeba chceš mít element třeba >title< a v něm třeba něco jako >link< - normální WYSIWYG komponenta ti nejdřív ukončí >title<, prdne tam >link< a pak zase pokračuje dalším >title< - protože interní reprezentace je u WYSIWYG už z principu naprosto šumafuck, kdežto u WYSIWYM je naopak důležitá).
    31.12.2017 11:00 Petr Tomášek
    Rozbalit Rozbalit vše Re: Jak udělat z WYSIWYG editoru WYSIWYM editor?
    Oprava: mělo být: <link>, <title> ...
    Josef Kufner avatar 31.12.2017 12:08 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Jak udělat z WYSIWYG editoru WYSIWYM editor?
    Pokud mluvíš o HTML elementech, tak nemluvíš o WYSIWYM editoru.
    Hello world ! Segmentation fault (core dumped)
    xkucf03 avatar 31.12.2017 12:40 xkucf03 | skóre: 49 | blog: xkucf03
    Rozbalit Rozbalit vše Model dokumentu pro WYSIWYM editor – DOM/XML

    Elementy nejsou jen HTML – elementy jsou v DOMu (Document Object Model). Je otázka, jestli je DOM nejlepší model pro WYSIWYM, ale docela bych i řekl, že ano – je to strom, v něm jsou uzly/elementy, které můžou mít i atributy. To na WYSIWYM perfektně pasuje. Mohl bys sice vymyslet nějaký ne-DOMový model sémantického dokumentu, ale pravděpodobně bys došel k něčemu velice podobnému, jako je DOM, akorát by se ty prvky a metody jmenovaly jinak.

    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 31.12.2017 13:36 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Model dokumentu pro WYSIWYM editor – DOM/XML
    Potíž je v tom, že element je příliž nízkoúrovňová záležitost. Například u obrázku je potřeba mít i popisek, id, zdrojový soubor, vyexportovaný soubor a podobně. Nadpis zas nedává smysl bez kapitoly okolo něj.

    WYSIWYM musí pracovat s fragmenty DOMu poskládaných z jednoho či více elementů, nikoliv jen s jednotlivými elementy. Pokud tomu tak nebude, skončíš u obyčejného rich textu, který bude čudlík na nadpis namísto čudlíku na změnu velikosti fontu.

    Ve výsledku to klidně může stát na (X)HTML a pokud je potřeba, tak to rozšiřovat o nějaké vlastní XML, ale primitiva editoru nemůžou být samotné elementy.
    Hello world ! Segmentation fault (core dumped)
    31.12.2017 17:01 OldFrog {Ondra Nemecek} | skóre: 36 | blog: Žabákův notes | Praha
    Rozbalit Rozbalit vše Re: Model dokumentu pro WYSIWYM editor – DOM/XML
    DTD nebo schéma je na definici povolených konstruktů ideální, ne? Pokud by byl nějaký XMl editor dostatečně uživatelsky příjemný, mohl by jako WYSIWYM fungovat slušně. Nemám tušení, proč se nic takového ve větší míře nerozšířilo... Nebo někdo něco schůdného znáte?
    -- OldFrog
    Petr Tomášek avatar 1.1.2018 20:19 Petr Tomášek | skóre: 39 | blog: Vejšplechty
    Rozbalit Rozbalit vše Re: Jak udělat z WYSIWYG editoru WYSIWYM editor?
    Nechápu, jak jsi na takovou blbost přišel.

    Já mluvil o obecném strukturovaném dokumentu, např. reprezentovaného XML.

    Kdyby ses alespoň minimálně snažil pochopit to, co jsem napsal, pak by ti došlo, že jsem jenom upozorňoval na to, že použít běžné WYSIWYG komponenty/widgety pro WYSIWYM je naprosto nevhodné, protože (co vím) žádný z nich nepočítá pořádně s obecnou stromovou strukturou "strukturovaného dokumentu".

    Nechápu, kde jsi přišel na nějaké HTML, či, o čem, že to blábolíš...

    multicult.fm | monokultura je zlo | welcome refugees!
    30.12.2017 23:43 deda.jabko | skóre: 23 | blog: blog co se jmenuje "každý den jinak" | za new york city dvakrát doleva a pak už se doptáte
    Rozbalit Rozbalit vše Re: Jak udělat z WYSIWYG editoru WYSIWYM editor?
    Pokud by to bylo v Jave, muzes pouzit JEditorPane a nadefinovat pro nej vlastni EditorKit.
    Asi před rokem se dostali hackeři na servry Debianu a ukradli jim zdrojové kódy.
    4.1.2018 16:12 bigfood | blog: Finesa
    Rozbalit Rozbalit vše Re: Jak udělat z WYSIWYG editoru WYSIWYM editor?
    Projekt Gutenberg pro WordPress vypadá jako dobrá inspirace pro to, jak by se mohl chovat "strukturovaný editor". Gutenberg and the WordPress of Tomorrow

    Založit nové vláknoNahoru

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