Corrija el formato HTML usando scripts de shell simple

Corrija el formato HTML usando scripts de shell simple / Programación

Si a menudo escribes HTML en un editor y luego lo pegas en WordPress, notarás que a veces las etiquetas de formato molestas (como etiquetas) se añaden. Usando scripts de shell simples, puede limpiar automáticamente el formato HTML de basura con unos pocos comandos simples.

¿Por qué usar shell scripting? Si eres nuevo en la programación, es mucho mejor comenzar poco a poco. No solo es menos probable que se rinda, sino que también tendrá oportunidades para detenerse y aprender en el camino. Dicho esto, tus primeros programas pueden ser realmente útiles incluso si también son realmente simples.

Shell scripting ¿Qué es Shell Scripting y por qué debería usarlo? ¿Qué es Shell Scripting y por qué debería usarlo? Además de poder aceptar y ejecutar comandos de forma interactiva, el shell también puede ejecutar comandos almacenados en un archivo. Esto se conoce como shell scripting. Aquí cubrimos los conceptos básicos de shell scripting. Leer más es un excelente lugar para comenzar a codificar por esta razón precisa: es fácil reunir algo en un par de líneas de código que le ahorrarán mucho tiempo. Echemos un vistazo a un par de recetas, o “patrones,” Usted puede reutilizar en scripts de su propia.

Por qué Shell Scripting?

En primer lugar, empecemos definiendo “shell scripting” como escritura de scripts para ejecutarse en el shell Bash. Técnicamente hablando, otros lenguajes de scripting como Powershell también podrían denominarse “shell scripting.” Pero, ¿por qué centrarse en shell scripting en general, y Bash scripting en particular, en primer lugar??

  • Con la introducción del Subsistema de Windows para Linux, el shell Bash ahora es compatible con todas las plataformas principales de PC. Una guía rápida para Linux Bash Shell en Windows 10 Una guía rápida para Linux Bash Shell en Windows 10 Ahora puede ejecutar Linux en Windows. Conozca más sobre Bash en Windows, desde cómo y por qué debería instalarlo, hasta características ocultas que probablemente no conocía. Lee mas . (También se incluye en macOS y en casi todas las distribuciones de Linux de forma inmediata). Incluso está disponible en teléfonos Android con Termux. Cómo usar la línea de comandos de Linux en Android con Termux. Cómo usar la línea de comandos de Linux en Android con Termux. Reemplace toneladas de aplicaciones de Android voluminosas con solo una aplicación delgada de línea de comandos de Linux. Leer más, una descarga gratuita y de código abierto de Google Play.
  • Los scripts de shell te permiten enfocarte en los fundamentos de la programación, porque los comandos que incluirás se encargarán del levantamiento más pesado. Supongamos que desea comprimir algunos archivos en una aplicación de escritorio tradicional escrita en C. También deberá escribir un pequeño código para usar una biblioteca de software compatible. Un tamaño no se ajusta a todos: por qué el software no es universalmente compatible. Un tamaño no. No se ajusta a todos: ¿Por qué el software no es compatible universalmente? El software es el mismo en cualquier sistema operativo, ¿verdad? Incorrecto. Puede parecer lo mismo, y funcionar de manera similar, pero es diferente entre bastidores. Leer más que hará el trabajo, o escribir mucho De código desde cero para hacer realmente la compresión. En un script de shell, todo lo que necesita hacer es ejecutar el alquitrán comando en los archivos deseados.
  • Se puede desarrollar en pequeños pasos, de forma interactiva. Para continuar con el ejemplo anterior, digamos que ha decidido que utilizará alquitrán para hacer su compresión, pero aún no está seguro de cuál de sus opciones desea. Simplemente juegue con él cuando se le solicite hasta que obtenga el resultado que desea, luego copie / pegue el comando que utilizó en su script.

Con lo anterior en mente, aquí hay un par de ideas para scripts de shell útiles que puede reunir con solo un par de líneas de código. Construiremos un par de scripts para mejorar los ya considerables poderes de la utilidad de conversión Pandoc Cómo convertir fácilmente entre formatos de documentos en Linux Cómo convertir fácilmente entre formatos de documentos en Linux El cambio a Linux puede causar problemas con la compatibilidad de archivos. Por ejemplo, los documentos no se ven igual en LibreOffice como lo hacen en Word. Esta es solo una de las razones por las que necesitas pandoc. Lee mas .

1. Recopilación de largas listas de parámetros

