MANUAL DE GJOTS2



                    g j o t s 2
	


                         

                 Bob Hepple
                 Brisbane
                 Queensland
                 Australia

                 Versión 3.2.1


      bhepple@freeshell.org
      http://bhepple.freeshell.org/gjots

\NewEntry
Introducción

gjots2 es un programa para guardar y ordenar notas.

¿Para qué se necesita otro programa de gestión de notas? Bueno, cuando mi queriod organizador Psion-5 dejó de funcionar tuve que llevar mis notas a Linux y comencé a buscar software para gestionarlas. Encontré varios programas para llevar diarios y escribí uno para realizar cálculos (gdcalc) pero no encontré nada para gestionar un block de notas.

Los paquetes que encontré eran:

* demasiado simples (ej. sólo un nivel de notas), 
* demasiado complejos (demasiados componentes tales como Corba, SQL o 
  similares)
* basados en web
* no permitían trabajar sobre el índice a la vez que sobre la jerarquía de notas
* muy engorrosos - mostrando ventanas por todas partes, similares a las notas amarillas de quita y pon de 3M.

Habia algunos que no logré hacer funcionar y otros que directamente no funcionaban.

Sin embargo, aunque encontré algunos buenos programas, ninguno encajaba en mis necesidades. De entre ellos, kjots era el que más se parecía a lo que necesitaba.

De todas formas, por aquella época quería aprender a hacer árboles en GTK y practicar  glade - y nació gjots y todavía sobrevive. Fue escrito, originalmente, en C (ahora está en Python), glade y gtk, era muy rápido y es una aplicación que todavía uso diariamente.  Juzgando por los emails que recibo creo que también es útil para muchas otras personas, lo que es agradable. Hubo incluso una versión en Japonés creada de un fork de gjots (0.3?) pero nunca enviaron el código para integrarlo con el código base, lo que es una pena.

Sin embargo, el mundo no se detuvo, apareció GTK-2 y hubo un número importante de personas que querían LOTE (Languages Other Than English - Idiomas distintos del Inglés) incluyéndome a mi. También quería aprender python y de ahí que la actual versión de gjots
- gjots2 o "hijo de gjots" - viniera al mundo. Al estar escrita en un lenguaje interpretado no es tán rápida al arrancar como la anterior versión; sin embrago ofrece muchas más funcionalidades.

Como dijo Goldilocks sobre las sillas, las camas y las gachas, gjots2 es "justo lo necesario". 
\NewEntry
Instalación

Si puede, utilce RPM o emerge (Gentoo) - permiten una desinstalación sencilla y una mejor gestión de paquetes que setup.py
\NewFolder
\NewEntry
Sistemas basados en RPM

Simplemente haga lo siguiente:

VERSION=3.2.1
wget http://bhepple.freeshell.org/gjots/gjots2-${VERSION}-1.noarch.rpm
yum install gjots2-${VERSION}-1.noarch.rpm

\NewEntry
Prerequisitos

Deje que rpm se encargue de todo ... alternativamente ...

Necesitará instalar (o re-instalar) libglade, pygtk, gnome-python,
o gtk para su versión actual de python o posiblemente valga con dar valor a la variable de entorno PYTHONPATH eg.

	export PYTHONPATH=/usr/local/lib/python2.6/site-packages/

En el momento de escribir este texto (gjots-2.3.11), tengo lo siguiente instalado (on Fedora-13):

    glade3-libgladeui
    gnome-python2
    gnome-python2-gconf
    gtk2
    gtksourceview
    libglade2
    libgnome
    libgnomecanvas
    libgnomeui
    pygtk2
    pygtk2-libglade
    pygtksourceview

Asegúrsese de que los paquetes de python están instalados en el directorio site-packages de la versión de python que se esté usando (ejecute "python -V" para averiguar la versión en uso):

	/usr/lib/pythonX.X/site-packages

Si los paquetes no están ahí posiblemente los tendrá que reinstalar - por ejemplo, a mí me sucedió que al actualizar python desde la 2.2 a la 2.3, el directorio /usr/lib/python2.X/site-packages directory no se actualizó automáticamente. Entonces tve que hacer (en gentoo) lo siguiente:

	emerge unmerge libglade pygtk gnome-python bonobo-python pyorbit
	emerge libglade pygtk gnome-python bonobo-python pyorbit

