Python - generator HTML, część 1

Spisie treści
Wyobraźmy sobie, że mamy wiele gotowych dokumentów, które zdecydowaliśmy się opublikować w sieci, idealnym rozwiązaniem byłoby przekonwertowanie ich na pliki do pobrania i sprawa zostałaby rozwiązana, ale co jeśli nie chcemy, aby były do pobrania i widoczne tylko na stronach internetowych, to powinniśmy stworzyć Dokumenty HTML aby to zrobić, jednak ręczne generowanie niezbędnych etykiet może być bólem głowy.
W tej sytuacji idealnym rozwiązaniem jest wygenerowanie programu, który pozwoli nam rozwiązać te ograniczenia, do tego mamy Pyton a dzięki różnym narzędziom do przetwarzania tekstu możemy zbudować rozwiązanie, które pozwoli nam wykonać to zadanie.
Warunki
Aby rozwiązać problem, musimy najpierw ustalić warunki które pozwolą nam wiedzieć, co robić, dla tego konkretnego projektu ustalimy:
  • Tekst nie powinien zawierać żadnego rodzaju kod lub etykiety.
  • Musisz być w stanie odróżnić tytuły, akapity i listy, jak również podświetlony tekst Tak adresy URL.
  • Powinien być wystarczająco solidny, aby można go było zastosować do innych języków znaczników niż HTML.
Jak widać są to warunki szerokie, ale nie niemożliwe, jednak w pierwszym wdrożeniu być może nie wszystkie zostaną osiągnięte, gdyż do tego musimy wykonać kilka prototypów.
Narzędzia do użycia
Aby osiągnąć założone cele musimy zdefiniować jakich narzędzi musimy użyć, w tym przypadku możemy wziąć standardową bibliotekę wejściową sys.stdin a do wyjścia to wystarczy wydrukować, wszystko inne działa z różnymi technikami, które zobaczymy w przykładach.
Początek
Skoro wiemy, czego potrzebujemy i ustaliliśmy sobie cele, pozostaje nam tylko jeden sposób mierzenia naszego sukcesu i do tego konieczne jest wykonanie dokumentu, za pomocą którego będziemy mogli generować nasze strony, w przypadku tego tutoriala zobaczy przykładowy dokument na poniższym obrazku, jednak każdy tekst będzie działał, o ile ma kilka akapitów:

Pierwsza iteracja
w pierwsza iteracja Musimy podzielić akapity, w tym przypadku nazwiemy je blokami, wiemy, że te bloki są oddzielone jedną lub większą liczbą pustych wierszy, więc naszym pierwszym krokiem będzie wzięcie tych wierszy jako separatorów.
Poniższy kod będzie zbierał znalezione wiersze, dopóki nie znajdzie pustego wiersza, a następnie będzie kontynuował przeglądanie pliku, aż znajdziemy kolejną grupę tekstu.
Zobaczmy, jak wygląda kod:
 def lines (plik): dla linii w pliku: wydajność linii yield '\ n' def bloki (plik): block = [] dla linii w liniach (plik): if line.strip (): block.append (line) elif blok: uzysk '' .join (blok) .strip () blok = [] 

Powyższy kod zostanie zapisany w pliku o nazwie util.py, musimy dołączyć różne tagi do naszego wynikowego dokumentu HTML, w tym celu wygenerujemy kolejny plik z następującym kodem:
 from __future__ import generators import sys, re from util import * print '…' title = 1 dla bloku w blokach (sys.stdin): block = re.sub (r '\ * (. +?) \ *', r '\1', block) if title: print' 'title = 0 else: print'

„drukuj blok”

„drukuj”

Jak widzimy używamy metody Bloki () a my przekazujemy Ci plik wejściowy dzięki bibliotece sys.stdin. Plik powinien mieć nazwę proste_znaczniki.py i realizujemy to w następujący sposób:
$ python simple_markup.py test_output.html

Jak widać, przekazujemy do niego początkowy plik tekstowy i przekazujemy mu nazwę, którą musi zawierać wyjście i powinno wyglądać tak:

Kończąc pierwszą iterację, kończymy ten samouczek, w drugiej jego części będziemy dalej przyglądać się tym pojęciom, a także drugiej iteracji tego programu.Podobał Ci się i pomógł ten samouczek?Możesz nagrodzić autora, naciskając ten przycisk, aby dać mu pozytywny punkt

Będziesz pomóc w rozwoju serwisu, dzieląc stronę ze swoimi znajomymi

wave wave wave wave wave