Forum Delphi.cz

Co se jinam nevešlo => Obecné => Téma založeno: pepak 22-09-2012, 07:21:57

Název: Knihovna pro vyhodnocování CSS
Přispěvatel: pepak 22-09-2012, 07:21:57
Mám takový speciální problém: Potřeboval bych vzít HTML stránku a k ní příslušející CSS soubor a to celé převést na upravenou HTML stránku a upravený CSS soubor, který bude vypadat stejně, ale bude používat jednodušší konstrukce, které můj renderer zvládne zobrazit. Abych dal příklad: Použitý renderer neumí žádnou formu obsahu generovaného pomocí CSS, tj. například konstrukce typu .trida:after(content: "***"; color: #ff0000;). Bohužel nemám šanci ten renderer přesvědčit, aby CSS-obsah zobrazil, ale pokud bych dokázal to HTML přeparsovat z <span class="trida">Hvězdičky za</span> na <span class="trida">Hvězdičky za</span><span style="color: #ff0000">***</span>, tak by to můj problém řešilo.

Základní problém vidím v tom, že neznám žádný program, který by tohle uměl, a protože CSS je dost složité, tak ani nevím o způsobu, jak si to nějak rozumně naimplementovat sám. Nebyl by nějaký nápad, ať už na hotový program, nebo na nějakou jednoduše použitelnou knihovnu?
Název: Re:Knihovna pro vyhodnocování CSS
Přispěvatel: pf1957 22-09-2012, 11:20:28
Mám takový speciální problém: Potřeboval bych vzít HTML stránku a k ní příslušející CSS soubor a to celé převést na upravenou HTML stránku a upravený CSS soubor, který bude vypadat stejně, ale bude používat jednodušší konstrukce, které můj renderer zvládne zobrazit.
...
Základní problém vidím v tom, že neznám žádný program, který by tohle uměl, a protože CSS je dost složité, tak ani nevím o způsobu, jak si to nějak rozumně naimplementovat sám. Nebyl by nějaký nápad, ať už na hotový program, nebo na nějakou jednoduše použitelnou knihovnu?

O nicem hotovem nevim.

Jako preferovane reseni bych videl zmenu rendereru na MSIE tj. v Delphi podani nejspis TEmbeddedWB. My jsme taky Baldwina vykopali vsude, kde to slo

Jako nahradni reseni (bez zaruky, nezkousel jsem) bych to pomoci stejneho MSIE nacetl do DOM, v nem to zmenil a pak to upravene zkusil ulozit, Alespon kdyz DOM pouzivas v JavaScriptu, tak kazdy objekt ma property Style, kde se dostanes na vsechna pole. Jsou na to interface IHTMLDocumenti, IHTMLElementi, IHTMLStylei aj.

Název: Re:Knihovna pro vyhodnocování CSS
Přispěvatel: Radek Červinka 22-09-2012, 12:33:52
No unigui používá nějakou volně šiřitelnou třídu na zpracování CSS, ale to ti asi nepomůže.

c:\Users\Public\Documents\FMSoft\Framework\uniGUI\CSSParser\seCSSParser.pas
upraveno z     http://www.tmedia.de 
This software is provided 'as-is', without any express or   }
{ implied warranty. In no event will the author be held       }
{ liable for any damages arising from the use of this         }
{ software.                                                   }
{ Permission is granted to anyone to use this software for    }
{ any purpose, including commercial applications, and to      }
{ alter it and redistribute it freely,


THtmlView podporuje nějak CSS podporuje (jen nevím zda i externí) - aktuální verze http://code.google.com/p/thtmlviewer/
Název: Re:Knihovna pro vyhodnocování CSS
Přispěvatel: pf1957 22-09-2012, 12:41:46
THtmlView podporuje nějak CSS podporuje (jen nevím zda i externí) - aktuální verze http://code.google.com/p/thtmlviewer/

No to je puvodne ten Baldwin, kterej bych z wokennich aplikaci vykopal jednou pro vzdy, protoze MSIE dnes poslouzi radove lepe. Jedine kde jsem ho nechal bylo tam, kde jsme do nej napsali binding na nase ORM objekty a kde nebylo rentabilni s tim neco delat.
Název: Re:Knihovna pro vyhodnocování CSS
Přispěvatel: pepak 22-09-2012, 13:19:08
Jako preferovane reseni bych videl zmenu rendereru na MSIE tj. v Delphi podani nejspis TEmbeddedWB.
Renderer je fixně daný a nezměnitelný.

Citace
Alespon kdyz DOM pouzivas v JavaScriptu, tak kazdy objekt ma property Style, kde se dostanes na vsechna pole.
To neřeší můj problém. Tím možná zjistím, že element má nějaký (a jaký) :after (ale ruku do ohně za to nedám, on ten IE není zase žádný velký expert přes pokročilé CSS), ale to je tak všechno. Nezjistím například CSS styly toho :after obsahu.
Název: Re:Knihovna pro vyhodnocování CSS
Přispěvatel: pepak 22-09-2012, 13:21:44
No unigui používá nějakou volně šiřitelnou třídu na zpracování CSS, ale to ti asi nepomůže.
Mohla by. Pokud ta třída umí přijmout na vstupu kromě CSS i HTML a napasovat se na něj.

Spíš si ale myslím, že potřebuju nějaký kompletní HTML/CSS3, tzn. nějaké jádro Webkit nebo tak něco.

Citace
THtmlView podporuje nějak CSS podporuje (jen nevím zda i externí) - aktuální verze http://code.google.com/p/thtmlviewer/
"Nějak" mi moc nepomůže - potřebuju vyřešit problém, že mám renderer, který toho umí spoustu, ale ty nejpokročilejší věci, které by mi nejvíc pomohly, ne. A nikdy je umět nebude. Ale pořád pravděpodobně bude umět víc než komponenta, která funguje "nějak".
Název: Re:Knihovna pro vyhodnocování CSS
Přispěvatel: pf1957 22-09-2012, 13:36:20
To neřeší můj problém. Tím možná zjistím, že element má nějaký (a jaký) :after (ale ruku do ohně za to nedám, on ten IE není zase žádný velký expert přes pokročilé CSS), ale to je tak všechno. Nezjistím například CSS styly toho :after obsahu.
s tim :after jsem nic nedelal, ale jinak jsme bezne nejen zjistovali styly, ale taky je  v run-time nastavovali a nenarazili jsme, ze by neco u nejakeho browseru nefungovalo. No a kdyz to dokazes zmenit, tak to dokazes i ulozit, ne?

Takze ja bych se podival, jak to s tim :after opravdu je, v prvni fazi v JavaScriptu primo v browseru, ktery to umi a v runtime mu zkusil zmenit na neco jineho.