Archivo LeeMe para TreeLine

un programa de gestión de la información

por Doug Bell
Versión 1.0.2
1 de junio de 2007

Contenidos

Transfondo
Características
Temas legales
Requerimientos del sistema
    Linux
    Windows
Instalación
    Linux
    Windows
Uso de TreeLine
Historial de revisiones
¿Preguntas, comentarios, críticas?

Transfondo

¿Tienes un montón de notas con información importante pegadas por todas partes? ¿O numerosas listas de libros, películas, enlaces, datos de identificación de páginas web, contactos personales, o cosas que hacer? ¿Eres capaz de encontrarlas cuando las necesitas? Yo a menudo soy incapaz, así que esta es mi respuesta a ese problema.

Algunas personas dirian que TreeLine es un Outliner (gestor de esquemas), otras que es un PIM (gestor de información personal). Básicamente, almacena casi cualquier tipo de información. La estructura en forma de árbol facilita el tener la información organizada. Asímismo, cada nodo dentro del árbol puede contener diversos campos, formando una pequeña base de datos. Se puede definir el formato de salida para cada nodo, y esta salida puede ser mostrada en pantalla, impresa o exportada a HTML.

Dado que no estoy en el negocio del software, estoy desarrollando este programa como Software Libre para que cualquiera lo pueda usar, distribuir y modificar, siempre y cuando no sea incorporado en ningún programa propietario. Si te gusta el programa, puedes decírselo a otras personas. Puedes asímismo comunicarme cualquier cosa que pienses sobre el programa - ver la sección ¿Preguntas, comentarios, críticas? para información sobre cómo contactar conmigo.


Características


Temas legales

TreeLine es Software Libre; puedes redistribuirlo y/o modificarlo bajo los términos de la GNU General Public License tal y como ha sido publicada por la Free Software Foundation; bien la versión 2 de la licencia, o (a tu elección) cualquier versión posterior.

Este programa se distribuye con la esperanza de que sea útil, pero SIN NINGUNA GARANTÍA. En el archivo LICENSE que acompaña a este programa se puede encontrar más información.

Como excepción especial, el autor da permiso para enlazar y distribuir este programa con Qt Non-Commercial Edition sin incluir el código fuente de Qt.


Requerimientos del sistema

Linux

TreeLine necesita las siguientes bibliotecas y programas:

Windows


Instalación

Linux

Extrae los contenidos del archivo comprimido tar y en una terminal de comandos ejecuta "cd TreeLine" para cambiar de directorio. Para una instalación básica, basta con ejecutar el siguiente comando como root: "python install.py"

Para ver las opciones de instalación, usa "python install.py -h"

Para instalar TreeLine en un directorio diferente del asignado por defecto (/usr/local), usa: "python install.py -p /prefix/path"

Cualquier configuración antigua almacenada en ~/.treeline debería ser eliminada o cambiada de nombre si hay una actualización importante de TreeLine (como pasar de 0.8.x a 0.9.x) o si se planea una modificación de nuevos atajos de teclado.

Para instalar los archivos de traducción de TreeLine, es necesario dercargar el archivo comprimido "treeline-i18n-..." que coincida con el número de versión del archivo principal de TreeLine (ignorando la letra que hay añadida como sufijo al número de versión del archivo con las traducciones). Para instalar el programa y los archivos de traducción al mismo tiempo, hay que extraer los contenidos del archivo tar con las traducciones en el mismo directorio en el que se ha extraido el archivo tar con el programa principal, y ejecutar el mecanismo de instalación tal y como se ha descrito antes. Si TreeLine ya ha sido instalado con anterioridad, basta con extraer los archivos con la traducción en cualquier directorio y ejecutar el comando de instalación para las traducciones tal y como se ha descrito anteriormente.

Windows

Simplemente ejecuta el archivo instalador que has descargado (treeline-x.x.x-install.exe). Esto instalará el programa con sus bibliotecas y creará opcionalmente las asociaciones de ficheros y accesos directos.

Si ya tienes instalada y funcionando la versión 0.7.0 o superior de TreeLine, puedes descargarte un archivo más pequeño. Simplemente instala y ejecuta treeline-x.x.x-upgrade.exe para actualizar la instalación que ya tienes.

Para usar el comprobador ortográfico, se ha de instalar un programa externo (aspell o ispell) (ver la sección Requerimientos del sistema).

Cualquier configuración antigua almacenada en treeline.ini debería ser eliminada o cambiada de nombre si hay una actualización importante de TreeLine (como pasar de 0.8.x a 0.9.x) o si se planea una modificación de nuevos atajos de teclado.

Para instalar los archivos de traducción de TreeLine, es necesario dercargar el archivo ejecutable "treeline-i18n-..." que coincida con el número de versión del archivo principal de TreeLine (ignorando la letra que hay añadida como sufijo al número de versión del archivo con las traducciones). Para instalarlo, simplemente ejecuta el archivo con las traducciones.

Si deseas modificar el código fuente o escribir tus propios programas con PyQt para Windows, no uses el procedimiento descrito antes. En su lugar, deberás instalar Python (ver www.python.org), Qt (ver www.trolltech.com), y PyQt (ver www.riverbankcomputing.co.uk). A continuación extrae el código fuente de la versión para Linux (archivo treeline de tipo tar) en el directorio que prefieras y ejecuta el archivo treeline.py.


Uso de TreeLine


Contenidos

Comenzando
Lo básico
    Vistas
    Órdenes
Navegación por el árbol
    Atajos de teclado
    Búsquedas
Edición del árbol
Formateo y tipos de nodos
Tipos de campos
Manipulación de los datos de árbol
Impresión
Manejo de archivos
Importación de archivos
Exportación de archivos
    HTML
    Texto
    Archivos de favoritos
    XML genérico
    XSLT
Extensiones
    Descripción
    Instalación
    Interfaz
Problemas comunes

Comenzando

Introducción

TreeLine es un programa más complejo de lo que podría parecer a simple vista. Se recomienda leer gran parte de esta documentación para poder aprender a usarlo de una forma eficiente.

La sección
Lo básico describe las vistas y la selección de datos. Para aprender a moverte por el árbol y a modificarlo están las secciones Navegación por el árbol y Edición del árbol. El siguiente paso consiste en usar TreeLine con más de una línea de texto para cada nodo. Para aprender a asignar datos personalizados a cada nodo, puedes mirar las secciones Formateo y tipos de nodos y Tipos de campos.

