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í
×
eParkomat, startup z ČR, postoupil mezi finalisty evropského akcelerátoru ChallengeUp!
Robot na pivo mu otevřel dveře k opravdovému byznysu
Internet věcí: Propojený svět? Už se to blíží...
dnes 15:30 | IT novinky

Nadace Raspberry Pi představila na svém blogu Raspberry Pi Compute Module 3 (CM3 a CM3L), tj. zmenšené Raspberry Pi vhodné nejenom pro průmyslové využití. Jedná se o nástupce Raspberry Pi Compute Module (CM1) představeného v dubnu 2014. Nový CM3 vychází z Raspberry Pi 3 a má tedy dvakrát více paměti a desetkrát větší výkon než CM1. Verze CM3L (Lite) je dodávána bez 4 GB eMMC flash paměti. Uživatel si může připojit svou vlastní. Představena byla

… více »
Ladislav Hagara | Komentářů: 0
dnes 01:23 | Nová verze

Oficiálně bylo oznámeno vydání verze 3.0 multiplatformního balíku svobodných kancelářských a grafických aplikací Calligra (Wikipedie). Větev 3 je postavena na KDE Frameworks 5 a Qt 5. Krita se osamostatnila. Z balíku byly dále odstraněny aplikace Author, Brainstorm, Flow a Stage. U Flow a Stage se předpokládá jejich návrat v některé z budoucích verzí Calligry.

Ladislav Hagara | Komentářů: 2
včera 15:25 | Nová verze

Bylo oznámeno vydání první RC (release candidate) verze instalátoru pro Debian 9 s kódovým názvem Stretch. Odloženo bylo sloučení /usr jako výchozí nastavení v debootstrap. Vydán byl také Debian 8.7, tj. sedmá opravná verze Debianu 8 s kódovým názvem Jessie.

Ladislav Hagara | Komentářů: 6
včera 13:37 | Zajímavý projekt

1. ledna byl představen projekt Liri (GitHub). Jedná se o spojení projektů Hawaii, Papyros a původního projektu Liri s cílem vyvíjet operační systém (linuxovou distribuci) a aplikace s moderním designem a funkcemi. Včera byl představen Fluid 0.9.0 a také Vibe 0.9.0. Jedná se o toolkit a knihovnu pro vývoj multiplatformních a responzivních aplikací podporující Material Design (Wikipedie) a volitelně také Microsoft Design Language (designový jazyk Microsoft) [reddit].

Ladislav Hagara | Komentářů: 5
14.1. 00:33 | Zajímavý software

Google na svém blogu věnovaném open source představil knihovnu pro komprimaci a dekomprimaci 3D grafiky s názvem Draco. Knihovna bude využívána například v aplikacích pro virtuální a rozšířenou realitu. Porovnání Draco s gzip na YouTube. Zdrojové kódy Draco jsou k dispozici na GitHubu pod licencí Apache 2.0.

Ladislav Hagara | Komentářů: 5
13.1. 17:27 | IT novinky

V loňském roce proběhla úspěšná kampaň na Indiegogo na podporu GPD Win. Jedná se o malý 5,5 palcový notebook a přenosnou herní konzoli v jednom. Předinstalované Windows 10 lze nahradit Linuxem. V únoru by se na Indiegogo měla objevit kampaň na podporu 7 palcového notebooku GPD Pocket.

Ladislav Hagara | Komentářů: 28
13.1. 02:00 | Nová verze

Po pěti měsících od vydání verze 1.0.0 (zprávička) byla vydána verze 2.0.0 frameworku Kirigami (HIG) pro vytváření uživatelských rozhraní mobilních a konvergentních aplikací nad toolkitem Qt. Pro vyzkoušení je určena aplikace pro Android Kirigami gallery.

Ladislav Hagara | Komentářů: 0
12.1. 23:28 | Zajímavý software

Akční hra Lugaru HD od Wolfire Games (recenze) byla uvolněna jako svobodný software, a to včetně dat (pod licencí Creative Commons Attribution – Share Alike). Linuxový port byl v roce 2010 součástí první akce Humble Indie Bundle a engine byl krátce poté uvolněn pod licencí GNU GPL, což vedlo mj. k portu na AmigaOS. Autor mezitím pracuje na pokračování nazvaném Overgrowth.

Fluttershy, yay! | Komentářů: 0
12.1. 14:49 | Bezpečnostní upozornění

