Python - Generator HTML, partea 1

Cuprins
Să ne imaginăm că avem o serie de documente gata făcute pe care am decis să le publicăm pe web, ideal ar fi să le convertim în fișiere descărcabile și cazul ar fi rezolvat, dar dacă nu vrem să fie descărcabile și vizibile numai pe paginile web, atunci ar trebui să le creăm Documente HTML pentru a face acest lucru, totuși, generarea manuală a etichetelor necesare poate fi o durere de cap.
Având în vedere situația, idealul este să generăm un program care să ne permită să rezolvăm aceste limitări, pentru aceasta avem Piton și datorită diferitelor instrumente pentru procesarea textului, putem construi soluția care ne va permite să realizăm această sarcină.
Termeni
Pentru a rezolva o problemă trebuie mai întâi să stabilim termeni care ne permit să știm ce să facem, pentru acest proiect anume vom stabili următoarele:
  • Textul nu ar trebui să conțină niciun tip de cod sau etichete.
  • Trebuie să puteți distinge între titluri, paragrafe și liste, precum și text evidențiat Da URL-uri.
  • Ar trebui să fie suficient de robust pentru a fi aplicat altor limbaje de marcare decât HTML.
După cum putem vedea, acestea sunt condiții largi, dar nu imposibile, totuși, la prima implementare, poate nu toate vor fi realizate, deoarece pentru aceasta trebuie să realizăm mai multe prototipuri.
Instrumente de utilizat
Pentru a atinge obiectivele propuse trebuie să definim ce instrumente trebuie să folosim, în acest caz putem lua biblioteca standard de intrare sys.stdin iar pentru ieșire va fi suficient imprimare, orice altceva funcționează cu diferite tehnici pe care le vom vedea în exemple.
start
Din moment ce știm de ce avem nevoie și ne-am stabilit obiectivele, trebuie să avem doar o modalitate de a ne măsura succesul și pentru aceasta este necesar să realizăm un document cu care să ne putem genera paginile, în cazul acestui tutorial, va vedea un exemplu de document în următoarea imagine, totuși orice text va face atâta timp cât are mai multe paragrafe:

Prima iterație
În prima iterație Trebuie să împărțim paragrafele, în acest caz le vom numi blocuri, știm că aceste blocuri sunt separate de una sau mai multe linii goale, așa că primul nostru pas va fi să luăm aceste linii ca separatoare.
Ceea ce va face următorul cod este să colecteze liniile pe care le găsește până găsește o linie goală, apoi va continua să treacă prin fișier până când vom găsi un alt grup de text.
Să vedem cum arată codul:
 linii def (fișier): pentru linie în fișier: randament linie randament '\ n' def blocuri (fișier): bloc = [] pentru linie în linii (fișier): dacă line.strip (): block.append (line) elif bloc: randament '' .join (bloc) .strip () bloc = [] 

Codul de mai sus va fi salvat într-un fișier numit util.py, atunci trebuie să încorporăm diferitele etichete în documentul nostru HTML rezultat, pentru aceasta vom genera un alt fișier cu următorul cod:
 din __future__ generatori de import import sys, re de la util import * print '…' title = 1 pentru bloc în blocuri (sys.stdin): block = re.sub (r '\ * (. +?) \ *', r '\1', bloc) if title: print' 'title = 0 else: print'

„imprimare tipărire bloc”

'imprimare' '

După cum vedem, folosim metoda blocuri () și vă trimitem fișierul de intrare datorită bibliotecii sys.stdin. Ar trebui chemat fișierul simple_markup.py și îl executăm în felul următor:
$ python simple_markup.py test_output.html

După cum putem vedea, îi transmitem fișierul text inițial și îi transmitem numele pe care trebuie să îl conțină ieșirea și ar trebui să arate astfel:

Finalizând prima iterație, încheiem acest tutorial, în a doua parte a acestuia vom continua să vedem aceste concepte mai în profunzime, precum și a doua iterație pentru acest program.V-a plăcut și ați ajutat acest tutorial?Puteți recompensa autorul apăsând acest buton pentru a-i oferi un punct pozitiv
wave wave wave wave wave