Způsob vytváření obsahu pro web

vyvojar

Způsob vytváření obsahu pro web
« kdy: 24. 11. 2013, 22:30:29 »
Zajímalo by mě, jak vytváříte obsah pro web. Používáte editory typu CKEditor, TinyMCE nebo to píšete normálně v html podobě a pak copy/paste, případně jiný způsob? Já jsem nedávno koketoval s myšlenkou přepisování php interpretu, ale nakonec jsem uznal, že to byl fakt blbý nápad, zvlášť když jsem si přečetl, jak je na tom HHVM of facebooku. Daleko lepší nápad je podle mě vytvořit nějaký alternativní způsob správy obsahu na webu, než jsou tyhle editory typu CKEditor. Člověk v tom něco špatně udělá a celý dokument se mu rozpadne, což je podle mě dané i tím, že ta interní podoba toho dokumentu má stromovou strukturu, takže nějaké přemisťování atd. pak občas způsobuje docela neočekávané výsledky. Každopádně si myslím, že to klikání do obsahu na web nepatří. Chtěl bych udělat něco jako latex pro web, akorát by se tam nemusely psát příkazy, ale všechno by se vytvářelo intuitivně přes uživatelské prostředí.
V té nejjednodušší podobě bych si to představoval asi tak, že když uživatel bude chtít mít 3 odstavce, tak klikne 3x na nějaké tlačítko přidat odstavec. Někam do editační oblasti se mu přidají 3 textboxy, kam by psal obsah těch odstavců. Víceménně všechno by bylo komponenta, takže pokud by někdo chtěl mít obrázek obtékaný textem, tak by prostě zase klik na nějaké tlačítko a do editační oblasti se mu přidá opět textbox pro text a nějaký widget pro vybrání obrázku. Na webu to pak bude vypadat přesně tak, jak se očekává.
Tohle všechno by se ukládalo do nějakého stromu, který by bylo možné zase zpětně interpretovat do té editační oblasti, aby se to celé dalo ukládat a zase modifikovat.  Jinak byla by k tomu potřeba i nějaká serverová podpora v podobě nějakých skriptů.

+ Možnost vytvořit opravdu komplexní obsah se vším všudy, protože komponenta může reprezentovat klidně nějaký složitý widget, takže by to ve výsledku mohlo klidně fungovat i pro vytváření celých stránek.
+ Komponenty by pak mohla psát komunita.
+ Validace na straně serveru. Obecně veškerý obsah by byl protažen nějakým filtrem na odstranění html tagů, takže jediný způsob
vložení nějakého tagu je skrz rozhraní komponent => možnost zakázat komponentu na serveru, takže např. nebude možné vložit iframe.
+ atd. atd.

- Asi bude dost složité to dát nějak dohromady
- Nutnost serverové části (jediná výjimka by byla zřejmě node.js, protože tam by se dala použít tak klientská část), která by musela být v určitých aspektech 100% ekvivalentní s tou klientskou (na server se odesílá pouze strom reprezentující editační oblast, vygenerování vlastního obsahu pak nějakým algoritmem na serveru)
- každá komponenta by v podstatě musela mít i svoji serverovou část

Využívali by jste něco takového raději než nějaké ty wysiwyg editory?
« Poslední změna: 25. 11. 2013, 10:52:28 od Petr Krčmář »


petr

Re:Způsob vytváření obsahu pro web.
« Odpověď #1 kdy: 25. 11. 2013, 02:29:27 »
Ty zmíněné wysiwyg editory mají nebo by měly mít jednu zásadní vlastnost: za každých okolností produkovat validní kód. Pokud se tak neděje je někde chyba, v editoru, jeho pluginech nebo v příliš volném nastavení. To že původní (v editoru nevzniklý) nebo importovaný nevalidní kód produkuje jiný (ovšem validní) výsledek, než uživatel očekával, je logické. Dá se tomu zabránit zakázáním úprav zdrojového kódu apod. Widgety se dají určitě řešit v rámci systému pluginů těch editorů, třeba i s backendem na serveru, to je implementační detail. Používám ckeditor s mnoha vlastními pluginy a widgety, propojenými s redakčním systémem.

Největšími klady jsou právě modularizace, snadná tvorba pluginů (dialogů, widgetů apod), nastavitelnost, validní kód. Není přece problém je nastavit tak, aby uživatel nemohl měnit písmo, barvy apod a vkládal jen informace a vše ostatní bylo řízené styly.

V souhrnu si myslím, jestli chceš nějaký systém widgetů, možná stojí za to je naroubovat jako pluginy do některého ze zmíněných editorů.

petr

