Una pequeña herramienta

Al subir código al blog «codigospoloestable» para el artículo anterior, me he dado cuenta de una serie de problemas que da el editor de html: Elimina las tabulaciones, interpreta como definición de una etiqueta todo lo que esté entre un < y un > (por lo que desaparecen grandes trozos del código), no representa los «&» si no van seguidos de espacio y la etiqueta <code> sólo funciona por párrafos, por lo que hay que ponerla en cada párrafo para conservar la fuente en todo el código. Además, hay que adaptar el ancho de línea para que se ajuste al ancho de la entrada, para eso hay que escribir tres puntos al final de las líneas de instrucciones y, si se trata de Matlab, un «%» al principio del nuevo renglón sie estamos dividiendo un comentario… con todo, la apariencia de los comentarios queda destrozada (lleno de líneas cortas y largas intercaladas).

Para solucionarlo he programado una pequeña herramienta en Matlab que pone automáticamente las etiquetas <pre> y <\pre> (que no dan los problemas que da <code>) cambia los «&» por «&amp;», los «<» por «&lt;» y los «>» por «&gt;» y adapta el código al ancho de coumna especificado (si no se especifica ninguno usa 71 caracteres, que me ha parecido bien para la apariencia que tengo seleccionada) poniendo los (…) correspondientes. Comprobaréis que deja los comentarios perfectos (no llenos de renglones cortos). Es perfecta para todos los que queráis subir código de Matlab a la Web y es muy fácil de adaptar para que funcione con código en Java.

Tiene todavía dos defectos que costaría mucho solucionar y creo que merece la pena corregirlos a mano tras ejecutar el programa: uno es que cuando corta en dos una cadena de caracteres cierra con (‘) la primera parte y abre también con (‘) la segunda, pero ambas partes quedan sin concatenar, lo cual dará fallos a los que copien el código de la Web salvo que de casualidad la cadena original ya estuviera entre corchetes para concatenar con otras.

El segundo defecto está relacionado con el primero: los símbolos (‘) usados para trasponer una matriz son interpretados como inicio (o fin en su caso) de cadenas de caracteres, por lo que al cortar un renglón tras un número impar de transpuestas se lía un poco la cosa con las cadenas de caracteres.

De todos modos el programa avisa por pantalla cada vez que corta uno de estos renglones indicando en qué linea está para que sea fácil detectarlos y corregirlos a mano.

Aquí os dejo el código, que ha sido ejecutado sobre sí mismo para poder subirlo. ;). Sólo tenéis que llamarlo sin argumentos. He usado las GUI para abrir y guardar archivos como en un programa cualquiera. ¡Ah! por cierto, como todos mis códigos por ahora, está hecho para Matlab 6.1 ó 7.0. Al ejecutarlo en versiones posteriores podéis tener problemas con los «warning», que se han profesionalizado mucho en las nuevas versiones.

Explore posts in the same categories: código, herramientas, matlab

Deja un comentario