Gitis

Gitit
Información sobre la plantilla
Parte de la familia Wiki
135x135
Logotipo de Gitit
CreadorHaskell
DesarrolladorJohn MacFarlane
Lanzamiento inicial7 de noviembre de 2008
GéneroWiki
LicenciaGPL2
Sitio web
http://gitit.net

Gitit es un programa wiki escrito en Haskell. Utiliza Happstack para el servidor web y Pandoc para el procesamiento de marcas. Las páginas y archivos cargados se almacenan en un git, darcs o un mercurial y pueden ser modificados, ya sea mediante el uso de herramientas de línea de comandos de la VCS o a través de la interfaz web del wiki. De forma predeterminada, la versión extendida de rebaja de Pandoc se utiliza como lenguaje de marcado, reStructuredText, LaTeX, o también se puede utilizar HTML. Las páginas pueden ser exportadas en un número de diferentes formatos, incluyendo LaTeX, RTF, OpenOffice ODT, y MediaWiki.

Características

Algunas características notables son la presencia de:

  • Plugins: transformaciones páginas cargadas dinámicamente escritos en Haskell (ver "Network.Gitit.Interface").
  • Categorías.
  • TeX matemáticas.
  • Resaltado de sintaxis de los archivos de código fuente y fragmentos de código (usando destacando-kate).
  • Almacenamiento en caché.
  • Alimentaciones Atom (sitio de ancho y por página).
  • Una biblioteca, "Network.Gitit", que hace que sea sencillo incluir un wiki Gitit en cualquier aplicación happstack.

Instalación de Gitis

Compilar e instalar Gitit
Se necesita el GHC compilador y la cábala a instalar la herramienta. Tenga en cuenta que, a partir de la liberación 0.5, se requiere GHC 6.10 o superior. Por cábala a instalar en * nix, siga las instalar rápidas instrucciones. Una vez que tenga cabal a instalar, la instalación de Gitit es trivial:

cabal update cabal install gitit 

Estos comandos instalar la última versión de lanzamiento de Gitit. Para instalar una versión de Gitit desprotegido desde el repositorio, vaya al directorio Gitit y escriba:

cabal install 

La cabal herramienta instalará automáticamente todas las bibliotecas de Haskell requeridos. Si todo va bien, para el final de este proceso, la última versión de Gitit se instalará en su local de .cabal directorio. Puede comprobarlo probando:

gitit --version 

Si eso no funciona, compruebe que gitit está en su directorio local cábala a instalar ejecutable:

