abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
dnes 18:22 | Nová verze

Byla vydána nová verze 4.2.0 otevřeného emulátoru procesorů a virtualizačního nástroje QEMU (Wikipedie). Přispělo 198 vývojářů. Provedeno bylo více než 2 200 commitů. Přehled úprav a nových vlastností v seznamu změn.

Ladislav Hagara | Komentářů: 0
dnes 15:33 | Pozvánky

Konference Bratislava OpenCamp 2020 proběhne v sobotu 4. dubna 2020 v Bratislavě na Fakultě informatiky a informačních technologií STU. Organizátoři vyhlásili CFP. Návrhy přednášek a workshopů lze zaslat do 31. ledna 2020.

Ladislav Hagara | Komentářů: 0
dnes 15:11 | Nová verze

Bylo oznámeno vydání KDE Frameworks 5.65.0, tj. nové verze aktuálně 74 knihoven rozšířujících multiplatformní framework Qt a dnes využívaných nejenom KDE Plasmou a KDE Aplikacemi. Nově začleněnou knihovnou je KQuickCharts pro generování grafů.

Ladislav Hagara | Komentářů: 0
včera 15:44 | Nová verze

Byla vydána verze 2.4 svobodného nelineárního video editoru Flowblade (GitHub, Wikipedie). Přehled novinek v poznámkách k vydání. Zdůraznit lze přechod na Python 3.

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

Vyšel toolkit Qt verze 5.14. Změny se týkají především Qt Quick, jeho odstínění od konkrétních nízkoúrovňových grafických API a zlepšení výkonu zvláště ve 3D. Začíná tím proces postupných příprav na Qt 6. Příští vydání (5.15) bude s dlouhodobou podporou. Aktuálně také vyšlo vývojové prostředí Qt Creator 4.11 – vedle oprav chyb a řady zjednodušení konfigurace přidává mj. experimentální podporu WebAssembly.

Fluttershy, yay! | Komentářů: 4
včera 06:00 | Nová verze

Byla vydána nová verze 1.41 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a animovanými gify v poznámkách k vydání. Ve verzi 1.41 bylo vydáno také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.

Ladislav Hagara | Komentářů: 0
12.12. 23:55 | IT novinky

J2EE, nověji Java EE a nejnověji Jakarta EE, tj. Java pro vývoj a provoz podnikových aplikací a informačních systémů (Java Platform, Enterprise Edition), slaví 20 let. První verze J2EE 1.2 byla vydána 12. prosince 1999.

Ladislav Hagara | Komentářů: 0
12.12. 22:00 | Nová verze

V kancelářích společnosti NGINX, tj. společnosti stojící za stejnojmenným webovým serverem a reverzní proxy, v Moskvě proběhla policejní razie. Na NGINX si nárokuje práva společnost Rambler. Igor Sysoev, zakladatel společnosti NGINX, ve společnosti Rambler pracoval v letech 2000 až 2011. V březnu letošního roku byla společnost NGINX prodána společnosti F5 Networks za 670 milionů dolarů.

Ladislav Hagara | Komentářů: 14
12.12. 18:44 | Nová verze

Vyšel Vim 8.2. Jedná se převážně o opravnou verzi tohoto textového editoru, ale mezi několika novými funkcemi je také možnost používat vyskakovací okna v uživatelském rozhraní, což využijí zvláště vývojáři doplňků pro dialogová okna či okna s nápovědou, napovídáním atp. Ukázkou je hra killersheep.

Fluttershy, yay! | Komentářů: 1
12.12. 17:44 | Nová verze

Byla vydána nová verze 19.12.0 KDE Aplikací (KDE Applications). Přehled novinek i s náhledy v oficiálním oznámení, kompletním seznamu změn a na stránce s dalšími informacemi.

Ladislav Hagara | Komentářů: 1
Kolik jste vystřídali distribucí Linuxu? (uvažujte distribuce, které jste používali aspoň měsíc)
 (4%)
 (72%)
 (19%)
 (3%)
 (3%)
Celkem 79 hlasů
 Komentářů: 9, poslední dnes 20:41
Rozcestník

Jak udělat z WYSIWYG editoru WYSIWYM editor?

28.12.2017 21:17 | Přečteno: 1389× | 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?
 (19 %)
 (78 %)
 (0 %)
 (4 %)
Celkem 27 hlasů

Anketa

Jste schopní to naprogramovat?
 (50 %)
 (13 %)
 (38 %)
Celkem 16 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: 48 | 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: 69
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: 48 | 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: 48 | 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: 69
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: 48 | 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: 69
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: 32 | 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: 38 | 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.