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 18:22 | IT novinky

    V uplynulých dnech byla v depu Českých drah v Brně-Maloměřicích úspěšně dokončena zástavba speciální antény satelitního internetu Starlink od společnosti SpaceX do jednotky InterPanter 660 004 Českých drah. Zástavbu provedla Škoda Group. Cestující se s InterPanterem, vybaveným vysokorychlostním satelitním internetem, setkají například na linkách Svitava Brno – Česká Třebová – Praha nebo Moravan Brno – Břeclav – Přerov – Olomouc.

    Ladislav Hagara | Komentářů: 0
    dnes 13:11 | Nová verze

    Byla vydána nová verze 8.7.0 správce sbírky fotografií digiKam (Wikipedie). Přehled novinek i s náhledy v oficiálním oznámení (NEWS). Nejnovější digiKam je ke stažení také jako balíček ve formátu AppImage. Stačí jej stáhnout, nastavit právo ke spuštění a spustit.

    Ladislav Hagara | Komentářů: 0
    dnes 12:22 | IT novinky

    Před 30 lety, k 1. 7. 1995, byl v ČR liberalizován Internet - tehdejší Eurotel přišel o svou exkluzivitu a mohli začít vznikat první komerční poskytovatelé přístupu k Internetu [𝕏].

    Ladislav Hagara | Komentářů: 4
    dnes 11:33 | Nová verze

    Byla vydána (𝕏) nová verze 7.4 open source monitorovacího systému Zabbix (Wikipedie). Přehled novinek v oznámení na webu, v poznámkách k vydání a v aktualizované dokumentaci.

    Ladislav Hagara | Komentářů: 0
    dnes 05:44 | Bezpečnostní upozornění

    Balíček s příkazem sudo byl vydán ve verzi 1.9.17p1. Řešeny jsou zranitelnosti CVE-2025-32462 (lokální eskalace práv prostřednictvím volby host) a CVE-2025-32463 (lokální eskalace práv prostřednictvím volby chroot).

    Ladislav Hagara | Komentářů: 6
    dnes 05:22 | IT novinky

    Do služeb Seznam.cz se lze nově přihlásit pomocí služby MojeID [𝕏].

    Ladislav Hagara | Komentářů: 1
    dnes 03:33 | Bezpečnostní upozornění

    Bezpečnostní výzkumníci zveřejnili informace o osmi zranitelnostech, které postihují více než 700 modelů tiskáren, skenerů a štítkovačů značky Brother. Bezpečnostní upozornění vydali také další výrobci jako Fujifilm, Ricoh, Konica Minolta a Toshiba. Nejzávažnější zranitelnost CVE-2024-51978 umožňuje útočníkovi vzdáleně a bez přihlášení získat administrátorská oprávnění prostřednictvím výchozího hesla, které lze odvodit ze

    … více »
    Ladislav Hagara | Komentářů: 0
    včera 16:00 | Komunita

    Společnost Oracle vlastní ochrannou známku JAVASCRIPT. Komunita kolem programovacího jazyka JavaScript zastoupena společností Deno Land vede právní bitvu za její osvobození, viz petice a otevřený dopis na javascript.tm. Do 7. srpna se k nim má vyjádřit Oracle (USPTO TTAB).

    Ladislav Hagara | Komentářů: 6
    včera 13:11 | IT novinky

    Byl představen samostatný rádiový modul Raspberry Pi Radio Module 2 s Wi-Fi a Bluetooth.

    Ladislav Hagara | Komentářů: 6
    včera 12:44 | Upozornění

    Certifikační autorita Let’s Encrypt ukončila k 4. červnu zasílání e-mailových oznámení o vypršení platnosti certifikátů. Pokud e-maily potřebujete, Let’s Encrypt doporučuje některou z monitorovacích služeb.

    Ladislav Hagara | Komentářů: 0
    Jaký je váš oblíbený skriptovací jazyk?
     (59%)
     (28%)
     (7%)
     (2%)
     (0%)
     (1%)
     (3%)
    Celkem 336 hlasů
     Komentářů: 16, poslední 8.6. 21:05
    Rozcestník

    Prosba o náměty: jednoduchý markup + python (1)

    13.3.2009 19:07 | Přečteno: 969× | Programování

    Kdysi jsem si chtěl udělat vlastní webové stránky. Hezké, čisté jednoduché. Ve své třetí verzi jsou stále ve vývoji a technologii jsem věnoval tolik času, že se příliš nedostává na obsah. Vyzkoušel jsem všechny možné jazyky, technologie, CMS, frameworky a jiné buzzwordy, bez přílišného výsledku. Přestože si rád hraju s různými technologiemi, pořád je to pro mě hlavně o obsahu a pohodlná práce s ním je pro mě klíčová. Představuji si web, který se točí kolem dokumentu, jako původní ideály prastarého HTML, jen trochu pohodlnější. Ovšem kromě lidsky zpracovatelného obsahu (nápady, zamyšlení, pohádky...) tu máme i obsah, u kterého je výhodnější, aby za nás udělal práci stroj. U projektů chci automaticky generovat sekci stažení podle souborů v download adresáři, zobrazovat changelogy, etc. Myšlenka je jednoduchá — zkombinovat krásu jednoduchých značkovacích jazyků (Markdown, Textile, RST...) se silou programovacího jazyka (v tomto případě Pythonu) vloženého do dokumentu trochu jako PHP...

    Co se dá od takového jazyka očekávat?

    0. Přirozenost — co nejvíce se přiblížit lidskému myšlení, aby stálo minimální úsilí převést myšlenku do strojem zpracovatelné podoby. Minimalizovat pomyslnou bariéru mezi rozmanitostí lidské mysli a omezeností stroje.

    1. Jednoduchost — abych nemusel mít na zdi přivěšenou referenční příručku

    2. Neukecanost — (X)HTML je dost "ukecané" (i když oproti Javě úplný břídil) — moc píšete a málo dostanete. Rád bych se vyjádřil za pomoci minimálního množství zbytečných znaků.

    3. Univerzálnost — narozdíl od jednoduchých značkovacích jazyků bych rád plně využil plnou množinu XHTML tagů — bez přímého vkládání XHTML kódu, které většinou není řešeno příliš šťastně (např. nejde používat jednoduché značky uvnitř XHTML bloku)

    4. Rozšiřitelnost — možnost vytvářet si vlastní "tagy" či příkazy, které se mohou nějakým způsobem převést na XHTML. Ne všechno se dá řešit přes CSS a ne vždy je to žádoucí. V ideálním případě obecně rozšiřitelná syntaxe (prostřednictvím nějakých regexů či gramatik), aby se vlastní příkazy daly vkládat nejen použitím jakési obecné syntaxe, ale třeba i jejich vlastní. Základ by měl obsahovat v ideálním případě jen naprosto minimální obecnou syntaxi, zbytek doplní jednotlivé moduly. Dá-li Bůh.

    5. Kontextovost — plně kontextová gramatika, která např. umožní zpracování všech řádkových značek uprostřed nově vytvořeného blokového tagu, který o nich nemusí mít ani ponětí. Prostě nastaví, že chce obsah zpracovat v řádkovém kontextu.

    6. Programovatelnost — podpora rozumného vkládání Pythoního kódu (případně s rozšířením na další programovací jazyky), blokový exec příkaz, klasická eval syntaxe $proměnná a ${výraz}. Jednoduché vkládání řídících konstrukcí (if, for, ...), jejihž obsahem není kód, ale kus dokumentu. Vhodné pro generovaná data jako tabulky apod.

    7. Objektovost — každý "kus dokumentu" — tedy nějaký text, prvek, nebo jejich posloupnost, i celý dokument, by měl být schopen být reprezentován nějakým objektem — nad kterým půjde udělat nějaké zpracování, a hlavně jej půjde na nějaké místo nějakého dokumentu zase vložit — tímhle by se daly řešit layout šablony a podobné

    8. Sémantičnost — výsledkem by měly být výhradně sémantické značky, i při použití vlastních. Vzhled se vyřeší odděleně. Minimalizovat "režijní" tagy nutné z technických důvodů (i když to ne vždy lze).

    9. Lineárnost — zpracování lineárním, ideálně jednoprůchodovým parserem, bez nutnosti přednačtení celého vstupu do paměti. Možnost zpracování dat z pajpy.

    10. Strukturovanost — jasná, logická, vnořovatelná struktura. Musí být jasné co k čemu patří. Nepoužívat pevné úrovně nadpisů (kdo se s tím má přepisovat, když zjistí, že chce celou sekci zabalit do jiné?)

    Jak to provést?

    Jednak je třeba zachovat jednoduchou syntaxi, na kterou jsou všichni zvyklí (prázdný řádek oddělující odstavce, *zvýraznění*, etc.), ale druhak také vytvořit syntaktická pravidla obecná, pro vkládání libovolných příkazů, která ovšem nesmí být příliš složitá nebo jít na obtíž. Ideálně by si měla vystačit s minimálním počtem speciálních znaků, aby ostatní zbyly na "volná" syntaktická pravidla.

    Následuje spíše taková sbírka hrubých nápadů, rád budu za jakékoliv připomínky:

    Základem syntaxe je příkaz. Každý příkaz musí mít dopředu definováno, v jakém kontextu/režimu se může vyskytovat. Celý parser funguje jako takový state machine, svým způsobem. Žádný příkaz nemůže být současně řádkový i blokový, protože by se nepoznalo, o který případ jde, pokud by se vyskytl na začátku bloku.

    Každý příkaz má parametry, nejspíše poziční i pojmenované, jako jsme zvyklí z Pythonu, a případný textový obsah, který může případně obsahovat i další prvky. U blokových příkazů jsou možné dvě základní podoby syntaxe: odsazená (nám Pythonistům dobře známá) a s explicitním ukončením (ala Ruby či Pascal). Myslím, že obě mají něco do sebe (při psaní textu by odsazení mohlo být nepříjemné, ale v dokumentu, kde převládá struktura — např. layoutu stránek — by zvýšilo přehlednost), proč tedy neimplementovat obě? Třeba takto:

    :section
    text
    :section
    podsekce
    :end
    pokračuje sekce
    :end
    

    a :section: Tady máme nějaký text :code: and some(code) a tak dále...

    Samozřejmě případně libovolně kombinovat. Dvojtečka jako začátek příkazu je používána z čistě estetických důvodů — pokud by se ukázalo, že je potřeba v textu příliš často, není problém zvolit jiný znak. Jinak se samozřejmě dá escapovat příkazem ::.

    Pokud mají inline příkazy textový obsah, asi by odsazení nebylo příliš vhodné, myslím, že docela hezky by mohl vypadat například následující zápis:

    Toto je odstavec s :em{zvýrazněným} písmem a odkazem na
    :link http://seznam.cz;
    

    Středník je nutný aby se poznal konec příkazu, protože narozdíl od blokového, který můžeme uzavřít koncem řádku, za ním ještě může následovat další text. Ovšem po ukončovací } již není třeba, jak jistě všichni céčkaři chápou;)

    S takto překvapivě jednoduchou syntaxí, která si vyžádala obětování defacto dvou znaků (v kontextu běžného textu se mohou objevit jen : a }) už se toho dá udělat docela hodně. A na první pohled to vypadá i čitelně:

    :header První dokument 
    :section
    :header Úvod
    V dokumentu se mohou vyskytovat různé věci. Třeba takové
    :img obrazky.png Obrázky;, :link http://seznam.cz{
    Odkazy}.
    :if 'MSIE' not in environ['HTTP_USER_AGENT']:
        :link #{:img $logo; :)}
        Ony tam jdou i obrázkové odkazy, ale Exploreristům
        :strong{ani muk}.
    :end /*konec sekce*/
    

    Ale jistě by se to dalo udělat ještě čitelněji s trochou syntax sugaru...

    První dokument
    ==============
    
    Úvod
    <<<< /*nadpis začánající sekci — jen ukázka, nevím, jestli
           to k něčemu bude */
    :defimg logoimg $logo
    :defimg obr obrazky.png Obrázky
    :deflink imglink #{[logoimg]{logo} :)}
    :deflink ukazka http://seznam.cz{Odkazy}
    V dokumentu se mohou vyskytovat různé věci. Třeba takové 
    [obr], [ukazka].
    :if 'MSIE' not in environ['HTTP_USER_AGENT']
        [imglink]
        Ony tam jdou i obrázkové odkazy, ale Exploreristům
        **ani muk**
    :end MSIE /*end ignoruje vše za ním — můžeme si třeba popsat co končí*/
    >>> /*konec sekce; nic lepšího mě zrovna nenapadlo*/
    

    Základní trik se jmenuje vkládané objekty a ve většině podobných věcí je dnes běžný. Prostě si definuji objekt (odkaz, obrázek, …) a později se na něj odkazuji. Jen narozdíl od jednoduchých jazyků nebude v duchu průběhu programu shora dolů možné implementovat používání objektů nad jejich definicí, třeba všechny odkazy definovat na konci odstavce, etc.

    Při samotném vložení objektu se někdy hodí změnit/doplnit určité parametry, jako např. v ukázce výše textový obsah. Měnit můžeme i jiné parametry, např. [mujimg alt=Nějaký popisek|title=Titulek] (možná by byla přijatelnější qouted syntaxe [mujimg alt="Nějaký popisek" title=Titulek] ...

    Ukázky zmíněné víše jsou jen takovým hrubým nástinem obecné idey a rád bych slyšel také názory a náměty jiných. Zatím to vypadá, že z toho vznikne ne-zcela-texu-nepodobné monstrum se složitým syntaktickým aparátem, ale doufám, že pro člověka trochu čitelnější a hlavně zaměřené na XHTML výstup a tedy i webové prezentace...

           

    Hodnocení: 75 %

            špatnédobré        

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

    Komentáře

    Vložit další komentář

    13.3.2009 19:31 JS
    Rozbalit Rozbalit vše Re: Prosba o náměty: jednoduchý markup + python (1)

    Co Lisp? (to bude flame...)

    regnarg avatar 13.3.2009 19:37 regnarg | skóre: 20 | blog: rm -rf /this/blog
    Rozbalit Rozbalit vše Re: Prosba o náměty: jednoduchý markup + python (1)
    Nic proti lispu:) Ale nemá trochu svázaná pravidla? Nevím, jak bych tam řešil takové věci jako oddělení odstavců prázdným řádkem:D A už jsem si na tyhle vychytávky tak nějak zvykl...
    S láskou se nerodíme, ale s láskou se stáváme lidmi. --Simone De Beauvoirová
    kouzer avatar 14.3.2009 06:22 kouzer | skóre: 11 | Mladá Boleslav
    Rozbalit Rozbalit vše Re: Prosba o náměty: jednoduchý markup + python (1)

    (header První dokument)
    (section
        (header Úvod)
        V dokumentu se mohou vyskytovat různé věci. Třeba takové
        (img obrazky.png Obrázky)(link http://seznam.cz Odkazy)
        (if 'MSIE'
             (link (img $logo ))
             Ony tam jdou i obrázkové odkazy, ale Exploreristům
             (strong ani muk).
        )
    )

     Tohle by se mi fakt líbilo. ;-)

     

    Linux user #448944.
    regnarg avatar 14.3.2009 07:42 regnarg | skóre: 20 | blog: rm -rf /this/blog
    Rozbalit Rozbalit vše Re: Prosba o náměty: jednoduchý markup + python (1)
    Ne, že by to nebylo hezké :D Ale lidská mysl je rozmanitá a ne každý má k lipu tak blízko jako jiní...
    S láskou se nerodíme, ale s láskou se stáváme lidmi. --Simone De Beauvoirová
    14.3.2009 07:53 JS
    Rozbalit Rozbalit vše Re: Prosba o náměty: jednoduchý markup + python (1)

    No ja tedy nevim, ale mysl, ktera by se lepe pracovalo s XML nez s vyse uvedenym zapisem, ma k te moji hodne daleko.

    regnarg avatar 14.3.2009 08:11 regnarg | skóre: 20 | blog: rm -rf /this/blog
    Rozbalit Rozbalit vše Re: Prosba o náměty: jednoduchý markup + python (1)
    Ono ani s XML se nepracuje moc hezky, právě proto hledám něco jednodušího:) Ale chce to trochu volnější syntaxi, protože přecejen více využiji prosté zpracování textu v odstavcích s jednoduchým formátováním než nějaké strukturování (ale o něj se zase nechci připravit)...
    S láskou se nerodíme, ale s láskou se stáváme lidmi. --Simone De Beauvoirová
    14.3.2009 07:50 JS
    Rozbalit Rozbalit vše Re: Prosba o náměty: jednoduchý markup + python (1)

    No vida, nemyslel jsem to predtim uplne vazne, ale tohle je fakt hezke. Jeste poresit escapovani zavorek (a dalsich znaku) a je vymalovano. Mozna by bylo lepe pouzit hranate - nedavno jsem premyslel nad Lispem s hranatymi zavorkami, maji tu velkou vyhodu, ze maji na klavesnici vlastni klavesy (resp. ja jsem premyslel nad Lispem, kde by bylo jedno, jakou ze tri zavorek clovek pouzije, pokud by se matchovaly, a tedy by se lepe vizualne pocitaly).

    Na originalniho autora - mel byste si podle me predevsim vyjasnit, jestli chcete pravidelnou syntaxi (jako Lisp, HTML nebo obvykle programovaci jazyky), nebo nejakou "lidsky citelnou" (jako maji treba Wiki, YAML nebo ruzne publikacni systemy).

    Pravidelna syntaxe ma jasna pravidla, snadno se parsuje pomoci bezkontextove nebo LL(1) gramatiky, jasne escapovani (vetsinou), a jasne definovano, co je syntakticky spravne a spatne. Naopak lidsky citelna syntaxe miva mnohem slozitejsi pravidla a parsery, nejasne ecapovani (pokud vubec) a byva daleko volnejsi, co se tyce zpracovani chyb. Toto rozhodnuti IMHO zasadne ovlivnuje zpusob, jakym bude parser napsany.

    Mozna by bylo lepe pouzit 2 jazyky - jeden na markup a druhy na logiku. Kombinovat je do jednoho je nesmyslne.

    regnarg avatar 14.3.2009 08:15 regnarg | skóre: 20 | blog: rm -rf /this/blog
    Rozbalit Rozbalit vše Re: Prosba o náměty: jednoduchý markup + python (1)
    Já vím, že je to trochu bláznivé, ale je to přesně co potřebuji, a je to kombinace obojího. Možná trochu košatější a volnější syntaktická pravidla, ale pořád pravidla, jasná a neporušitelná, jasné escapování a jednoznačná struktura. Věřím, že i z toho se dá udělat něco čitelného... Dva jazyky jsou hezká vize, ale když mi jde o zpracování jednoho celistvého dokumentu (ani to nemusí být na weby, prostě píšu pojednání, to chci přechroupat do xhtml a vytisknout), nerad bych musel skákat mezi dvěma soubory nebo tak... tahle přerušovaná logika mi moc nejde... proto taky nejsem žádný velký fanda MVC...
    S láskou se nerodíme, ale s láskou se stáváme lidmi. --Simone De Beauvoirová
    Josef Kufner avatar 13.3.2009 20:29 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Prosba o náměty: jednoduchý markup + python (1)
    IMHO máš příliš pestrou syntaxi. Mnoho klíčových slov, podmínek, pravidel... Udělej to jednodušší. Stanov dvě základní primitiva a na těch to postav -- jedno pro blok, druhé pro in-line věc.

    Podívej se na tolik obludné XML: <tag atribut="hodnota">obsah</tag> a stačí to na úplně všecko (hlavní síla je v schopnosti popsat jak strukturu stromu, tak jeho uzly). Tvoje syntaxe má taky drobnou a zásadní vadu v tom, že není jak lehce psát nepovinné parametry (ale nečet jsem to moc důkladně).

    Dvojtečka je málo výrazná, zkus něco lepšího -- třeba $ nebo @. Vyhni se #, aby se dalo použít cpp (volitelně ti to dodá obrovské možnosti). Nebraň se závorkám -- v malém množství prospívají zdraví ;-)

    Líbí se mi myšlenka odkazování na objekty, to by mohlo být hodně užitečné a lehce propojitelné s generovaným obsahem. Ale znamená to nutnost víceprůchodového zpracování.
    Hello world ! Segmentation fault (core dumped)
    regnarg avatar 13.3.2009 21:13 regnarg | skóre: 20 | blog: rm -rf /this/blog
    Rozbalit Rozbalit vše Re: Prosba o náměty: jednoduchý markup + python (1)
    Díky. S tou nevýrazností máte asi pravdu. Možná bude dobré použít jiný znak pro block-level a inline příkazy, pak by odpadla nutnost kontrolovat to podle názvu, možná by to bylo i přehlednější... Parametry jsem zatím příliš neřešil, ale s trochou flexibility by se dalo zachovat stručné zapisování těch nejdůležitějších + nepovinné klasicky s pojmenováním...
    S láskou se nerodíme, ale s láskou se stáváme lidmi. --Simone De Beauvoirová
    Josef Kufner avatar 13.3.2009 21:29 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Prosba o náměty: jednoduchý markup + python (1)
    Btw, koukal jsi na M4 ?
    Hello world ! Segmentation fault (core dumped)
    regnarg avatar 13.3.2009 21:33 regnarg | skóre: 20 | blog: rm -rf /this/blog
    Rozbalit Rozbalit vše Re: Prosba o náměty: jednoduchý markup + python (1)
    Kdysi jsem to zkoumal, ale moje omezená logika to nějak nebere :D A hlavně mi nejde jen o čisté zpracování textu, ale aby se daly dělat i objektové hrátky s XHTML podstromy a vůbec integrace s pythonem...
    S láskou se nerodíme, ale s láskou se stáváme lidmi. --Simone De Beauvoirová
    Fluttershy, yay! avatar 14.3.2009 08:09 Fluttershy, yay! | skóre: 93 | blog:
    Rozbalit Rozbalit vše Re: Prosba o náměty: jednoduchý markup + python (1)
    Celému tomu nějak nerozumím. Já jsem chtěl web orientovaný na obsah a nechtělo se mi hrabat se v programování CMS, psaní textů v HTML,... Prostě jsem nahodil WordPress a na samostatné dokumenty jsem si vymyslel jednoduchou wiki-like syntaxi, k ní jsem si napsal maličký prográmek a ten mi vsazuje texty do šablon, nahrazuje wiki-like značky HTML tagy a dokonce i přidává nedělitelné mezery, správné české uvozovky a podobně.
    🇵🇸Touch grass🇺🇦 ✊ ani boha, ani pána

    Založit nové vláknoNahoru

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