La forma más fácil y sencilla de usar un script de shell es como un conjunto de atajos para un comando existente. Algunos programas de línea de comando tienen un montón de indicadores, y su sintaxis no siempre es clara. Pero puede tomar uno de estos comandos, con todas sus opciones complicadas, y lanzarlos a un script de shell con un nombre que sea más fácil de ingresar. Considere el siguiente comando, que ejecuta Pandoc en un archivo Markdown y crea un archivo ODT, utilizando un archivo de plantilla:

pandoc -r markdown -w odt --reference-odt = / path / to / folder / que contiene / mscript-template.odt -o manuscript.odt manuscript.md

Utilizo Pandoc a diario, ya que escribo todo en marcas ligeras como Markdown ¿Qué es Markdown? 4 razones por las que deberías aprenderlo ahora ¿Qué es Markdown? 4 razones por las que deberías aprenderlo ¿Estás cansado de los editores HTML y WYSIWYG? Entonces Markdown es la respuesta para ti, no importa quién seas. Leer más y Asciidoc Lightweight Markup Languages: esta es la razón por la que debe usar AsciiDoc en comparación con Regular Markdown Lightweight Markup Languages: esta es la razón por la que debe usar AsciiDoc en comparación con Markdown regular El lenguaje de Markdown se presenta en muchas versiones, algunas de las cuales son mejores que otras. Los lenguajes ligeros como AsciiDoc son fáciles de aprender y extremadamente útiles. Aquí es cómo se compara. Lee mas . Y sin embargo, al convertir a ODT, escribo “odt-referencia” en lugar de “referencia-odt.” Cada. Soltero. Hora. Además, la ruta a la plantilla no se completará automáticamente como la mayoría de los comandos de shell. Crear un script simple puede salvar todo ese error de escritura:

#! / bin / bash pandoc -r docbook -w odt --reference-odt = / path / to / folder / que contiene / mscript-template.odt -o $ 1.odt $ 1

La primera línea del script le indica al sistema que use el shell Bash para ejecutarlo. El siguiente toma el primer argumento en la línea de comando ($ 1), y ejecuta Pandoc con un conjunto de banderas en él. Vale la pena señalar que hay otras formas de hacer esto, como usar el alias comando en sistemas Unix-ish. Pero hacer scripts de shell pequeños significa que puede tenerlos a mano (como en su carpeta ~ / bin), copiarlos rápidamente (o sincronizarlos) en cualquier otro lugar y cambiarlos con cualquier editor de texto. Guarde su script con un nombre de archivo que sea fácil de recordar y escribir (por ejemplo,. “markdown2odt.sh”). No olvide otorgarle permisos ejecutables Una de las herramientas más importantes de Linux: comprender Chmod Una de las herramientas más importantes de Linux: entender Chmod Existen muchas características que hacen que Linux sea especial, pero una de ellas es muy segura Es su sistema de permisos. Puede tener control de grano fino sobre todos los archivos en su sistema y ... Leer más .

2. Salida de tuberías para limpiar el formato HTML

Conectando dos comandos de terminal con una tubería (“|”) El carácter hace que la salida del primero se utilice como entrada del segundo. (Si nunca ha visto esto antes, consulte nuestra guía rápida de la línea de comandos Guía rápida para comenzar con la línea de comandos de Linux Guía rápida para comenzar con la línea de comandos de Linux Puede hacer muchas cosas increíbles con comandos en Linux y realmente no es difícil de aprender. Leer más.) Pero tener que escribir dos Los comandos en el orden correcto, con los parámetros correctos, solo agravan el problema que acabamos de discutir. Envolver este doble comando en un script de shell lo hace mucho más conveniente.

Un truco que uso con Pandoc es “limpiar” Formatee HTML o elimine todo el estilo en línea 9 Errores que no debe cometer al crear una página web Errores que no debe cometer al crear una página web Estos errores siguientes de codificación HTML son fáciles de cometer, pero si los elimina antes, más bien Más adelante, su página se verá mejor, será más fácil de mantener y funcionará como usted lo desee. Lee mas . Si alguna vez ha intentado exportar un documento de procesador de textos a HTML, puede ver que hay un montón de estilos (lapso etiquetas) que se añaden en y entre el texto.