gjots2 está escrito con glade-3 así que si quiere modificar a arreglar algo en el código necesitará instalar también glade-3. En caso contrario es suficiente con tener python!
\NewEntry
Gentoo 

Nota: la versión 2.6.8 y las anteriores fueron probadas en gentoo. La 2.6.9 y todas las siguientes no.

Hasta que gjots2 tenga un ebuild oficial (busque en
/usr/portage/app-office) tendrá que hacer lo siguiente:

Los paquetes necesarios en gentoo son (en orden de dependencia - puede resultar menos problemático si se instalan siguieno la lista de derececha a izquierda, dejando que el sistema de gestión de dependencias de Gentoo se encargue de los módulos listados a la izquierda - pero yo nunca lo he probado):

	 >=gtk+-2 >=libglade-2 >=pygtk-2 gnome-python-2 >=pyorbit-2

Asegúrese de que en su archivo /etc/make.conf haya una línea como la siguiente:

PORTDIR_OVERLAY=/usr/local/portage

También se precisa incluir la siguiente línea en /etc/portage/packages.keywords:
app-office/gjots2 ~x86

Realizado esto, hacer:

VERSION=3.2.1
CAT=/usr/local/portage/app-office/gjots2
cd /usr/portage/distfiles
wget http://bhepple.freeshell.org/gjots/gjots2-${VERSION}.tgz
mkdir -p ${CAT}
cd ${CAT}
wget http://bhepple.freeshell.org/gjots/gjots2-${VERSION}.ebuild
ebuild ${CAT}/gjots2-${VERSION}.ebuild digest
emerge gjots2

\NewEntry
Desde fuente en un tarball

VERSION=3.2.1
wget http://bhepple.freeshell.org/gjots/gjots2-${VERSION}.tgz

Si se instala desde un tarball, despues de extraer el contenido del archivo tar y de hacer cd en el contenido, hay que hacer lo siguiente:

	python setup.py install [ --prefix=/usr/... ]

Pra desinstalar usar el script uninstall.sh que viene en el tar.

En algunos sistemas pueden producirse problemas de permisos en la instalación system-wide desde fuentes. Todos los nuevos directorios instalados deberían tener permisos 0775, y todos los archivos 0644, con excepción de 'docbook2gjots', 'gjots2',
'gjots2docbook', 'gjots2emacs' y 'gjots2html', que deberán tener permisos 0755.
\EndFolder
\NewEntry
Contribuir

Hay una lista de correo para desarrollo y soporte de gjots:

  Gjots Developers <gjots2-devel@lists.sourceforge.net>:
    http://lists.sourceforge.net/lists/listinfo/gjots2-devel

  Gjots Users <gjots2-users@lists.sourceforge.net>:
    http://lists.sourceforge.net/mailman/listinfo/gjots2-users

<NOTA: están infectadas de SPAM - Por ello, ¡rara vez las leo! Mejor envíe sus correos a 
bhepple@freeshell.org>

¡Correcciones e informes de errores son bienvenidos!

Si alguien quiere traducir esto a otro idioma por favor, que contacte conmigo y le proporcionaré una versión internacionalizada y el catálogo de mensajes.

Incorporaré todas aquellas funcionalidades que me envíen como contribuciones, siempre que me parezcan adecuadas. Si va a trabajar en añadir algo a la rama principal de desarrollo, por favor, envíeme un email y me aseguraré de que nadie más esté ya trabajando en ello.

Por favor use diff -ru para crear el 'patch', y adjúntelo como un archivo gzip.

Si decido no incorporar su funcionalidad favorita, es usted libre de crear un 'fork' del programa pero, por favor, utilice un nombre distinto para su programa.

Después de todo, este programa es GPL.

Para cumplir con la licencia GPL necesitaré incluir su nombre y su dirección de email en las secciones de Autores y Licencia.

Si quiere contribuir, escríbame a bhepple@freeshell.org, para asegurar que el trabajo no se duplica.

Para ideas generales, por favor, mire la sección "Funcionalidades previstas".
\NewEntry
MANUAL DE USUARIO
\NewFolder
\NewEntry
Comenzar

Ejecute el programa tecleando "gjots2" - guardará todas stus notas en $HOME/.gjotsfile

O utilice un parámetro - gjots2 accepta el nombre de un archivo, ej:

	gjots2 todo.gjots

