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í
×
včera 13:00 | Komunita

Do 30. října se lze přihlásit do dalšího kola programu Outreachy (Wikipedie), jehož cílem je přitáhnout do světa svobodného a otevřeného softwaru lidi ze skupin, jež jsou ve světě svobodného a otevřeného softwaru málo zastoupeny. Za 3 měsíce práce, od 4. prosince 2018 do 4. března 2019, v participujících organizacích lze vydělat 5 500 USD.

Ladislav Hagara | Komentářů: 61
21.9. 22:22 | Komunita

Společnost Purism představila kryptografický token Librem Key. Koupit jej lze za 59 dolarů. Token byl vyvinut ve spolupráci se společností Nitrokey a poskytuje jak OpenPGP čipovou kartu, tak zabezpečení bootování notebooků Librem a také dalších notebooků s open source firmwarem Heads.

Ladislav Hagara | Komentářů: 8
21.9. 20:33 | Nová verze

Společnost NVIDIA oficiálně vydala verzi 10.0 toolkitu CUDA (Wikipedie) umožňujícího vývoj aplikací běžících na jejich grafických kartách. Přehled novinek v poznámkách k vydání.

Ladislav Hagara | Komentářů: 0
21.9. 20:00 | Upozornění

Příspěvek Jak přežít plánovanou údržbu DNS na blogu zaměstnanců CZ.NIC upozorňuje na historicky poprvé podepsání DNS root zóny novým klíčem dne 11. října 2018 v 18:00. Software, který nebude po tomto okamžiku obsahovat nový DNSSEC root klíč, nebude schopen resolvovat žádná data. Druhým důležitým datem je 1. února 2019, kdy významní výrobci DNS softwaru, také historicky poprvé, přestanou podporovat servery, které porušují DNS standard

… více »
Ladislav Hagara | Komentářů: 11
21.9. 15:55 | Pozvánky

Spolek OpenAlt zve příznivce otevřených řešení a přístupu na 156. brněnský sraz, který proběhne v pátek 21. září od 18:00 v restauraci Na Purkyňce na adrese Purkyňova 80.

Ladislav Hagara | Komentářů: 0
21.9. 13:22 | Nová verze

Alan Griffiths z Canonicalu oznámil vydání verze 1.0.0 display serveru Mir (GitHub, Wikipedie). Mir byl představen v březnu 2013 jako náhrada X serveru a alternativa k Waylandu. Dnes Mir běží nad Waylandem a cílen je na internet věcí (IoT).

Ladislav Hagara | Komentářů: 0
20.9. 22:00 | Nasazení Linuxu
Stabilní aktualizace Chrome OS 69 (resp. Chromium OS), konkrétně 69.0.3497.95, přináší mj. podporu linuxových aplikací. Implementována je pomocí virtualizace, a proto je tato funkce také omezena na zařízení s dostatkem paměti a podporou hardwarové akcelerace, tudíž nejsou podporovány chromebooky s 32bitovými architekturami ARM, či Intel Bay Trail (tzn. bez Intel VT-x).
Fluttershy, yay! | Komentářů: 5
20.9. 21:32 | Zajímavý projekt

Došlo k uvolnění linuxové distribuce CLIP OS, vyvíjené francouzským úřadem pro kybernetickou bezpečnost ANSSI, jako open source. Vznikla za účelem nasazení v úřadech, kde je potřeba omezit přístup k důvěrným datům. Je založená na Gentoo.

Fluttershy, yay! | Komentářů: 1
20.9. 16:00 | Komerce

Zjistěte více o bezpečné a flexibilní architektuře v cloudu! IBM Cloud poskytuje bezpečné úložiště pro Vaše obchodní data s možností škálovatelnosti a flexibilitou ukládání dat. Zároveň nabízí prostředky pro jejich analýzu, vizualizaci, reporting a podporu rozhodování.

… více »
Fluttershy, yay! | Komentářů: 12
20.9. 12:22 | Nová verze

V dubnu letošního roku Mozilla představila webový prohlížeč pro rozšířenou a virtuální realitu Firefox Reality (GitHub). V úterý oznámila vydání verze 1.0. Ukázka na YouTube. Firefox Reality je k dispozici pro Viveport, Oculus a Daydream.

Ladislav Hagara | Komentářů: 2
Na optické médium (CD, DVD, BD aj.) jsem naposledy vypaloval(a) data před méně než
 (13%)
 (14%)
 (21%)
 (23%)
 (25%)
 (4%)
 (1%)
Celkem 394 hlasů
 Komentářů: 33, poslední 16.9. 11:55
Rozcestník

Jak udělat z WYSIWYG editoru WYSIWYM editor?

28.12.2017 21:17 | Přečteno: 1230× | 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ář

Mark Stopka avatar 28.12.2017 21:31 Mark Stopka | skóre: 57 | blog: Paranoidní blog | European Economic Area
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: 46 | 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-Výuka.cz, Nekuřák.net
Josef Kufner avatar 29.12.2017 11:11 Josef Kufner | skóre: 68
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: 46 | 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-Výuka.cz, Nekuřák.net
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: 46 | 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-Výuka.cz, Nekuřák.net
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: 68
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: 46 | 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-Výuka.cz, Nekuřák.net
Josef Kufner avatar 31.12.2017 13:36 Josef Kufner | skóre: 68
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: 30 | 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. 20:19 Petr Tomášek | skóre: 37 | 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. 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.