Python - gerador de HTML, parte 1

Índice
Vamos imaginar que temos uma série de documentos prontos que decidimos publicar na web, o ideal seria convertê-los em arquivos para download e o caso estaria resolvido, mas e se não quisermos que sejam disponível para download e visível apenas em páginas da web, então devemos criar Documentos HTML para fazer isso, no entanto, gerar os rótulos necessários manualmente pode ser uma dor de cabeça.
Dada a situação, o ideal é gerar um programa que nos permita resolver essas limitações, para isso temos Pitão e graças às suas diferentes ferramentas de processamento de texto podemos construir a solução que nos permitirá realizar esta tarefa.
Termos
Para resolver um problema, devemos primeiro estabelecer termos que nos permitem saber o que fazer, para este projeto em particular iremos estabelecer o seguinte:
  • O texto não deve conter qualquer tipo de código ou rótulos.
  • Você deve ser capaz de distinguir entre títulos, parágrafos e listas, assim como texto destacado Y URLs.
  • Deve ser robusto o suficiente para ser aplicado a outras linguagens de marcação além do HTML.
Como podemos ver, são condições amplas, mas não impossíveis, porém, na primeira implementação, talvez nem todas sejam alcançadas, pois para isso devemos fazer vários protótipos.
Ferramentas para usar
Para atingir os objetivos propostos devemos definir quais ferramentas devemos usar, neste caso podemos pegar a biblioteca de entrada padrão sys.stdin e para a saída será suficiente impressão, todo o resto está trabalhando com técnicas diferentes que veremos nos exemplos.
Começar
Já que sabemos o que precisamos e estabelecemos nossos objetivos, só temos que ter uma forma de medir nosso sucesso e para isso é necessário que façamos um documento com o qual possamos gerar nossas páginas, no caso deste tutorial nós verá um documento de exemplo na imagem a seguir; no entanto, qualquer texto servirá, desde que tenha vários parágrafos:

Primeira iteração
No primeira iteração Precisamos dividir os parágrafos, neste caso vamos chamá-los de blocos, sabemos que esses blocos estão separados por uma ou mais linhas em branco, então nosso primeiro passo será tomar essas linhas como separadores.
O que o código a seguir fará é coletar as linhas que encontrar até encontrar uma linha em branco e, em seguida, continuará percorrendo o arquivo até encontrar outro grupo de texto.
Vamos ver a aparência do código:
 linhas def (arquivo): para linha no arquivo: rendimento linha rendimento '\ n' blocos def (arquivo): bloco = [] para linha em linhas (arquivo): if line.strip (): block.append (linha) elif bloco: rendimento '' .join (bloco) .strip () bloco = [] 

O código acima será salvo em um arquivo chamado util.py, então devemos incorporar as diferentes tags em nosso documento HTML resultante, para isso geraremos outro arquivo com o seguinte código:
 from __future__ import generators import sys, re from util import * print '…' title = 1 para bloco em blocos (sys.stdin): block = re.sub (r '\ * (. +?) \ *', r '\1', bloco) se título: imprimir' 'título = 0 else: imprimir'

'imprimir bloco de impressão'

'impressão' '

Como vemos, usamos o método blocos () e passamos o arquivo de entrada para você graças à biblioteca sys.stdin. O arquivo deve ser chamado simple_markup.py e nós o executamos da seguinte maneira:
$ python simple_markup.py test_output.html

Como podemos ver, passamos o arquivo de texto inicial para ele e passamos a ele o nome que a saída deve conter e deve ter a seguinte aparência:

Finalizando a primeira iteração, encerramos este tutorial, na segunda parte continuaremos a ver esses conceitos com mais profundidade, assim como a segunda iteração para este programa.Gostou e ajudou este tutorial?Você pode recompensar o autor pressionando este botão para dar a ele um ponto positivo
wave wave wave wave wave