Na serveru Jabb.im bylo zveřejněno vyjádření k úniku dat z Jabbim Archive (pastebin). Dump databáze obsahuje komunikaci uživatelů, jejich IP adresy a logy aplikace od října 2015 do března 2016. Celkově se jedná o 8 GB dat, převažujícím jazykem zpráv je čeština a slovenština. O úniku informoval jako první server Motherboard. Jabbim Archive byla službou volitelnou, dostupnou pouze pro VIP uživatele. Podle provozovatele serveru Jabb.im k

… více »
Michal Makovec | Komentářů: 68
12.1. 12:55 | Nová verze

Telegram Desktop, klient služby pro rychlé psaní zpráv Telegram (Wikipedie, zdrojové kódy) pro počítače, byl představen v roce 2013. Dnes byla vydána verze 1.0. Podrobnosti v oznámení na blogu.

Ladislav Hagara | Komentářů: 12
Jak se stavíte k trendu ztenčování přenosných zařízení (smartphony, notebooky)?
 (10%)
 (2%)
 (75%)
 (3%)
 (10%)
Celkem 292 hlasů
 Komentářů: 19, poslední 13.1. 22:02
    Rozcestník
    Reklama

    Dotaz: Generování HTML

    28.5.2008 08:31 jsk | skóre: 7
    Generování HTML
    Přečteno: 993×

    Dobrý den,

    potřebuji poradit s následujícím problémem, mám předpřipravenou stránku v HTML, data jsou reprezentována tabulkou jejímž obsahem jsou odkazy na uložené soubory. Ty jsou vytvářeny (automaticky) v nočních hodinách. Pro nový soubor vždy ráno kolega odstraní komentář a odkaz je pak funkční. Názvy souborů vypadají obecně takto NAZEV_MMDD.html. Rád bych celý proces zjednodušil pomocí skriptu tak, aby skript po spuštění zkontroloval jaké soubory již v adresáři jsou a u nich pak provedl zrušení komentáře.

    Ukázka kódu (obsahu buňky):


     <TD> <A !--HREF="2008/NAZEV_0528.html"--> 28 </A> </TD>

    Nahrazování pomocí SEDu mi poměrně jde, ale nevím jak udělat porovnání oproti výpisu z např. LS a konkrétní hodnoty otestovat. Dokonce jsem přemýšlele o tom odstraňovat komentáře z "čistého" souboru a generovat tak HTML vždy celé.

    Děkuji předem všem! jsk


    Řešení dotazu:


    Odpovědi

    28.5.2008 09:00 Vojtěch Horký | skóre: 39 | blog: Vojtův zápisník | Praha
    Rozbalit Rozbalit vše Re: Generování HTML
    Nahrazování pomocí SEDu mi poměrně jde, ale nevím jak udělat porovnání oproti výpisu z např. LS a konkrétní hodnoty otestovat.

    Možná by se více hodilo použít GAWK, který umít pracovat s více soubory (pomocí getline) - výstup ls uložit bokem (popř. upravit, aby se to dobře porovnávalo) a pak načítat v GAWKu.

    /<td> <a !--HREF=/ {
       soubor = ... # získat název soubor
       while ((getline radka < "seznam") > 0) {
           if (soubor==radka) {
               print("<td ... ")
           }
       } 
       close("seznam")
    }

    Je to jenom hrubý nástřel, navíc GAWK umít číst data i z roury, takže by šlo to ls asi nějak provést i "zevnitř" toho skriptu.

    I am always ready to learn although I do not always like to be taught. (W. Churchill)
    28.5.2008 11:27 marek
    Rozbalit Rozbalit vše Re: Generování HTML

    Dobry den.

    Neni mi uplne jasne zadani.

    Jde o to prevest vypis 'ls NAZEV_[0,1][0-9][0-3][0-9].html | sort' do html?

    Nebo je potreba kontrolovat jmena souboru podle nejakeho seznamu?

    marek

    28.5.2008 15:38 jsk | skóre: 7
    Rozbalit Rozbalit vše Re: Generování HTML

    Děkuji za reakci,

    podle výpisu (třeba i DIR) odkomentovat odkazy v rozcestníku (indexXY.htm) na soubory ve výpisu, pro funkčnost asi nebude nutné vytvářet soubory výpisů, ale pro archivaci je steně budu dělat (v názvu nechám datum).

    Díky jsk

    28.5.2008 16:40 marek
    Rozbalit Rozbalit vše Re: Generování HTML

    Dobry den.

    Stale mi neni jasne proc odkomentovavat?

    Proc proste nezobrazit vsechny soubory, co jsou v tech adresarich?

    Vim ze to neni odpoved na Vas dotaz, ale presto mi to neda...

    Tady je priklad jak jednoduse generovat vypis adresare.

    Marek

    #!/bin/bash
    
    
    
    (cat << EOF
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd" >
    <html lang="cs">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <title>Generování HTML</title>
    </head>
    <body >
    
    <table>
    <tr>
    
    EOF
    
    ls 2008/NAZEV_[0,1][0-9][0-3][0-9].html | sort | sed -e's/^\(.*\)$/<td> <a href="\1" > <\/td>/'
    
    cat << EOF
    
    </tr>
    </table>
    
    </body>
    </html>
    EOF
    ) > indexXY.html
    
    28.5.2008 19:41 jsk | skóre: 7
    Rozbalit Rozbalit vše Re: Generování HTML

    Skvělé a poučné, díky!

    Soubory jako výstup z Vašeho skriptu slouží jako rozcestníky pro uživatele. Standardně se zobrazují v IFRAME formou dvouřádkového kalendáře (čísla dnů se zvýrazněním pro SO a NE - orientace) pro každý měsíc. Dole je LEDEN a nahoře PROSINEC, po měsíci se posunuje </DIV>, který měsíce zbývající do konce roku skryje podle předpisu v CSS. Formát je poměrně je poměrně oblíbený (uživatelstvo) a lehce se edituje vyskytne-li se k jednomu dni více souborů. I vzhledem k tomu, že pro vystavování dat v intranetu nemohu využít server a db hledám řešení, která nám ušetří čas. Pokud by jste mne navedl na něco elegantnějšího než je odkomentovávání, byl bych Vám velice vděčný.

    Děkuji jsk

    PS: na vlastní vynález 'odkomentovávání' jsem byl před dvěma lety docea hrdý :-)

    Josef Kufner avatar 28.5.2008 21:33 Josef Kufner | skóre: 66
    Rozbalit Rozbalit vše Re: Generování HTML
    Jakékoliv ruční editování je hnusná a namahavá práce. A pokud na to sahají lidi, budou s tím jen problémy, protože lidi jsou banda idiotů. Pokud se tímhle budeš řídit, ušetříš si kopec starostí ;-)

    Takže, pokud máš strukturu dat yyyy/něco_mmdd.html, tak bych prostě prošel adresáře, naskládal to do pole a pak už je to hračka. (Píšu to v PHP, nemusíš to mít online - php je i jako comandline interpret.)
    <?
    define('BASE', './');	// musi koncit lomitkem
     
    // z kazdeho roku vyrobi 2D pole $a[mesic][den] = .../rok/soubor
    function load_year($year)
    {
    	$d = opendir(BASE.$year);
    	$a = array();
    	while($i = readdir($a)) {
    		if (preg_match('/[^_]+_([0-9][0-9])([0-9][0-9])\.html/', $a, $p)) {
    			$a[$p[1]][$p[2]] = BASE.$year.'/'.$i;
    		}
    	}
    	closedir($d);
    	return $a;
    }
     
    // najde roky
    function load_all()
    {
    	$d = opendir(BASE);
    	$a = array();
    	while ($i = readdir($d)) {
    		if (is_dir($i)) {
    			$a[$i] = load_year($i);
    		}
    	}
    	closedir($d);
    	ksort($a);
    	return $a;
    }
     
    // pak uz jen vykreslit html...
    echo "<html>...blablabla...\n";
     
    foreach(load_all() as $y_i => $y) {
    	echo "<h2>Rok ".$y_i."</h2>\n";
    	foreach($y as $m_i => $m) {
    		echo "<h3>Měsíc ".$m_i."</h3>\n| ";
    		$d_max = intval(date("t", mktime(0, 0, 0, $m, 1, $y)));
     
    		// dny vykreslime vsecky, i ty, ktere nejsou odkazem
    		for($d = 1; $d < $d_max; $d++) {
    			if (array_key_exists($d, $m)) {
    				echo "<a href='".$m[$d]."'>".$d."</a> |";
    			} else {
    				echo $d." |";
    			}
    		}
    	}
    }
     
    // neco na konec
    echo "...blablabla...</html>\n";
     
    ?>
    
    ps: netestoval jsem to a píšu to z hlavy... no prostě klasickej produkční kód :-D pss: Ten preg_match asi bude chtít pár lomítek.
    Hello world ! Segmentation fault (core dumped)
    28.5.2008 23:04 jsk | skóre: 7
    Rozbalit Rozbalit vše Re: Generování HTML

    Díky moc, máš recht s lidma to bývá zatraceně těžké. Už mi to něco ukazuje, zítra na to "vletím" a až to zmáknu pošlu Ti to k posouzení, tedy jestli můžu.

    Tadle Poradna JE FAKT SKVĚLÁ, co se tu lze všechno naučit! Skoro se divím, že se wokna ještě prodávají (já v nich jedu vlastně na >80% ;-)).

    jsk

    3.6.2008 13:19 jsk | skóre: 7
    Rozbalit Rozbalit vše To arns
    Měl jsem velké oči a ještě jsem se k tomu nedostal, použil jsem ale řešení popsané Gilhadem, je to přesně to co jsem potřeboval v této chvíli, Váš postup bych chtěl použít pro nové obdobné úlohy - děkuji.

    jsk

    28.5.2008 11:48 ams
    Rozbalit Rozbalit vše Re: Generování HTML
    Chcete neco takoveho nebo to chapu spatne?
    perl -pe 's/!--(.*?)--/$1/ if /!--HREF="(.*?)"--/ && -f $1'  soubor.html
    28.5.2008 15:05 jsk | skóre: 7
    Rozbalit Rozbalit vše Re: Generování HTML

    Děkuji za reakci, ale perlu moc nehovím.

    Pokud by jste mi to okomentoval moc by mi to pomohlo, zatím jsem 'dal' zakomentované části na samostané řádky a ty chci porovnávat/měnit oproti výpisu z adresáře kde jsou soubory uloženy. Příklad struktury, ../2008/01/NAZEV_MMDD.html, podle toho zda pro příslušné datum soubor existuje chci měnit stránku ze které je na soubory odkaz.

    Zatím mi to moc nejde.

    Díky za pomoc. jsk

    28.5.2008 15:23 Gilhad | skóre: 20 | blog: gilhadoviny
    Rozbalit Rozbalit vše Re: Generování HTML
    V podstate je to to same, co dela ten muj skript v bashi o odpoved niz (akorat v perlu misto v sedu)
    28.5.2008 11:50 Gilhad | skóre: 20 | blog: gilhadoviny
    Rozbalit Rozbalit vše Re: Generování HTML
    mate na mysli neco takovehoto?
    cd dotycny_adresar
    for i in *.html ; do
      sed -i "s#<A \!--HREF=\"$i\"-->#<A HREF=\"$i\">#g" jiny/nebo/stejny/adresar/index.html
    done
    

    Je to ponekud primitivne primocare, ale pro pricetny pocet souboru to nemusi byt problem
    28.5.2008 15:32 jsk | skóre: 7
    Rozbalit Rozbalit vše Re: Generování HTML

    Díky moc, asi mám (:-),

    ale zatím mi to nepracuje úplně tak jak bych chtěl, hlavně si nejsem jistý jak to udělat když soubor, z kterého se odkazuji na NAZEV_MMDD.HTML, je v jiném adresáři (o dvě úrovně výše). Asi bych to mohl kopírovat, ale nebylo by to asi ani trochu košer že?

    Jestli se na to budete ještě dívat, pak ten kometář je před A (s#<!--A). Nerejpu jen jsem se několikrát na něčem podobném dlouho zasek.

    Děkuju, dlouho jsem nic nenapsal a předtím to bylo také nebylo nic světoborného.

    jsk

    Řešení 1× (jsk (tazatel))
    28.5.2008 23:16 Gilhad | skóre: 20 | blog: gilhadoviny
    Rozbalit Rozbalit vše Re: Generování HTML
    asi by to chtelo, abyste vedel trosku vic o psani skriptu v shellu, tohle byljednoduchy zaklad, z ktereho se da odpichnout dal ...

    Ten skript sel do adresare, kde mate ty soubory NAZEV_MMDD.HTML, cesta kam to ma prepisovat muze klidne byt ../../soubor_odkud_to_odkazuju.html

    Pokud tam potrebujete i cestu, tak jde

    1) pripsat do toho skriptu (neelegentni)

    2) pridat jako parametr

    3) misto for i in *.html pouzit for i in */*/*.HTML

    4) prochazet to misto for-cyklu findem ...

    Porad je zakladem myslenka, ze v sedu nahradite zakomentovany odkaz nezakomentovanym.

    napriklad 2 (udelame si skript uprava.sh):
    #! /bin/bash
    # spustit s parametrem pro adresar 
    for i in $1/*.HTML ; do
      sed -i "s#<\!--A HREF=\"$i\"-->#<A HREF=\"$i\">#g" index.html
    done
    
    spusteni potom:
    uprava.sh 2008/05
    
    29.5.2008 12:31 jsk | skóre: 7
    Rozbalit Rozbalit vše Re: Generování HTML

    Děkuji, je to ONO, hodně jsem se poučil, jen mi to nefunguje jako script, pouze z řádky. Nevíte co dělám špatně? Normálně mi *.sh běhá; používá cygwin.

    jsk

    30.5.2008 07:24 jsk | skóre: 7
    Rozbalit Rozbalit vše Re: Generování HTML

    Už to běží, jen jsem soubor uložil v unixovém formátu a utf-8.

    jsk

    11.6.2008 17:53 Gilhad | skóre: 20 | blog: gilhadoviny
    Rozbalit Rozbalit vše Re: Generování HTML
    Na tvuj dotaz v mailu - v tom skriptu musi na 1. radku byt mezera mezi "#!" a "/bin/bash"

    Mail se mi vratil jako nedorucitelny, tak odpovidam tady
    11.6.2008 20:15 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: Generování HTML
    K čemu mezera :)
    11.6.2008 20:17 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: Generování HTML
    "There have been rumours that some old versions of UNIX look for the normal shebang followed by a space and a slash ("#! /"), but this appears to be untrue." [Wikipedia]
    16.6.2008 16:14 Gilhad | skóre: 20 | blog: gilhadoviny
    Rozbalit Rozbalit vše Re: Generování HTML
    jen mě zaráží hláška: "script.sh: line 1: $\357\273\277#!': command not found"

    tak me napada, nema ten soubor ulozeny v utf-8 nebo necem podobnem, co na zacatek nacpe nejake normalne neviditelne paznaky?
    16.6.2008 17:07 jsk | skóre: 7
    Rozbalit Rozbalit vše Re: Generování HTML

    Určitě má, stahuju to Httrackem nebo Teleportem a pak různě rozebírám a skádám pomocí sedu grepu apod. pod cygwinem. Každopádně děkuji za uklidnění, protože bych o dovolené nerad trnul, že mi budou volat co s tím mají dělat a obávám se, že bych se stejně ani nedozvěděl o co jde.

    jsk

    16.6.2008 10:09 jsk | skóre: 7
    Rozbalit Rozbalit vše Re: Generování HTML

    Dobrý den a díky,

    začal jsem si na ty mezery dávat pozor, ale vyřešilo se to i tím, že jsem daný kód použil jako součást většího skriptu.

    Potřeboval bych poradit ještě s jednou věcí, nemám příliš zkušeností s psaním skriptů a tak není mi příliš jasné, zda je lepší psát více kratších skriptů nebo skripty delší. Poslední skript má něco přes 700 znaků, samozřejmě, že část zabírají názvy a cesty. Myslel jsem si že lépe je jít cestou většího počtu skriptů, ale pak mám problém s jejich spouštěním. Potřebuji je spouštět automaticky v určitý čas, ale v cygwinu mi to moc nejde s cronem a řešení přes baťáky se mi moc nezdá. Vlastně nevím jak se píše obdoba bat souboru, který jiné skripty spouští.

    Předm děkuji.

    jsk

    16.6.2008 13:43 jsk | skóre: 7
    Rozbalit Rozbalit vše Re: Generování HTML

    Už vím,

    bash skript1.sh && sh skript2.sh

    Ale stále nevím jestli jeden velký skript nebo více skriptů malých.

    jsk

    16.6.2008 16:18 Gilhad | skóre: 20 | blog: gilhadoviny
    Rozbalit Rozbalit vše Re: Generování HTML
    zalezi na tom, co ty skripty maji delat - nekdy je lepsi jeden velky, jindy dava vetsi smysl vice malych

    Obecne mam vetsinu skriptu tak velkych, aby se vesly na jednu obrazovku (omezeni zhora, ale nekdy radsi pouziju foldovani) a zaroven, aby kazdy delal nejakou rozumnou ucelenou akci, ktera ma smysl i sama o sobe (omezeni zdola).

    Ale kazde dobre pravidlo ma i sve jeste lepsi vyjimky :)
    16.6.2008 17:12 jsk | skóre: 7
    Rozbalit Rozbalit vše Re: Generování HTML

    Budu se asi muset omezit hlavně zdola, momentálně sedím před 24" LCD :-) na 15" nb to pak vypadá trochu jinak.

    Pokusím se dělat více malých souborů, když už vím jak je dávat dohromady, aspoň se mi budou lépe psát komentáře. Díky.

    jsk

    17.6.2008 11:17 mlz
    Rozbalit Rozbalit vše Re: Generování HTML
    Používám pro jednu věc jeden skript, který eventuálně volá množství skriptů malých (typicky pro použití v cronu)

    V Jednom velkém skriptu je obtížné míchat jazyky

    Založit nové vláknoNahoru

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

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