Autor

Alejandro Alcalde

Data Scientist and Computer Scientist. Creator of this blog.

Más artículos de Alejandro Alcalde | Porfolio

Índice

Actualizando el diseño del blog he tenido que usar muchas expresiones regulares para ajustar los artículos existentes al Front Matter del nuevo tema. Mientras necesité remplazar únicamente cosas en una única línea pude usar Atom. La cosa se complicó cuando quería solucionar el siguiente problema. Imaginemos esta configuración yalm:

---
param1: valor1
param2: valor2
param3: valor3
param4: valor4
categories:
  - Articulos
  - Android
  - Java
param5: valor5
param6: valor6
param7: valor7
param8: valor8
---

Necesitaba dejarla tal cual, pero añadir un último parámetro llamado mainclass: Artículos, es decir, este parámetro debe tener como valor la primera categoría que aparece, en este caso Artículos. Para ello decidí usar perl:

perl -i -p0e 's/(categories:\s+-\s+)([a-zA-Z ]+)(\s+-[a-zA-Z ]*)?(.*?)-{3}/$1$2$3$4mainclass: "$2"\n---/s'

La expresión regular en sí se define:

categories:
  -
categories:
  - Articulos
categories:
  - Articulos
  - Android
  - Java
categories:
  - Articulos
  - Android
  - Java
param5: valor5
param6: valor6
param7: valor7
param8: valor8
---

Ahora queda reescribirla, de eso se ocupa la segunda parte, $1$2$3$4mainclass: "$2"\n---. Cada uno de los grupos que hemos capturado anteriormente quedan almacenados para poder usarse luego, se referencian con un $ y un número, el primer grupo tiene asociado el número 1, y por tanto se le referencia con $1. De este modo, $1$2$3$4mainclass: "$2"\n--- nos dejará el fichero tal y como estaba, pero añadiéndole al final otro parámetro:

---
param1: valor1
param2: valor2
param3: valor3
param4: valor4
categories:
  - Articulos
  - Android
  - Java
param5: valor5
param6: valor6
param7: valor7
param8: valor8
mainclass: "articulos"
color: "#F57C00"
---

Referencias

¿Has visto algún error?: Por favor, ayúdame a corregirlo contactando conmigo o comentando abajo.

Categorías:Etiquetas:

Quizá también te interese leer...