Estas opciones está disponibles:
-h, --help:                         esta ayuda
-d, --debug:                        envía info. de depurar a stdout
-t, --trace:                        rastrea lineas a medida que las ejecuta
-g 123x456, --geometry=123x456:     tamaño inicial de ventana (X x Y)
-p, --purge-password                borrar contraseña tan pronto como se use
-r, --readonly:                     no editar (ni bloquear)
-V, --version:                      imprimir la versión y salir

\NewEntry
Abrir y guardar

Abrir y guardar hacen lo esperado y operan sobre un archivo gjots en texto plano (ver 'Formato de loa archivos gjots2').

A menos que el indicador 'sólo lectura' esté activado, gjots2 crea un archivo de bloqueo (lockfile) para forzar a que sólo pueda modificarse por un usuario pero pueda ser leido concurrentemente por muchos. Si se intenta abrir un archivo que ya está abierto por otro usuario, aparece una ventana emergente con un mensaje y las opciones "Inténtelo de nuevo" ("Try Again") o "Sólo lectura" ("Readonly"). La opción  "Inténtelo de nuevo" permite dar tiempo a que el usuario que tiene bloqueado el archivo lo libere. El archivo de bloqueo (lock file) es un archivo con el nombre .#filename, donde 'filename' es el mismo nombre que el archivo gjots2 que quiere editarse. El archivo de bloqueo está en el mismo directorio que el archivo gjots2 que se edita y contiene sólo el identificador del proceso (pid) que tiene bloqueado el archivo. Si ese proceso se cancela sin eliminar este archivo de bloqueo gjots2 lo detectará en el siguiente arranque.

Por ello, el bloqueo es posible incluso en volúmenes NTFS.

A los archivos abiertos como "sólo lectura" no se les aplica ningún bloqueo (lock).

Hay un item en el menú "Archivos" que permite cambiar el indicador de 'sólo lectura'. También afecta al bloqueo y desbloqueo del archivo, como se ha comentado antes.

Cuando gjots2 guarda un archivo, salva un backup de la versión anterior, siguiendo el mismo esquema que emacs; por ejemplo, si se está guardando el archivo "file.gjots" que ya existe, la versión anterior se salva como "file.gjots~"

Si el archivo termina en ".cpt", gjots tratará de cifrarlo y descifrarlo usando ccrypt(1). Si ccrypt no está instalado (no es estandar en todas las distribuciones Linux) la operación de abrir/cerra el archivo fallará.

Igualmente, los archivos con extensión .ssl wserán abiertos con (DES3) openssl y los .gpg con (DES3) gpg.

Instale ccrypt, openssl o gpg para disponer de más seguridad.
\NewEntry
Menús e iconos

La ventana principal tiene una barra de menú y otra de herramientas, que deberían ser auto-explicativas.

La barra de herramientas (a la izquierda) contiene iconos para organizar la jerarquía de notas. Juega un poco con esos iconos y enseguida te darás cuenta de lo que hacen. Son los siguientes:

"Nueva página" crea un nuevo hijo colgando de la página actual.

"Nuevo hijo" crea un nuevo hijo colgando del item actual.

"Arriba" Mueve la selección delante de la anterior de su mismo nivel.

"Abajo" hace lo contrario que Arriba.

"Atras" transforma el/los elemento(s) seleccionado(s) en hijos de
sus abuelos (o, si lo prefiere, los hermanos de su padre).

"Adelante" transforma los elementos seleccionads en hijos de los hermanos
inmediatamente anteriores.

"Dividir item" corta el texto seleccionado (en el panel de la derecha) y crea un nuevo elemento con ese texto.

"Mezclar" fusiona el texto de todos los elementos seleccionados, creando un solo texto con ellos (separadas por un carácter de nueva línea).

"Ocultar todo" colapsa la vista del árbol dejando visibles sólo los hijos del elemento raíz.

"Mostrar todos" expande todos los niños del elemento seleccionado
(recursivamente).

"Ordenar árbol" muestra el cuadro de diálogo donde se puedn especificar las opciones para ordenar los elementos.

Cuando una carpeta pierde todos los hijos se transforma automáticamente en un tema sencillo.


En la barra de herramientas superior están los siguientes iconos:

"Guardar" es lo habitual.

"Imprimir" muestra el cuadro de diálogo Imprimir. Vea la sección "Imprimir".

"Deshacer" y "Rehacer" son funciones que sólo operan en el búfer de texto, no en el árbol. Sólo están disponibles si la biblioteca gtksourceview está instalada.