Archivos de ejemplo

Archivos de ejemplo


Lo básico

Vistas

La ventana de TreeLine está dividida en dos partes. La vista de la izquierda muestra la estructura completa del árbol, mientras que la de la derecha muestra diversa información sobre el nodo que está seleccionado en el árbol, en la vista izquierda. El panel derecho contiene además tres pestañas que permiten mostrar los datos de forma diferente. La vista "Salida de datos" muestra el texto con formato para cada nodo. La vista "Editor de datos" muestra una caja de edición de texto para cada uno de los campos de datos dentro del nodo. La vista "Lista de títulos" muestra una lista de títulos de los nodos que puede ser modificada usando los mecanismos habituales de los editores.

Órdenes

La mayor parte de las órdenes del menu y de la barra de herramientas son aplicadas sobre los elementos seleccionados en la vista de la izquierda. En general, realizan una operación sobre los mismos nodos o sobre los descendientes de los nodos. Se pueden seleccionar múltiples nodos dejando presionada las teclas "Control" o "Mays" al mismo tiempo que se pulsa el elemento con el ratón. Algunas órdenes, como "Archivo->Exportar" y "Archivo->Imprimir" usan solamente los datos del nodo actual, que es mostrado con un rectángulo alrededor. La vista del lado derecho también hace referencia exclusivamente al nodo actual.

Para añadir información a un documento nuevo de TreeLine, se usa la orden "Editar->Añadir hijo", que crea un nodo nuevo. A partir de ahí se pueden usar combinaciones de las órdenes añadir e insertar para crear nodos adicionales. De forma alternativa, se pueden escribir nuevos títulos de nodos en la "Lista de títulos" del panel derecho.


Navegación por el árbol

Atajos de teclado

Hay varias combinaciones de teclado que se pueden usar para la navegación por el árbol. Las teclas de flecha arriba y abajo mueven la selección. Las flechas izquierda y derecha abren y cierran el nodo actual. Mantener pulsada la tecla CONTROL y las flechas arriba y abajo permiten moverse entre nodos hermanos, evitando a los hijos. La tecla CONTROL y "U" hacen que el cursor se mueva al elemento padre. Las techas "Inicio", "Fin", "AvPág" y "RePág" se pueden usar para desplazarse sápidamente por el árbol. Mantener la tecla MAYS con las teclas "AvPág" y "RePág" hará que se produzca un desplazamiento en la visualización del hijo en la vista derecha.

Todas estas teclas y los atajos del teclado para las órdenes de los menúes desplegables pueden ser personalizados si se modifica el archivo de configuración de TreeLine ("~/.treeline" en Linux, "treeline.ini" en Windows).

Otra forma de moverse a través del árbol es escribir la primera letra del título de un nodo visible. Escribir la letra en minúsculas hace que el movimiento sea hacia abajo, y en mayúsculas hacia arriba. Pulsar de nuevo la misma letra hace que se mueva el cursor hasta la siguiente posibilidad.

Búsquedas

Hay varias formas de buscar nodos. Estos métodos permiten localizar nodos que estén enterrados dentro de la estructura del árbol. La primera forma es el comando "Herramientas->Buscar" . Aparecerá un diálogo no bloqueante en el que se pueden introducir las palabras clave para realizar la búsqueda. El nodo encontrado será el que tenga las palabras clave en cualquiera de sus campos. La siguiente forma es la búsqueda incremental. Si se escribe el caracter "/" y a continuación la cadena de búsqueda, ésta se realizará al mismo tiempo que se esté escribiendo la cadena deseada. La búsqueda incremental solamente es capaz de encontrar textos en los títulos de los nodos. La búsqueda anterior puede ser repetida pulsando la tecla "F3", y se puede repetir en dirección inversa con la combinación de teclas "Mays-F3"

Por defecto, los nodos padre se abrirán y cerrarán cuando se encuentren nodos con las herramientas de búsqueda, escribiendo su primera letra, y con la acción del teclado "hermano siguiente". Se puede deshabilitar este comportamiento en "Herramientas->Opciones generales".


Edición del árbol

Menú de edición

Los comandos en el menú "Editar" (exceptuando los de deshacer y rehacer) operan sobre los nodos que estén seleccionados en la vista en árbol del lado izquierdo. Las operaciones de cortar, copiar y pegar también pueden considerarse una excepción a esta norma, ya que también pueden operar en la vista derecha en el caso de que haya algo seleccionado allí. Es importante que tengas pendiente que también resultan afectados los descendientes de los nodos seleccionados.

Pegar añadirá una copia del nodo como el último hijo del nodo actual. De forma alternativa, el comando "Editar->Pegar texto del nodo" cambiará de nombre la selección en base a lo que haya en el nodo superior en el portapapeles.

Atajos

Hay numerosos atajos que se pueden usar para la edición en el árbol. Usando el mecanismo de arrastrar y soltar se conseguirá mover o copiar archivos de tal forma que se conviertan en hijos del nodo de destino. Pulsando sobre un nodo seleccionado se porá cambiar su nombre. Pulsar la tecla enter insertará un nuevo nodo, y la tecla suprimir causará la eliminación de los nodos que estén seleccionados. Si se desea, se puede deshabilitar estos atajos en "Herramientas->Opciones generales".

Vistas en el lado derecho

En el panel derecho, el "Editor de datos" aporta la forma más directa de cambiar los datos dentro de un nodo. Si el campo modificado es usado en el formato del título, el título del nodo mostrará los cambios. El editor de campos se puede desplazar, permitiendo la inserción de múltiples líneas de texto.

Hay elementos en los menús contextuales del editor de datos para añadir etiquetas de tipo fuente alrededor del texto que se halle seleccionado. Estas etiquetas incluyen negrita, itálica, subrayado, tamaño y color. Para que esto sea válido, ha de permitirse a estos campos mostrar contenido en HTML (ver la sección
Tipos de campos) .

Se puede utilizar un editor externo con la opción "Editor externo" del menú contextual. Una vez que se graben los datos modificados con el editor externo seleccionado, el texto de la caja cambiará. Se puede usar la variable de entorno EDITOR para especificar qué editor debe usarse. Si dicha variable no existe, TreeLine preguntará por el editor que se desea usar por defecto.

También en el panel derecho está la vista "Lista de títulos", útil para poder cambiar los títulos de los nodos hijos, o para crear hijos nuevos. Es posible además pegar directamente en esta vista una lista de nuevos nodos como un simple texto.