Re:Způsob vytváření obsahu pro web.
« Odpověď #2 kdy: 25. 11. 2013, 02:50:41 »
Abych nezapomněl na hlavní nevýhodu, alespoň CKEditoru: složitost kódu a chabá dokumentace. Strávil jsem dlouhou dobu, než jsem byl schopen si ho přizpůsobit, dělat pro něj pluginy a především widgety (tak aby se zobrazovaly wiswyg v editoru), kód jsem musel hodně upravovat a opravovat řadu chyb, opravovat styly rozhraní apod. To bylo asi před dvěma roky; nejhorší je, že teď bych to musel vše podstoupit znovu, protože si nepamatuji téměř nic. Ale to je už osud těch, co musí dělat mnoho různých nesourodých věcí.


h7

Re:Způsob vytváření obsahu pro web.
« Odpověď #3 kdy: 25. 11. 2013, 03:56:24 »
Problém s uživatelským vytváření obsahu webu cítím také a tak jsem přemýšlel, že něco takového někdy udělám, ale zatím jsem se k tomu nedostal. A nebude to myslím dosti rozsáhlé a složité. Moje představa je taková, že se dokument nebude formátovat (tučné písmo, velikost fontu 22 pt apod.), ale bude se sémanticky tagovat. Tedy vyznačí se, že tohle je "nadpis", tohle je "důležitá část" apod. Struktura dokument bude daná nějakým předpisem, protože pro každý účel je třeba jiná struktura, jiné omezení. Např. článek bude mít napřed povinný nadpis 1. úrovně, pak alespoň jeden odstavec atd. Obecně se tedy nebude vytvářet ani tak HTML, ale spíše sémantické XML. A jako předpis pak dává smysl něco, čím lze popsat strukturu dokumentu (DTD, XmlSchema, ...). Jednotlivé značky, bílé znaky apod. se budou zobrazovat (aby bylo na první pohled vidět, jak dokument opravdu vypadá a nevznikaly takové ty klasické dokumenty, kde je odsazování několika mezerami, zalomení odstavce na konci každého řádku apod.). A v průběhu editace by se mohla nějak trochu zvýrazňovat syntaxe pomocí stylování, ale záměr není wysiwyg, ale nejnázornější zobrazení struktury a obsahu dokumentu. Výstupem tedy nebude HTML, ale obecné XML s formátem, který odpovídá nějakému předpisu. Převod na HTML je pak už triviální záležitost např. pomocí XSLT. Ale aplikace bude typicky primárně uchovávat to XML, protože to obsahuje maximum sémantických informací a minimum balastu. Je tedy univerzálně použitelné jak pro další editace, tak konverzi do HTML či jiných formátů. Ovládání by mělo připomínat textový editor, co nejvíce ovladatelné z klávesnice, ale dobře použitelné i pro méně technicky založené lidi.

Podobným směrem jde třeba:
http://files.wymeditor.org/wymeditor-1.0.0b2/examples/15-rdfa-editor.html

pepak

Re:Způsob vytváření obsahu pro web.
« Odpověď #4 kdy: 25. 11. 2013, 07:19:36 »
Zajímalo by mě, jak vytváříte obsah pro web. Používáte editory typu CKEditor, TinyMCE nebo to píšete normálně v html podobě a pak copy/paste, případně jiný způsob?
HTML + copy/paste.

Citace
Tohle všechno by se ukládalo do nějakého stromu, který by bylo možné zase zpětně interpretovat do té editační oblasti, aby se to celé dalo ukládat a zase modifikovat.
Nezdá se ti to trochu v rozporu s tvou námitkou proti stávajícím editorům?
Citace
Člověk v tom něco špatně udělá a celý dokument se mu rozpadne, což je podle mě dané i tím, že ta interní podoba toho dokumentu má stromovou strukturu

Citace
+ Možnost vytvořit opravdu komplexní obsah se vším všudy, protože komponenta může reprezentovat klidně nějaký složitý widget, takže by to ve výsledku mohlo klidně fungovat i pro vytváření celých stránek.
+ Komponenty by pak mohla psát komunita.
+ Validace na straně serveru. Obecně veškerý obsah by byl protažen nějakým filtrem na odstranění html tagů, takže jediný způsob
vložení nějakého tagu je skrz rozhraní komponent => možnost zakázat komponentu na serveru, takže např. nebude možné vložit iframe.
+ atd. atd.
Nějak nevidím rozdíl proti současným editorům - ty umí tohle všechno taky.

Citace
Využívali by jste něco takového raději než nějaké ty wysiwyg editory?
Ne, zůstal bych u HTML + copy/paste.


Grrr

