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 06:00 | Zajímavý článek

    Nové číslo časopisu Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 162 (pdf).

    Ladislav Hagara | Komentářů: 0
    dnes 05:55 | IT novinky

    Sdružení CZ.NIC, správce české národní domény, zveřejnilo Domain Report za rok 2025 s klíčovými daty o vývoji domény .CZ. Na konci roku 2025 bylo v registru české národní domény celkem 1 515 860 s koncovkou .CZ. Průměrně bylo měsíčně zaregistrováno 16 222 domén, přičemž nejvíce registrací proběhlo v lednu (18 722) a nejméně pak v červnu (14 559). Podíl domén zabezpečených pomocí technologie DNSSEC se po několika letech stagnace výrazně

    … více »
    Ladislav Hagara | Komentářů: 0
    včera 18:33 | IT novinky

    Google představil telefon Pixel 10a. S funkci Satelitní SOS, která vás spojí se záchrannými složkami i v místech bez signálu Wi-Fi nebo mobilní sítě. Cena telefonu je od 13 290 Kč.

    Ladislav Hagara | Komentářů: 2
    včera 16:22 | Komunita

    Byl publikován přehled dění a novinek z vývoje Asahi Linuxu, tj. Linuxu pro Apple Silicon. Fedora 43 Asahi Remix s KDE Plasma už funguje na M3. Zatím ale bez GPU akcelerace. Vývojáře lze podpořit na Open Collective a GitHub Sponsors.

    Ladislav Hagara | Komentářů: 0
    včera 14:00 | IT novinky

    Red Hat představil nový nástroj Digital Sovereignty Readiness Assessment (GitHub), který organizacím umožní vyhodnotit jejich aktuální schopnosti v oblasti digitální suverenity a nastavit strategii pro nezávislé a bezpečné řízení IT prostředí.

    Ladislav Hagara | Komentářů: 0
    včera 12:22 | Zajímavý software

    BarraCUDA je neoficiální open-source CUDA kompilátor, ale pro grafické karty AMD (CUDA je proprietární technologie společnosti NVIDIA). BarraCUDA dokáže přeložit zdrojové *.cu soubory (prakticky C/C++) přímo do strojového kódu mikroarchitektury GFX11 a vytvořit tak ELF *.hsaco binární soubory, spustitelné na grafické kartě AMD. Zdrojový kód (převážně C99) je k dispozici na GitHubu, pod licencí Apache-2.0.

    NUKE GAZA! 🎆 | Komentářů: 1
    17.2. 17:00 | IT novinky

    Podvodné reklamy na sociálních internetových platformách, jako je Facebook, Instagram nebo X, vytvořily loni v Česku jejich provozovatelům příjmy 139 milionů eur, tedy zhruba 3,4 miliardy korun. Proti roku 2022 je to nárůst o 51 procent. Vyplývá to z analýzy Juniper Research pro společnost Revolut. Podle výzkumu je v Česku zhruba jedna ze sedmi zobrazených reklam podvodná. Je to o 14,5 procenta více, než je evropský průměr, kde je podvodná každá desátá reklama.

    Ladislav Hagara | Komentářů: 7
    17.2. 15:44 | Nová verze

    Desktopové prostředí KDE Plasma bylo vydáno ve verzi 6.6 (Mastodon). Přehled novinek i s videi a se snímky obrazovek v oficiálním oznámení. Podrobný přehled v seznamu změn.

    Ladislav Hagara | Komentářů: 0
    17.2. 03:22 | Nová verze

    Czkawka a Krokiet, grafické aplikace pro hledání duplicitních a zbytečných souborů, byly vydány ve verzi 11.0. Podrobný přehled novinek v příspěvku na Medium. Od verze 7.0 je vedle frontendu Czkawka postaveného nad frameworkem GTK 4 vyvíjen nový frontend Krokiet postavený nad frameworkem Slint. Frontend Czkawka je už pouze v udržovacím módu. Novinky jsou implementovány ve frontendu Krokiet.

    Ladislav Hagara | Komentářů: 27
    17.2. 02:00 | Zajímavý článek

    Jiří Eischmann na svém blogu publikoval článek Úvod do MeshCore: "Doteď mě radioamatérské vysílání úplně míjelo. Když jsem se ale dozvěděl, že existují komunity, které svépomocí budují bezdrátové sítě, které jsou nezávislé na Internetu a do značné míry taky elektrické síti a přes které můžete komunikovat s lidmi i na druhé straně republiky, zaujalo mě to. Když o tom přede mnou pořád básnili kolegové v práci, rozhodl jsem se, že to zkusím taky.

    … více »
    Ladislav Hagara | Komentářů: 4
    Které desktopové prostředí na Linuxu používáte?
     (18%)
     (6%)
     (0%)
     (11%)
     (27%)
     (3%)
     (4%)
     (2%)
     (12%)
     (27%)
    Celkem 904 hlasů
     Komentářů: 25, poslední 3.2. 19:50
    Rozcestník

    Validace HTML v rámci testů

    15.12.2009 07:38 | Přečteno: 1383× | programování | Výběrový blog | poslední úprava: 15.12.2009 07:41

    Dělám na jedné webové aplikaci, u které bych chtěl kontrolovat HTML několika hlavních stránek, jestli jsem se někde neuklepl. Ruční validace se nehodí, protože vyžaduje čas a úsilí a tím pádem by šla dřív nebo později stranou: Pokud není řízení kvality automatizované, jako by nebylo.™ Vzpomněl jsem si, že validátor HTML5 poskytuje webové API.

    Aplikace je napsaná v Perlu s použitím Catalystu. Má jakous takous sadu automatických testů, takže se nabízelo v rámci testování překontrolovat i validitu:
    use utf8;
    use Test::Slow;
    use Test::More;
    use Catalyst::Test 'Foo';
    use LWP::UserAgent;
    
    sub is_valid {
        my $code = shift;
        my $ua = LWP::UserAgent->new;
        my $url = 'http://validator.nu/?out=gnu';
        my $response = $ua->post($url, Content_Type => 'text/html', Content => $code);
        return $response->as_string !~ /error/;
    }
    
    sub check_url {
        my $url = shift;
        my $content = get($url);
        return is_valid($content);
    }
    
    # TODO: Fails on redirected URLs
    ok check_url($_), "Page is valid: $_" for qw{
        /
        /foo/
        /foo/bar/
    };
    
    done_testing;
    Funguje to krásně. Test::Slow je můj vlastní výmysl, kterým odděluju „jednotkové“ (čti „rychlé“) testy od ostatních, abych mohl rychlejší testy spouštět častěji:
    package Test::Slow;
    
    use strict;
    use Test::More;
    
    BEGIN {
        plan(skip_all => 'Slow test.') if $ENV{QUICK_TEST};
    }
    
    1;
    
           

    Hodnocení: 100 %

            špatnédobré        

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    15.12.2009 07:49 retro
    Rozbalit Rozbalit vše Re: Validace HTML v rámci testů
    Taky by to šlo přes http://validator.w3.cz/#validate-by-input a CURL. Neznám HTML5 validator.
    zoul avatar 15.12.2009 07:55 zoul | skóre: 43 | blog: | Boskovice
    Rozbalit Rozbalit vše Re: Validace HTML v rámci testů
    Asi ano. (Z Chamurappiho jsem míval trochu osypky, ale věřím, že to myslí dobře :) Validator.nu je dobrý v tom, že umí výsledky vracet ve strojově zpracovatelném formátu. Zatím to nevyužívám ($response->as_string !~ /…/), ale výhledově bych chtěl, aby test mohl rovnou poukázat na chybu.
    15.12.2009 08:28 Jan Grmela | skóre: 45 | blog: Kilo šťávy z lachtana | Brno
    Rozbalit Rozbalit vše Re: Validace HTML v rámci testů
    Díky! Něco takového jsem teď potřeboval. Zákazník si vymyslel, že chce ve fóru rich text editor a já už si představoval ty hrůzny s validováním HTML, co z toho polezou :-)

    P.S.: Ano, aplikace je v Catalystu
    hikikomori82 avatar 15.12.2009 08:49 hikikomori82 | skóre: 18 | blog: foobar | Košice
    Rozbalit Rozbalit vše Re: Validace HTML v rámci testů
    htmLawed
    16.12.2009 02:10 Jan Grmela | skóre: 45 | blog: Kilo šťávy z lachtana | Brno
    Rozbalit Rozbalit vše Re: Validace HTML v rámci testů
    Dík, zkusím.
    Josef Kufner avatar 15.12.2009 09:56 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Validace HTML v rámci testů
    Díky. Dobrá inspirace. Na testování validity html jsem úplně zapomněl. Vlastně je to věc, která může pomoct odhalit i spoustu jiných problémů... třeba rozbitý strom z <li>, protože se porouchalo menu a podobně...
    Hello world ! Segmentation fault (core dumped)
    15.12.2009 10:59 petr_p | skóre: 59 | blog: pb
    Rozbalit Rozbalit vše Re: Validace HTML v rámci testů
    Jak je to rychlé? Nebylo by rychlejší použít lokální DTD / XML Schema validaci a některá zvláštní pravidla, které schéma neumí popsat prostě vynechat?
    zoul avatar 15.12.2009 12:07 zoul | skóre: 43 | blog: | Boskovice
    Rozbalit Rozbalit vše Re: Validace HTML v rámci testů
    Pomalé testy pouštím jen před nahráváním nové verze na web, takže je to rychlé „dost“. Konkrétně šest vteřin na čtyři URL včetně režie Perlu a Catalystu. Místní validátor by byl určitě rychlejší, ale tohle je přenositelnější a nemusím se o nic starat. Pokud zrovna nejsem připojený k netu nebo vypadne Validator.nu, mám samozřejmě smůlu.
    15.12.2009 11:40 Andrej Herceg | skóre: 43
    Rozbalit Rozbalit vše Re: Validace HTML v rámci testů
    Už dosť dlho používam Offline HTMLHelp.com Validator.

    Ak editor podporuje nastavenia pre chybové hlášky (prípadne dokáže spracovať chybové hlášky, ktoré vie spracovať aj Emacs), tak nie je problém potom skákať na riadok, v ktorom bola chyba... (napr. presne tak som to používal v editore Bluefish).
    15.12.2009 13:39 happy barney | skóre: 34 | blog: dont_worry_be_happy
    Rozbalit Rozbalit vše Re: Validace HTML v rámci testů
    a čo toto? len som našiel, neskúšal ... HTML::Validator
    15.12.2009 15:36 Radek Miček
    Rozbalit Rozbalit vše OT: Generování pouze validního HTML
    Bylo by hezké programovat v takovém jazyce, který by byl schopen prostřednictvím svého typového systému zaručit, že generované HTML je validní.
    zoul avatar 15.12.2009 16:05 zoul | skóre: 43 | blog: | Boskovice
    Rozbalit Rozbalit vše Re: OT: Generování pouze validního HTML
    K tomu by asi stačilo použít knihovnu. (Ačkoliv si zrovna neuvědomuju, jestli by všechny požadavky validity šly snadno ošetřit bez velkých opičáren v API.)
    15.12.2009 16:13 petr_p | skóre: 59 | blog: pb
    Rozbalit Rozbalit vše Re: OT: Generování pouze validního HTML
    Na to stačí v nejhorším případě po každé úpravě stromu zavolat validátor. Čekám, že existující knihovny to mají řešeno chytřeji. Když jsem používal javovou dom4j, tak tam to fungovalo.
    15.12.2009 17:14 Radek Miček
    Rozbalit Rozbalit vše Re: OT: Generování pouze validního HTML
    Abych to upřesnil, myslel jsem, že by už kompilátor ověřoval validitu generovaného HTML, tj. jazyk nebo knihovna by neumožnila napsat kód generující nevalidní HTML.
    15.12.2009 18:14 petr_p | skóre: 59 | blog: pb
    Rozbalit Rozbalit vše Re: OT: Generování pouze validního HTML

    V době překladu těžko, protože jedna z podmínek validity HTML je, že element a nesmí být vnořený. Jakmile budete mít v programu smyčku, neexistuje způsob, jak bez spuštění programu rozhodnout, zda program vloží odkaz do odkazu. To je problém principiální, nikoliv neschopnost programátorů.

    Pokud jde o knihovnu, tak za běhu je možné docílit toho, že se to nikdy nestane. Ale to už je za běhu. Jak jsem psal, třeba dom4j to umí. Objektu, přes který se buduje dokument se na počátku vrazí DTD a když aplikace zkusí porušit pravidla, tak dané volání knihovny selže.

    15.12.2009 20:34 Jirka P
    Rozbalit Rozbalit vše Re: OT: Generování pouze validního HTML
    Tenhle argument mi nějak nesedí - to pravidlo není principiálně odlišné od jiných (třeba že TABLE obsahuje THEAD, TBODY a TFOOT). Pokud byste udělal použitelný typový systém (v jakémkoli jazyce), který umí všechna pravidla HTML z DTD, tak by to šlo upravit na ta vnořená áčka IMHO lehce. Ale i to první by byl strašný nepoužitelný opruz.
    15.12.2009 21:08 Radek Miček | skóre: 23 | blog: radekm_blog
    Rozbalit Rozbalit vše Re: OT: Generování pouze validního HTML

    Já myslím, že by toho šlo dosáhnout i v běžných jazycích jako je třeba Java. Akorát bych potřeboval docela dost typů -- v podstatě bych do typů zakódoval stavový automat, tj, typy by byly stavy a funkce/metody přechody a jejich návratový typ by určoval cílový stav.

    15.12.2009 21:37 petr_p | skóre: 59 | blog: pb
    Rozbalit Rozbalit vše Re: OT: Generování pouze validního HTML
    Praktický typový systém má konečné množství typů, tedy konečný automat, tedy regulární gramatika. Jenže (ořezané) HTML je bezkontextová.
    15.12.2009 22:11 Radek Miček | skóre: 23 | blog: radekm_blog
    Rozbalit Rozbalit vše Re: OT: Generování pouze validního HTML
    Ale já tu bezkontextovost nepotřebuji. Představte si, že chci třeba generovat do sebe zanořené divy, pak použiji třeba funkci create_div(obsah_divu) a ona mi vygeneruje jak otevírací, tak i uzavírací tag.
    15.12.2009 21:28 petr_p | skóre: 59 | blog: pb
    Rozbalit Rozbalit vše Re: OT: Generování pouze validního HTML
    Asi s A problém nebude, protože to je lokální dvou stavová záležitost, ale co taková jedinečnost identifikátorů (@id, @name). Na to asi CFL gramatika stačit nebude. Nebo uživatelsky zadefinované entity v lokálním DTD. Nejsem si jistý, že by to šlo. Sice se tvrdí, že HTML je CFL, ale na druhou stranu se hned dodává (nebo zapomíná dodat), že se tím myslí jazyk bez DTD a ostatních vychytávek. A nikde jsem gramatiku nebo důkaz neviděl.
    15.12.2009 22:02 Radek Miček | skóre: 23 | blog: radekm_blog
    Rozbalit Rozbalit vše Re: OT: Generování pouze validního HTML

    Máte pravdu, že jedinečnost id do typového systému budu kódovat dost těžko. Pokud bych chtěl zajít do extrému, tak mohu využít toho, že všechna slova lze očíslovat a čísla už v typovém systému reprezentovat mohu, takže by součástí typu muselo být i jaká id byla použita. Nicméně má to dost problémů.

    Další řešení je, že se id budou generovat automaticky -- nicméně, to už je podvod, protože to řeším za běhu.

    A třetím řešením je využít možnosti spouštět vlastní kód při běhu kompilátoru (pokud to jazyk podporuje), pak lze ověřit, zda-li id už nebylo použito.

    15.12.2009 20:44 Radek Miček | skóre: 23 | blog: radekm_blog
    Rozbalit Rozbalit vše Re: OT: Generování pouze validního HTML

    Přesněji mám na mysli něco jako WASH -- ten sice nezaručuje úplnou validitu nicméně s troškou snahy by se i to mohlo podařit.

    že element a nesmí být vnořený. Jakmile budete mít v programu smyčku, neexistuje způsob, jak bez spuštění programu rozhodnout

    Takový kód by se neměl vůbec přeložit. (Samozřejmě nevylučuji, že nastane situace, kdy program generuje validní kód a kompilátor ho odmítne, protože si tím není jistý. To je obecně nerozhodnutelné -- redukcí na halting problém.)

    Pro tento účel může být zajímavý jazyk OCamlDuce viz příklad.

    Jendа avatar 15.12.2009 18:22 Jendа | skóre: 78 | blog: Jenda | JO70FB
    Rozbalit Rozbalit vše Re: Validace HTML v rámci testů
    Pochopil jsem správně, že by to šlo udělat i lokálně pomocí tohoto?
    zoul avatar 15.12.2009 18:46 zoul | skóre: 43 | blog: | Boskovice
    Rozbalit Rozbalit vše Re: Validace HTML v rámci testů
    Ano.
    Jendа avatar 15.12.2009 21:07 Jendа | skóre: 78 | blog: Jenda | JO70FB
    Rozbalit Rozbalit vše Re: Validace HTML v rámci testů
    A… proč se to tedy posílá nějaké cizí službě?
    zoul avatar 16.12.2009 07:18 zoul | skóre: 43 | blog: | Boskovice
    Rozbalit Rozbalit vše Re: Validace HTML v rámci testů
    Dobrá otázka :) (1) Na Validator.nu jsem si zvykl, když ještě ostatní validátory nepodporovaly HTML5. Když jsem teď začal přemýšlet nad validací, na místní validátory jsem úplně zapomněl. (2) Místní validátor je neperlová závislost, kterou bych musel udržovat na produkčním serveru a případně na všech mašinách, na kterých budu chtít aplikaci vyzkoušet. Momentálně jsou všechny závislosti řešitelné čistě přes CPAN – dokonce ani Apache nepotřebuju, a to je pěkné. (3) Chtěl jsem si vyzkoušet, jak rychle se dá napsat klient.

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.