Corrección ortográfica

En el menú "Herramientas" está disponible el comando para realizar correcciones ortográficas. Para poder usar este comando es necesario tener instalado un programa externo (aspell o ispell - ver la sección Requerimientos del sistema). Si hay alguna palabra mal escrita en la rama seleccionada, se podrá optar desde un diálogo por ignorarla, añadirla al diccionario, reemplazarla por una sugerencia del programa o modificarla. Este mecanismo permite comprobar el texto de todos los campos de datos de cada nodo.

Por defecto el comprobador ortográfico usará el idioma actual seleccionado en el sistema operativo sobre el que se ejecute. Si se usa aspell, existe una opción en "Herramientas->Opciones de archivo" para especificar en dos letras el código del idioma para el archivo actual de TreeLine. Por supuesto, los diccionarios necesarios de aspell han de estar instalados en el sistema. Esta opción no funciona con ispell.


Formateo y tipos de nodos

Asignación de nodos a un tipo

Por defecto, un documento de TreeLine recién creado contiene dos tipos de nodos: "RAÍZ" y "PREDETERMINADO". El tipo es mostrado en lo alto de cada caja de datos de un nodo en el "Editor de datos" de la vista derecha. A continuación se describirá la creación de tipos nuevos y la personalización de tipos. Para asignar los nodos seleccionados a un tipo concreto, usa el menú "Datos->Configurar el tipo de nodo". Por otra parte, para asignar una serie de nodos hijos y descendientes a un tipo determinado, hay que usar el comando "Datos->Configurar el tipo de los descendientes". El cuadro de diálogo resultante permitirá cambiar al tipo elegido los nodos seleccionados, sus hijos, todos los descendientes o los descendientes que cumplan determinadas condiciones lógicas. El cuadro de diálogo se puede mantener abierto mientras se modifica la selección de elementos del árbol para asignar más nodos.

Diálogo de configuración de tipos

Los tipos de datos se configuran mediante el diálogo "Datos->Configurar tipos de datos" (ver Imagen 1). El tipo es seleccionado en la parte superior del cuadro de diálogo, y mediante el botón "Modificar lista" se pueden añadir, eliminar y cambiar de nombre los tipos disponibles. Éstos son los campos de datos que existirán en cada uno de los nodos de este tipo. Existen botones para añadir, eliminar y reordenar los campos. Más adelante se comentará el botón destinado a cambiar el tipo de campo. La mitad derecha del cuadro de diálogo de configuración de tipos de datos muestra el formato para el título (el cual se usa como texto del nodo en la vista del árbol) y la salida del nodo. El formateo consiste en líneas de texto con campos incrustados. Los campos son representados como "{*nombre_campo*}", y pueden ser añadidos o eliminados mediante los botones ">>" y "<<".

Otras referencias de campos

Las referencias a campos de lo nodos padre y abuelo son mostradas como "{**nombre_campo*}" y "{***nombre_campo*}", respectivamente. Puede haber también referencias a ancestros genéricos, que se muestran como "{*?nombre_campo*}", y que obtienen la información del ancestro más cercano que tenga un campo coincidente.

Se puede añadir estas referencias con el botón "Otros campos" en la parte del diálogo correspondiente al campo. Será necesario introducir el nivel de parentesco (cualquier ancestro, padre, abuelo, etc.) y el tipo de dato del ancestro. El botón ">>" sirve para añadir los campos seleccionados al formato.

Se pueden añadir asímismo referencias a nodos hijos desde el diálogo "Otros campos". La información del hijo es introducida entonces en la salida del padre. La información del hijo está delimitada por una cadena de texto definida como opción del archivo. El separador es por defecto una coma y un espacio, pero se puede asignar a <br> o a cualquier otra cosa.

El diálogo "Otros campos" contiene además información de referencia a otros archivos. Estos campos contienen meta-datos que incluyen el nombre del archivo, ubicación, tamaño e instante de modificación. En el título y en los editores de formato de la salida aparecerán como "{*!nombre_campo*}".

Para ver ejemplos de estos campos, se puede mirar el archivo "sample_other_fields" (ejecutando el comando "Archivo->Abrir ejemplo").

Formato de títulos

Cuando se cambia de nombre un nodo del árbol, el programa intenta ajustarse al patrón de formato del título para asignar los campos adecuados. Si el formato del título es muy complejo, puede que no sea capaz de averiguarlo correctamente. Se debe evitar hacer algunas cosas, como poner como campos adyacentes sin caracteres que los separe, a menos que no se desee renombrar los nodos desde el árbol.

Si los datos de texto usados para la vista del título en el árbol tienen varias líneas, solamente se usará la primera como título.

Líneas no mostradas

Si una línea en el formateo de la salida contiene uno o más campos y todos esos campos para un nodo determinado están vacíos, la línea no será mostrada. No se generará ninguna línea en blanco ni texto embebido como salida para esa línea. Esto no se aplicará a las líneas en la que no exista ningún campo (que solamente contengan texto embebido). Asímismo, cuando se salte una línea que termine con una etiqueta <br/> o <hr/>, la etiqueta final se mantendrá.

Etiquetas de HTML

Se pueden usar etiquetas simples de formato en HTML en los formatos de salida de los nodos. Alguna de las etiquetas que más se usan son "<b>negrita</b>", "<u>subrayado</u>", "salto de línea<br/>", "<hr/>línea horizontal", y algunas etiquetas de fuentes de letras. En general se debe evitar usar bloques de etiquetas complejos. Cuando la opción "Permitir texto enriquecido en HTML en los formatos" está desactivada, las etiquetas de formato son tratadas como texto puro. Para ver un ejemplo del uso de etiquetas, se puede ver el archivo "sample_color_items" (usando la órden "Archivo->Abrir ejemplo").

Se añade siempre de forma automática a la salida un salto de línea tras cada línea de formato, a menos que no esté activada la opción "Añadir salto de línea tras cada línea". Además, la opción "Añadir líneas en blanco entre los nodos" determina si se debe introducir de forma automática una línea en blanco entre la salida de los nodos. Se puede usar una etiqueta de salto de línea ("<br>") al final del formato para obtener el mismo efecto, o una etiqueta de línea horizontal ("<hr>") si se prefiere usar ésta para separar los nodos.

Ejemplos de formateo

Aquí se puede ver un ejemplo de formato de salida para una lista de libros:

