El macroprocesador
El macroprocesador es la parte del sistema
del WikiUv que analiza los patrones y ficheros
de estilo ".ini" para sustituir recursivamente
las variables que va encontrando por sus valores.
Estas variables las puedes haber definido tú
(ver el TutorWiki) o pueden ser variables predefinidas
cuyo valor es calculado automáticamente por el
macroprocesador.
Las variables predefinidas
Las variables predefinidas pueden utilizarse libremente
en los patrones, ficheros de estilo y textos wiki.
En la traza de procesamiento de un fichero wiki (usualmente
accesible con un enlace al final de la página) se pueden
ver (prácticamente) todas las variables definidas y su valor
concreto para ese fichero.
Las variables "comodín", que permiten incluir "adornos" son:
- CONTADOR : Contador de las veces que se ha accedido a la página
(no muy de fiar).
- RELOJ : Reloj digital.
Las variables que se modifican habitualmente en estilos y cabeceras:
- TEMPLATE : plantilla a usar
- ESTILO : Por defecto o según cabecera Wiki "#STYLE"
- TITULO : Título de la página. Por defecto o según cabecera Wiki "#TITLE"
- INDEX : Activa el indice y define título del índice (no se usa en
patrones)
- INDICETIT : Título del índice (lateral o no). Definido por la
cabecera Wiki "#INDEXTIT". Por defecto
es igual a INDEX si está o a TITULO sino.
Información avanzada
Más variables
De utilidad principalmente para desarrolladores de estilos
y plantillas son las variables:
- FECHA : fecha de última modificación del fichero fuente
- DATA : fecha de última modificación del fichero fuente (valenciano)
- DATE : fecha de última modificación del fichero fuente (inglés)
- DIRTRA : Directorio de trabajo
- CONTENIDO : Fichero procesado
- INDICE : Indice del texto en CONTENIDO
- TITULO_SINACENTOS : titulo sin acentos para la ventana (tag title)
- URLCAT : URL de la página en catalán
- URLCAS : URL de la página en castellano
- URLSUP : URL de la página superior
- URLDEBUG : URL de la página de traza
- DIRWIKIBASE : Directorio wiki base de la instalación
- URLWIKIBASE : URL del directorio wiki base de la instalación
- URLESPACIO : URL del espacio web
- DIRESPACIO : Directorio del espacio web
- URLEDIT : URL para edición de la página
- DIRBASE2 : Directorio base del espacio del usuario
- URLBASE2 : URL del directorio base del espacio del usuario
- LANG : La lengua del documento
- URLWIKIDOC : URL de la documentación del wiki
- URLDOC : URL del documento procesado
- URLREFERER : URL de la página llamante, proporcionada por el servidor web
- URISERV : URI del servidor
- BASEURL : Si es redirección, el BASEURL necesario para calcular los URL
relativos de la página
Existen algunas variables más (ver las trazas) que son utilizadas internamente
por el wiki y, desde luego, una
plantilla puede definir sus propias variables.
Instrucciones del Macroprocesador
Las cadenas de caracteres que están entre "###" son consideradas
por el macroprocesador del wiki como instrucciones a ejecutar
(p.e., sustuir la variable por su valor).
Las posibles instrucciones del macroprocesador, en la versión 2
del Wikiuv, son:
- ###vvvv###
Sustitución de variable, búsqueda de imagen/css, inclusión de fichero.
Sustituye:
- Si el valor está definido, se sustituye por:
- El URL del fichero del ese nombre si el valor termina en
.gif, .jpg, .png, .jpeg, .css (URL de la imagen buscada)
- Si no termina con estos sufijos, por el valor de la variable
- Por el contenido del fichero procesado por el traductor del lenguaje wiki,
si es .wiki o existe con sufijo .wiki
- Por el "body" del fichero html, si
es .html o existe con sufijo .html.
- Por la página traída del web con WGET y extrayendo el body, si es http:
Se procesan los URL relativos
del fichero, por lo que seguirán funcionando normalmente.
- ###SET var=val###
Asignación a variable
Asignar valor. Sustituye por vacío.
- ###VALORa!!!VARIABLE2!!!VALORb###
Sustitución de variables dentro de instrucción.
Sustituye por ("+" quiere decir "concatenar"):
- ###VALORa+VALOR_VARIABLE2+VALORb###
- ###DEF var=var2###
Redefinición/renombrado de variable
Asigna a "var" el valor "###var2###", de forma que cuando
se sustituya "###var###" se pondrá en su lugar ""###var2###". En
la siguiente recursión, el wiki encontrará pues "var2" en todos
los sitios en los que había "var".
El valor de var es "###var2###", sustituye por vacío.
- ###SET var=WIKISTRING val###
Asignación de valor wiki
Asignar valor a una variable, tras procesamiento por el
traductor wiki. Sustituye por vacío.
- ###PREFORMATO ffff###
Inclusión de fichero o url http: sin procesar
FICHERO fff con sufijo cualquiera
preparado para incluir en bloque preformato.
Sirve para evitar procesamiento de fichero incluido.
Sustituye por el contenido del fichero o URL http: indicado
(no .txt):
- ###PATRON patron###
Fichero inicial
Equivale a poner ###patron###.
Utilizado como semilla en los ficheros de estilo (.ini).
- ###WEBLOGCON###
Weblog
Sustituye por un weblog, generado a partir de variables y ficheros
presentes en la misma carpeta.
Variables en cabecera y .conf
Observar que, al leer las cabeceras, el wiki sustituye toda
definición similar a:
#VARIABLE valor
por
###SET VARIABLE=valor###
y deja tal cual, los "DEF" y "SET" que pudiera haber.
Asimismo, al leer las cabeceras, sustituye TITLE por "TITULO" y STYLE por
"ESTILO".
Variables en ficheros de estilo (.ini)
El macroprocesador, al leer los ficheros de estilo, rodea cada
línea por "###" y "###",
convirtiéndolas así en intrucciones del macroprocesador.
Las instrucciones provenientes de las cabeceras (primero wiki.conf, seguidas de
las del fichero) se añaden a continuación.
Luego, se inicia un proceso recursivo de sustituciones, al ejecutar
el macroprocesador
la instrucción ###PATRON patron### del .ini como si fuera ###patron###.
Wiki como Proxy para "vestir" aplicaciones o sitios web
Sea la aplicación web http://postor.uv.es/cgi-bin/Archivo
que genera páginas web muy sencillas (código HTML sin estilos).
Es posible "vestirla" con la apariencia (plantilla) de una página
wiki dada, escribiendo simplemente esta sencillo texto wiki:
#SET PROXYEREG=Archivo
#TITLE Archivo del Usuario
= Archivo del Usuario
###http://postor.uv.es/cgi-bin/Archivo###
El macroprocesador del wiki, al visualizar esta página, incluirá en
ella el body de la
página html generada por la aplicación.
Además, sustituirá todos los enlaces que cumplan
con la expresión regular definida en "PROXYEREG" por enlaces
que pasen a través de la misma página wiki.
Es decir, si la aplicación ha generado
un enlace
/cgi-bin/Archivo?tabla
el wiki lo reescribirá
como
?http://postor.uv.es/cgi-bin/Archivo?tabla
(que es un
URL relativo a la página wiki que se está viendo).
Hay que tener en cuenta que estos enlaces
?http://xxx.uv.es/
cuando se
utilizan al final de cualquier URL de wiki, el wiki, en vez de mostrar la
página wiki pedida, mostrará
http://xxx.uv.es/
con el estilo y título
de la susodicha página wiki... y aplicará la transformación de URL
indicada por PROXYEREG. Esto garantiza que las sucesivas llamadas a la
aplicación remota sigan pasando por la página wiki original y sigan
recibiendo el procesado (apariencia) del wiki.
Ejemplo
Aplicación sin "vestir":
Aplicación "vestida" por el wiki:
[<]
Tornar