Python - generátor HTML, část 1

Obsah
Představme si, že máme řadu hotových dokumentů, které jsme se rozhodli zveřejnit na webu, ideální by bylo převést je na soubory ke stažení a případ by byl vyřešen, ale co když nechceme, aby byly stahovatelné a viditelné pouze na webových stránkách, pak bychom měli vytvořit HTML dokumenty k tomu však ruční generování potřebných popisků může bolet hlava.
Za dané situace je ideální vygenerovat program, který nám umožní vyřešit tato omezení Krajta a díky různým nástrojům pro zpracování textu můžeme vytvořit řešení, které nám tento úkol umožní.
Podmínky
Abychom mohli vyřešit problém, musíme nejprve vytvořit podmínky které nám umožní vědět, co dělat, pro tento konkrétní projekt zavedeme následující:
  • Text by neměl obsahovat žádný typ kód nebo štítky.
  • Musíte být schopni rozlišovat mezi nimi názvy, odstavce a seznamy, jakož i zvýrazněný text Y URL.
  • Mělo by být dostatečně robustní, aby se dalo použít i na jiné značkovací jazyky než HTML.
Jak vidíme, jsou to široké, ale ne nemožné podmínky, v první implementaci však nemusí být splněny všechny, protože k tomu musíme vytvořit několik prototypů.
Nástroje k použití
Abychom dosáhli navrhovaných cílů, musíme definovat, jaké nástroje musíme použít, v tomto případě můžeme použít standardní vstupní knihovnu sys.stdin a na výstup to bude stačit vytisknout, všechno ostatní funguje s různými technikami, které uvidíme v příkladech.
Start
Protože víme, co potřebujeme, a stanovili jsme si cíle, musíme mít pouze jeden způsob, jak změřit náš úspěch, a proto je nutné, abychom vytvořili dokument, pomocí kterého můžeme generovat naše stránky. V případě tohoto tutoriálu na následujícím obrázku se zobrazí ukázkový dokument, ale jakýkoli text bude fungovat, pokud bude obsahovat několik odstavců:

První iterace
V první iterace Potřebujeme rozdělit odstavce, v tomto případě jim budeme říkat bloky, víme, že tyto bloky jsou odděleny jedním nebo více prázdnými řádky, takže naším prvním krokem bude vzít tyto řádky jako oddělovače.
Následující kód udělá, že shromáždí řádky, které najde, dokud nenajde prázdný řádek, a pak bude procházet souborem, dokud nenajdeme další skupinu textu.
Podívejme se, jak vypadá kód:
 def lines (soubor): pro řádek v souboru: výnos výnosového řádku '\ n' def bloky (soubor): block = [] pro řádek v řádcích (soubor): if line.strip (): block.append (line) elif block: yield '' .join (block) .strip () block = [] 

Výše uvedený kód bude uložen do souboru s názvem util.py, pak musíme začlenit různé značky do našeho výsledného dokumentu HTML, za tímto účelem vygenerujeme další soubor s následujícím kódem:
 from __future__ generátory importu import sys, re from util import * print '…' title = 1 pro blok v blocích (sys.stdin): block = re.sub (r '\ * (. +?) \ *', r '\1', block) if title: print' 'title = 0 else: print'

'print block print'

'vytisknout' '

Jak vidíme, používáme tuto metodu bloky () a předáme vám vstupní soubor díky knihovně sys.stdin. Soubor by měl být volán simple_markup.py a provedeme to následujícím způsobem:
$ python simple_markup.py test_output.html

Jak vidíme, předáme mu počáteční textový soubor a předáme mu název, který výstup musí obsahovat a měl by vypadat takto:

Dokončením první iterace ukončujeme tento tutoriál, v jeho druhé části budeme nadále tyto koncepty vidět hlouběji, stejně jako druhou iteraci pro tento program.Líbil se vám tento návod a pomohl mu?Autora můžete odměnit stisknutím tohoto tlačítka, čímž mu dáte kladný bod

Vám pomůže rozvoji místa, sdílet stránku s přáteli

wave wave wave wave wave