<hr/>"{*Title*}"
(c) {*Copyright*}, Rating: {*Rating*}
{*PlotDescription*}

En la distribución del programa se incluyen archivos de ejemplo con diferentes tipos de formato. Se pueden abrir usando el comando "Archivo->Abrir ejemplo". Asímismo hay una lista de dichos archivos en la sección
Archivos de ejemplo.

Iconos del árbol

Los iconos mostrados para cada nodo en la vista de árbol pueden ser asignados basándose en el tipo de datos, El botón "Cambiar icono" en el diálogo "Configurar tipos de datos", hace que se abra el diálogo de asignación del icono. Si se borra la selección actual del icono, no se mostrará ninguno para ese tipo de dato. Para evitar mostrar ningún icono en el árbol, se puede desactivar la opción general "Mostrar iconos en la vista de árbol".

Tipos de hijos

El diálogo "Configurar tipos de datos" contiene además un selector para asignar el tipo de hijo por defecto. Si éste es asignado, este será el tipo de datos inicial para los hijos nuevos de este tipo de padre. Si no está asignado, se usará el tipo del padre o de sus hermanos.

Configuración avanzada

El botón "Avanzado" en el diálogo "Configurar tipos de datos" saca opciones de configuración adicionales. La primera permite asignar uno de los campos como campo de referencia, usado por los comandos de organización y aplanado de datos por referencia y para las referencias de enlaces internos. El campo de referencia es el primer campo por defecto.

El diálogo avanzado también tiene controles para asignar etiquetas de prefijo y sufijo para los hermanos. Estas etiquetas a menudo son dejadas en blanci, pero pueden ser útiles para crear tablas o listas indentadas con puntos. Estas etiquetas serán situadas antes y después de los grupos de hermanos del tipo adecuado. Por ejemplo, para crear una tabla de salida, la etiqueta de prefijo de los hermanos podría asignarse a "<table border="1">", y la de sufijo a "</table>". El formato de salida podría entonces asignarse a:

<tr><td>"{*Title*}"</td><td>(c) {*Copyright*}</td></tr>

Se puede ver además el archivo de ejemplo "sample_table_booklist" (usando el comando "Archivo->Abrir ejemplo").

Los hermanos deberían ser generalmente del mismo tipo, o al menos tener las mismas etiquetas de prefijo y sufijo.

Tipos genéricos y derivados

Los tipos de datos pueden configurarse para derivar la configuración de sus campos desde un tipo genérico. Ésto permite que tipos con un formato de salida diferente usen siempre los mismos tipos de datos para los campos. Cualquier cambio en la lista de campos del tipo genérico será reflejada de forma automática en los campos de todos los tipos derivados. Esto no se aplica para el formato de salida de los campos, que se puede seguir asignando de forma independiente.

Existen dos métodos para crear tipos derivados. En primer lugar, se puede seleccionar una opción derivada cuando se copia un tipo desde el diálogo "Añadir/Eliminar tipos de datos" (al que se accede desde el botón "Modificar lista" en el diálogo "Configurar los tipos de datos"). Alternativamente, se puede especificar un tipo genérico desde el cuadro de diálogo "Configuración avanzada" del tipo derivado.

Tipos condicionales

Se pueden usar expresiones condicionales para asignar automáticamente un tipo de dato en función de los contenidos de cada nodo. Solamente se puede asignar condiciones a un tipo genérico y los tipos derivados que tenga asociados. Esto permite la asignación automática de diferentes formatos de salida o diferentes iconos dependiendo de los campos de datos de cada nodo.

Se puede acceder al cuadro de diálogo de tipos condiionales desde un botón en el cuadro de diálogo de "configuración avanzada" de tipos. Cada línea de la configuración de los condicionales incluyen un campo, un operador y un valor para la comparación (ver
Imagen 2). Los operadores incluyen igualdad, mayor que, menor que, comienza por, termina por, y contiene. Existen además operadores verdadero y falso que permiten hacer cambiar el tipo de todos los nodos simultáneamente.

Para tipos especiales de campos como fechas, horas o booleanos, el valor de comparación habrá de ser introducido en el mismo formato usado en la ventana del editor de datos. En general, los operadores comienza por, termina por y contiene no deberán ser usados para estos campos especiales, puesto que la comparación se realiza usando una representación interna de los datos. Con las fechas y horas se puede usar un valor especial de comparaqción, "ahora", que siempre será interpretado como la fecha y hora del instante actual.

Se puede añadir más líneas condicionales mediante el botón "Añadir regla nueva". Las líneas se pueden combinar mediante los operadores "y" y "o". El botón "Eliminar Regla" elimina la última línea condicional. Si solamente hay una línea, el botón "Eliminar Regla" eliminará la condición.

No es necesario asignar condiciones para todos los tipos en una familia. Si no existe ninguna condición que sea cierta para un nodo, el programa elegirá una condición en blanco sobre una falsa.

Como ejemplo, se puede ver el archivo "sample_conditional_todo" (usando el comando "Archivo->Abrir ejemplo").

Copia de formatos

Otro método para modificar el formato de los tipos de datos es copiar la información de formato desde otro archivo de TreeLine. Esto se hace mediante la órden "Datos->Copiar tipos desde archivo". Todos los tipos del archivo elegido son copiados al actual. Cualquier tipo que exista en el archivo actual con el mismo nombre será sobreescrito, aunque los tipos que tengan un nombre diferente serán mantenidos en el resultado.


Tipos de campos

Opciones de los campos

En el diálogo "Configurar tipos de datos", el botón "Tipo de campo" hace que aparezca un nuevo diálogo para el formato del campo deseado (ver Imagen 3). El tipo de campo se puede asignar como texto, numérico, de elección, de combinación, auto-elección, fecha, hora, booleano, dirección URL, ruta de archivo, enlace interno, enlace ejecutable, email o una imagen. Se puede introducir un prefijo y un sufijo que serán mostrados siempre que el contenido del campo no esté vacío.

Existen además opciones de configuración para el manejo de los contenidos de texto, de tal forma que se puede permitir texto enriquecido con HTML en el campo de datos, o mantener los saltos de línea (ignorando los códigos HTML). Se se decide usar texto enriquecido con HTML, los saltos de línea son ignorados, y los caracteres especiales que no estén expresados en HTML, como es el caso de los símbolos "<", ">" y "&", no serán mostrados. Asímismo hay disponible una opción general que permite configurar de forma automática el contenido de los campos nuevos de texto como HTML. Para ver un ejemplo del uso de taxto enriquecido, se puede ver el archivo "sample_char_format" (usando el comando "Archivo->Abrir ejemplo").

