Python - Générateur HTML, partie 1

Table des matières
Imaginons que nous ayons un certain nombre de documents prêts à l'emploi que nous avons décidé de publier sur le web, l'idéal serait de les convertir en fichiers téléchargeables et l'affaire serait résolue, mais que faire si nous ne voulons pas qu'ils le soient téléchargeable et uniquement visible sur les pages Web, alors nous devrions créer Documents HTML pour ce faire, cependant, générer les étiquettes nécessaires à la main peut être un casse-tête.
Compte tenu de la situation, l'idéal est de générer un programme qui nous permette de résoudre ces limitations, pour cela nous avons Python et grâce à ses différents outils de traitement de texte nous pouvons construire la solution qui nous permettra de faire cette tâche.
termes
Pour résoudre un problème, nous devons d'abord établir termes qui nous permettent de savoir quoi faire, pour ce projet particulier nous établirons ce qui suit :
  • Le texte ne devrait pas être tenu de contenir un quelconque type de code ou alors Étiquettes.
  • Vous devez être capable de faire la distinction entre titres, paragraphes et listes, aussi bien que texte surligné Oui URL.
  • Il doit être suffisamment robuste pour être appliqué à d'autres langages de balisage que le HTML.
Comme on peut le voir, ce sont des conditions larges mais pas impossibles, cependant, lors de la première mise en œuvre, toutes ne seront peut-être pas atteintes, car pour cela, nous devons réaliser plusieurs prototypes.
Outils à utiliser
Pour atteindre les objectifs proposés, nous devons définir les outils que nous devons utiliser, dans ce cas, nous pouvons prendre la bibliothèque d'entrée standard sys.stdin et pour la sortie ça suffira imprimer, tout le reste fonctionne avec différentes techniques que nous verrons dans les exemples.
Début
Puisque nous savons ce dont nous avons besoin et que nous avons établi nos objectifs, nous n'avons qu'un moyen de mesurer notre succès et pour cela il est nécessaire que nous fassions un document avec lequel nous pouvons générer nos pages, dans le cas de ce tutoriel nous verra un exemple de document dans l'image suivante, mais n'importe quel texte fera l'affaire tant qu'il comporte plusieurs paragraphes :

Première itération
Dans la première itération Nous devons diviser les paragraphes, dans ce cas nous les appellerons blocs, nous savons que ces blocs sont séparés par une ou plusieurs lignes vides, notre première étape sera donc de prendre ces lignes comme séparateurs.
Ce que le code suivant fera, c'est collecter les lignes qu'il trouve jusqu'à ce qu'il trouve une ligne vide, puis il continuera à parcourir le fichier jusqu'à ce que nous trouvions un autre groupe de texte.
Voyons à quoi ressemble le code :
 def lignes (fichier) : pour ligne dans fichier : rendement ligne rendement '\ n' def blocs (fichier) : bloc = [] pour ligne dans lignes (fichier) : if ligne.strip (): block.append (ligne) elif bloc : rendement '' .join (bloc) .strip () bloc = [] 

Le code ci-dessus sera enregistré dans un fichier appelé util.py, alors nous devons incorporer les différentes balises dans notre document HTML résultant, pour cela nous allons générer un autre fichier avec le code suivant :
 from __future__ import generators import sys, re from util import * print '…' title = 1 pour block in blocks (sys.stdin): block = re.sub (r '\ * (. +?) \ *', r '\1', block) if title: print' 'title = 0 else: print'

'imprimer le bloc d'impression'

'imprimer' '

Comme nous le voyons, nous utilisons la méthode blocs () et nous vous transmettons le fichier d'entrée grâce à la bibliothèque sys.stdin. Le fichier doit être appelé simple_markup.py et nous l'exécutons de la manière suivante :
$ python simple_markup.py test_output.html

Comme nous pouvons le voir, nous lui passons le fichier texte initial et nous lui passons le nom que la sortie doit contenir et il devrait ressembler à ceci :

En terminant la première itération, nous terminons ce didacticiel, dans la deuxième partie de celui-ci, nous continuerons à voir ces concepts plus en profondeur, ainsi que la deuxième itération pour ce programme.Avez-vous aimé et aidé ce tutoriel ?Vous pouvez récompenser l'auteur en appuyant sur ce bouton pour lui donner un point positif

Vous contribuerez au développement du site, partager la page avec vos amis

wave wave wave wave wave