(normalmente ~/.cabal/bin Y asegúrese de ~/.cabal/bin está en la ruta del sistema. 

Plugins

Los plugins son pequeños programas Haskell que transforman una página wiki después de que se ha convertido de Markdown o RST. Para activar un plugin, debe incluir la ruta al plugin (o su nombre del módulo) en el plugins campo del archivo de configuración. (Si el nombre del plugin se inicia con Network.Gitit.Plugin. Gitit asumirá que el plugin es un módulo instalado y no buscar un archivo de origen.)

Apoyo Plugin, está activado por defecto. Sin embargo, soporte para plugins hace el ejecutable Gitit considerablemente más grande. Si usted no necesita plugins, es posible que desee compilar Gitit sin soporte para plugins. Para ello, sin establecer los plugins bandera Cabal:

cabal install --reinstall gitit -f-plugins 

Tenga en cuenta también que si compila Gitit para perfilar ejecutable, intenta cargar plugins se traducirá en "error interno: objeto PAP entró!"

Cacheo

Por defecto, Gitit no almacena en la caché de contenidos. Si su wiki recibe una gran cantidad de tráfico o contiene páginas que tardan en responder, es posible que desee activar el almacenamiento en caché. Para ello, establezca la opción de configuración use-cache para (yes). Por defecto, dictada páginas, destacó archivos de código fuente, y exportar archivos PDF se almacenan en caché en la cache directorio. (Otro directorio se puede especificar mediante el establecimiento de la cache-dir opción de configuración.) Las páginas en la caché se actualizan cuando las páginas se modifican mediante la interfaz web. Ellos no se actualizan cuando las páginas se modifican directamente a través de git o darcs. Sin embargo, la memoria caché se puede actualizar manualmente pulsando Ctrl-R durante la visualización de una página, o mediante el envío de una petición HTTP GET o POST para /_expire/path/to/page donde path/to/page es el nombre de la página para ser vencido.

Los usuarios que se actualicen con frecuencia páginas usando git o darcs pueden desear agregar un gancho al repositorio que hace la petición HTTP apropiada para expirar páginas cuando se actualizan. Para facilitar este tipo de ganchos, el paquete cábala Gitit incluye un ejecutable expireGititCache Suponiendo que usted está ejecutando Gitit en el puerto 5001 en localhost, y las variables de entorno CHANGED_FILES contiene una lista de los archivos que han cambiado, puede caducar sus versiones en caché utilizando:

expireGititCache http://localhost:5001 $CHANGED_FILES 

O usted puede especificar los archivos directamente:

expireGititCache http://localhost:5001 "Front Page.page" foo/bar/baz.c 

Este programa devolverá un estado de éxito (0) si la página se ha vencido con éxito (o si nunca se almacena en caché en el primer lugar), y un estado de error (> 0) en caso contrario. La caché es persistente a través de reinicios de Gitit. Cumplir todas las páginas en caché, simplemente quite el cache directorio.

Usando Gitit con apache

La mayoría de los usuarios que ejecutan un Gitit pública orientada al querrán Gitit que aparezca en un buen URL como http://wiki.mysite.com o http://mysite.com/wiki lugar de http://mysite.com:5001 Esto se puede lograr usando Apache mod_proxy

Proxy para http://wiki.mysite.com 

Configurar el DNS para que http://wiki.mysite.com mapas a la dirección IP de su servidor. Asegúrese de que el mod_proxy módulo está cargado, y configurar un host virtual con la siguiente configuración:

<VirtualHost *> ServerName wiki.mysite.com DocumentRoot /var/www/ RewriteEngine On ProxyPreserveHost On ProxyRequests Off <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPassReverse / http://127.0.0.1:5001 RewriteRule ^(.*) http://127.0.0.1:5001$1 [P] ErrorLog /var/log/apache2/error.log LogLevel warn CustomLog /var/log/apache2/access.log combined ServerSignature On </VirtualHost> 

Actualizar su configuración de apache y que debe estar todo listo.

Proxy para http://mysite.com/wiki 

Asegúrese de que los mod_proxy mod_headers mod_proxy_http y mod_proxy_html módulos se cargan. mod_proxy_html es un módulo externo, que se puede obtener aquí (http://apache.webthing.com/mod_proxy_html/). Se reescribe las URL que se producen en las páginas web. Aquí vamos a utilizarlo para reescribir los vínculos de Gitit para que todos comienzan con /wiki/ En primer lugar, decirle Gitit no comprimir las páginas, ya que mod_proxy_html necesita páginas sin comprimir para analizar. Usted puede hacer esto mediante el establecimiento de la opción de configuración Gitit

compress-responses: no 

En segundo lugar, modificar el eslabón de la reset-password-message en el fichero de configuración: en lugar de

http://$hostname$:$port$$resetlink$ 

configurarlo para

http://$hostname$/wiki$resetlink$ 

Reinicie Gitit. Ahora agregue las siguientes líneas al archivo de configuración de apache para el mysite.com servidor:

# These commands will proxy /wiki/ to port 5001 ProxyRequests Off <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPass /wiki/ http://127.0.0.1:5001/ <Location /wiki/> SetOutputFilter proxy-html ProxyPassReverse / ProxyHTMLURLMap / /wiki/ RequestHeader unset Accept-Encoding </Location> 

Actualizar su configuración de apache y que debe ser fijado. Para más información sobre el uso de mod_proxy_http reescribir URLs, consulte la mod_proxy_html guía.

Gitit como una biblioteca

Al importar el módulo Network.Gitit puede incluir un wiki Gitit (o varios de ellos) en otra aplicación happstack.

Cómo informar fallos

Los errores (y peticiones presentadas) pueden ser reportados a http://code.google.com/p/gitit/issues/list.

Ayudas y sugerencias

  • Gwern Branwen ayudó a optimizar Gitit y escribió el InterwikiPlugin. También ayudó con el módulo de alimentación.
  • Simon Michael contribuyó con el parche añadiendo soporte RST.
  • Henry Laxen añadió soporte para el restablecimiento de contraseñas y ayudó con las instrucciones del proxy apache.
  • Anton van Straaten hizo que el proceso de generación de la página más modular añadiendo Gitit.ContentTransformer.
  • Robin Green ayudó a mejorar la API de plugins y la interfaz, y se fija un problema de seguridad con el código de restablecimiento de contraseña.
  • Thomas Hartman ayudó a mejorar la página de índice, por lo que la exploración de directorios persistente, y se fija un error en la plantilla recompilación.
  • Justin Bogner mejoró el aspecto del botón de vista previa.
  • Kohei Ozaki construyó la ImgTexPlugin.
  • Michael Terepeta mejoró la validación de las descripciones de cambio.
  • Mightybyte sugirió hacer Gitit disponible como una biblioteca, y contribuyó con un parche para ifLoggedIn que se necesitaba para hacer Gitit utilizable con un esquema de autenticación personalizado.

Fuentes