Algunos de los tipos de campos usan una cadena de texto para definir su formato de salida. Para ver una lista de los caracteres de formato, se puede usar el botón "Ayuda sobre el formato". Los datos que se introduzcan en el editor de datos que no coincidan con ese formato definido, harán que se muestre en letra negrita la etiqueta del campo, y la salida para ese campo será reemplazada por "#####".

Tipo de texto

El tipo asignado inicialmente a un tipo de campo es de campo de texto. Estos campos se pueden modificar mediante el uso de cuadros de edición en la vista de edición de datos de la vista derecha del programa. La altura de esta caja de edición de texto se expande de forma automática cuando se redibuja después de introducir varias líneas de texto en ella. La altura del cuadro de edición puede ser también asignada explícitamente en el cuadro de diálogo de formato de campo.

Tipos de elección, combinación y booleanos

Los tipos de elección y combinación permiten la selección de elementos de texto desde una lista desplegable de edición. Las cadenas de texto que definen el formato para estos tipos han de presentarse separando los elementos por el caracter "/" (se puede usar "//" para obtener dicho caracter de forma literal en un elemento). El tipo de elección se usa para seleccionar un único elemento y el de combinación permite la selección de múltiples elementos. La lista desplegable para el tipo de combinación permite añadir o eliminar elementos. Además, se puede autocompletar el texto de un elemento escribiendo únicamente el comienzo.

El tipo de campo booleano es similar al de elección, pero con las opciones "sí/no", "verdadero/falso" y "1/0".

Existe además un tipo de campo de autoelección. Como el de elección, dispone de una lista desplegable de elementos, pero en este caso no tiene una cadena de texto de formato, sino que se rellena de forma automática con los datos introducidos anteriormente.

Tipo numérico

En el tipo numérico, se pueden poner caracteres especiales en el formato que definan la forma de mostrarse los números. El formato usa los caracteres "#" (indicando que mostrar el dígito es opcional) y "0" (el dígito es obligatorio) para definir el formato de salida. Por ejemplo, pi formateado con #.#" es "3.1", y formateado con "00.00" es "03.14". Independientemente del formato, los dígitos a la izquierda del separador decimal no son truncados, ya que eso daría lugar a un resultado incorrecto. Se ha de tener cuidado con mostrar suficientes dígitos decimales (bien opcionales u obligatorios) para evitar problemas con errores de redondeo.

El separador decimal puede ser "." o "," para permitir la representación internacionalizada. Para usar separadores de milenas se han de usar las expresiones "\," o "\.". Por ejemplo, un número grande puede ser representado como "#\,###\,###.##" o como "#\.###\.###,##". Para más detalles sobre el formato se puede pulsar el botón "Ayuda sobre el formato" desde el diálogo de formato de campos..

Al contrario que otros formatos, el tipo numérico usa asímismo el formato de salida para mostrarse en el editor de datos. Por supuestom cualquier nueva entrada con un formato razonable es interpretado correctamente, aunque es necesario usar el caracter de separación de decimales adecuado.

Tipos de fecha y hora

En los tipos de fecha y hora, hay definidos caracteres especiales para el formato que son reemplazados por la información contenida en los datos, de igual forma que ocurre con los tipos numéricos. Se puede pulsar el botón "Ayuda sobre el formato" desde el diálogo de formato de campos para obtener más detalles sobre el formato.

Existen asímismo formatos para estos tipos bajo "Herramientas->Opciones generales->Formatos del editor de datos". Éstos controlan cómo se muestran estos formatos en la vista de edición de datos. Generalmente, los datos que se introduzcan en el editor de datos serán correctamente interpretados independientemente de la configuración, pero las fechas habrán de usar la secuencia correcta para el día, mes y año. El editor de datos no soporta días de la semana. Si no es posible interpretar los datos que se han introducido, el nombre del campo se mostrará en letra negrita.

Se puede usar el valor inicial por omisión del campo, "Ahora", para obtener el instante de tiempo de la creación del nodo.

Tipos de enlaces

