Herramientas de usuario

Herramientas del sitio


notas:dokuwiki

Notas sobre DokuWiki

Notas acerca de la instalación, configuración, uso y mantenimiento de esta instalación de DokuWiki.

Ver también las notas sobre la instalación original (oct 2006).

Actualización de DokuWiki, 26-jun-2007

Versión: 2007-06-26 (por pura casualidad, la descubrí el mismo día)

Instrucciones tomadas de http://wiki.splitbrain.org/wiki:install:upgrade

  • backup: dokuwiki_backup_20070626/
  • descomprimir
  • el directorio descomprimido se mueve a dokuwiki/
  • copiar .htaccess (notar diferencias en $conf['userewrite'] vs. $conf['rewrite'])
  • copiar /data (presevar permisos, o aplicar manualmente chmod -R g+w data/)
  • copiar archivos modificados de /conf (acl.auth.php, local.php, users.auth.php en mi caso)
  • copiar plugins: el único que tengo es comment, lo copio pero no anda
  • copiar template: tengo varios bajados, pero sólo uso el default; no los copio por ahora
  • copiar archivos de idioma modificados (sólo /inc/lang/es/showrev.txt en mi caso)

Atención: para poder editar los parámetros de configuración desde el wiki, tuve que chmod g+w conf/

Atención: a los archivos de /data/pages/wiki (syntax.txt y dokuwiki.txt) conviene reemplazarlos por los nuevos.

El índice se actualiza automáticamente al visitar cada página, o bien se puede usar un script: /bin/indexer.php (no me da resultado)

Revisar que el archivo wordblock.conf se siga actualizando periódicamente. Verificado 27-06-2007.

Traducciones: visitar http://wiki.splitbrain.org/wiki:multilanguage

Hubo un error en mi PC usando Firefox: al salir (logout), podía continuar usando el wiki como si no hubiese salido. Lo resolví eliminando las cookies… pero es un serio problema (si la falla llega a ser del wiki). Ahora anda bien.

Pedí ayuda en #dokuwiki (FreeNode). Me registré en http://wiki.splitbrain.org/ como efege.

