En www.leychile.cl están disponibles prácticamente todas las leyes, reglamentos y otros textos jurídicos que tienen (o tuvieron) validez y vigencia en Chile. Actualmente, en el marco de mi estudio para el examen de grado, tuve la fantástica (espero) idea de ir haciendo apuntes en el Código Civil, dada su extensión y la clara poca prácticidad de utilizar alguna suite ofimática (v. gr. Libre Office, Word, etc) decidí utilizar markdown, debido a su versatilidad y edición poco engorrosa. En esta entrada pretendo hacer un registro de como avanzo con eso.

1.1- conseguir el código. Lo descargué utilizando la función exportar (exp. Norma) que tienen todos los contenidos en la página leychile.cl.

1.2- exportar la ley como texto plano quitando todas las notas y elementos que distorsionan el formato. Es cierto que esto hace perder bastante información, pero para estos efectos es imprescindible.

1.3- teniendo ya el archivo de texto, hay que reparar algunos defectos que trae.


a) saltos de línea excesivos: utilizando a discreción la herramienta buscar y reemplazar hay que sustituir \n por nada. Por discreción me refiero a que hay que ir viendo uno a uno los cambios, para que no queden los párrafos mezclados (y todo el trabajo estropeado. Si ocurriere, dar rienda suelta a Ctrl+Z hasta recuperar el estado inicial).
a.1) en el caso particular del Código Civil exportado desde leychile, encontré que, para hacer todo con solo una operación hay que reemplazar:

\r\n\r\n\r\n\r\n

por nada.

b) espacios en blanco que anteceden a los párrafos: solución similar a la anterior, pero hay que sustituir “_____”(cinco espacios en blanco) por nada nuevamente. Para reparar pequeños errores que pudiesen quedar perdidos en la inmensa geografía del código, sugiero también reemplazar “__”(dos espacios) por “_”(un espacio) un par de veces. Con eso, el asunto de los espacios debería quedar resuelto.

2- Estructurando. La estructura del código es la siguiente:

  • Libro
    • Título
      • Párrafo
        • Artículo

Así que, para asignar a cada uno una categoría diferente utilizando el lenguaje markdown hay que identificar cada uno y luego antecederles con los respectivos # para que adquieran jerarquía y que queden así:

#Libro
##Título
###Párrafo

Los artículos no serán administrados bajo este régimen, sino otro (explicado más adelante).

2.1- Libros. Los Libros están todos escritos con mayúscula así que, para reemplazarlo, usamos buscar y reemplazar y cambiamos LIBRO por #LIBRO. El título preliminar y el título final, que también están en jerarquía de libro, sugiero cambiarlos manualmente (son solo dos líneas y una está casi al comienzo y la otra al final, no alegar!).

2.2- Títulos. La palabra título aparece varias veces en el código, así que no sería astuto repetir el mecanismo anterior así que, para que funcione este reemplazo, será \nTítulo por \n##Título. A esta altura, ya se habrá inferido que \n es salto de línea (el resultado de teclear “Enter”).

2.3- Párrafos. Los párrafos comienzan con el símbolo §, así que bastará reemplazar § por ### para quedar listo con esto.

3- Los artículos. El Código Civil tiene 2524 artículos. Ponerlos todos en jerarquía de encabezado sería una necedad total porque crearía una cantidad inoficiosa de títulos y además porque en los artículos con más de un inciso (un inciso es lo que en texto se llama párrafo; los párrafos en los textos legales están compuestos de varios artículos) el formato se distorsionaría por completo, porque el inciso primero quedaría completo como encabezado y, lo más pernicioso de esto es que no podría usarse como hipervínculo.

