Python - HTML -generator, del 1

Indholdsfortegnelse
Lad os forestille os, at vi har en række færdige dokumenter, som vi har besluttet at offentliggøre på internettet, det ideelle ville være at konvertere dem til filer, der kan downloades, og sagen ville blive løst, men hvad nu hvis vi ikke vil have dem til at være kan downloades og kun ses på websider, så skulle vi oprette HTML -dokumenter for at gøre dette kan det imidlertid være hovedpine at generere de nødvendige etiketter i hånden.
I betragtning af situationen er det ideelle at generere et program, der giver os mulighed for at løse disse begrænsninger, for dette har vi Python og takket være dets forskellige værktøjer til tekstbehandling kan vi bygge den løsning, der giver os mulighed for at udføre denne opgave.
Betingelser
For at løse et problem skal vi først fastslå betingelser der giver os mulighed for at vide, hvad vi skal gøre, for dette særlige projekt vil vi etablere følgende:
  • Teksten skal ikke kræves at indeholde nogen form for kode eller etiketter.
  • Du skal kunne skelne mellem titler, afsnit og lister, såvel som fremhævet tekst Y URL'er.
  • Det skal være robust nok til at blive anvendt på andre markup -sprog end HTML.
Som vi kan se, er de brede, men ikke umulige betingelser, men i den første implementering vil måske ikke alle blive opnået, da vi skal lave flere prototyper til dette.
Værktøjer at bruge
For at nå de foreslåede mål skal vi definere, hvilke værktøjer vi skal bruge, i dette tilfælde kan vi tage standard inputbiblioteket sys.stdin og for udgangen vil det være nok Print, alt andet arbejder med forskellige teknikker, som vi vil se i eksemplerne.
Start
Da vi ved, hvad vi har brug for, og vi har fastlagt vores mål, skal vi kun have en måde at måle vores succes på, og til dette er det nødvendigt, at vi laver et dokument, som vi kan generere vores sider med, i tilfælde af denne vejledning vi vil se et eksempeldokument i det følgende billede, men enhver tekst gør det, så længe den har flere afsnit:

Første iteration
I første iteration Vi er nødt til at opdele afsnittene, i dette tilfælde vil vi kalde dem blokke, vi ved, at disse blokke er adskilt af en eller flere tomme linjer, så vores første trin vil være at tage disse linjer som adskillere.
Hvad følgende kode vil gøre, er at indsamle de linjer, den finder, indtil den finder en tom linje, så fortsætter den gennem filen, indtil vi finder en anden tekstgruppe.
Lad os se, hvordan koden ser ud:
 def lines (fil): for line in file: yield line yield '\ n' def blocks (file): block = [] for line in lines (file): if line.strip (): block.append (line) elif blok: give '' .join (blok) .strip () blok = [] 

Ovenstående kode gemmes i en fil kaldet util.py, så skal vi indarbejde de forskellige tags i vores resulterende HTML -dokument, til dette vil vi generere en anden fil med følgende kode:
 fra __future__ importgeneratorer import sys, re fra util import * print '…' title = 1 for blok i blokke (sys.stdin): block = re.sub (r '\ * (. +?) \ *', r '\1', blok) if title: print' 'title = 0 else: print'

'print blok print'

'Print' '

Som vi ser, bruger vi metoden blokke () og vi sender inputfilen til dig takket være biblioteket sys.stdin. Filen skal kaldes simple_markup.py og vi udfører det på følgende måde:
$ python simple_markup.py test_output.html

Som vi kan se, sender vi den oprindelige tekstfil til den, og vi sender den det navn, som output skal indeholde, og det skal se sådan ud:

Efter afslutningen af ​​den første iteration afslutter vi denne vejledning, i den anden del af den vil vi fortsat se disse begreber mere dybtgående såvel som den anden iteration for dette program.Kan du lide og hjælpe denne vejledning?Du kan belønne forfatteren ved at trykke på denne knap for at give ham et positivt punkt
wave wave wave wave wave