"Cortar", "Pegar" y "copiar" tienen una doble función, ya que operan tanto en los elementos de texto y como en el árbol. En cada caso actáun sobre la parte seleccionada, el panel de texto o el panel de árbol.

El botón de formato divide elpárrafo actual en líneas, conforme a la longitud de línea que se haya establecido en el diálogo de preferencias (también se activa con ^L)

El botón "Ext.Ed" invoca un editor externo. Para ello se ejecuta la orden que se haya introducido en el diálogo Preferencias. La orden predeterminada es '%s nedit', 's xedit% "o" xterm-e vi %s "- en función de lo que se haya instalado en el sistema - %s se sustituye por el
nombre de archivo temporal. Cualquier otro editor se puede utilizar siempre y cuando
puede aceptar un nombre de archivo como argumento - personalmente, prefiero
"Emacsclient %s".

El botón "Fecha" pone la fecha en el archivo, en la posición actual del cursor. El formato de la fecha puede definirse en el diálogo Preferencias - se usa el formato de fecha de strftime (3) - por favor, consulte el manual de strftime para más detalles. Algunas opciones comunes:

    % F: (11/03/2002) ... este es el valor predeterminado
    % C: Jue 03 de noviembre 2002 10:33:22 CEST
    (% D% b% Y): (03 02 de noviembre)
    m% d /% /% Y: 28/07/2007

"Buscar" muestra el cuadro de diálogo Buscar y reemplazar.

"Ordenar" muestra el cuadro de diálogo de ordenación.

"Preferencias" abre el diálogo de preferencias.

\NewEntry
Buscar y reemplazar

^B, Editar->Buscar o el botón Bucar en la barra superior de herramientas, muestran el diálogo de buscar y reemplazar.

La operativa debería ser intuitiva - teclee el texto a buscar y pulse uno de los botones de búsqueda.

Para reemplazar una ocurrencia del texto, introduzca el nuevo texto en el cuadro de 'reemplazar por' y pulse el botón Reemplazar. El programa buscará hacia adelante, desde la posición del cursor. Púlselo de nuevo y segurá buscando la siguiente ocurrencia.

Para reemplazar todas las ocurrencias (desde la posición actual en el archivo) pulse el botón Reeemplazar todo.

Los botones de Cerrar y Cancelar cierran el diálogo de buscar y reemplazar- El de Cerrar guarda, además, todas las opciones seleccionadas salvo los textos de búsqueda y de reemplazo.

El botón Limpiar borra el contenido de los campos de buscar y reemplazar.

Cualquier error que ocurra se muestra en el área inmediatamente dejajo del botón y también en la barra de estado del programa.

A continuación, una guía rápida de los elementos para construir expresiones regulares de búsqueda. Nota: gjots2 usa el paquete 're' de Python. Vea la documentación de Python para detalles (las expresiones regulares son más sencillas que las de la versión regex de las versiones C de gjots):

.	cualquier carácter
^       comienzo de línea (sólo válido como primer carácter de una expresión RE)
$	Fin de línea (sólo válido como último caractere de una expresión RE)
*	cero o más ocurrencias del caracter RE previo
+	una o más ocurrencias
?	cero o una ocurrencia
{n}	exactamente, n ocurrencias
{n,}    n o más ocurrencias
{n,m}   entre n y m ocurrencias
[ ]	empareja cualquier carater del conjunto delimitado. Por ejemplo [a-z]
[^ ]    empareja cualquier carater que no esté en el conjunto delimitado.
(  )    forma un patrón a 'recordar'
|	alternativas en un patrón. Ej.: x|y indica "empareja con x o con y"
\n	n es un dígito 1 a 9
-       es una refernecia a un patrón previo
\b	comienzo o fin de palabra
\d	un digit0 == [0-9]
\s	un caracter en blanco == [ \t\n\r\f\v]
\S	un caracter distinto de los considerados caracteres en blanco
\w	alfnumérico
\W	no alfanumérico

