Python - HTML -generator, del 1

Innehållsförteckning
Låt oss föreställa oss att vi har ett antal färdiga dokument som vi har beslutat att publicera på webben, det ideala vore att konvertera dem till nedladdningsbara filer och fallet skulle lösas, men tänk om vi inte vill att de ska vara nedladdningsbara och endast synliga på webbsidor, då borde vi skapa HTML -dokument för att göra detta kan det dock vara en huvudvärk att generera nödvändiga etiketter för hand.
Med tanke på situationen är idealet att skapa ett program som låter oss lösa dessa begränsningar, för detta har vi Pytonorm och tack vare dess olika verktyg för ordbehandling kan vi bygga lösningen som gör att vi kan utföra denna uppgif.webpt.
Villkor
För att lösa ett problem måste vi först fastställa villkor som gör att vi kan veta vad vi ska göra, för detta projekt kommer vi att fastställa följande:
  • Texten ska inte behöva innehålla någon typ av koda eller etiketter.
  • Du måste kunna skilja mellan titlar, stycken och listor, såväl som markerad text Y URL: er.
  • Det bör vara tillräckligt robust för att kunna tillämpas på andra markeringsspråk än HTML.
Som vi kan se är de breda men inte omöjliga förutsättningar, men i den första implementeringen kommer kanske inte alla att uppnås, eftersom vi måste göra flera prototyper för detta.
Verktyg att använda
För att uppnå de föreslagna målen måste vi definiera vilka verktyg vi måste använda, i det här fallet kan vi ta standardinmatningsbiblioteket sys.stdin och för utgången kommer det att räcka skriva ut, allt annat fungerar med olika tekniker som vi kommer att se i exemplen.
Start
Eftersom vi vet vad vi behöver och vi har fastställt våra mål, behöver vi bara ha ett sätt att mäta vår framgång och för detta är det nödvändigt att vi gör ett dokument med vilket vi kan generera våra sidor. kommer att se ett exempeldokument i följande bild, men vilken text som helst räcker så länge den har flera stycken:

Första iterationen
I första iterationen Vi måste dela styckena, i det här fallet kommer vi att kalla dem block, vi vet att dessa block är åtskilda med en eller flera tomma rader, så vårt första steg blir att ta dessa rader som separatorer.
Vad följande kod kommer att göra är att samla de rader den hittar tills den hittar en tom rad, sedan fortsätter den genom filen tills vi hittar en annan grupp text.
Låt oss se hur koden ser ut:
 def lines (file): for line in file: yield line yield '\ n' def blocks (file): block = [] for line in lines (file): if line.strip (): block.append (line) elif block: yield '' .join (block) .strip () block = [] 

Ovanstående kod sparas i en fil som heter util.py, då måste vi införliva de olika taggarna i vårt resulterande HTML -dokument, för detta kommer vi att generera en annan fil med följande kod:
 från __future__ importgeneratorer importera sys, re från util import * print '…' title = 1 för block i block (sys.stdin): block = re.sub (r '\ * (. +?) \ *', r '\1', block) if title: print' 'title = 0 else: print'

'print block print'

'skriva ut'

Som vi ser använder vi metoden block () och vi skickar inmatningsfilen till dig tack vare biblioteket sys.stdin. Filen ska kallas simple_markup.py och vi kör det på följande sätt:
$ python simple_markup.py test_output.html

Som vi kan se skickar vi den ursprungliga textfilen till den och vi skickar den namnet som utdata måste innehålla och det ska se ut så här:

När vi avslutar den första iterationen avslutar vi denna handledning, i den andra delen av den kommer vi att fortsätta se dessa begrepp mer djupgående, liksom den andra iterationen för detta program.Gillade du och hjälpte denna handledning?Du kan belöna författaren genom att trycka på den här knappen för att ge honom en positiv poäng

Du kommer att bidra till utvecklingen av webbplatsen, dela sidan med dina vänner

wave wave wave wave wave