Siguiente asunto a resolver: cómo ocultar los “folders” correspondientes a espacios de nombres no visibles para usuarios comunes. Encontré que alguien había preguntado lo mismo en el foro, pero sin recibir respuesta, y volví a hacer la pregunta. También encontré esta otra discusión, pero probé (muy rápidamente) esa solución y no me anduvo. La respuesta es: activar la opción de config sneaky_index. Funciona bien. (Responder y agradecer en http://forum.dokuwiki.org/post/3295)

Backups periódicos: ver http://wiki.splitbrain.org/wiki:tips:backup_script (Probé con la 1ra versión PHP que hay allí, sin tocarle nada, y no anduvo. Revisar.)

CSS, Templates

Para hacer pequeñas correcciones al template default, podemos crear un nuevo template, haciendo una copia de la carpeta lib/tpl/default, y luego modificar las hojas de estilo en las partes que nos interese. Pero yo preferiría tener un único archivo (e.g. overrides.css) donde estén solamente las reglas que me interesa modificar. ¿Es factible esto? Consulta enviada al foro: http://forum.dokuwiki.org/thread/1037. Respuesta: usar el archivo conf/userstyle.css.

Hice algunas pequeñas modificaciones al template default, ver conf/userstyle.css. Leer wiki:stylesheets. UPDATE 2009-02-27: esa página no existe; ver devel:css.

Cambiar color de fondo para bloques de código.

Modificar las hojas de estilo para darle un look similar al de http://inmabb.criba.edu.ar/catalis/

Quiero que el botón “Editar” para cada sección de una página aparezca junto al header de la sección (como en MediaWiki), y no al pie de la misma. Ver el plugin plugin:editsections (instalado 2007-07-08).

Lista oficial de templates.

Probar algún template que permita tener el Índice siempre a la vista. Algunos templates interesantes: Arctic (screenshot); mmClean, mmKanso, mmZire. Probar éste: r7throot1.

Barra lateral (sidebar): http://wiki.jalakai.co.uk/dokuwiki/doku.php

ATENCION: es necesario que los links en la barra lateral contengan espacios en lugar de underscores, para que puedan entrar en varias líneas cuando son largos (esto puede servir: http://wiki.jalakai.co.uk/dokuwiki/doku.php/tutorials/removing_underscores).

Cómo poner una imagen (logo) en la cabecera: wiki:tips:image-in-the-upper-right-corner.

¿Links en lugar de botones? Buscar tpl_actionlink.

Hoja de estilo para impresión (conf/userprint.css) quitar text-align: justify (hecho), font-size más pequeño.

Revisar estos cambios de estilo hechos en instalaciones anteriores:

[~]$ find htdocs/dokuwiki_backup/lib/ | grep css | xargs grep -i 'fg'
htdocs/dokuwiki_backup/lib/tpl/default/design.css:  /*text-align: justify; NO ME GUSTA (FG) */
htdocs/dokuwiki_backup/lib/tpl/default/print.css:  /*text-align: justify;*/   /* no me gusta (FG) */
htdocs/dokuwiki_backup/lib/tpl/sidebar-rc2006-09-28/sidebar.css:  overflow: scroll;  /* FG */
[~]$ find htdocs/dokuwiki_backup_20070626/lib/ | grep css | xargs grep -i 'fg'
htdocs/dokuwiki_backup_20070626/lib/tpl/sidebar-rc2006-09-28/sidebar.css:  overflow: scroll;  /* FG */

Usar vertical-align:top para celdas de tablas. [Listo, modifiqué conf/userstyle.css, 2007-07-18]

IMPORTANTE: agregar subrayado a todos los links (don't rely on color alone!)

Modificar div.success (agregar padding y corregir posición de la imagen de fondo)

Cambiar el color para los “search snippets”, está muy claro:

div.dokuwiki .search_snippet {
  color:#888888;
}

Reescritura de URLs

2007-07-05: Modifiqué los parámetros userewrite (2) y useslash (1), para que las URLs usen una barra (/) como separador de espacios de nombres, en lugar de dos puntos (:). TO-DO: ¿podemos eliminar doku.php de las URLs? Leer URL Rewriting.

Títulos de páginas

La opción config:useheading permite que se muestre el texto del primer encabezado h1 de una página como texto de los links a esa página. Por defecto está deshabilitada, la habilité en 2007-07-20 para probarla.

Plugins

Lista oficial de plugins.

ATENCION: para poder instalar plugins utilizando el Plugin manager (es decir, desde la interfaz del wiki), hay que habilitar permiso de escritura en el directorio lib/plugins. Aun así, todavía no hice una instalación exitosa de un plugin desde el wiki. Para arreglar en traducciones: “Incapaz de descargar el arhcivo del plugin”.

Instalé el plugin commentsrc, que permite encerrar comentarios entre !- y -!.

Muy interesante: Presentaciones S5 (las de Eric Meyer): permite crear una presentación a partir de cualquier página de DokuWiki. =) [Instalado: 2007-07-06]. Duda: ¿por qué no puedo abrir una presentación S5 offline (i.e., guardada como un archivo + carpeta auxiliar)?

Hay plugins para presentar fórmulas matemáticas, como http://wiki.splitbrain.org/plugin:math2

Boxes para encerrar y resaltar porciones de una página. Plugin relacionado: Note (notas: important, tip, warning). Note instalado 2007-07-08, no funcionaba inicialmente, ahora sí. En IE el fondo de las imágenes no es transparente, faltan padding y bordes redondeados.

Instalé el plugin box en 2007-07-20. El markup se genera, pero no aparecen los estilos. En la página del plugin hay un comentario reciente que simplemente dice “no anda con la última versión de DW”.

Hay varios plugins para usar listas de definiciones: definitionlist, deflist, dl (es raro que la sintaxis de DokuWiki no las tenga en cuenta).

2007-07-19: instalé plugin:nbsp para poder usar non-breaking spaces.

Creación de páginas por medio de scripts

Las páginas en DokuWiki son simples archivos de texto, no hay una base de datos detrás. Esto facilita la creación dinámica de páginas, por medio de scripts.

Por ejemplo, este comando mx permite crear una nueva página del wiki con un listado de todas las publicaciones seriadas que hay en la base del OPAC:

mx ~/bases/catalis_pack_demo_devel/opac/bibima/biblio lw=3000 "pft=if v907='s' then '  * 'replace(replace(replace(replace(v245*4,'^b',' '),'^c',' '),'^n',' '),'^p',' '),'\\\\ ',v866^a/ fi" now | sort | iconv -f latin1 -t utf8 > ~/htdocs/dokuwiki/data/pages/inmabb/listado-seriadas.txt

Observaciones:

  • Usamos '\\\\ ' para generar '\\ ', lo que produce un salto de línea sin crear un nuevo párrafo.
  • Usamos lw=3000 para evitar saltos de línea en el caso de existencias muy extensas (e.g. Zentralblatt).
  • El sort no está ignorando los artículos iniciales.

Mediante crontab podemos regenerar esta página periódicamente para mantenerla actualizada. Si es apropiado, se pueden presentar los listados como tablas.

TODO: los scripts que generan páginas del wiki deben generar un título y alguna información adicional, como p.ej. fecha de ejecución.

¿Y qué sucede con la historia de una página generada por scripts?

Inclusión de páginas generadas

Podemos armar páginas del wiki compuestas de partes fijas (editadas como una página ordinaria del wiki) y partes variables procedentes de consultas a bases de datos (generadas p.ej. vía cron como decimos arriba). El plugin include permite hacer esto. (Notar que los parámetros de configuración de este plugin parecen estar muy orientados a su uso en el contexto de un blog; habría que ver qué efecto tendría eso en el caso que estamos considerando aquí.)

La sintaxis para la inclusión de páginas tiene dos formas posibles:

{{page>[id]#[section]&[flags]}}

{{section>[id]#[section]&[flags]}}

Permisos de acceso

  • Revisar política de creación de usuarios.
  • ¿Los usuarios registrados están en un grupo user o users? Respuesta: All self-registered users are by default automatically a member of the group 'user'. Use this to give permissions to 'logged-in' users.
  • Para configurar ACL en forma global (sin necesidad de visitar una página del namespace), ver el plugin superacl. Instalado 2007-07-08.
  • Si quiero que una página o espacio de nombres sólo sea accesible a admin, hago que el grupo ALL no tenga ningún permiso, pero ¿necesito decir explícitamente qué permisos tiene admin, o autmoáticamente admin siempre tiene todos los permisos?

Mantenimiento (crontab)

Estas son las tareas programadas, al 5 de julio de 2007:

  
  # actualiza la lista negra anti-spam para DokuWiki día por medio (o días pares?)
  00      06      */2     *       *       ~/bin/update-blacklist.sh
  
  # hace un backup del DokuWiki cada día
  00      07      *       *       *       ~/bin/wiki-backup.sh
  
  # actualiza el listado de seriadas de la base bibima (semanal)
  00      05      */7     *       *       ~/bin/listado-seriadas.sh
  
  # actualiza el listado de libros para reparar de la base bibima (semanal)
  05      05      */7     *       *       ~/bin/listado-reparar.sh

ATENCION: los scripts que generan listados no se ejecutaban correctamente usando crontab, pues no encontraban el comando mx. No bastó con modificar el PATH en el archivo .bashrc, y tuve que declarar el PATH en cada archivo .sh.

Subir archivos (además de imágenes): PDF, zip, etc.

Ver estás páginas: wiki:images, wiki:mime, wiki:mediamanager.

¿El acceso a esos archivos también puede restringirse mediante namespaces? Me refiero a la posibilidad de ver los archivos; ya sé que para poder subirlos y/o eliminarlos el usuario debe tener permisos. En wiki:mediamanager se explica que es posible organizar los archivos en espacios de nombres; me falta verificar que los permisos establecidos con ACL afectan igualmente a páginas y archivos dentro de un mismo namespace.

Seguridad

Otras cuestiones

  • ¿Al instalar la nueva versión, se perdió la historia de las páginas existentes?
  • Verificar si es posible editar desde el wiki los parámetros de configuración. Respuesta: sí, pero luego de haber dado permiso de escritura a apache en el directorio conf.
  • Hacer correcciones en los textos en español.
  • Quiero que el textarea para edición se pueda agrandar para aprovechar al máximo el espacio disponible en la pantalla.
  • Una página muy extensa (catalis-objetos.js) no se puede ver completa.
  • Al buscar “mx” aparecen dos páginas como resultado: mx y notas:mx. Sin embargo, abajo dice también: “No se ha encontrado nada.”
  • ¿Queremos agregar JavaScript al wiki? Ver: wiki:devel:javascript, usar conf/userscript.js.
  • ¿Y si queremos agregar JavaScript solamente a una página (o grupo de páginas)?
  • Resaltado de lenguajes: añadir soporte para PFT en GeSHi. Ver http://qbnz.com/highlighter/geshi-doc.html#language-files
  • Quiero que luego de editar una sección y grabar los cambios, la URL resultante incluya un ancla para ver la sección recién editada (MediaWiki lo hace)

Traducciones

2009-02-26: hice algunas correcciones en http://translate.dokuwiki.org/translate.php?lang=es. Bajé el archivo .zip con los cambios; hay que enviarlos al desarrollador: dokuwiki-es.zip (pero antes mejor hacer más correcciones)

LOGIN

  • ¿Has olvidado tu contraseña? Consigue una nueva.: (sobra punto)

ACL

En esta página tu puedes agregar y quitar permisos para la página actual y todos los espacios de nombres en los que está. Tu deberías leer la documentación oficial sobre ACL para comprender completamente cómo funcionan el control de acceso.

La página muestra todos los permisos que son significativos para la página actual. Los permisos relativos a otras páginas no se muestran – para editarlos, primero navega a la página correspondiente y luego a la administración de ACL.

En el menú de admin, se repite el texto para los plugins acl y superacl2:

# Administración de lista de control de acceso
# Administración de lista de control de acceso

INSTALLER

El instalador encontró algunos problemas, se muestran abajo. No se puede continuar la instalación hasta que usted no los corrija.

Es necesario establecer correctamente los permisos de este directorio!

Wiki “abierta, pública, cerrada” (por qué femenino?). Otros: “esta wiki”, “la wiki completa”.

CONFIGURATION MANAGER

  • Arctic Parámetros de Plantillas ⇒ Plantilla Arctic (?)
  • S5 Parámetros de Plugins ⇒ Plugin S5 (?)
  • grupo ó usuario

PLUGIN MANAGER

  • desabilitado ⇒ deshabilitado

USER MANAGER

  • y se esta activo

BLOG PLUGIN FAMILY

Para traducir

  • Enter your comment (wiki syntax is allowed):
  • Subscribe to comments
  • show edit button
  • show linkbacks below included page (Linkback Plugin needed)
  • Toda la config del plugin tag

Para corregir

  • Formato de fecha (para posts y comentarios): 2009/03/02 ⇒ 02/03/2009
  • La validación del campo “email” es muy trucha: sólo requiere la presencia de una arroba.
  • “entrada/s al blog”
  • En el plugin discussion, action.php, tenemos
<input class="button comment_submit" type="submit" name="submit" accesskey="s" value="<?php echo $lang['btn_save'] ?>" title="<?php echo $lang['btn_save']?> [ALt+S]" tabindex="7" />

El problema es que $lang['btn_save'] es “Save” o “Guardar”, pero tratándose de un comentario sería más apropiado algo como “Enviar comentario” o “Publicar comentario”.


  • Cambiar: exito ⇒ éxito
  • datos del usuario ⇒ perfil
  • Corregir en inglés: “cleanup the the index”
  • El link/botón dice “Revisiones anteriores”, pero el título de la página resultante es “Revisiones Antiguas”.
  • seleccionala ⇒ selecciónala
  • Stopwords: falta agregar preposiciones, etc
  • En los resultados de una búsqueda, “Páginas que coinciden:” debiera ser “Nombres de páginas que coinciden:”
  • Plugin ACL: “El panel de la izquierda muiestra”
  • “Enlaces anteriores” vs Referencias

Actualización 2008-04-04

Instalé la versión rc2008-03-31.

De acuerdo con las indicaciones en http://wiki.splitbrain.org/wiki:install:upgrade pisé la instalación anterior. Luego borré los archivos viejos (no necesarios), volví a comentar unas líneas en el .htaccess, ajusté los permisos en data/.

PENDIENTE: actualizar plugins.

Estos son los plugins instalados:

drwxr-xr-x    4 catalis  catalis      4096 May 29  2006 editsections
drwxr-xr-x    5 catalis  catalis      4096 Apr  3  2007 s5
drwxrwxr-x    3 catalis  catalis      4096 May 18  2007 superacl
drwxrwxr-x    2 catalis  catalis      4096 Jun 26  2007 comment
drwxrwxr-x    2 catalis  catalis      4096 Jun 26  2007 commentsrc
drwxr-xr-x    2 apache   apache       4096 Jul  6  2007 tmp
drwxrwxr-x    3 catalis  catalis      4096 Jul  8  2007 note
drwxrwxr-x    2 catalis  catalis      4096 Jul 19  2007 nbsp
drwxrwxr-x    2 catalis  catalis      4096 Jul 20  2007 _downloaded_files
drwxrwxr-x    3 catalis  catalis      4096 Jul 20  2007 box

Problemas encontrados

  • Display del título de las páginas en los resultados de las búsquedas: no usa el H1
  • El plugin S5 presenta mal la información al pie, e.g.: “CatalisWiki • %2008/%05/%08 %12:%May”

TO-DO: instalar la nueva versión, dokuwiki-2008-05-05.tgz.

Actualización 2009-02-25

Instalé la versión 2009-02-14.

Hice backup completo. Borré archivos viejos (usando los comandos sugeridos).

Actualicé manualmente el plugin s5 (error de download al usar Plugin Manager). Se arregló el problema de visualización de fechas mencionado arriba.

Actualicé manualmente el plugin note (versión 2008-02-17).

TO-DO: actualizar otros plugins!

Tuve que tocar permisos en conf para poder modificar local.php vía web (esto no parece estar claramente explicado en los docs)

chmod g+w conf/

Los textos en español siguen teniendo varios errores. Me gustaría hacer las correcciones y ponerlas disponibles para la siguiente versión de DokuWiki.

Para leer

DokuWiki: An elegant and lightweight wiki engine, by Dmitri Popov on June 25, 2008 (linux.com).

DokuWiki como blog

Dado mi interés actual en implementar un blog, estoy dando un vistazo a los tips para convertir DokuWiki en un blog. (Feb 2009)

La funcionalidad de blog se obtiene mediante una familia de plugins, de los cuales tres son obligatorios (blog, pagelist, include), y los restantes opcionales (discussion, tag, etc.). Para obtener en un solo paquete los plugins deseados se puede usar: DokuWiki Blogsuite BundleHub.

<note important> Hay una nueva opción, aún en desarrollo: plugin:blogtng. </note>

Instalé manualmente los plugins blog, pagelist. Solucionado el problema del proxy HTTP (no aparecía en la config), instalé automáticamente el plugin include.

Ejemplos

Página del blog vs. namespace de entradas

¿Podemos tener una página llamada blog (la “página del blog” propiamente dicha), y —al mismo nivel— un namespace llamado blog (donde viven las entradas del blog)? Eso parecen estar haciendo http://www.7throot.com/blog y http://simpleinvoices.org/blog.

Por el contrario, en http://profs.if.uff.br/tjpp/blog tenemos una página :blog y un namespace :blog:entradas.

En http://foosel.org/ no estoy seguro de la estructura…

Prefijo para nombres de entradas

Ver cómo generar automáticamente prefijos con la fecha de creación de las entradas, para organizarlas en namespaces por fecha.

Observaciones

  • En los comentarios, la validación del campo “email” es muy trucha: sólo requiere la presencia de una arroba.
  • Me gustaría poder resaltar los comentarios cuyo autor es el administrador del blog (o el autor de la entrada).
  • En el form para comentarios, los campos “name” y “email” son muy anchos. Arreglado.
  • Los tags son globales, no se limitan a páginas del blog, y por lo tanto una búsqueda por un tag (e.g. ?id=tag:inmabb&do=showtag&tag=inmabb) puede presentar páginas no pertenecientes al blog.
  • Luego de la lista de comentarios, y antes del form para añadir un comentario, falta un texto como “Envíe su comentario”.
  • Comentarios: donde dice “se permite usar sintaxis wiki” hace falta un link a la página donde se enseña esa sintaxis.

DokuWiki como CMS

Ejemplos

Más sobre templates

usable

Instalé (para probarlo) un nuevo template: usable, que parece ser uno de los mejorcitos. A modo de ejemplo podemos mirar http://contentfilter.futuragts.com/wiki/doku.php

Problemas para resolver con este template:

  • Las búsquedas no andan (el form tiene action=“/doku.php/” en lugar de action=“/doku/doku.php/”)
  • Instalé el plugin displaywikipage para así poder editar la sidebar desde el wiki; pero falta ver cómo organizarla.

7throot

Varios templates provienen de 7throot, y el sitio de su autor es un bonito ejemplo de uso de DokuWiki, con blog incluído: http://www.7throot.com/blog

arctic

dokucms

Múltiples templates

Si queremos usar una única instalación de DokuWiki para varios “sitios” (blog, wiki, etc.), y queremos usar un template diferente para cada uno, la solución es este template: Multitemplate.

Pasos para activar multitemplate:

  1. Editar el archivo de configuración lib/tpl/multitemplate/local_pref.php, para indicar qué templates se aplican según el namespace
  2. Modificar los archivos *.php de cada template que deseemos usar con multitemplate. ATENCION: también hay que editar código php dentro de archivos *.html.
  3. Si alguno de los templates a usar usa style.ini, instalar el plugin multitemplate_styleman. Esto requiere, además, modificar lib/tpl/multitemplate/meat.php.

Los puntos 1 y 2 implican que, llegado el momento de actualizar cualquiera de estos templates (incluyendo, posiblemente, el template default), tendremos que volver a aplicar las modificaciones.

Esta configuración anduvo OK:

$multitemplate['playground:playground'] = 'default';
$multitemplate['catalis'] = 'doogiestpl';
$multitemplate[''] = 'monobook';

Pero luego encuentro lo que parece un bug: desde la página principal (monobook) busco “catalis”, y la página de resultados aparece en doogiestpl (que corresponde al namespace catalis); si busco “playground:playground” la página de resultados aparece en default. Esto parece deberse a la forma de la URL de una búsqueda:

  http://127.0.0.1/dw/doku.php?do=search&id=catalis

La presencia de id=catalis “confunde” a multitemplate. Consulta enviada al foro de DokuWiki y al wiki del autor.

TODO: ver otra alternativa, plugin:loadskin

Resaltado de sección a editar

Veo que en algunas instalaciones de DokuWiki (p.ej. en la oficial) al pasar el mouse por el botón “Editar” asociado a una sección, el bloque de la sección aparece resaltado, para dejar en claro a qué bloque está asociado ese botón. No sé cómo se activa esa funcionalidad.

Display de mensajes de error

Cuando DokuWiki informa sobre errores, muestra un mensaje en la parte superior de la página, que no se destaca lo suficiente como para llamar la atención. TO-DO: modificar hoja de estilo:

div.error {
  background-position: 0.5em 1em;
  font-weight: bold;
  padding: 1em 3em;
}

Tal vez lo mismo para div.info, div.success, …

Más ejemplos

Otro lindo wiki, con el template arctic: cdli:wiki (Cuneiform Digital Library Initiative)

Zotero support docs

Actualización de seguridad (mayo 2009)

27-05-2009: FS#1700 - Local File Inclusion with register_globals on

No verifiqué si teníamos el problema, pero seguí las instrucciones y modifiqué inc/init.php.

dokuwiki

notas/dokuwiki.txt · Última modificación: por 127.0.0.1