Para emparejar uno de los caracteres usados como marcadores ^.[$()|*+?{\ hay que precederlos con \

Para definir los patrones de reemplazo:

\&	pegar todo el texto encontrado
\1..\9	pegar el patrón enésimo (definido con (...) )
\n	insertar un caracter de nueva línea
\NewEntry
Imprimir

El diálogo de imprimir permite seleccionar qué imprimir::
	la página actual,
	la selección actual, o
	el tema entero

Y permite algunas opciones:
	Incluir un salto de página tras cada item, y
	auto-numeración (todavía no está implementado)

La orden de imprimir está implementadoa, en la versión 2.3.7 y siguientes, con "gjots2lpr. La idea es buscar herramientas existentes y usarlas. La operativa por defecto es paser el texto a imprimir mediante "a2ps" y ver el resultado con "gv". Si estos programas no están instalados, hay otros - vea "gjots2lpr -h" para más detalles.

Antes de la 2.6.7 la orden de imprimir era bsatnate larga, pero se xepandía en el siguiente código:

if type gv; then 
  GV='gv -seascape'
else 
  if type ggv; then 
    GV=ggv; 
  else 
    lpr $1
    exit
  fi
fi 
T=/tmp/.tmp.$$
mpage -f -2 -I1 -P- $1 > $T
($GV $T; rm $T)&

Algunas sugerencias para la orden "Imprimir" en vez de lo que viene por defecto:

Para enviar una copia, tal cual, directamente a la impresora: directly to the printer:
lpr $1
\NewEntry
Preferencias

gjots puede personalizarse eligiendo las siguientes opciones:

Formateador de texto - por defecto se usa "fmt -w %d"

Tamaño de línea - se usa para formatear párrafos. Por defecto 65

Editor externo - editor a utilizar cuando se pulsa el botón "Ed.Ext." Ejemplos de valores para esta opción:

nedit %s
xedit %s
xterm -e vi %s
emacsclient %s

Formato de fecha - formato de fecha a utilizar con strftime(3) para la función "Fecha". Consulte "man strftime" para información sobre posibles formatos. Ejemplos: 

    %F          : (2002-11-03) ... este es el valor por defecto
    %c          : Sun 03 Nov 2002 10:33:22 AM EST
    (%d %b %y)  : (03 Nov 02)
    %d/%m/%Y    : 28/07/2007

Fuente - El cuerpo de letra a utilizar en el texto. Los controles y el arbol con el índice siempre usan los valores por defecto de GTK-2.

\NewEntry
Ordenes con el teclado

La mayoría de los atajos con teclas son los habituales. En la ventana de texto se usan los habituales en GTK-2 (ligeramente diferentes de las versiones C/GTK-1 de gjots):

	^a			Seleccionar todo el texto
	Inicio			ir a inicio de línea
	Fin			ir a fin de línea
	izquierda		retroceder un carácter
	derecha			avanzar un carácter
	^izquierda		retroceder una palabra
	^derecha		avanzar una palabra
	abajo			avanzar a la siguiente línea
	up			retroceder a la línea anterior
	^Inicio/Fin		Ir a inicio/final del texto

	Supr			borrar el carácter actual
	backspace		borra el caracter anterior
	^L			reformatera el párrafo ("wrap") 

Mayúsculas + <mover> marcan el texto para seleccionarlo.

Además, se pueden usar las siguientes:

	^x			cortar
	^c			copiar
	^v			pegar


En la ventana de árbol están definidas las siguientes teclas:

En general la pulsación de una tecla sirve para moverse por el árbol. Y las teclas de control permiten manipular el árbol:

	arriba		ir al item previo
	abajo		ir al siguiente item
	^arriba		mover el item(s) actual hacia arriba
	^abajo		mover el item(s) actual hacia abajo
	mayúsculas+arriba/abajo		amplian la selección
	izquierda	ascender por el árbol
	derecha		descender por el árbol
	^izquierda	promocionar (disminuir nivel) items
	^derecha	aumentar nivel de los items
	Inicio		ir al primer item del nivel actual
	Fin		ir al último item del nivel actual
	^Inicio		ir al primer item del árbol
	^Fin		ir al último item del árbol

Atajos globales:
	^s		guardar el archivo
	^q		salir del programa
	^f		mostrar el diálogo de 'buscar y reemplazar'

\NewEntry
Importar y exportar

Puede traer textos desde otros sitios o llevarlos a otros programas mediante las órdenes Importar y Exportar. Operan sobre el item o items que estén seleccionados, de forma que usted pueda controlar con precisión qué es lo que se exporta.

El formato del archivo creado es el mismo que el que usa gjots2 para sus archivos.
\NewEntry
Formato de los archivos gjots2

El mismo que el que usaba gjots: texto plano con marcadores que definen la jerarquía de notas:

    \NewEntry
    título1
    esto es el texto que va bajo la entrada 'título1'

    \NewFolder
    \NewEntry 
    título2
    y este el que va bajo 'título2'

    \NewEntry 
    título3
    texto para 'título3'

    \EndFolder

Los \marcadores necesitan estar al comienzo de las líneas para ser reconocidos.
\NewEntry
Cifrado

gjots2 puede cifrar y descifrar archivos usando los paquetes ccrypt(1), openssl(1)
o gpg(1).

Los archivos se criptografían con uno de ellos en función de la extensión que se ponga al archivo:

.cpt ccrypt
.ssl openssl
.gpg gpg

gjots2 pregunta por la contraseña cuando se necesita.

Si quiere hacer uso de esta funcionalidad asegúrese que tiene instalado en su equipo ccrypt, openssl o gpg.

No pierda la contraseña - No puedo hacer nada para ayudarle a recuperarla si la pierde.
\NewEntry
Seguridad

Para cifrar con ccrypt, se usa el equivalente a:
 
    {write cleartext} | KEYWORD=password ccencrypt -E KEYWORD >filename.cpt
  
Ello da lugar a que la contraseña quede comprometida durante unos instantes ya que se guarda en una variable de entorno, aunque es destruida y eliminada inmediatamente tras su uso. Según la página man ccrypt, "en la mayoría de los sistemas modernos" la orden 'ps' protege los parámetros de entorno de ser accedidos por usuarios con permisos normales. Bajo Linux, se puede hacer 'cat /proc/PID/environ' para ver los valores de entorno usados por cualquier proceso del que se sea propietario. Pero sólo el usuario root puede espiar los valores de otros usuarios. Por ello, usar -E no es menos seguro que su contraseña de login o la de root.
 
La única forma alternativa de hacer esto (AFAICS) sería:

	{write cleartext} >file.gjot 
	echo password |ccencrypt -k - file.gjot
 
 ... aunque esto mejora la protección de la contraseña, expone el texto claro (brevemente) en un archivo - es por tanto tan malo o tan bueno como exponer la contraseña en una variable de entorno.

El descifrado es mucho más sencillo - gjots2 utiliza stdin para pasar la contraseña:

     echo password |ccdecrypt -c -k - filename.cpt | {read from pipe}
 
Un canal adicional (eg. stdin=0, stdout=1 stderr=3 stdpasswd=3) para que ccrypt lea las contraseñas sería una solución mucho mejor (pero ccrypt no lo proporciona).
\NewEntry
URLs en el texto

Si haces doble clic en una URL, gjots abrirá en tu navegador web esa URL.

Sólo las URLs de la forma  'http[s]://...'  son reconocidas por gjots2.

La variable de entorno BROWSER se usa para elegir el navegador con el que acceder a internet. Si esta variable no está creada/inicializada se usará el navegador que esté arrancado, probando con los de la siguiente lista:

	firefox
	konqueror
	epiphany
	opera
	dillo

Si ninguno de ellos estuviera arrancado, gjots usara'el primero de ellos que encuentre y pueda arrancar.
\NewEntry
Utilidades
\NewFolder
\NewEntry
gjots2html

gjots2html convierte un archivo gjots2 a HTML e incluye un índice con el mismo aspecto visual
que el arbol de items.

Vea la página man para más detalles.

gjots2html.py es una versión python de esta misma utilidad que, posiblemente, sea más fiable.
\NewEntry
gjots2docbook

convierte un archivo gjots2 a otro en formato DOCBOOK XML.

Vea la página man para más detalles.
\NewEntry
docbook2gjots

convierte un archivo DOCBOOK XML a otro en formato gjots2.

Vea la página man para más detalles.
\NewEntry
gjots2emacs

gjots2emacs convierte un archivo gjots a un formato más o menos utilizable para emacs (en modo 'outline').

Uso: gjots2emacs [filename]
convierte un archivo gjots a emacs en modo 'outline' (en stdout). Como expresión regex de emacs
por defecto se usa ===>+

    -b base: el texto base para la expresión outline-regexp (por defecto '===')
    -F char: marcador para las cabeceras de la expresión outline-regexp (por defecto '>')
\EndFolder
\EndFolder
\NewEntry
Estado de desarrollo


Cualquier idea para mejorar gjots2 es bienvenida. Por favor, escíbame a 
bhepple@freeshell.org



\NewFolder
\NewEntry
Funcionalidades previstas

What gets added will be limited to the design goal of "fast and
lightweight", but might include:

Localisation
============

As of version 2.3.0, gjots2 is internationalized and
ready for translations. If you would like to see your
language supported, please contact the mailing list on
bhepple@freeshell.org

Check the webpage for localisations already complete.

gjots2
======

Add timestamp to every item & display in appbar when 
selected

autosort on/off for folders

Edit->Clear, Properties, 

Settings->preferences
	autosave

Support for item options: \Options including:
	open/closed
	para details
	...?

gjots2html
==========

gjots2html is undergoing some possible changes. There is a new
script marked as beta written in Python, and supports the following
features:
  1) Add <HR> lines after each section.
  2) Adds a link to the Table of Contents after each section.
  3) Specify a title to the page.
  4) Embed the output of gjots2html.py into a pre-existing HTML
     template file.
  5) Suppress the table of contents section.
  6) Output the HTML to a specified file.
  7) Add a link to a specified Cascading Style Sheet.
  8) Wrap the gjots2 text at a specified width.

