Portál AbcLinuxu, 6. listopadu 2025 05:08
Stranky projektu su na launchpade (pre rypalov: GIT a ine systemy nepoznam a ucit sa mi ich nechce, takze je to tam :-PSorry, ale to není pro tebe ta nejlepší vizitka..
Zpětnou kompatibilitu s CBZ jsem asi přehlíd, ale souhlasim, že to je důležitý, to může rozšíření tvýho formátu dost usnadnit... CBZ je na českých sharech afaik rozšířený, nevíš, jestli je takhle rozšířený i v zahraničí?
Kazdy zlozitejsi foormat je bud proprietarny alebo nezdokumentovany a velmi jednoduchy.
DjVu dokumenty su malo rozsirene, kniznic na pracu s nimi je malo. Takze implementovat DjVu nema moc vyznam.Víš vůbec o čem mluvíš?! Mám silné pochyby. Koukni se pro zajímavost na http://www.archive.org A pokud jde o CBZ - je to v podstatě prachsprostý zazipovaný archív. Stejně jako CBR. Koukal jsem se na to, když jsem řešil čím krmit čtečku. DjVu podporuje každá lepší čtečka a pokud jde o knihovny - jsou pod GPL a běžnou součástí linuxových distribucí. Včetně toolů, které můžeš využít. Očividně ti dosud nedocvaklo, že na komixy, které většinou stejnobarevné plochy a černobílá kresba, je to ten nejúspornější kompresní formát, jaký můžeš potkat. To co ušetříš na objemu dat u obrázku, můžeš investovat do textové struktury schované uvnitř.
Tak to abych začal překládat Futuramu 
To asi dělá denně aspoň polovina společnosti...
Ale to taky můžem čekat donekonečna. Teď to ještě potřebuje nějakej šikovnej editor na ty textový vrstvy - něco jako je AegiSub na SSA/ASS titulky (tam je možný udělat s textem fakt snad úplně všechno, ale má to moc tlačítek a nevim jak se s tim dělá). Ale ten editor na tom bude IMHO to nejtěžší a bez něj to nebude mít moc cenu, protože ty výhody proti těm stávajícim řešenim nepudou využít všechny (a jenom kvůli metadatům na to asi nikdo moc přecházate nebude). No každopádně oceňuju že někdo místo keců taky něco praktickýho dělá. Výhledově bych to moh používat třeba i já, na nějaký mangy třeba, doteď mě moc nelákaly, ale kdyby se to víc rozšířilo a lidi by je pak díky tomu víc překládali do nějakejch použitelnejch jazyků, tak by to mohlo přitáhnout i nějaký nový čtenáře. Asi sem moc velkej optimista
Navíc je to XML.Ze zvědavosti: v ComicSubu používáš formát jaký?
style {"Style3", "#000000", "#ffffff", "Arial", 12pt, 0, 1, 0, 0, 0}
style {"Style4", "#000000", "#ffffff", "Comic Sans MS", 18pt, 0, 0, 0, 0, 0}
style {"Style5", "#000000", "#ffffff", "Comic Sans MS", 36pt, 0, 1, 0, 0, 0}
page("ubunchu01_02.png") {
overlay {"Style4", "Ubunchu!", Ellipse, 823, 204, 211, 301}
overlay {"Style4", "M... My recommendation is...", Rectangle, 941, 143, 202, 184}
overlay {"Style4", "It is very popular with the users, and it is the hottest desktop Linux distribution available!", Ellipse, 99, 186, 223, 343}
overlay {"Style3", "Isn't it Ubuntu not Ubunchu?", Rectangle, 409, 635, 369, 28}
overlay {"Style5", "NO WAY!", Ellipse, 415, 690, 194, 202}
}
komu by se chtělo psát parser texťáku s vlastní specielní strukturou?
Mně.
+1 
Načítání a ukládání mám v plánu přepsat do modulárního systému, kde půjde snadno definovat různé verze formátů.Uhhhh... taky se přimlouvám za JSON. Ušetříš práci sobě a víc motivuješ ostatní, navíc jak koukám na ten tvůj formát, nejspíš by to asi ani nebyl moc velkej rozdíl. Anebo něco jako JSON (XML, ...)
... mi XMLko pride prehladnejsie a jednoduchsie aj na rucnu editaciu.Ale no, lepší ukázkou formátu, více vhodného pro čtení a psaní dat aplikací a ne pro ruční editaci, už by snad byl jen nějaký binární formát. Vždyť kolikrát je poměr vlastního obsahu k XML datům samotným i 50:50 a hůř.
poměr vlastního obsahu k XML datům samotným i 50:50 a hůř.O to účinnější je potom komprese. Takže se to dá šířit zazipovaně , dekomprimovat on-line před použitím a pak zase zahodit.
{
"styles": {
"Style3": { "fg": "#000000", "bg": "#ffffff", "font": [ "Arial", "12pt" ], "wtf": [0, 1, 0, 0, 0]},
"Style4": { "fg": "#000000", "bg": "#ffffff", "font": [ "Comic Sans MS", "18pt" ], "wtf": [0, 0, 0, 0, 0]},
"Style5": { "fg": "#000000", "bg": "#ffffff", "font": [ "Comic Sans MS", "36pt" ], "wtf": [0, 1, 0, 0, 0]},
},
"pages": {
"ubunchu01_02.png": {
"overlay": [
{"style": "Style4", "text": "Ubunchu!", "shape": [ "Ellipse", 823, 204, 211, 301 ]},
{"style": "Style4", "text": "M... My recommendation is...", "shape": [ "Rectangle", 941, 143, 202, 184 ]},
{"style": "Style4", "text": "It is very popular with the users, and it is the hottest desktop Linux distribution available!", "shape": [ "Ellipse", 99, 186, 223, 343 ]},
{"style": "Style3", "text": "Isn't it Ubuntu not Ubunchu?", "shape": [ "Rectangle", 409, 635, 369, 28 ]},
{"style": "Style5", "text": "NO WAY!", "shape": [ "Ellipse", 415, 690, 194, 202}
]
}
}
}
Výhody:
Ja mam svuj projekt, ktery me bavi, a dostal jsem se do faze, ze me zacal i zivit, a pritom je to open-source. Nemam cas ani chut forkovat jine projekty.
Já si vhodnější řešení představit dokážu. Vlastně mě napadá jen hodně málo horších řešení než pomocí XML, a většina z nich jsou věci typu XML zakódované do base64 a obalené další vrstvou XML. XML je nejsložitější známý způsob uzávorkování. Na takhle jednoduchou věc s minimální hierarchickou strukturou je to orbitální iontové dělo na vrabce.
Co se týče možnosti použít víc stylů v jedné bublině, zase je to plánovaná fíčura, která je někde uprostřed seznamu priorit. Nejvyšší prioritu v tuhle chvíli má ale modulární systém na ukládání a načítání (tj. zjednodušení práce se stávajícím formátem + možnost transparentně pracovat s víc formáty přes jednotné rozhraní), pak bubliny ve tvaru obecných polygonů a uzavřených křivek, a pak ještě rotace textu. Pak bude nejspíš na řadě napsání vlastního mechanizmu na sázení textu do bubliny, protože QTextLayout umí jen zlomek toho, co potřebuju.
Já si vhodnější řešení představit dokážuJe to tvuj format, tak se ani nedivim, ze ho budes branit klidne i do krve:) Problem nastava v okamziku, kdyz udelas deset tisic komixu, a zjistis, ze bys potreboval implementovat nejakou novinku, ktera ti je vsechny rozbije. Jinak ja osobne jsem to napsal hlavne z duvodu ostatnich. Stylovani v CSS dneska umi kazdy, pouzivat HTML tagy taky, a pokud se rozhodnes pro trochu vektorove grafiky, tak tu je SVG, ktere opet kazdy umi a na netu je milion tutorialu. Ja tak nejak pochybuju, ze to vsechno dokazes udelat znovu a jeste lip v dohledne dobe (tedy driv, nez te to prestane bavit) :) Je mi jasne, ze potrebujes "jen neco malo z toho vseho", jenze z vlastni zkusenosti vim, ze to neco malo bude za nejakou dobu malo, no a budes pridavat, pridavat, az z toho bude bastl, na ktery ted nadavas:)
Podívej, jestli si myslíš, že by bylo lepší na tenhle problém nasadit nějakého kočkopsa splácaného dohromady z HTML, CSS a SVG, nikdo ti nebrání to udělat. Klidně si k tomu forkni můj projekt, ať máš nějaké základní grafické rozhraní na editaci a můžeš se soustředit jen na samotný datový formát. Aspoň si sám na vlastní kůži ověříš, jak neskutečně debilní nápad to je.
Ale co jsem zatím dělal s XML, tak vždy to bylo na prd a do pohodlného to mělo daleko.
JSON má oproti XML výhodu v tom, že uzel stromu dokumentu má jen jeden typ potomků (v XML jsou minimálně 3 -- atributy, uzly a text). A ty potomci jsou pojmenovaní unikátním klíčem. Díky tomu existuje možnost jednoznačného a pohodlného převodu JSONu do datové struktury a zpět.
Zrovna v Qt ti na tenhle převod stačí QObject a jeho dynamické properties, do kterých uložíš QObject* nebo QList<QObject*>*. Takže můžeš pohodlně zajistit dopřednou kompatibilitu s budoucími vlastnostmi, kdy sice editor nebude vědět co s nimi, ale bude schopný je zachovat i během editace. Samozřejmě namísto QObjectu můžeš použít odpovídající třídu pro styl, stránku a podobně, dokud to bude dědit z QObjectu, tak můžeš rozšiřovat formát souboru, aniž bys sáhnul na parser či serializaci (doslova).
Prohlížel jsem zdrojáky, tak mám pár drobných postřehů:
Archiv se zdrojáky nemá kořenový adresář.
Instalátor je takové veselé cp, které ani neumí instalovat do standardních cest pythonu.
V archivu vedle zdrojového kódu máš zabalený i bajtkód.
Při spuštění se program pokouší otevřít jeden dokument v tvém domovském adresáři.
Vedle kláves PgUp/PgDn by bylo dobré reagovat na mezerník a B nebo Backspace.
Skákání po rámcích zvětšuje každý rámec přes celé okno. Takže jinak velké rámce se zvětší s různým měřítkem. Líbil by se mi režim přecházení mezi rámci se zachováním měřítka. Nejlépe aby zůstalo viditelné okolí. Jsou totiž komiksy, kdy obrázky z rámců se překrývají. Zvětšení proto, že je třeba malý displej. Byl by to takový panning s přecházením z jednoho snímku na další podle jejich pořadí.
Takze znacne ulahcenie prace. Instalator funguje, to je hlavne. Ked sa to bude niekedy v buducnosti distribuovat, tak predpokladam, ze pomocou .deb balikov a pod. Tento instalator zatial staci.
Při spuštění se program pokouší otevřít jeden dokument v tvém domovském adresáři.To neni bug, to je feature, aby som nemusel zakazdym otvarat ten komix, ked testujem nove casti kodu. V buducnosti by sa default mal otvorit "Help" dokument popisujuci funkcie programu v ACBF formate.
Vedle kláves PgUp/PgDn by bylo dobré reagovat na mezerník a B nebo Backspace.Medzernik a backspace mozem zaimplementovat, neni problem.
Skákání po rámcích zvětšuje každý rámec přes celé okno. Takže jinak velké rámce se zvětší s různým měřítkem.Momentalne to funguje tak, ze obrazok ramca sa zmensi aj presahuje plochu, na ktoru sa ma vykreslit. V opacnom pripade sa nezmensi. Planujem zaimplementovat moznost pre "stretch" obrazku na celu vykrelovaciu, v pripade, ze je obrazok mensi.
Líbil by se mi režim přecházení mezi rámci se zachováním měřítka. Nejlépe aby zůstalo viditelné okolí.Take nieco planujem do buducnosti, nejaky animovany prechod medzi ramcami (so zachovanim okolia), ale momentalne je to v prioritach velmi vzadu
Ked sa to bude niekedy v buducnosti distribuovat, tak predpokladam, ze pomocou .deb balikov a pod.
A už jsi nějaký balíček vytvořil? Ten instalátor je totiž pro výrobu distribučních balíčků nepoužitelný.
Hold pri vytvarani packagov si bude musiet balic nastudovat dany install.py. Inak neni to nic zlozite, samotny program je cely v adresari /src a da sa pustit cez acbf.py aj bez instalacie. Ostatne veci su len ikony, desktop configuration file a definicia novej .acbf pripony.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.