Python - HTML generatorius, 1 dalis

Turinys
Įsivaizduokime, kad turime nemažai paruoštų dokumentų, kuriuos nusprendėme paskelbti internete, idealiausia būtų juos paversti atsisiunčiamais failais ir byla būtų išspręsta, bet kas, jei nenorime, kad jie būtų atsisiunčiami ir matomi tik tinklalapiuose, tada turėtume sukurti HTML dokumentai tačiau norint tai padaryti, reikiamų etikečių generavimas ranka gali sukelti galvos skausmą.
Atsižvelgiant į situaciją, idealus yra sukurti programą, kuri leistų mums išspręsti šiuos apribojimus Python ir dėl įvairių teksto apdorojimo įrankių galime sukurti sprendimą, kuris leistų mums atlikti šią užduotį.
Sąlygos
Norėdami išspręsti problemą, pirmiausia turime nustatyti terminai kad mes žinotume, ką daryti, dėl šio konkretaus projekto nustatysime šiuos dalykus:
  • Nereikėtų reikalauti, kad tekste būtų bet kokio tipo kodą arba etiketės.
  • Jūs turite sugebėti atskirti pavadinimai, pastraipos ir sąrašai, taip pat paryškintas tekstas Y URL.
  • Jis turėtų būti pakankamai tvirtas, kad būtų taikomas kitoms žymėjimo kalboms nei HTML.
Kaip matome, jos yra plačios, bet ne neįmanomos sąlygos, tačiau pirmą kartą įgyvendinant galbūt ne visos bus pasiektos, nes tam turime sukurti keletą prototipų.
Naudojami įrankiai
Norėdami pasiekti siūlomus tikslus, turime apibrėžti, kokias priemones turime naudoti, šiuo atveju galime naudoti standartinę įvesties biblioteką sys.stdin o išėjimui to pakaks spausdinti, visa kita veikia skirtinga technika, kurią pamatysime pavyzdžiuose.
Pradėti
Kadangi žinome, ko mums reikia, ir nusistatėme savo tikslus, turime tik vieną būdą įvertinti savo sėkmę ir tam būtina parengti dokumentą, iš kurio galime sukurti savo puslapius. pamatysite dokumento pavyzdį kitame paveikslėlyje, tačiau bet koks tekstas bus tinkamas, jei jame bus kelios pastraipos:

Pirma iteracija
Viduje pirmoji iteracija Turime padalyti pastraipas, šiuo atveju jas vadinsime blokais, žinome, kad šie blokai yra atskirti viena ar keliomis tuščiomis eilutėmis, todėl pirmas mūsų žingsnis bus šias eilutes laikyti skiriamosiomis dalimis.
Toliau pateiktas kodas surinks rastas eilutes, kol suras tuščią eilutę, tada jis nuolat eis per failą, kol rasime kitą teksto grupę.
Pažiūrėkime, kaip atrodo kodas:
 def eilutės (failas): failo eilutei: išeigos eilutės išeiga '\ n' def blokai (failas): block = [] eilutės eilutėse (failas): if line.strip (): block.append (line) elif blokas: derlius ''. prisijungti (blokas) .strip () blokas = [] 

Aukščiau pateiktas kodas bus išsaugotas faile pavadinimu util.py, tada į gautą HTML dokumentą turime įtraukti skirtingas žymas, todėl sugeneruosime kitą failą su šiuo kodu:
 iš __future__ importo generatoriai importuoja sistemą, re iš util import * print '…' title = 1 for block in blocks (sys.stdin): block = re.sub (r '\ * (. +?) \ *', r '\1', block) if title: print' 'title = 0 else: print'

„spausdinimo bloko spausdinimas“

"spausdinti"

Kaip matome, mes naudojame metodą blokai () ir bibliotekos dėka perduodame įvesties failą jums sys.stdin. Failas turėtų būti vadinamas simple_markup.py ir mes tai vykdome taip:
$ python simple_markup.py test_output.html

Kaip matome, perduodame pradinį teksto failą ir perduodame pavadinimą, kurį turi sudaryti išvestis, ir jis turėtų atrodyti taip:

Baigę pirmąją iteraciją, baigiame šią pamoką, antroje jos dalyje toliau matysime šias sąvokas išsamiau, taip pat antrąją šios programos iteraciją.Ar jums patiko ir padėjo ši pamoka?Galite apdovanoti autorių paspausdami šį mygtuką, kad suteiktumėte jam teigiamą tašką
wave wave wave wave wave