El formato XML de Docbook no tiene ninguna convención para los estilos en línea, por lo que si convertimos HTML a DocBook, todo este formato se elimina. Entonces podemos usar Pandoc para convertir el DocBook atrás a HTML, y obtenemos una buena cantidad de marcado que puede (por ejemplo) pegar en WordPress. En lugar de hacer esto con llamadas individuales a Pandoc, el siguiente script los encadena para:

  1. Convierta el archivo HTML exportado a DocBook, que no tiene estilos en línea (antes de la tubería)
  2. Convierta el DocBook de nuevo en lo que ahora es agradable, limpio y en formato HTML (después de la tubería)
#! / bin / bash pandoc -w docbook $ 1 | pandoc -r docbook -w html -o $ 1 -

Explicando la entrada / salida estándar

Lo anterior aprovecha los conceptos terminales de “entrada estándar” y “salida estándar.” Si ejecutara la primera parte del comando, obtendría una gran cantidad de XML que se muestra en el terminal. La razón por la cual no le hemos dado a Pandoc ninguna otra salida (como un archivo) para usar. Así que está usando la única opción de retroceder que tiene: salida estándar, en este caso el terminal.

Por otro lado, el carácter de guión al final del segundo comando Pandoc significa que debe usar “entrada estándar.” Ejecutado por sí mismo, recibirá un mensaje de solicitud, donde el shell esperará a que proporcione un texto a través de su entrada predeterminada, escribiendo en el teclado. Cuando los combinamos, casi se puede imaginar el primer comando que escupe un montón de XML al terminal, donde se canaliza inmediatamente al segundo comando como entrada.

El resultado es, si cambia el nombre a “clean-html.sh,” puedes ejecutarlo en cualquier archivo HTML para deshacerte de esos molestos estilos. La mejor parte es que Pandoc leerá el archivo, luego lo sobrescribirá al final, lo que significa que no hay archivos temporales desordenados.

3. Ejecutando programas en múltiples archivos HTML

Algunos programas te permiten especificar comodines como el asterisco en la línea de comando. Esto le permite, por ejemplo, mover todas las imágenes JPG a su “Imágenes” carpeta:

mv * .jpg ~ / Imágenes

Pero otros programas toman solo un archivo a la vez como entrada, y Pandoc es uno de ellos. Entonces, ¿qué sucede cuando tenemos un directorio completo lleno de archivos HTML exportados y queremos limpiar el formato HTML? ¿Necesitamos ejecutar nuestro “clean-html.sh” Guión en cada uno de ellos manualmente.?

No, porque no somos novatos. Podemos envolver nuestro comando canalizado en una “para cada” lazo. Esto irá a cada archivo HTML en el directorio actual y realizará la operación de limpieza en él. También vamos a añadir un pequeño mensaje a través de la eco Declaración para hacernos saber que todos los archivos han sido atendidos:

para el nombre de archivo en ./*.html do pandoc -w docbook $ 1 | pandoc -r docbook -w html -o $ 1 - echo "Trabajando en $ 1 ... ¡HTML está limpio!" hecho

Ahora si tienes una carpeta llena de “sucio” HTML, puede ejecutar este script en él y terminar con un formato HTML brillantemente limpio.

A dónde ir desde aquí

Si te gustan los retoques, te encantarán los scripts de shell, porque siempre hay que hacer ajustes. Algunas ideas sobre cómo usar estos patrones como base para otros scripts incluyen lo siguiente:

  • Agregar soporte para la conversión directamente desde el archivo del procesador de textos, ya que Pandoc admite entradas ODT y DOCX (es decir, la cadena se convierte en ODT / DOCX> DocBook XML> HTML).
  • Combinando ambos limpiadores de HTML en uno solo, de manera que si se proporciona un archivo, lo limpia; de lo contrario, automáticamente limpia todo en el directorio actual (agrega tratos relacionados con los argumentos de la línea de comandos. Comenzó con la línea de comandos de Linux Puede hacer muchas cosas increíbles con comandos en Linux y realmente no es difícil de aprender. Leer más).
  • Proporcionar al usuario opciones de exportación adicionales como PDF (agrega opciones basadas en la entrada, mediante declaraciones if-then o de caso).

Como puede ver, con los scripts de shell puede construir las cosas poco a poco, probándolas en el indicador y colocándolas en sus scripts a medida que avanza..

¿Qué dices, el script de shell parece un poco menos intimidante ahora? ¿Estás listo para intentar automatizar tus tareas más aburridas? Si decide participar, háganos saber cómo va más abajo en los comentarios.!

Explorar más sobre: ​​HTML, Scripting.