Re:Způsob vytváření obsahu pro web.
« Odpověď #5 kdy: 25. 11. 2013, 08:26:50 »
Opravdu už se ti nechce psát vlastní interpreter php a raději zkusíš jinou kravinu ? Co takhle investovat trochu času do prostudování html5 a současných webových editorů obsahu. Na světě není jen CKEditor.

Za chvíli tu máme stejnou blbost, jako byl Frontpage ...

vyvojar

Re:Způsob vytváření obsahu pro web.
« Odpověď #6 kdy: 25. 11. 2013, 09:31:31 »

Citace
Tohle všechno by se ukládalo do nějakého stromu, který by bylo možné zase zpětně interpretovat do té editační oblasti, aby se to celé dalo ukládat a zase modifikovat.
Nezdá se ti to trochu v rozporu s tvou námitkou proti stávajícím editorům?
Citace
Člověk v tom něco špatně udělá a celý dokument se mu rozpadne, což je podle mě dané i tím, že ta interní podoba toho dokumentu má stromovou strukturu

Mohlo by se to tak jevit, ale v rozporu to není, protože v prvním případě uživatel přímo zasahuje do dokumentu, kde nevidí jasné hranice co je co a celkově to působí takovým neohrabaným dojmem (alespoň na mě). V mém případě by každý element měl jasně definované hranice v editační oblasti, protože by byl reprezentován např. html elementem textarea.

Citace
+ Validace na straně serveru. Obecně veškerý obsah by byl protažen nějakým filtrem na odstranění html tagů, takže jediný způsob
vložení nějakého tagu je skrz rozhraní komponent => možnost zakázat komponentu na serveru, takže např. nebude možné vložit iframe.
Nějak nevidím rozdíl proti současným editorům - ty umí tohle všechno taky.
Řekl bych, že ty editory ale validují jen na straně klienta (tzn. že pokud se chce zabránit vkládání iframe, tak se zablokuje tlačítko na editaci zdrojáků), ale pokud by někdo fejknul HTTP request, tak by se na to asi nepřišlo. 

DK

Re:Způsob vytváření obsahu pro web.
« Odpověď #7 kdy: 25. 11. 2013, 09:39:10 »

Citace
Tohle všechno by se ukládalo do nějakého stromu, který by bylo možné zase zpětně interpretovat do té editační oblasti, aby se to celé dalo ukládat a zase modifikovat.
Nezdá se ti to trochu v rozporu s tvou námitkou proti stávajícím editorům?
Citace
Člověk v tom něco špatně udělá a celý dokument se mu rozpadne, což je podle mě dané i tím, že ta interní podoba toho dokumentu má stromovou strukturu

Mohlo by se to tak jevit, ale v rozporu to není, protože v prvním případě uživatel přímo zasahuje do dokumentu, kde nevidí jasné hranice co je co a celkově to působí takovým neohrabaným dojmem (alespoň na mě). V mém případě by každý element měl jasně definované hranice v editační oblasti, protože by byl reprezentován např. html elementem textarea.

Citace
+ Validace na straně serveru. Obecně veškerý obsah by byl protažen nějakým filtrem na odstranění html tagů, takže jediný způsob
vložení nějakého tagu je skrz rozhraní komponent => možnost zakázat komponentu na serveru, takže např. nebude možné vložit iframe.
Nějak nevidím rozdíl proti současným editorům - ty umí tohle všechno taky.
Řekl bych, že ty editory ale validují jen na straně klienta (tzn. že pokud se chce zabránit vkládání iframe, tak se zablokuje tlačítko na editaci zdrojáků), ale pokud by někdo fejknul HTTP request, tak by se na to asi nepřišlo.

Takze vlastne chcete udelat jenom validaci formularu

vyvojar

Re:Způsob vytváření obsahu pro web.
« Odpověď #8 kdy: 25. 11. 2013, 10:03:58 »
Takze vlastne chcete udelat jenom validaci formularu

Ne, chci udělat něco, co bude existovat společně s těmi editory. Existuje tisíce produktů, které nabízejí v podstatě to samé a stejně se liší a koexistují už řadu let (viz. např. TinyMCE a CKEditor).

none_

Re:Způsob vytváření obsahu pro web.
« Odpověď #9 kdy: 25. 11. 2013, 10:05:33 »
Přijde mi to stejný jako spousta současných editorů.

Nejdřív jsem měl pocit, že jde o in-place editor, což umí třeba http://aloha-editor.org/ .