It also supports an arbitrary number of levels in the hierarchy,
even though HTML only supports 9.

Add options:
	-r N, --rule=N: <HR> for all levels up to N
\NewEntry
Problemas conocidos

Ninguno conocido salvo:

Mensajes de error extraños si no se puede abrir gjots2 al arrancar.

El diálogo 'ordenar' (sort) no se inicializa con los valores guardados en gconf.
\NewEntry
Platforms

Tested on the following platforms:
  Fedora-13

Older version were tested on:
  Gentoo Linux i386
  Mandrake 10.1
  Fedora Core 3, 4
  Novell Linux Desktop 9
  SUSE 9.2, 9.3
  Ubuntu Feisty

Some of these platforms may require updated packages. Refer to our
FAQ for a discussion of these issues.
\EndFolder
\NewEntry
Preguntas frecuentes (FAQ)

Preguntas frecuentes relativas a gjots2.

Si tiene alguna pregunta que no etś respondida en esta sección, por favor, contacte con la lista <gjots2-users@lists.sourceforge.net>.
 
\NewFolder
\NewEntry
P: Los iconos de la barra de la izquierda parecen deformados.

R: Su equipo usa una versión defectuosa de libglade2. Actualice libglade a 2.4.1 o superior. Mi recomendación es actualizar ese paquete mediante el gestor de paquetes de su distribución Linux.
\NewEntry
P: Se procude el error "ImportError: No module named distutils.core" cuando trato de montar  gjots2 desde fuentes.

