Apéndice A. Guía de estilo de la ventana de conversación de Kopete

Referencia de estilo de la ventana de conversación de Kopete

Desde Kopete 0.12 estamos utilizando el formato Adium para nuestro estilo de ventana de conversación. El formato del tema se basa en plantillas HTML y CSS. Es más sencillo de crearlos y desarrollarlos, ya que solo es necesario un conocimiento de HTML y CSS. Además, los estilos pueden tener variantes (definidas como archivos CSS) que añaden un mayor valor de personalización :).

Guía de referencia

El formato Adium está formado por una estructura de directorios, plantillas HTML, archivos CSS y palabras clave que se reemplazan cada vez que se procesa la plantilla. La conversación final es una página XHTML en la que los mensajes se añaden con operaciones DOM. El elemento central es un elemento div llamado Chat. Antes y después de dicho elemento div, se encuentra la cabecera y el pie de la plantilla. Los mensajes son hijos del elemento div Chat.

Estructura del directorio

Un estilo debe respetar esta estructura de directorio. El código de Kopete está pensado en torno a esta estructura de directorio. Cuando guarde un estilo, guarde el directorio styleName. La estructura del directorio es una estructura de un paquete de Mac OS X para aquellos que estén familiarizados con este sistema operativo. También se deben respetar las mayúsculas que se muestran aquí, ya que un sistema UNIX es sensible a las mayúsculas y minúsculas.

styleName\ (puede tener .adiumMessageStyle como sufijo, porque en Mac OS X es un paquete)
        Contents\
                Info.plist
                Resources\
                        main.css
                        Header.html
                        Footer.html
                        Status.html
                        Incoming\ (y saliente\)
                                Content.html
                                NextContent.html (para mensajes consecutivos)
                                Context.html (para mensajes del historial)
                                NextContext.html
                                Action.html
                        Variants\
                                *.css

Acerca de <div id=«insert»></div>

Este es un elemento div especial utilizado internamente. Es un marcador que indica dónde insertar el siguiente mensaje. Si es un mensaje nuevo, se elimina y el mensaje nuevo toma su lugar. Pero si es un mensaje consecutivo, el elemento div se reemplaza con el contenido del nuevo mensaje. Este elemento div especial es necesario en las plantillas Content, Context, NextContent, NextContext, todo ello sin perjuicio de que se pueda colocar en las plantillas Action y Status.

Plantillas HTML.

Descripción de la plantilla.

Header.html (Requerido)

Utilice la plantilla Header para mostrar una bonita cabecera para la conversación. Esta plantilla se inserta antes del elemento div Chat. Si no la va a utilizar, indique un archivo vacío.

Footer.html (Requerido)

Es más o menos igual que Header, pero para el pie de una conversación. Esta plantilla se inserta después del elemento div Chat . Si no la va a utilizar, indique un archivo vacío.

Status.html (Requerido)

Esta plantilla se utiliza para mostrar mensajes internos, tales como el cambio de estado o mensajes de Kopete (ej: transferencia de archivo entrante). Cuando el estilo no proporciona una plantilla Action, se utiliza para mostrar el mensaje Action.

Incoming/Content.html, Outgoing/Content.html (Requerido)

La plantilla Content es el corazón del mensaje. Considérela como un bloque en el que se incluyen los mensaje. Asegúrese de que está preparada para recibir mensajes consecutivos, no la diseñe para mostrar un solo mensaje. Los mensajes consecutivos se insertarán en el elemento div insert.

Incoming/NextContent.html, Outgoing/NextContent.html (Requerido)

La plantilla NextContent es un fragmento de mensaje para mensajes consecutivos. Se insertará en el bloque principal del mensaje. La plantilla HTML debería contener lo mínimo para mostrar un mensaje.

Incoming/Action.html, Outgoing/Action.html (Opcional) (Extensión de Kopete)

Esta plantilla es una extensión de Kopete para el formato Adium. Está disponible tanto para la entrada (Incoming) como para la salida (Outgoing). Los mensajes Action son mensajes especiales indicar que se está realizando una acción. Ejemplo: «/yo está instalando Kopete» debería mostrarse como «DarkShock está instalando Kopete».

Incoming/Context.html, Incoming/NextContext.html, Outgoing/Context.html, Outgoing/NextContext.html (Opcional)

Estas plantillas no se utilizan en Kopete. En Adium, se utilizan para mostrar el historial. Son muy parecidas a Content y NextContent pero con algunas diferencias que las distinguen de los mensajes normales.

Acerca de los estilos CSS y sus variantes

La plantilla HTML se utiliza para describir como está creada la estructura. Pero todo el estilo se describe en los archivos CSS. main.css es el estilo principal en el que las variantes son solo modificaciones del estilo principal. Ejemplos de variantes son colores diferentes o no mostrar la foto del usuario. Tanto main.css como las variantes se importan en la página final XHTML.

-main.css

Este es el principal archivo CSS que es común para todas las variantes. Este archivo debería contener toda la descripción principal del estilo.

-Variantes

Las variantes son archivos CSS situados en el directorio Variants/. Cada variante es un archivo CSS que incluye el main.css y realiza la alteración del estilo principal.