Pak jsi začal psát něco o odstranění nepovolených html znaků (to umí jakýkoliv z WYSIWYG editorů, ale na serveru je to vždycky práce programátora) popřípadě použití jiných značek než je html (to taky dělá spousta projektů. Mrkni se např na Wiki syntaxe nebo třeba české Texy, jestli ještě funguje). To se dá zabezpečit dost jednoduše a je jedno, jestli bude ten vstupní text obsahovat html značky nebo něco jiného...

Vlastně, když nad tím přemýšlím, nevím, co by ten tvůj editor měl umět nového.

vyvojar

Re:Způsob vytváření obsahu pro web.
« Odpověď #10 kdy: 25. 11. 2013, 10:17:46 »
Přijde mi to stejný jako spousta současných editorů.

Nejdřív jsem měl pocit, že jde o in-place editor, což umí třeba http://aloha-editor.org/ .

Pak jsi začal psát něco o odstranění nepovolených html znaků (to umí jakýkoliv z WYSIWYG editorů, ale na serveru je to vždycky práce programátora) popřípadě použití jiných značek než je html (to taky dělá spousta projektů. Mrkni se např na Wiki syntaxe nebo třeba české Texy, jestli ještě funguje). To se dá zabezpečit dost jednoduše a je jedno, jestli bude ten vstupní text obsahovat html značky nebo něco jiného...

Vlastně, když nad tím přemýšlím, nevím, co by ten tvůj editor měl umět nového.

No, dalo by se to klidně rozšířit o nějaký koncept datových zdrojů a např. tím editorem vytvářet i templaty třeba pro zobrazování dat, ale to jen tak co mě napadá.
Podle mě to využití by nakonec mohlo být daleko širší než jenom pro to vytváření obsahu.
Základní idea je nabídnout jiný způsob vytváření obsahu pro web.
Řekněme budu chtít mít nadpis, obrázek obtékaný textem a 3 odstavce.
Kliknu na tlačítka reprezentující jednotlivé části (nadpis, obrázek obtékaný textem a 3x odstavec) a hned mám na světe už templatu, která se potom může využít i jinak.

none_

Re:Způsob vytváření obsahu pro web.
« Odpověď #11 kdy: 25. 11. 2013, 10:26:31 »
Přijde mi to stejný jako spousta současných editorů.

Nejdřív jsem měl pocit, že jde o in-place editor, což umí třeba http://aloha-editor.org/ .

Pak jsi začal psát něco o odstranění nepovolených html znaků (to umí jakýkoliv z WYSIWYG editorů, ale na serveru je to vždycky práce programátora) popřípadě použití jiných značek než je html (to taky dělá spousta projektů. Mrkni se např na Wiki syntaxe nebo třeba české Texy, jestli ještě funguje). To se dá zabezpečit dost jednoduše a je jedno, jestli bude ten vstupní text obsahovat html značky nebo něco jiného...

Vlastně, když nad tím přemýšlím, nevím, co by ten tvůj editor měl umět nového.

No, dalo by se to klidně rozšířit o nějaký koncept datových zdrojů a např. tím editorem vytvářet i templaty třeba pro zobrazování dat, ale to jen tak co mě napadá.
Podle mě to využití by nakonec mohlo být daleko širší než jenom pro to vytváření obsahu.
Základní idea je nabídnout jiný způsob vytváření obsahu pro web.
Řekněme budu chtít mít nadpis, obrázek obtékaný textem a 3 odstavce.
Kliknu na tlačítka reprezentující jednotlivé části (nadpis, obrázek obtékaný textem a 3x odstavec) a hned mám na světe už templatu, která se potom může využít i jinak.

Takže FrontPage. Nebo teda Microsoft Expression Web, jak tomu říkají teď. Nevím, jestli by sis neměl ušetřit práci a pokračovat dál s vymýšlením nápadů. Tohle už tady párkrát bylo a jak si můžeš sám dohledat, tak nikdo se to nesetkalo s úspěchem, popřípadě to sice úspěch mělo, ale pracovalo to dost hrozně.

JarinBarin

Re:Způsob vytváření obsahu pro web
« Odpověď #12 kdy: 25. 11. 2013, 15:57:17 »
Pouzivam trochu vylepsenej Markdown a zbytek doladim v HTML, kdyz je potreba. Tvuj napad neni uplne spatnej, ale otazka je jak se to chytne mezi beznymi uzivateli a jak snadno se to bude pozivat kdyz budu chtit uplne zmenit layout ale obsah nechat. Bohuzel je to vzdy o kompromisu mezi tim jak univerzalni to bude a tim jaka z toho vyleze prasarna.

davkol

Re:Způsob vytváření obsahu pro web
« Odpověď #13 kdy: 25. 11. 2013, 18:36:01 »
Amen.

gitit FTW