9
votes

Bash: Éléments de liste de format en HTML

Je n'ai aucune expérience de bash, je veux juste savoir comment commencer.

Je dois écrire un script Bash qui formate correctement un document XHTML. Par exemple, tournez ceci: p> xxx pré>

dans ceci: p> xxx pré>

Je crois que je dois faire quelque chose comme: P>

cat > format1 #create file
#!bin/bash
if tail of a line ends with "</A-a>": (like </li> or </ol> or </p> or </ul>)
    add \n 
    fi

if head of a line = <ol> or <ul>
    add \n
    fi


1 commentaires

2. Bash n'est pas le bon outil ici. Faites-le dans Python ou Ruby, beaucoup de bibliothèques pour ce type de travail


5 Réponses :


0
votes

Je vous suggère de regarder le utilitaire HTML-Tidy .

Vous n'êtes pas obligé d'écrire un formateur vous-même, de nombreux utilitaires existants qui font cela pour vous, laissent de côté, ce n'est pas une tâche triviale et "Comment implémenter un joli formateur d'impression HTML" serait vraiment Une question large à poser (questions larges sont contre les règles Stackoverflow).


0 commentaires

1
votes

Utilisez html-wardy . Ce serait une bonne idée d'ajouter ceci à votre .bstrucc si vous souhaitez utiliser Tidy xxx

la commande ci-dessus crée un < Code> alias pour TIDEY qui dit d'indenter le fichier sous XML (assure que toutes les balises ont des étiquettes de fermeture), indentez avec un seul espace et modifie le fichier en place.


1 commentaires

Merci de répondre, mais je cherche réellement à le faire moi-même puisque nous n'avons pas la permission d'installer quelque chose (boiteux). J'utilise actuellement Puty.



0
votes

HTML Tidy peut déjà être installé sur votre système, c'était pour moi et je ne me souviens jamais de l'installer. Vous voudrez peut-être vérifier en exécutant - xxx

si vous obtenez le manuel, vous êtes prêt à rock and roll! xxx


0 commentaires

0
votes

Une autre alternative à examiner est xmllint, qui peut être installée sur votre système: xxx


0 commentaires

1
votes

Compte tenu des contraintes que le problème doit être résolu avec un script Bash et que vous ne pouvez pas utiliser HTMLTIDY, alors je vous lancerais en créant un fichier htmltidy.sh qui contient: xxx pré>

à Utilisez ce programme, vous conduisez au contenu de ce type comme suit: P>

cat sexist.html | ./xhtmltidy.sh
  • chat capture tout stdin comme une seule ligne de texte li>
  • SED STRIPS SPATE ET SPACE POUR LES TAGS DE XHTML LI>
  • SED met une nouvelle ligne entre les tags XHTML adjacents li>
  • awk réduit le tiret si une ligne est une étiquette XHTML finale (telle que) li>
  • AWK imprime la ligne avec l'indent li>
  • AWK augmente l'indent Si une ligne est une balise XHTML de départ (telle que ) li> ul>

    Ce programme de jouets se brisera très rapidement dès que la complexité de l'entrée commence à devenir plus complexe. Mais cela vous donnera une idée de la raison pour laquelle il est préférable d'utiliser une utilité de l'étagère plutôt que d'écrire le vôtre. p> p>


0 commentaires