Correction du formatage HTML à l'aide de scripts shell simples
Si vous écrivez souvent du HTML dans un éditeur et que vous le collez ensuite dans WordPress, vous remarquerez que les balises de formatage gênantes (comme tags) sont ajoutés. En utilisant de simples scripts shell, vous pouvez nettoyer automatiquement cette mise en forme HTML avec quelques commandes simples..
Pourquoi utiliser des scripts shell? Si vous débutez dans la programmation, il est préférable de commencer petit. Non seulement vous êtes moins susceptible d'abandonner, mais vous aurez également la possibilité de vous arrêter et d'apprendre en cours de route. Cela dit, vos premiers programmes peuvent être très utiles même s’ils sont aussi très simples..
Script de shell Qu'est-ce qu'un script de shell et pourquoi vous devez l'utiliser? Qu'est-ce qu'un script de shell et pourquoi devez-vous l'utiliser? En plus d'accepter et d'exécuter des commandes de manière interactive, le shell peut également exécuter des commandes stockées dans un fichier. Ceci est connu sous le nom de script shell. Ici, nous couvrons les bases du script shell. Read More est un excellent endroit pour commencer à coder pour cette raison précise: il est facile de mettre en place quelque chose dans quelques lignes de code qui vous fera gagner beaucoup de temps. Jetons un coup d'oeil à quelques recettes, ou “les patrons,” vous pouvez vous réutiliser dans vos propres scripts.
Pourquoi Shell Scripting?
Tout d’abord, commençons par définir “scripts shell” en tant que scripts d’écriture à exécuter dans le shell Bash. Techniquement, d’autres langages de script tels que Powershell pourraient également être qualifiés de “scripts shell.” Mais pourquoi se concentrer sur les scripts shell en général, et les scripts Bash en particulier, en premier lieu?
- Avec l'introduction du sous-système Windows pour Linux, le shell Bash est désormais compatible avec toutes les principales plates-formes PC. Guide rapide de Linux Bash Shell sous Windows 10 Guide rapide de Linux Bash Shell sous Windows 10 Vous pouvez désormais exécuter Linux sous Windows. En savoir plus sur Bash sous Windows, en expliquant comment et pourquoi vous devez l’installer, en passant par des fonctionnalités cachées que vous ne connaissiez probablement pas. Lire la suite . (Il est également inclus dans macOS et pratiquement toutes les distributions Linux par défaut.) Il est même disponible sur les téléphones Android dotés d'un Termux. Comment utiliser la ligne de commande Linux sur Android avec Termux Comment utiliser la ligne de commande Linux sur Android avec Termux Remplacez des tonnes d'applications Android volumineuses par une seule application de ligne de commande Linux. Lire la suite, un téléchargement gratuit et open source de Google Play.
- Les scripts Shell vous permettent de vous concentrer sur les bases de la programmation, car ce sont les commandes que vous allez inclure qui soulèveront le mieux. Supposons que vous vouliez compresser certains fichiers dans une application de bureau traditionnelle écrite en C. Vous devrez soit écrire un petit code pour utiliser une bibliothèque logicielle compatible. Une taille ne convient pas à tous: Pourquoi le logiciel n'est-il pas universellement compatible? Une taille ne Pourquoi tout logiciel? Le logiciel universellement compatible n'est-il pas le même sur tous les systèmes d'exploitation, n'est-ce pas? Faux. Cela peut sembler identique et fonctionner de la même manière, mais c'est différent dans les coulisses. Lire plus qui fera le travail, ou écrire beaucoup de code à partir de zéro pour réellement faire la compression. Dans un script shell, tout ce que vous avez à faire est d’exécuter le le goudron commande sur les fichiers souhaités.
- Vous pouvez développer par petites étapes, de manière interactive. Pour continuer l’exemple ci-dessus, supposons que vous utilisiez le goudron faire votre compression, mais vous ne savez pas encore laquelle de ses options vous voulez. Il suffit de jouer avec à l'invite jusqu'à ce que vous obteniez le résultat souhaité, puis copiez / collez la commande que vous avez utilisée dans votre script.
Compte tenu de ce qui précède, voici quelques idées de scripts shell utiles que vous pouvez assembler avec quelques lignes de code. Nous allons créer deux scripts pour améliorer les capacités déjà considérables de l'utilitaire de conversion Pandoc. Procédure de conversion simple entre formats de document sous Linux Procédure de conversion simple entre formats de document sous Linux Le passage à Linux peut entraîner des problèmes de compatibilité des fichiers. Par exemple, les documents ne se ressemblent pas dans LibreOffice et dans Word. Ce n'est qu'une des raisons pour lesquelles vous avez besoin de pandoc. Lire la suite .
1. Collecte de longues listes de paramètres
Le moyen le plus simple et le plus simple d’utiliser un script shell est de créer un raccourci pour une commande existante. Certains programmes en ligne de commande ont une tonne d'indicateurs et leur syntaxe n'est pas toujours claire. Mais vous pouvez utiliser l'une de ces commandes avec toutes ses options compliquées et les insérer dans un script shell avec un nom plus facile à saisir. Considérez la commande suivante, qui exécute le Pandoc sur un fichier Markdown et crée un fichier ODT à l'aide d'un fichier de modèle:
pandoc -r markdown -w odt --reference-odt = / chemin / vers / dossier / contenant / mscript-template.odt -o manuscript.odt manuscript.md
J'utilise Pandoc au quotidien, car je rédige tout dans un balisage léger, comme Markdown Qu'est-ce que Markdown? 4 raisons pour lesquelles vous devriez apprendre maintenant Qu'est-ce que Markdown? 4 raisons pour lesquelles vous devriez apprendre maintenant Fatigué des éditeurs HTML et WYSIWYG? Alors Markdown est la solution pour vous, peu importe qui vous êtes. En savoir plus et les langages de balisage allégé Asciidoc: Pourquoi utiliser AsciiDoc plutôt que les langages de balisage réguliers? Langage de balisage léger: Pourquoi utiliser AsciiDoc sur les balises régulières Le langage de balisage est proposé dans de nombreuses versions, certaines meilleures que d'autres. Les langages légers comme AsciiDoc sont faciles à apprendre et extrêmement utiles. Voici comment cela se compare. Lire la suite . Et pourtant, lors de la conversion en ODT, je tape “odt-reference” au lieu de “référence-odt.” Chaque. Unique. Temps. De plus, le chemin d'accès au modèle ne se complétera pas automatiquement comme la plupart des commandes shell. Créer un script simple peut sauver tout ce qui est mal typé:
#! / bin / bash pandoc -r docbook -w odt --reference-odt = / chemin / vers / dossier / contenant / mscript-template.odt -o $ 1.odt $ 1
La première ligne du script demande au système d'utiliser le shell Bash pour l'exécuter. Le suivant prend le premier argument sur la ligne de commande (1 $) et exécute Pandoc avec un ensemble de drapeaux. Il est intéressant de noter qu’il existe d’autres moyens de le faire, comme utiliser le alias commande sur les systèmes Unix-ish. Cependant, créer de petits scripts shell signifie que vous pouvez les garder à portée de main (comme dans votre dossier ~ / bin), les copier rapidement (ou les synchroniser) ailleurs et les modifier avec n’importe quel éditeur de texte. Enregistrez votre script avec un nom de fichier facile à retenir et à saisir (par exemple,. “markdown2odt.sh”). N'oubliez pas de lui donner les autorisations des exécutables. L'un des outils les plus importants sous Linux - Comprendre Chmod L'un des outils les plus importants sous Linux - Comprendre Chmod Il existe de nombreuses fonctionnalités qui rendent Linux spécial, mais l'une d'entre elles le rend aussi sécurisé. est son système de permissions. Vous pouvez avoir un contrôle précis sur tous les fichiers de votre système et… Read More .
2. Piping Output pour nettoyer le formatage HTML
Connexion de deux commandes de terminal avec un tuyau (“|”) fait en sorte que la sortie du premier soit utilisée comme entrée du second. (Si vous ne l'avez jamais vu auparavant, consultez notre guide rapide de la ligne de commande. Un guide rapide pour démarrer avec la ligne de commande Linux. Un guide rapide pour démarrer avec la ligne de commande Linux. Vous pouvez faire beaucoup de choses étonnantes avec des commandes sous Linux et ce n’est vraiment pas difficile à apprendre. Lisez Plus.) Mais devoir taper deux Les commandes dans le bon ordre, avec les bons paramètres, ne font que compliquer le problème que nous venons de traiter. Envelopper cette double commande dans un script shell rend cela beaucoup plus pratique.
Un truc que j'utilise avec Pandoc est de “nettoyer” Formatage HTML ou suppression de tout style en ligne 9 Erreurs que vous ne devriez pas commettre lors de la création d'une page Web 9 Erreurs que vous ne devriez pas commettre lors de la construction d'une page Web Ces erreurs de codage HTML suivantes sont faciles à faire, mais si vous les évitez plus tôt plus tard, votre page paraîtra mieux, sera plus facile à gérer et fonctionnera comme vous le souhaitez. Lire la suite . Si vous avez déjà essayé d'exporter un document de traitement de texte au format HTML, vous constaterez qu'il existe une tonne de styles (envergure balises) qui sont ajoutées dans et entre le texte.
Le format XML du Docbook n'a pas de convention pour les styles en ligne, donc si nous convertissons du HTML en DocBook, toute cette mise en forme est rejetée. Ensuite, nous pouvons utiliser Pandoc pour convertir le DocBook retour en HTML, et nous obtenons un bon balisage que vous pouvez (par exemple) coller dans WordPress. Plutôt que de faire cela avec des appels individuels à Pandoc, le script suivant les enchaîne pour:
- Convertissez le fichier HTML exporté en DocBook, qui ne contient pas de styles en ligne (avant le tube)
- Reconvertissez le DocBook en ce qui est maintenant bien, un formatage HTML propre (après le tuyau)
#! / bin / bash pandoc -w docbook $ 1 | pandoc -r docbook -w html -o $ 1 -
Expliquer les entrées / sorties standard
Ce qui précède tire parti des concepts terminaux de “entrée standard” et “sortie standard.” Si vous deviez exécuter la première partie de la commande, vous obtiendriez tout un tas de XML dans le terminal. La raison en est que nous n’avons donné à Pandoc aucune autre sortie (telle qu’un fichier) à utiliser. Donc, il utilise la seule solution de repli dont il dispose: une sortie standard, dans ce cas le terminal.
D'autre part, le tiret à la fin de la deuxième commande Pandoc signifie qu'il doit utiliser “entrée standard.” Exécuté seul, vous serez accueilli par une invite, dans laquelle le shell attendra que vous fournissiez du texte via son entrée par défaut, en tapant sur le clavier. Lorsque nous les combinons, vous pouvez presque imaginer que la première commande crache un paquet de XML vers le terminal où il est immédiatement redirigé vers la deuxième commande en tant qu'entrée..
Le résultat est, si vous le renommez en “clean-html.sh,” vous pouvez l'exécuter sur n'importe quel fichier HTML pour vous débarrasser de ces styles gênants. La meilleure partie est que Pandoc lira le fichier, puis l’écrasera à la fin, ce qui signifie qu’il n’ya pas de fichiers temporaires.
3. Exécution de programmes sur plusieurs fichiers HTML
Certains programmes vous permettent de spécifier joker comme l'astérisque sur la ligne de commande. Cela vous permet, par exemple, de déplacer toutes les images JPG vers votre “Des photos” dossier:
mv * .jpg ~ / Images
Mais d'autres programmes ne prennent qu'un fichier à la fois en entrée, et Pandoc en est un. Alors que se passe-t-il lorsque nous avons un répertoire complet de fichiers HTML exportés et que nous voulons nettoyer le formatage HTML? Avons-nous besoin de courir notre “clean-html.sh” script sur chacun d'eux manuellement?
Non, car nous ne sommes pas des débutants. Nous pouvons envelopper notre commande piped dans un “pour chaque” boucle. Cela ira tour à tour à chaque fichier HTML dans le répertoire courant et effectuera l’opération de nettoyage dessus. Ajoutons également un petit message via le écho déclaration pour nous faire savoir que tous les fichiers ont été pris en charge:
pour le nom du fichier dans ./*.html do pandoc -w docbook $ 1 | pandoc -r docbook -w html -o $ 1 - echo "Travailler sur $ 1… HTML est propre!" terminé
Maintenant, si vous avez un dossier plein de “sale” HTML, vous pouvez exécuter ce script dessus et obtenir une mise en forme HTML éclatante.
Où aller en partant d'ici
Si vous aimez bricoler, vous allez adorer les scripts shell, car il y a toujours des réglages à faire. Quelques idées sur la façon d'utiliser ces modèles comme base pour d'autres scripts sont les suivantes:
- Ajout de la prise en charge de la conversion directement à partir du fichier de traitement de texte, car Pandoc prend en charge les entrées ODT et DOCX (par exemple, la chaîne devient ODT / DOCX> DocBook XML> HTML).
- La combinaison des deux nettoyeurs HTML en un seul, de sorte que si un fichier est fourni, il le nettoie, sinon, il nettoie automatiquement tout le contenu du répertoire en cours (ajout du traitement des arguments de ligne de commande. Guide de démarrage rapide de la ligne de commande Linux Guide de démarrage rapide Commencé avec la ligne de commande Linux Vous pouvez faire beaucoup de choses étonnantes avec des commandes sous Linux et ce n’est vraiment pas difficile à apprendre. Lire la suite).
- Fournit à l'utilisateur des options d'exportation supplémentaires telles que PDF (ajoute des choix en fonction des entrées, via des instructions if-then ou case).
Comme vous pouvez le constater, les scripts de shell vous permettent de créer des éléments un par un, de les tester à l’invite et de les insérer au fur et à mesure dans vos scripts..
Que dites-vous, les scripts shell semblent-ils un peu moins intimidants maintenant? Êtes-vous prêt à vous essayer à automatiser vos tâches les plus ennuyeuses? Si vous décidez d'intervenir, dites-nous comment ça se passe ci-dessous dans les commentaires.!
Explorez plus sur: HTML, Scripting.