Estilos de depuración

Aquí encontraremos dos consejos para probar un estilo mientras se crea.

-Guardar una conversación de muestra.

En la ventana de conversación, puede guardar una conversación. Es una copia de la página XHTML interna mostrada. Utilícela en Konqueror para probar sus archivos CSS.

-Desactive la caché del estilo.

Una pequeña variable de configuración activa o desactiva la caché del estilo. Cuando se activa, se recargan las plantillas HTML cada vez que se pide el estilo. Añada las siguientes líneas a su kopeterc. Es muy útil cuando se está probando un estilo en Kopete.

[KopeteStyleDebug]
disableStyleCache=true

Referencia de palabras clave

Las palabras clave son como los huecos que hay que rellenar con detalles. En cada nuevo mensaje, se reemplazan con el valor correcto que corresponde a su contexto. Para admitir completamente todas las características de Kopete, hemos añadido a Adium algunas extensiones de palabras clave. Además, algunas palabras clave solo están disponibles en ciertos contextos.

Lista de palabras clave para las plantillas de cabecera y de pie.

Estas palabras clave se procesan al principio de la conversación.

%chatName%

El nombre de la sesión de conversación actual. En una sesión típica, muestra el nombre del contacto y su estado. Para IRC, muestra el tema de un canal.

%sourceName%, %destinationName%

Son el nombre de los contactos para una sesión de conversación. %sourceName% es su nombre. %destinationName% es el nombre del contacto con el que está hablando. Se prefiere %chatName% a los anteriores, porque pueden dar lugar a confusión en un grupo de conversación y en el IRC.

%incomingIconPath%, %outgoingIconPath%

Son las imágenes/fotos/avatares de los contactos para una sesión de chat. Incoming representa la foto del contacto y Outgoing representa la propia foto. Si no hay fotos disponibles, se utiliza la imagen buddy_icon.png que se encuentra en el directorio Incoming u Outgoing.

%timeOpened%, %timeOpened{X}%

Es la hora en la que comienza la sesión de conversación. %timeOpened% utiliza el formato de hora predeterminado local. Si desea utilizar un formato de hora específico, utilice %timeOpened{X}% donde X es una cadena que contiene el formato de la hora. Los parámetros de hora son los mismos que para la función strftime de glibc. Consulte man strftime para obtener la lista de los parámetros disponibles.

Lista de palabras clave para las plantillas Content, NextContent, Context, NextContext, Action

Estas palabras clave se procesan para cada mensaje.

%userIconPath%

Son las imágenes/fotos/avatares de los contactos asociados con el mensaje. Si no hay fotos disponibles, se utiliza la imagen buddy_icon.png que se encuentra en el directorio Incoming y Outgoing dependiendo de la dirección del mensaje.

%senderScreenName%

Este es el ID de contacto del contacto asociado con el mensaje. Ejemplos: yo@hotmail.com, 45566576, JuanFernández.

%sender%

Es el nombre del contacto asociado con el mensaje. Utiliza el nombre que se muestra en MetaContact como una fuente.

%service%

Muestra el nombre del servicio asociado con el mensaje. Ejemplos: Jabber, Yahoo, MSN.

%textbackgroundcolor{X}%

En Kopete, esta palabra clave se utiliza para representar el color de fondo resaltado. Ignora los parámetros en las llaves y solo se utiliza como %textbackgroundcolor{}.

%senderStatusIcon% (extensión de Kopete)

Muestra el icono de estado del contacto asociado con el mensaje. Es una ruta de archivo.

%senderColor%, %senderColor{N}% (extensión de Kopete)

Genera un color enviado por el id del contacto. Puede utilizarse para mostrar un color diferente para el apodo del contacto.

%senderColor{N}% donde N es un número positivo. Si N es mayor que 100, representa un color más claro que el color del contacto. Si N es igual a 150, es un color con un 50% más de brillo. Si N es inferior a 100, es un color más oscuro. Esto es útil para tener un fondo de un color diferente paracada contacto.

Si desea utilizar estos colores en una variante, pero no en el estilo principal, puede solventarlo así:


<div style="color:%senderColor%;border:none;border-color:%senderColor{40}%;"
><p class="message"
>...</p
></div>

Se puede aplicar el color al elemento p.message en su archivo main.css y en su variante puede poner algo similar a esto:

p.message { color:inherit; border-color:inherit; }

La lista de palabras clave comunes para mensajes y Status.html

%message%

El propio mensaje. Es un fragmento HTML.

%time%, %time{X}%

La hora en la que se recibió el mensaje. %time% utiliza el formato de hora local predeterminado. Si desea utilizar un formato de hora específico, utilice %time{X}% donde X es una cadena que contiene el formato de la hora. Los parámetros de hora son los mismos que para la función strftime de glibc. Consulte man strftime para obtener la lista de los parámetros disponibles.

%messageDirection% (extensión de Kopete)

Representa la dirección del mensaje, si el mensaje debe mostrarse de derecha a izquierda o de izquierda a derecha. El valor puede ser «rtl» o «ltr». Consulte guía de dirección de mensaje para averiguar cómo utilizar esta palabra clave correctamente.