R: Su distribución Linux tiene 'rota' la instalación de python ya que faltan algunos módulos de distutils que son parte del núcleo de python. Instale python correctamente para solucionar este problema. Este es un problema conocido en: Ubuntu (5.10), NLD9, SUSE 9.2.

  Para arrglarlo en Ubuntu 5.10 :
    # apt-get install pythonX.X-dev
\NewEntry
P: Recibo el error "ImportError: No module named gconf"

R: Instale gnome-python-2. Este paquete contiene los enlaces necesarios para gconf y puede encontrarlo aquí:
  http://www.pygtk.org/

Debería buscar un paquete pre-construido, tal como uno de los siguientes:
  Mandrake 10.1:
     # rpm -ivh gnome-python-gconf-2.0.3-1mdk.i586.rpm
  Fedora Core 3:
     # rpm -ivh gnome-python2-gconf-2.6.0-3.i386.rpm
\NewEntry
P: ¿Cómo hago para usar gjots2 en Novell Linux Desktop?

R: Tendrá que instalar gnome-python (y sus dependencias).
\NewEntry
P: ¿Cuál es la diferencia entre la antigua versión C (gjots-0.X) y la nueva versión python gjots-2.X.X ?

R: Para la versión 2.0.0 las diferencias eran las siguientes (para cambios posteriores, consulte el archivo CHANGES):

- Soporte Unicode en los archivos - de forma que pudieran incluirse textos en Ruso - y posiblemente en Turco, Arabe, ... ¡quién sabe si funciona! Si pueden informarme al respecto, lo agradecería.

- La potencialidad de incluir soporte para LOTE - ¿algún voluntario para I18N y L10N?

- 'Arrastrar y soltar' en el árbol, para facilitar su reorganización.

- soporte para gconf con temas de GTK-2.

- Ordenación de items y textos.

- Mezcla de items

- División de items

- Imprimir
\NewEntry
P: ¿Por qué 'Deshacer' y 'Rehacer' no funcionan?

R: ¿Están instaladas las librerías gtksourceview ?