Los tipos URL, ruta y email se pueden usar para crear elnaces en la salida. URL se usa para enlaces web estándares (se asume http:// por omisión, a menos que se indique lo contrario), ruta define un enlace a un archivo local (se asume file:/// por omisión), y email representa un enlace a una dirección de correo electrónico (por omisión mailto:). Cuando se pulsa con el ratón sobre un enlace en la ventana de salida, se abrirá un navegador o un programa de correo electrónico. En la exportación a HTML, actúan como enlaces convencionales. Lo único que se ha de hacer es introducir la ruta completa (como por ejemplo "www.bellz.org/treeline/index.html") en el editor de datos. En Linux, la definición de la variable de entorno "BROWSER" a una cadena de texto como "mozilla %s" hará que se pueda usar el navegador que se desee.

Existe además un tipo de campo de enlace interno, que crea un enlace en la salida de datos tal que al pulsarlo se selecciona el nodo siguiente en que el texto del campo de referencia coincida con el del enlace. Si los enlaces o campos de referencia contienen varias líneas, cada una de dichas líneas es trarada como un enlace o una referencia independiente, respectivamente. Si se desea, se puede usar el mismo campo como enlace y como referencia simultáneamente, de tal forma que al pulsar dicho campo en uno de los nodos, se selecciona el nodo siguiente que tenga esa misma clave. Si la salida es exportada a HTML, los enlaces internos funcionan como enlace a etiquetas ancla (anchors) de la página aunque, en casos con referenciasd duplicadas, solamente son capaces de localizar la referencia superior que coincida con esa clave, y no la siguiente. Para mirar un ejemplo, se puede ver el archivo "sample_intern_links" (usando el comando "Archivo->Abrir ejemplo").

El campo EnlaceEjecutable ejecuta un programa externo cuando su enlace es pulsado. El comando a ejecutar viene dado por el texto del campo. También se puede hacer que el comando a ejecutar contenga el nombre del programa, de tal forma que el texto del campo se usa para lo parámetros de dicho programa o para nombres de archivos. Se pueden deshabilitar estos enlaces mediante el uso de una opción general cuando exista una preocupación relativa a la seguridad.

El tipo de campo de imagen mostrará la imagen referenciada en la salida. Para ello se ha de introducir la ruta completa de la imagen en el editor de datos. En el caso de que el programa use Qt2 (usado para construir la versión de Windows del programa) la ventana de salida solamente permitirá los formatos de imágenes GIFy PNG. Para Qt3, también es soportado el formato JPEG entre otros. Por supuesto, cuando se exporten los datos a HTML, la imagen se mostrará siempre que el navegador que se use para visualizarla soporte el formato.

Opciones avanzadas

El botón "Avanzado" en el diálogo "Formato de campo" hace aparecer opciones de configuración adicionales. Se puede especificar un valor por omisión para un tipo de campo determinado. Cualquier nodo nuevo tendrá asignado ese valor para ese campo de datos en el momento de su creación.

También se puede hacer que los campos de enlace muestren un texto alternativo en lugar del URL al que apuntan, simplemente especificando un campo de texto alternativo.

De igual forma se pueden configurar los campos de tal forma que sea obligatorio rellenarlos. Estos campos aparecerán marcados con un asterisco en la vista de edición de datos.

Es posible marcar los campos como ocultos, de tal forma que no aparezcan an la vista de edición de datos.


Manipulación de los datos de árbol

Órdenes basadas en categorías

El menú "Datos" contiene comandos para organizar y aplanar los datos según la categoría o la referencia asociada a los nodos. Estos métodos se pueden usar para añadir y eliminar de forma automática diferentes niveles de nodos por debajo del nodo actual en el árbol.

El comando "Añadir nivel con categorías" parmite seleccionar uno o más campos que tengan en común los nodos hijos y agrupar a éstos según categorías comunes. Por ejemplo, en una lista de libros, si se eligen los campos "nombre_del_autor" y "apelllido_del_autor", se obtendrá como resultado un árbol con los libros agrupados debajo de nuevos nodos, dada uno de ellos conteniendo un autor diferente.

El comando "Aplanar por categoría" se puede considerar como el opuesto a "Añadir nivel con categorías". Elimina los nodos descendientes que tengan hijos, transfiriendo sus campos de datos a éstos. En caso de que existan campos con el mismo nombre en éstos, los campos serán cambiados de nombre en vez de sobreescribirlos, pero la utilidad de este comando radica en la existencia de padres e hijos con nombres de campos de datos diferentes.

Órdenes basadas en referencias

Los comandos "Organizar por referencia" y "Aplanar por referencia" organizan los nodos de datos usando punteros al valor del campo de datos referencia del padre. Estos comandos se basan en la existencia de valores no repetidos en el campo de referencia de los nodos, como puede ser un número de identificación. El comando "Aplanar por referencia" añade un campo que contiene el identificador del padre en cada uno de los nodos descendientes. A continuación sitúa todos los nodos debajo del nodo raíz elegido. El comando "Organizar por referencia" realiza la operación contraris, situando cada nodo debajo del nodo padre que contiene la identificación referenciada. Si exiten varios nodos con el mismo identificador, se elige el más cercano por encima del hijo. Todos los nodos que tengan una referencia a un padre inexistente se sitúan directamente por debajo del nodo raíz elegido.

El comando "Actualizar por referencia" usa un archivo separado para actualizar los valores de los campos inexistentes, haciendo coindidir en el campo de datos referenciados valores únicos o no repetidos. Cualquier campo que exista en el nodo del otro fichero, pero no en el original, es añadido al resultado. Si se desea, se pueden borrar campos en el archivo original para forzar la actualización, puesto que el campo no debe existir (y no simplemente no tener contenido).

Ordenación

El menú datos también contiene los comandos "Ordenar nodos hijos", "Ordenar tipo en la rama" y "Ordenar rama por título". Los dos primeros permiten la selección de varios campos para usarlos como clave primaria de ordenación, clave secundaria, etc. Las llaves han de ser elegidas en el orden correcto con el botón izquierdo del ratón. Para cambiar la dirección se ha de usar el botón central del ratón. El comando "Ordenar nodos hijos" ordena solamente los hijos de los nodos seleccionados, mientra que el comando "Ordenar tipo en la rama" ordena todos los descendientes de un tipo determinado. El comando "Ordenar rama por título" ordenará todos los descendientes, pero lo hará exclusivamente mediante el texto del título de los nodos, no mediante determinadas claves de ordenación cualesquiera.

Filtrado

El comando "Filtrar datos" permite la eliminación de nodos basándose en reglas definidas por los usuarios. Si hay más de un tipo de dato en los descendientes de los nodos seleccionados, se elige el tipo a filtrar. A continuación, se pueden insertar reglas lógicas enlazadas por operadores "and" y "or" (presionando el botón "Añadir regla"). Todos los descendientes del tipo elegido que no encajen en la regla definida son eliminados, así como sus hijos. El nombre del fichero actual pasará a tener añadido el sufijo "_filter" para evitar la sobreescritura del archivo completo. Si el documento ha sido previamente modificado, el sistema preguntará si se desea grabar el archivo sin filtrar. Una vez realizada la operación de filtrado, no es posible deshacerla.

Numeración

El comando "Numeración" se usa para añadir campos numéricos a los nodos descendientes. Estos campos numéricos no se actualizan de forma automática cuando el árbol es modificado, sino que es necesario repetir la ejecución del comando "Numeración". En el diálogo se ha de introducir un nombre de campo que puede ser nuevo, o ya existir anteriormente. El nodo raíz (seleccionado) puede ser incluido en la numeración si se desea. Se puede elegir un estilo de numeración dentro de tres posibles: El estilo "esquema" comienza la numeración para cada grupo de hijos, el estilo "sección" añade el número del hijo al del padre y el de "un sólo nivel" solamente realiza la numeración del primer nivel de hijos. Se pueden usar los formatos por defecto ("I, II..., A, B..., 1, 2..." para esquemas; "1, 2..., 1.1, 1.2..." para secciones), o especificar formatos personalizados para cada nivel. Los formatos personalizados deberán contener uno de los siguientes caracteres: "1", "A", "a", "I", or "i". Las series comenzarán a numerarse a partir de ahí (usando números, letras o números romanos, respectivamente). El elemento que se usará para la numeración será la última aparición de uno de esos caracteres en el texto de formato. Las apariciones previas se supondrán que forman parte del propio formato.

Cambiar datos seleccionados

Finalmente, el comando "Modificar los datos seleccionados" permite cambiar de forma simultánea los valores de un campo de datos para todos los nodos seleccionados. Simplemente selecciona el campo deseado e introduce el nuevo valor.


Impresión

Opciones de impresión

La vista llamada "Salida de datos" en el panel de la derecha muestra el texto de salida ya formateado para el nodo actual y sus hijos. La salida de datos formateada puede ser impresa. Para dicha impresión son mostrados los descendientes del nodo con sus hijos indentados, comenzando desde el nodo actual. El nodo raíz puede ser incluído o excluído, y los elementos cuyos padres están cerrados en el árbol pueden ser saltados.

Hay opciones adicionales en el cuadro de diálogo "Opciones de impresión" para asignar los tipos de letras, tamaño de los márgenes, el número de columnas, así como para añadir líneas que muestren la estructura del árbol. Estas líneas son dibujadas de tal forma que conectan los nodos padre con sus hijos, y permiten visualizar más fácilmente estas relaciones, especialmente entre diferentes páginas. Estas líneas pueden no mostrarse de la forma deseada en el caso de que se usen determinadas etiquetas de HTML.

Por defecto, TreeLine evitará saltar de una página a otra entre un padre y su primer hijo. Este comportamiento puede ser desactivado si se modifica la opción de impresión llamada "Mantener el primer hijo con el padre".

Cabecera y pie de página

De igual forma, en el cuadro de diálogo de "Opciones de impresión" existe un botón para asignar la cabecera y el pie de página. Este botón abrirá un nuevo cuadro de diálogo con campos de datos sobre el archivo a la izquierda y seis cajas de edición de los textos a la derecha, correspondientes a la cabecera y el pie de página (justificados a la izquierda, centro o derecha). Estos campos pueden ser añadidos a las cajas de edición y combinados con otros textos, de igual forma que en el diálogo "Datos->Configurar tipos de datos". La configuración de cabecera y pie de página es grabada en el archivo de TreeLine.

Vista previa

Se visualizará una vista previa antes de imprimir (pero tras presionar el botón de "Aceptar" en el cuadro de diálogo normal de impresión) por defecto. La vista previa de impresión mostrará más detalles si se aumenta el tamaño de su ventana.

Problemas con la impresión

Se pueden eliminar algunos problemas de impresión, especialmente los relativos a los márgenes y a la división de palabras, cambiando el tipo de letra de impresión a uno que esté mejor soportado por la impresora.


Manejo de archivos

Compresión de archivos

Un archivo de TreeLine es un archivo de texto XML. Existe también la opción de trabajar con archivos comprimidos (en formato gzip) para ahorrar espacio. Se pueden configurar individualemente archivos con modo comprimido desde "Herramientas->Opciones de archivo", o desde el diálogo "Grabar cómo". Existe también una opción general para asignar el modo por defecto para los archivos nuevos.

Codificación de archivos

Hay una opción para la codificación de archivos que permite proteger con contraseña los archivos de TreeLine. Se pueden configurar individualemente archivos para trabajar en modo codificado desde "Herramientas->Opciones de archivo", o desde el diálogo "Grabar cómo". Existe asímismo una opción general para asignar el comportamiento por defecto para archivos nuevos. Para la codificación se usa fa función de hash SHA para el cifrado del flujo de datos - esto debería ser bastante seguro.

Grabación automática

El mecanismo de grabación automática permite almacenar los archivos que aún no han sido grabados, con el símbolo "~" añadido al nombre del archivo. Estos archivos de salvaguarda se eliminan de forma automática cuando el archivo es grabado o cuando se produce una salida limpia del programa. El tiempo de intervalo entre las grabaciones automáticas se puede configurar en las opciones generales. Asignar este intervalo a cero desactiva esta característica.

Grabación del estado del árbol

Cuando se abre un archivo que se ha usado recientemente, TreeLine restaurará el estado de los nodos abiertos y seleccionados en el árbol. Esta información es almacenada en el archivo de configuración de TreeLine del usuario. Si se desea, se puede desactivar esta característica con una opción general.

Línea de órdenes

Las opciones de la línea de órdenes permite realizar operaciones no interactivas de importación y exportación de archivos. Esto permite que se puedan programar ejecuciones automatizadas. Para obtener más información, ejecuta "treeline -h" desde la línea de órdenes del sistema. Si se está usando un archivo binario de Windows, la salida está deshabilitada, por lo que se debe redireccionar a un archivo ("treeline -h > log.txt").


Importación de archivos

Texto con tabulaciones

Los archivos de TreeLine están almacenados en formato de texto XML. Se pueden importar otros tipos de archivos de texto simplemente abriéndolos. Si se abre un archivo que no contiene XML válido para TreeLine, se solicitará que se describa el tipo de archivo que se desea importar..

TreeLine es capaz de abrir un archivo de tipo texto con una estructura en árbol representada por tabulaciones antes de cada línea. En este caso, solamente es importado el título del nodo, sin ningún campo extra. Este método es el utilizado para abrir archivos de versiones antiguas de TreeLine..

Se pueden también importar tablas delimitadas por tabulaciones. De ellas se podrá obtener un único nivel de descendencia bajo el nodo raíz, conteniendo cada nodo los campos correspondientes a cada una de las columnas de la tabla. La primera fila de la tabla es usada para obtener los nombres de los campos, y cada una de las filas restantes dará lugar a un nodo.

Texto puro

Hay dos tipos de importación de archivos de texto puro. Uno crea un nodo separado para cada línea en el archivo. El otro crea un nodo para cada párrafo, asumiendo que los párrafos están separados por líneas vacías. En ambos casos, el archivo de TreeLine resultante tendrá todo el texto bajo un único nodo padre, pero es un buen punto de comienzo. Se podrá añadir posteriormente una estructura adicional a los datos si se desea.

Archivos de Treepad

Existe asímismo un filtro para importar archivos desde el programa shareware Treepad. Solo están soportados los nodos de texto de Treepad.

XML genérico

TreeLine permite importar y exportar archivos XML genéricos. Estas rutinas no contienen mucha complejidad - cada elemento XML se convierte en un nodo, y cada atributo de XML en un campo. El contenido de los textos de XML es transformado en campos con el nombre "Element_Data". Esto permite a TreeLine funcionar como un editor de XML puro.


Exportación de archivos

HTML

Los archivos son exportados usando la orden "Archivo->Exportar". Esto hará que se muestre un cuadro de diálogo con los diferentes tipos de exportación y las opciones disponibles.

La salida a un único archivo HTML es similar a la impresión, con opciones similares. Puede incluir la cabecera y el pie de página en el HTML, y se puede asignar el número de columnas.

También existe la exportación a múltiples archivos en HTML, con la que se crea una estructura de directorios. El nombre de los directorios se obtiene del primer campo de datos, que debe contener nombres de archivo válidos. Tampoco debe haber nombres duplicados bajo el mismo padre. Cada archivo HTML es una tabla da datos para un conjunto de hijos, con enlaces a las páginas tanto del padre como de los hijos.

Texto

Los datos pueden ser exportados a textos de títulos tabulados (el antiguo formato de texto de TreeLine) y a tablas delimitadas por tabulaciones. Estos formatos son iguales a sus correspondientes formatos para la importación de archivos. Cuando se exporta a una tabla, solamente se usa el primer nivel de hijos, por lo que es posible que se desee aplanar los datos antes de realizar la exportación

Archivos de favoritos

TreeLine permite exportar archivos de favoritos tanto en el formato HTML de Mozilla (válido para los navegadores Mozilla, Firefox o Netscape) y el formato XBEL (para los navegadores Konqueror, Galeon o Elinks)

XML genérico

TreeLine permite importar y exportar archivos XML genéricos. Estas rutinas no contienen mucha complejidad - cada nodo se convierte en un elemento XML, y cada campo en un atributo de XML, excepto para los campos que tengan el nombre "Element_Data", que se convierten en el texto del elemento. Esto permite a TreeLine funcionar como un editor de XML puro.

XSLT

Además de poder exportar los datos, es posible también exportar el formato de un archivo a un archivo de tipo XSLT. Éste puede ser usado para mostrar los datos XML de un archivo nativo en formato TreeLine en cualquier navegador que sea compatible con ésta representación, sin necesidad de exportar los datos a HTML. Las versiones más modernas de la mayor parte de los navegadores son compatibles con XSLT. Ha de tenerse en cuenta, sin embargo, que es posible que el formato de tipos de datos complejos sea ignorado por el XSLT.

Cuando se exporta a XSLT, se le añade además un enlace del archivo XSL al archivo de TreeLine. Por este motivo, es importante grabar el archivo TreeLine a continuación. En general, el archivo de TreeLine deberá tener una extensión .xml para que pueda ser abierto de forma directa por un navegador compatible. Tras eso, no será necesario volver a exportar el archivo XLS si solamente se modifican los datos (y no se cambia el formato).

Si se utilizan etiquetas HTML en formatos de datos que vayan a ser exportados a XLST, deberán emplearse en estilo xHTML (<br /> en vez de <br>). Cuando se realice la exportación, se preguntará asímismo por el nombre de una hoja de estilo opcional (css). Este nombre es almacenado en el archivo TreeLine para usarlo por defecto en futuras exportaciones. La referencia al archivo XLST contenida en el archivo de TreeLine puede ser eliminada con la órden "Herramientas->Eliminar referencia a XSLT".


Extensiones

Descripción

TreeLine dispone de un interfaz para conectar módulos de extensión. Esto permite que se puedan desarrollar extensiones por diferentes programadores que puedan cubrir las necesidades de grupos minoritarios de usuarios sin necesidad de congestionar la aplicación completa. Las extensiones pueden añadir nuevos elementos al menú, acceder a los datos de TreeLine y leer y escribir archivos de TreeLine.

Las extensiones disponibles actualmente están accesibles en la página de descargas ("Downloads") del sitio web de TreeLine.

Instalación

Las extensiones son instaladas copiando el archivo en Python (*.py) al directorio de extensiones ("<prefix>/lib/treeline/plugins/" en Linux o "TreeLine\lib\plugins\" en Windows). Se puede obtener una lista de los plugins cargados usando la orden "Ayuda->Ver extensiones".

Asímismo existe también un parámetro en el archivo de configuración, "UserPluginDir", que permite especificar un directorio alternativo para las extensiones. Esto permite usar extensiones sin necesidad de tener acceso de administración del sistema. Este parámetro solamente se puede cambiar modificando el archivo de configuración (~/.treeline en Linux, treeline.ini en Windows).

Interfaz

Se puede obtener información sobre cómo escribir nuevas extensiones examinando el archivo "plugininterface.py" en el código fuente de TreeLine.


Problemas comunes

Error en XML

Un mensaje de error que diga "Error al cargar el analizador de XML" quiere decir normalmente que TreeLine no ha sido capaz de localizar una biblioteca XML, necesaria para poder funcionar. Bajo Linux, Python usa bibliotecas externas para analizar XML. El problema se debería poder solucionar instalando la biblioteca expat o el paquete PyXML. Bajo Windows, Python incluye un analizador, por lo que este error no debería aparecer nunca, salvo que falten ficheros o estén corruptos.

Problemas con Unicode

Puede darse el caso de que tanto en el árbol como en el texto de salida aparezcan cuadrados entre los caracteres, y que esté truncado antes del final. Esto se debe generalmente a un problema de unicode con determinados paquetes RPM de PyQt de sistemas Red Hat. La solución consiste en actualizar a un RPM para la versión 3.7 o superior de PyQt. Se debe instalar además un RPM de "sip" de la misma versión que PyQt.

Impresión

Algunos problemas de impresión, especialmente los relativos a márgenes y a la división de las palabras, pueden ser eliminados cambiando la fuente de letra para la impresión por una fuente que esté mejor soportada por la impresora.


Historial de revisiones

El historial completo de las revisiones del programa se puede encontrar en la versión en inglés del archivo ReadMe.


¿Preguntas, comentarios, críticas?

Hay una lista de correo en la que se puede hablar de cualquier tema relacionado con TreeLine. En ella es en la que se producen las conversaciones sobre desarrollo (desde planificación o sugerencias hasta beta testing), anuncios de publicaciones de nuevas versiones del software, avisos sobre bugs, y conversaciones generales sobre el uso del programa.

Para apuntarse a la lista, basta con ir a
www.bellz.org/mailman/listinfo/treeline. Las espectativas sobre la lista son que sea de bajo tráfico.

Si no deseas apuntarte a la lista de correo, puedes contactar conmigo por correo electrónico: doug101 ARROBA bellz PUNTO org

Agradezco cualquier aportación, incluyendo avisos sobre los bugs que puedan aparecer. Asímismo, se puede comprobar periódicamente www.bellz.org si existen actualizaciones.