Tabla de Contenidos
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).
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
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 vé 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
- Bloques de código (e.g. Python): aparecen 2 bloques
<pre class=“code python”>
anidados. Para un ejemplo ver http://wiki.splitbrain.org/wiki:syntax#syntax_highlighting
- 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
- http://simpleinvoices.org/ (sitio web + blog)
- http://www.splitbrain.org/ (usa DokuWiki, supongo…)
- http://www.chimeric.de/ — “the personal site of Michael Klier, a random audio/linux/web geek from Munich, Germany” (template propio, lindo diseño con abundante espacio en blanco, sidebar menu fixed; namespace blog organizado por años; autor de templates y plugins para DW; dueño de una Eee 1000H)
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
- http://simpleinvoices.org/ (sitio web + blog)
- http://open-ils.org/dokuwiki/doku.php (wiki con menú superior)
- Sitio personal de Yann Hodique, con blog incluído. Usa el template arctic (con adaptaciones?)
- http://laurent.beneytout.free.fr/ (incluye blog)
- International Workshop on Organizational Design and Engineering (template: dokucms)
- LuchoWiki (gracias Claudio)
- Jason Grout's home page (math teacher, software developer)
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 deaction=“/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:
- Editar el archivo de configuración lib/tpl/multitemplate/local_pref.php, para indicar qué templates se aplican según el namespace
- 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
. - 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)
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