Solución. Usar el tag html <a>. Sí, sí sé que <a> es para hacer hipervínculos, pero no nos serviremos de esa función, sino del parámetro name que sirve para crear identidad al texto contenido y así ser internamente vinculado (ver más adelante). Entonces, lo que ahora intentaremos será convertir Art. 343. en <a name=”343″>Art. 343</a>. La verdad, resolver esto me costó bastante y tras mucho prueba/error llegué a la forma de hacerlo me hizo incurrir en diversas pamplinas, finalmente gracias al consejo de Tomas Solar, supe que se podía arreglar usando la expresión regular (\d+). Aplicación práctica:

Reemplazar:

Art. (\d+).

por

<a name=”\1″>Art. \1</a>.

ANEXO: Agrego un ejemplo, solo para confirmar la claridad con que me expliqué respecto a esto y para que sirva a quien tenga esta duda (que me atormentó durante un par de horas):

Tenemos el texto: Andrés Bello 1781-1865 escribió el Código Civil que fue promulgado en 1855 y sigue vigente aun en 2016

Con buscar/reemplazar, sustituímos: Andrés Bello (\d+)-(\d+) escribió el Código Civil que fue promulgado en (\d+) y sigue vigente aun en (\d+)

por: Siendo promulgado en \3, un hoy, en \4 está vigente el Código Civil escrito por Andrés Bello, quien vivió entre \1 y \2.

El resultado será: Siendo promulgado en 1855, aun hoy, en 2016 está vigente el Código Civil escrito por Andrés Bello, quien vivió entre 1781 y 1865.

3 bis- arreglando saltos de línea en los títulos. Otra desgracia de formato ocurre en los títulos porque están dispuestos del siguiente modo:

Título V
DE ALGO
y, obviamente, lo queremos tener todo en una sola línea. Para repararlo, hay que reemplazar ##(Título.*)\n(.*)$ por ##\1: \2 lo que dejará al ejemplo recién puesto así:

Título V: DE ALGO

4- El trabajo. Ya teniendo el Código Civil en markdown, viene el trabajo personal que consistirá en crear hipervínculos entre artículos y agregar notas al pie con explicaciones.

4.1 El procedimiento anterior (de dar identidad a los artículos) tiene por finalidad poder vincular los artículos de forma libre dentro del texto usando la fórmula de markdown para los hipervínculos: [texto que se ve](destino del hipervínculo). Si el hipervínculo es interno (como en este caso) hay que anteponer un # al destino. Un ejemplo aplicado sería el siguiente:

Art. 1451. Los vicios de que puede adolecer el consentimiento, son [error](#1452), [fuerza](#1456) y [dolo](#1458).

4.2 Notas al pie. Markdown permite agregar notas al pie con mucha facilidad, porque no es necesario ir al final del texto para agregarlas ni mucho menos hacer clicks en menús ni nada: en el texto se agrega [^nombredenota] y luego, en otro párrafo que podrá estar ubicado en cualquier otra parte se agrega el texto que será llamado con esa nota escribiendo [^nombredenota]: texto-de-nota. Para evitar confusiones con las notas al pie, usaré el formato {articulo}-{numero}. Utilizando el mismo artículo anterior, un ejemplo:

Art. 1451. Los vicios de que puede adolecer[^1451-1] el consentimiento, son [error](#1452), [fuerza](#1456) y [dolo](#1458)[^1451-2].

[^1451-1]: es importante señalar que el consentimiento adolece de vicios, por lo tanto es errada la expresión “vicios del consentimiento”.

[^1451-2]: el dolo está descrito en el [artículo 44](#44).


Hasta el momento, solo estas ideas tengo para trabajar en esta especie de proyecto paralelo al estudio. Los glosadores habrían a-lu-ci-nado con este artículo… si hubieran tenido internet, computadores, etc.

Ah, en este artículo me referí bastante a markdown sin explicar bien qué es. En términos breves, es un lenguaje que sirve para dar formato (negritas, cursivas, etc) de forma manual a texto. Al estar escrito en texto plano, es muy liviano y portable. Más info en: markdown.es, wikipedia y acá un editor en línea, para hacer los primeros ejercicios.