\EndFolder
\NewEntry
Autores y licencia

\NewFolder
\NewEntry
Autores

Programado por:
	Bob Hepple <bhepple@freeshell.org>

Ayuda de:
	Gabriel Munoz <munozga@gmail.com>
	Jiahua Huang <jhuangjiahua@gmail.com>

Logotipo de:
	DSP Popeck <wokoglopulator@yahoo.com>, 2002

Traducción al Francés:
	Rui Nibau <rui.nibau@omacronides.com>

Traducción al Noruego:
    	Robert Emil Berge <filoktetes@linuxophic.org>

Traducción al Ruso:
    	Sergey Bezdenezhnyh <sib-mail@mtu-net.ru>

Traducción al Italiano:
    	Raimondo Giammanco <rongten@member.fsf.org>

Traducción al Checo:
    	Martin Sin <martin.sin@zshk.cz>

Traducción al Español:
    	Cecilio Salmerón <s.cecilio@gmail.com>

\NewEntry
Licencia (GPL)

Copyright (C) 2007 Robert Hepple
Copyright (C) 2002 DSP Popeck

		    GNU GENERAL PUBLIC LICENSE
		       Version 2, June 1991

 Copyright (C) 1989, 1991 Free Software Foundation
 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
 Everyone is permitted to copy and distribute verbatim copies
 of this license document, but changing it is not allowed.

			    Preamble

  The licenses for most software are designed to take away your
freedom to share and change it.  By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users.  This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it.  (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.)  You can apply it to
your programs, too.

  When we speak of free software, we are referring to freedom, not
price.  Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.

  To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.

  For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have.  You must make sure that they, too, receive or can get the
source code.  And you must show them these terms so they know their
rights.

  We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.

  Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software.  If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.

  Finally, any free program is threatened constantly by software
patents.  We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary.  To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.

  The precise terms and conditions for copying, distribution and
modification follow.

		    GNU GENERAL PUBLIC LICENSE
   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

  0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License.  The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language.  (Hereinafter, translation is included without limitation in
the term "modification".)  Each licensee is addressed as "you".

Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope.  The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.

  1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.

You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.

  2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:

    a) You must cause the modified files to carry prominent notices
    stating that you changed the files and the date of any change.

    b) You must cause any work that you distribute or publish, that in
    whole or in part contains or is derived from the Program or any
    part thereof, to be licensed as a whole at no charge to all third
    parties under the terms of this License.

    c) If the modified program normally reads commands interactively
    when run, you must cause it, when started running for such
    interactive use in the most ordinary way, to print or display an
    announcement including an appropriate copyright notice and a
    notice that there is no warranty (or else, saying that you provide
    a warranty) and that users may redistribute the program under
    these conditions, and telling the user how to view a copy of this
    License.  (Exception: if the Program itself is interactive but
    does not normally print such an announcement, your work based on
    the Program is not required to print an announcement.)

These requirements apply to the modified work as a whole.  If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works.  But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.

Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.

In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.

  3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:

    a) Accompany it with the complete corresponding machine-readable
    source code, which must be distributed under the terms of Sections
    1 and 2 above on a medium customarily used for software interchange; or,

    b) Accompany it with a written offer, valid for at least three
    years, to give any third party, for a charge no more than your
    cost of physically performing source distribution, a complete
    machine-readable copy of the corresponding source code, to be
    distributed under the terms of Sections 1 and 2 above on a medium
    customarily used for software interchange; or,

    c) Accompany it with the information you received as to the offer
    to distribute corresponding source code.  (This alternative is
    allowed only for noncommercial distribution and only if you
    received the program in object code or executable form with such
    an offer, in accord with Subsection b above.)

The source code for a work means the preferred form of the work for
making modifications to it.  For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable.  However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.

If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.

  4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License.  Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.

  5. You are not required to accept this License, since you have not
signed it.  However, nothing else grants you permission to modify or
distribute the Program or its derivative works.  These actions are
prohibited by law if you do not accept this License.  Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.

  6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions.  You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.

  7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License.  If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all.  For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.

If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.

It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices.  Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.

This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.

  8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded.  In such case, this License incorporates
the limitation as if written in the body of this License.

  9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time.  Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.

Each version is given a distinguishing version number.  If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation.  If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.

  10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission.  For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this.  Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.

			    NO WARRANTY

  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.

  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.

		     END OF TERMS AND CONDITIONS
\EndFolder
