Siguiente: Implementación Superior: RTHC: Libertad para el Anterior: El formato RTF |
El programa RTHC se ofrece como una típica aplicación UNIX para línea de órdenes, que recibe como entrada un documento RTF y lo convierte a una salida HTML. RTHC, bajo ciertas condiciones, puede usarse como filtro en líneas de órdenes UNIX.
Para personalizar el aspecto del documento de salida HTML, se ha optado por usar plantillas. Éstas son simples documentos HTML que tienen referencias a ciertas variables que RTHC entiende y sustituye. De esta manera damos flexbilidad total al usuario para definir el aspecto final de la salida. Una alternativa a las plantillas consiste en dar cientos de opciones para personalizar todos los elementos imaginables del aspecto, como las barras de botones, los títulos, los encabezados y pies, etc. Este modelo es el que utiliza el programa shareware rtf2html, pero nos parece complicado, poco práctico, y no tan flexible como las plantillas.
Hay aspectos no personalizables mediante plantillas, como el nivel al que se cortan los documentos, si se desea generar un índice o si hay que generar una página con marcos (frames). Para estos casos se utilizan opciones de línea de órdenes, según el estilo GNU (p.ej. -with-frames).
La correspondencia entre las palabras de control RTF y el contenido HTML se establece con ficheros de configuración. El conversor usa correspondencias por defecto, así que también se evita la necesidad de ficheros de configuración gigantescos (otro inconveniente de rtf2html).
Volviendo a las plantillas, es destacable el hecho de que se utiliza una sintaxis familiar para todos los programadores de UNIX: el signo dólar seguido del nombre de la variable, que es la convención utilizada por Perl y PHP. Hablando de estos dos programas, hemos de destacar que las plantillas pueden usarse para que RTHC genere programas en Perl o PHP, de manera que la salida del conversor ¡se puede ejecutar como un programa! Esto permite usar RTHC para invocar operaciones avanzadas, empotrarlo como CGI en un servidor web, etc.