Corregir el formato HTML con scripting de shell simple

  • Michael Cain
  • 0
  • 3701
  • 1047
Anuncio

Si a menudo escribe HTML en un editor y luego lo pega en WordPress, notará que a veces se agregan etiquetas de formato molestas (como etiquetas). Usando scripts de shell simples, puede limpiar automáticamente ese formato HTML basura con algunos comandos simples.

¿Por qué usar scripting de shell? Si eres nuevo en la programación, es mucho mejor comenzar de a poco. No solo es menos probable que te des por vencido, sino que también tendrás la oportunidad de detenerte y aprender en el camino. Dicho esto, tus primeros programas pueden ser realmente útiles incluso si también son realmente simples.

Scripting de Shell ¿Qué es Scripting de Shell y por qué debe usarlo? ¿Qué es Scripting de Shell y por qué debe usarlo? Además de poder aceptar y ejecutar comandos de manera interactiva, el shell también puede ejecutar comandos almacenados en un archivo. Esto se conoce como scripting de shell. Aquí cubrimos los conceptos básicos de los scripts de shell. es un gran 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á mucho tiempo. Echemos un vistazo a un par de recetas, o “patrones,” puede reutilizar en sus propios guiones.

Por qué Shell Scripting?

Primero, comencemos definiendo “script de shell” como escribir scripts para ejecutarse en el shell Bash. Técnicamente hablando, otros lenguajes de scripting como Powershell también podrían denominarse “script de shell.” Pero, ¿por qué centrarse en las secuencias de comandos de shell en general, y las secuencias de comandos de Bash en particular, en primer lugar??

  • Con la introducción del subsistema de Windows para Linux, el shell Bash ahora es compatible con todas las principales plataformas 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. Obtenga más información sobre Bash en Windows, desde cómo y por qué debería instalarlo, hasta características ocultas que probablemente no conocía. . (También se incluye en macOS y en casi todas las distribuciones de Linux de fábrica). 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 delgada aplicación de línea de comandos de Linux. , una descarga gratuita y de código abierto de Google Play.
  • Las secuencias de comandos de Shell le permiten enfocarse en los fundamentos de la programación, porque los comandos que incluirá harán el trabajo más pesado. Suponga que desea comprimir algunos archivos en una aplicación de escritorio tradicional escrita en C. Necesitará escribir un pequeño código para usar una biblioteca de software compatible. Un tamaño no sirve para todos: por qué el software no es universalmente compatible. No se ajusta a todos: ¿Por qué el software no es universalmente compatible? El software es el mismo en cualquier sistema operativo, ¿verdad? Incorrecto. Puede verse igual y funcionar de manera similar, pero es diferente detrás de escena. eso hará el trabajo, o escribirá mucho de código desde cero para realmente hacer la compresión. En un script de shell, todo lo que necesita hacer es ejecutar el alquitrán comando en los archivos deseados.
  • Puede desarrollarse en pequeños pasos, de forma interactiva. Para continuar con el ejemplo anterior, supongamos que ha decidido que usará alquitrán para hacer su compresión, pero aún no está seguro de cuál de sus opciones desea. Simplemente juegue con él en el indicador 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 armar con solo un par de líneas de código. Construiremos un par de scripts para mejorar los poderes ya considerables de la utilidad de conversión de Pandoc Cómo convertir fácilmente entre formatos de documentos en Linux Cómo convertir fácilmente entre formatos de documentos en Linux Cambiar a Linux puede ocasionar problemas con la compatibilidad de archivos. Por ejemplo, los documentos no se ven igual en LibreOffice que en Word. Esta es solo una de las razones por las que necesita pandoc. .

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 tipo de acceso directo para un comando existente. Algunos programas de línea de comandos tienen un montón de banderas, y su sintaxis no siempre es clara. Pero puede tomar uno de estos comandos, con todas sus opciones complicadas, y lanzarlos en 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 = / ruta / a / carpeta / que contiene / mscript-template.odt -o manuscript.odt manuscript.md

