Gollum est un wiki construit sur le système de gestion de contrôle de source Git. Un wiki de Gollum est simplement un dépôt git de nature spécifique:
Gollum est petit et léger, mais parvient à mettre en œuvre tout ce qu'on peut raisonnablement souhaiter d'un wiki: liens entre les pages, formatage de texte de base, création, modification et suppression de page, recherche de texte intégral et un grand nombre d'options de formatage de texte.
Système d'exploitation | Rubis | Adaptateurs | Pris en charge |
---|---|---|---|
Unix / Linux-like | Ruby (IRM) 2.1.0+ | tous sauf [RJGit] (https://github.com/repotag/rjgit) | oui |
Unix / Linux-like | [JRuby] (https://github.com/jruby/jruby) (compatible 1.9.3 +) | [RJGit] (https://github.com/repotag/rjgit) | oui |
Windows | Ruby (IRM) 2.1.0+ | tous sauf [RJGit] (https://github.com/repotag/rjgit) | non |
Windows | [JRuby] (https://github.com/jruby/jruby) (compatible 1.9.3 +) | [RJGit] (https://github.com/repotag/rjgit) | presque |
Varie selon le système d'exploitation, le gestionnaire de paquets et l'installation de Ruby. En règle générale, il faut d'abord installer Ruby, puis Gollum.
[sudo] gem install gollum
Quelle que soit l’implémentation de Ruby utilisée, Gollum est fourni avec l’adaptateur git par défaut approprié. Donc, la procédure d'installation ci-dessus est commune à la fois pour MRI et JRuby.
Gollum est actuellement livré avec le support des balises suivantes:
Étant donné que toutes les balises sont rendues par la gemme [github-markup] (https://github.com/github/markup), on peut facilement ajouter une prise en charge pour d'autres balises par une installation supplémentaire:
[sudo] gem install asciidoctor
[sudo] gem install creole
[sudo] gem install wikicloth
[sudo] gem install org-ruby
perl
doit être disponible sur votre ligne de commande)Pod :: Simple
depuis CPAN.python2
doit être disponible sur votre ligne de commande)docutils
pour Python 2. La procédure d'installation peut varier, encore une fois, selon le système d'exploitation et le gestionnaire de paquets.[sudo] gem install RedCloth
Par défaut, Gollum est livré avec le gem kramdown pour rendre Markdown. Cependant, on peut utiliser n'importe quel [Rendu de Markdown pris en charge par github-markup] (https://github.com/github/markup/blob/master/lib/github/markup/markdown.rb). Ce qu'il faut retenir, c'est que le premier moteur de rendu installé dans la liste sera utilisé. Ainsi, par exemple, redcarpet ne sera PAS utilisé si github / markdown
est installé.
Simplement:
gollum
.http://localhost:4567
dans le navigateur.Cela démarrera un serveur Web (WEBrick) exécutant Gollum avec une interface Web, où on pourra voir et éditer le wiki.
Certaines limitations sont imposées par GitHub:
1. gollum-lib autorise les noms de page à avoir des barres obliques, qui se comportent comme prévu. Malheureusement, ni GitHub ni l’interface “officielle” de Gollum basée à Sinatra ne les supportent. Si ou souhaite organiser les pages du wiki en sous dossiers il faut “aplatir” le sous-répertoire git en convertissant les répertoires en nouvelles branches.
2. Gollum prend en charge plusieurs formats de balisage. Lors de la création d'une nouvelle page, on peut choisir le balisage cible via une liste déroulante. Ceci détermine directement l'extension de fichier de la nouvelle page (extension principale pour le balisage donné). De plus, Gollum a un ensemble prédéfini d’extensions pour chaque balise, pour lequels il n'est pas possible de modifier le moteur de rendu (les fichiers .txt seront toujours traités en tant que Raw Txt même si ont les joints au format Markdow). Pour ces extensions on ne peut lier l'extension rationnelle à un autre ensemble d'extensions il faut donc modifier l'extension du fichier.
git clone https://github.com/gollum/gollum
cd gollum
[sudo] bundle install
(peut ne pas toujours être nécessaire).bundle exec bin/gollum
* Comme cela, gollum suppose que le wiki cible (référentiel git) est le référentiel du projet lui-même. Si ce n'est pas le cas, exécuter bundle exec bin/gollum <chemin d'accès au wiki>
.http://localhost:4567
dans le navigateur.On peut également exécuter gollum avec n’importe quel serveur compatible avec rack en plaçant ce fichier config.ru dans le référentiel wiki. Cela permet d'utiliser n'importe quel middleware Rack comme Rack::Auth, OmniAuth, etc.
#! / usr / bin / env ruby besoin de 'rubygems' nécessite 'gollum / app' #!/usr/bin/env ruby require 'rubygems' require 'gollum/app' gollum_path = File.expand_path(File.dirname(__FILE__)) # CHANGE THIS TO POINT TO YOUR OWN WIKI REPO wiki_options = {:universal_toc => false} Precious::App.set(:gollum_path, gollum_path) Precious::App.set(:default_markup, :markdown) # set your favorite markup language Precious::App.set(:wiki_options, wiki_options) run Precious::App
Le middleware Rack peut transmettre les détails de l'auteur à Gollum dans un hachage de la session sous la clé gollum.author.
Les options disponibles pour le hachage: wiki_options correspondent généralement aux arguments utilisés lors de l'exécution de gollum à partir de la ligne de commande, à quelques exceptions près. Ci-dessous une liste des clés que vous pouvez utiliser pour définir les options de gollum lors de son exécution en tant qu'application Rack.
wiki_options = {} wiki_options[:css] = true # Equivalent to --css wiki_options[:js] = true # Equivalent to --js wiki_options[:template_dir] = path # Equivalent to --template-dir wiki_options[:page_file_dir] = path # Equivalent to --page-file-dir wiki_options[:gollum_path] = path # Equivalent to ARGV wiki_options[:ref] = ref ## Equivalent to --ref wiki_options[:repo_is_bare] = true # Equivalent to --bare wiki_options[:allow_editing] = false # # Equivalent to --no-edit wiki_options[:live_preview] = true # Equivalent to --live-preview wiki_options[:allow_uploads] = true # Equivalent to --allow-uploads wiki_options[:per_page_uploads] = true # When :allow_uploads is set, store uploads under a directory named after the page, as when using --allow-uploads page wiki_options[:mathjax] = true # Equivalent to --mathjax wiki_options[:mathjax_config] = source # Equivalent to --mathjax-config wiki_options[:user_icons] = source # Equivalent to --user-icons wiki_options[:show_all] = true # Equivalent to --show-all wiki_options[:collapse_tree] = true # Equivalent to --collapse-tree wiki_options[:h1_title] = true # Equivalent to --h1-title
L'option –base-path n'a pas d'équivalent dans le hachage des options. Cela est dû au fait que le chemin de base est implémenté en tant que middleware, que l'on doit ajouter manuellement à config.ru. Voici le code pour le middleware de bin/gollum:
require 'rack' class MapGollum def initialize base_path @mg = Rack::Builder.new do map '/' do run Proc.new { [302, { 'Location' => "/#{base_path}" }, []] } end map "/#{base_path}" do run Precious::App end end end def call(env) @mg.call(env) end end # Rack::Handler does not work with Ctrl + C. Use Rack::Server instead. Rack::Server.new(:app => MapGollum.new('wiki'), :Port => options['port'], :Host => options['bind']).start
Lors de l'utilisation de cette configuration, la ligne d'exécution Precious::App de l'exemple config.ru en haut de cette page devient superflue.
On peut utiliser Gollum en tant que service système:
ExecStart=/usr/local/bin/gollum --show-all "/home/someuser/wiki/"
[sudo] systemctl start gollum.service
On peut exécuter Gollum en tant que service système, mais sous un utilisateur particulier (root par défaut):
ExecStart=/usr/local/bin/gollum --show-all "/home/someuser/wiki/" to ExecStart=/usr/local/bin/gollum --show-all "/home/%i/wiki/"
.[sudo]systemctl start gollum@<utilisateur-cible>.service
, où <utilisateur-cible> est l'utilisateur sous lequel exécuter Gollum.Il existe une alternative à la configuration précédente: exécuter le service dans une session utilisateur. Pour y parvenir:
mkdir -p ~/.config/systemd/user/
et déplacer le fichier gollum.service
à cet emplacement. Modifier gollum.service
si nécessaire.[sudo] systemctl --user start gollum
.Les anciennes versions de Debian (et les distributions dérivées telles que Ubuntu) utilisent toujours un système init de type SysV, qui utilise des scripts de shell en tant que fichiers de service. contrib/sysv-debian/ contient un exemple d'un tel fichier de service.
Pour l'installer:
contrib/sysv-debian/init.d/gollum
vers /etc/init.d/
sur le système. chmod +x /etc/init.d/gollum
service gollum start
ou /etc/init.d/gollum start
pour démarrer Gollum (Le script comprend les paramètres start, stop, restart et status).Gollum est livré avec les options de ligne de commande suivantes:
Option | Arguments | Description |
---|---|---|
–host | [HOST] | Spécifie le nom d'hôte ou l'adresse IP sur laquelle écouter. Par défaut: 0.0.0.0. <Sup> 1 </ sup> |
–port | [PORT] | Spécifie le port avec lequel lier Gollum. Par défaut: 4567. |
–config | [FICHIER] | Spécifie le chemin d'accès au fichier de configuration de Gollum. |
–ref | [REF] | Spécifie la branche git à servir. Par défaut: master. |
–adapter | [ADAPTATEUR] | Lance Gollum en utilisant un adaptateur git spécifique. Par défaut: grit. <Sup> 2 </ sup> |
–bare | aucun | Indique à Gollum que le référentiel git doit être traité comme un élément bare. Cela n’est nécessaire que lorsqu'on utilise l’adaptateur grit par défaut. |
–base-path | [CHEMIN] | Spécifie la partie principale de toutes les URL Gollum (informations de chemin d'accès). Définir ceci sur /wiki rendra le wiki accessible sous http://localhost:4567/wiki/. Par défaut: /. |
–page-file-dir | [CHEMIN] | Spécifie le sous-répertoire pour toutes les pages. Si défini, Gollum ne servira que les pages de ce répertoire et de ses sous-répertoires. Par défaut: racine du référentiel. |
–css | aucun | Indique à Gollum d’injecter du CSS personnalisé dans chaque page. Utilise custom.css à partir de la racine du référentiel. |
–js | aucun | Indique à Gollum d’injecter du JS personnalisé dans chaque page. Utilise custom.js à partir de la racine du référentiel. |
–emoji | aucun | Analyse et interpréte les tags emoji (par exemple: heart :). |
–no-edit | aucun | Désactive la fonctionnalité d'édition de pages. |
–live-preview | aucun | Active la fonctionnalité de prévisualisation en direct dans l'éditeur de page. |
–no-live-preview | aucun | Désactive la fonctionnalité d'aperçu en direct dans l'éditeur de page. |
–allow-uploads | [MODE] | Active les téléchargements de fichiers. Si défini sur dir, Gollum stockera tous les téléchargements dans le répertoire /uploads/ à la racine du référentiel. Si réglé sur page, Gollum stockera chaque téléchargement sur la page en cours d'édition. |
–mathjax | aucun | Active MathJax (rend les équations mathématiques). Par défaut, utilise la configuration TeX-AMS-MML_HTMLorMML avec l'extension autoload-all. |
–irb | aucun | Lance Gollum en “mode console”, avec une [API prédéfinie] (https://github.com/gollum/gollum-lib/). |
–h1-title | aucun | Indique à Gollum d'utiliser le premier <h1> comme titre de page. |
–show-all | aucun | Indique à Gollum d'afficher également les fichiers dans la vue des fichiers. Par défaut, seules les pages valides sont affichées. |
–collapse-tree | aucun | Indique à Gollum de réduire l'arborescence de fichiers lorsque la vue de fichier est ouverte. Par défaut, l'arborescence est développée. |
–user-icons | [MODE] | Indique à Gollum d'utiliser des icônes d'utilisateur spécifiques pour l'affichage de l'historique. Peut être réglé sur «gravatar», «identicon» ou «aucun». Par défaut: none. |
–mathjax-config | [FICHIER] | Spécifie le chemin d'accès à une configuration MathJax personnalisée. S'il n'est pas spécifié, utilise le fichier mathjax.config.js à partir de la racine du référentiel. |
–template-dir | [CHEMIN] | Spécifie le répertoire du modèle de mustache personnalisé. |
–help | aucun | Affiche la liste des options sur la ligne de commande. |
–version | aucun | Affiche la version actuelle de Gollum. |
1. L'adresse IP 0.0.0.0 permet l'accès à distance. Pour une utilistaion en local, utiliser 127.0.0.1.
2. Lorsque –css ou –js est utilisé, les fichiers correspondants doivent être enregistrés dans le référentiel git, sinon gollum retournera une redirection 302 vers la page de création.
3. Les fichiers peuvent être téléchargés simplement en les faisant glisser dans la zone de texte de l'éditeur (ceci est cependant exclusif à l'éditeur par défaut, pas à l'éditeur de prévisualisation en direct).
Lorsque l'option –config est utilisée, certaines parties internes de Gollum peuvent être personnalisées.
Toutes les modifications onctionnent à la fois pour le fichier de configuration de Gollum (config.rb) et le fichier de configuration de Rack (config.ru).