Uso Pandoc a diario, ya que escribo todo en marcado ligero como Markdown ¿Qué es Markdown? 4 razones por las que deberías aprenderlo ahora ¿Qué es Markdown? 4 razones por las que debería aprenderlo ahora ¿Cansado de los editores HTML y WYSIWYG? Entonces Markdown es la respuesta para ti sin importar quién seas. y Asciidoc Lenguajes de marcado ligero: esta es la razón por la que debe usar AsciiDoc sobre el marcado regular Lenguajes de marcado ligero: es por eso que debe usar AsciiDoc sobre el marcado regular El lenguaje de marcado viene en muchos sabores, algunos de los cuales son mejores que otros. Los lenguajes ligeros como AsciiDoc son fáciles de aprender y extremadamente útiles. Así es como se compara. . Y sin embargo, al convertir a ODT, escribo “referencia impar” en vez 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 guardar todo ese error de escritura:

#! / bin / bash pandoc -r docbook -w odt --reference-odt = / ruta / a / carpeta / que contiene / mscript-template.odt -o $ 1.odt $ 1

La primera línea del script dirige al sistema a usar 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. Vale la pena señalar que hay otras formas de hacer esto, como usar el alias comando en sistemas Unix-ish. Pero crear pequeños scripts de shell significa que puede tenerlos a mano (como en su carpeta ~ / bin), copiarlos (o sincronizarlos) rápidamente en 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 (p. Ej.. “markdown2odt.sh”) No olvide otorgarle permisos de ejecución. Una de las herramientas más importantes en Linux: comprender Chmod. Una de las herramientas más importantes en Linux: comprender Chmod. Hay muchas características que hacen que Linux sea especial, pero una de ellas que lo hace tan seguro. es su sistema de permisos. Puede tener control de grano fino sobre todos los archivos en su sistema y ... .

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

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

Un truco que uso con Pandoc es “limpiar” Formateo HTML, o elimine todo el estilo en línea 9 Errores que no debe cometer al construir una página web 9 Errores que no debe cometer al construir una página web Estos siguientes errores de codificación HTML son fáciles de cometer, pero si los evita antes que más tarde, su página se verá mejor, será más fácil de mantener y funcionará como lo desea. . Si alguna vez intentó exportar un documento de procesador de textos a HTML, puede ver que hay muchos estilos (lapso etiquetas) que se agregan 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 descarta. Entonces podemos usar Pandoc para convertir el DocBook espalda a HTML, y obtenemos un poco 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 nuevamente en lo que ahora es agradable, formato HTML limpio (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 un montón de XML en el terminal. La razón es que no le hemos dado a Pandoc ninguna otra salida (como un archivo) para usar. Por lo tanto, está utilizando la única alternativa: la salida estándar, en este caso el terminal.

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

El resultado es, si cambia el nombre de esto 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 sobre.

3. Ejecución de programas en múltiples archivos HTML

Algunos programas le 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” script en cada uno de ellos manualmente?

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

para 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 limpio y brillante.

A dónde ir desde aquí

Si te gusta jugar, te encantarán las secuencias de comandos de shell, porque siempre hay que hacer ajustes. Algunas ideas sobre cómo usar estos patrones como base para otros scripts incluyen las siguientes:

  • Agregar soporte para la conversión directamente desde el archivo del procesador de textos, ya que Pandoc admite entrada ODT y DOCX (es decir, la cadena se convierte en ODT / DOCX> DocBook XML> HTML).
  • Combinando ambos limpiadores HTML en uno, de modo que si se proporciona un archivo, lo limpia, de lo contrario, limpia automáticamente todo en el directorio actual (agrega tratar con argumentos de línea de comandos Una guía rápida para comenzar con la línea de comandos de Linux Una guía rápida para obtener 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)..
  • Proporcione al usuario opciones de exportación adicionales como PDF (agrega opciones basadas en la entrada, a través de declaraciones de caso o de caso).

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

¿Qué dices? ¿Las secuencias de comandos de shell parecen un poco menos intimidantes ahora? ¿Estás listo para probar suerte en la automatización de tus tareas más aburridas? Si decide participar, háganos saber cómo va a continuación en los comentarios!




Nadie ha comentado sobre este artículo todavía.

Sobre tecnología moderna, simple y asequible.
Tu guía en el mundo de la tecnología moderna. Aprenda a usar las tecnologías y los dispositivos que nos rodean todos los días y aprenda a descubrir cosas interesantes en Internet.