Table of Contents

GOLLUM: Syntaxe

Titres de page

Par défaut, le titre d'une page correspond à son chemin d'accès au fichier, par rapport à la racine du référentiel (ou au répertoire de fichier de la page), sans extension (par exemple, /mordor/Sauron).

Titres personnalisés via CLI

Si Gollum est lancé avec l'option –h1-title, le premier en-tête <h1> de la page sera utilisé. Ainsi, par exemple, cette page de démarquage:

# Ceci est mon titre
# Ceci est le premier h1 qui sera affiché

sera rendu avec le titre Ceci est le titre de la page de titre. Le premier en-tête affiché dans le texte de la page sera Ceci est le premier h1 qui sera affiché.

Cette option remplace la syntaxe de métadonnées.

Titres personnalisés via la syntaxe de métadonnées

La syntaxe:

<!-- --- title: Le titre de ma page -->

Note: es métadonnées doivent être le premier morceau de texte de la page.

Sous-pages

Gollum permet d’ajouter un en-tête, une barre latérale et un pied de page aux pages. Ils seront très probablement partagés entre plusieurs pages. Les sous-pages affectent toutes les pages de leur répertoire et tous les sous-répertoires qui ne possèdent pas de sous-page.

Assainissement de pages

Pour des raisons de sécurité et de compatibilité, les pages Gollum peuvent ne pas contenir de code CSS personnalisé, JavaScript ni de balises HTML potentiellement dangereuses ou inconnues. Ils seront supprimés du HTML généré.

Tags

Les tags de Gollum ont été conçus pour ressembler aux tags d'autres balises, en particulier de MediaWiki. La syntaxe de base est la suivante:

[[tag]]

Certaines balises acceptent des attributs séparés par des symboles de canal. Certains attributs doivent précéder la balise et d'autres doivent la suivre:

[[prefix-attribute|tag]]
[[tag|suffix-attribute]]

Liens

La balise link crée un lien cliquable vers une ressource. Il a deux formes:

[[linked-resource]] # le texte du lien créé sera égal à celui de la ressource
[[link-text|linked-resource]] # le texte du lien créé sera link-text

Lien vers des ressources externes

Exemples:

[[http://example.com]]
[[link-text|http://example.com/pdfs/gollum.pdf]]

Lien vers des fichiers internes (pas d'images ou de pages)

Identique aux liens vers de ressources externes, mais les URL doivent être des chemins:

Lien vers des images internes

Identique aux liens vers fichiers internes, mais supporte également plusieurs attributs spéciaux:

[[image-url|alt=text]] Texte à afficher lorsque l'image n'est pas trouvée.
[[image-url|frame]] Indique à Gollum de placer l'image dans un <span class = “frame”>, ce qui affichera une bordure autour de l'image.
[[image-url|align=position]] Demande à Gollum d'aligner l'image de la manière indiquée. La position peut être gauche, centre et droite. Par défaut: à gauche.
[[image-url|float]] Indique à Gollum de faire flotter l'image de manière à ce que le texte l'entoure. Cette option ne peut pas être utilisée avec l'option align=center. Lorsque la fonction flottante est activée et que l'alignement n'est pas spécifié, align=left est appliqué.
[[image-url|height=valeur]] Définit la hauteur maximale de l'image. Les valeurs doivent être spécifiées avec l'unité px ou em.
[[image-url|width=value]] Définit la largeur maximale de l'image. Les valeurs doivent être spécifiées avec l'unité px ou em.

Tous ces attributs peuvent être combinés en les séparant simplement avec des pipes :

[[image-url|frame|alt=text]] Indique à Gollum de placer l'image dans un <span class=“frame”> et utilise le texte text comme légende.

Par défaut, le texte remplira tout l'espace autour de l'image. Pour contrôler le nombre de pages à afficher, utiliser cette balise pour arrêter et démarrer un nouveau bloc afin que du contenu supplémentaire ne soit pas rempli.

[[_]]

Lien vers des pages internes

La balise suivante créera un lien vers une autre page Gollum:

[[cannonical-page-filename]]

Le nom de fichier canonique est le nom de fichier de la page, mais après avoir appliqué ces règles:

Exemples:

[[J. R. R. Tolkien]] fera référence à la page J.-R.-R.-Tolkien.ext
[[Movies / The Hobbit]] fera référence à la page Movies---The-Hobbit.ext
[[モルドール]] fera référence à la page モルドール.ext

La page référencée peut exister n'importe où dans le référentiel git. Gollum la recherchera et liera la première page de ce type qu’elle trouvera.

Inclusion de pages

Contrairement à la balise link, celle-ci est dédiée aux pages, a une syntaxe spéciale et inclut une page dans une autre, plutôt que de la lier:

 [[include:cannonical-page-filename]]

Balise Table des matières (COT)

Gollum fournit une balise spéciale pour incorporer une table des matières dans une page:

[[_TOC_]]

Ou avec une profondeur maximale

[[_TOC_|levels=3]]

Remarques:

Il existe également un paramètre global de la table des matières (désactivé par défaut) qui force la table des matières dans chaque page. Ajouter simplement la ligne suivante au fichier de configuration:

Precious::App.set(:wiki_options,{:universal_toc=>true})

Tags échappés

Dans le cas où une balise doit être affichée littéralement sur une page, la préfacer par un guillemet simple:

 '[[tag]]

Code Blocks

Code Blocs clôturés (style GitHub)

Naturellement, toutes les pages peuvent bénéficier de cette syntaxe. Exemple:

```
def foo
   met 'bar'
end
```

Le bloc doit être enfermé avec trois backticks.

Code Blocks clôturés (style Kramdown)

Naturellement, toutes les pages peuvent bénéficier de cette syntaxe. Exemple:

~~~~~~~~
Voici du code.
~~~~~~~~

Le bloc doit être entouré de trois tildes ou plus (~).

Syntaxe des blocs de code en surbrillance

C'est une extension des blocs de code de style GitHub. Naturellement, toutes les pages peuvent bénéficier de cette syntaxe. Exemple:

```ruby
def foo
    met 'bar'
end
```

Le langage/le balisage du code est défini à côté des backticks d'ouverture. Il existe une grande variété de langages/balises à utiliser, qui dépendent du surligneur de syntaxe actuellement utilisé dans Gollum:
* Rouge: C'est la valeur par défaut, sauf si Python et Pygments est installé sur le système. Ensuite, les pygments ont plus de priorité.
* Pygments: Nécessite Python 2.5+ (2.7.x recommandé).

De plus, on peut mettre en surbrillance un fichier à partir d'un référentiel. Naturellement, lorsque le fichier est mis à jour et que la page est actualisée dans le navigateur, l'extrait de code est également mis à jour:

```ruby: /lib/gollum/app.rb```

Dans ce cas, le fichier /lib/gollum/app.rb sera inclus dans la page et la syntaxe en surbrillance.

Macros

Outre les balises, Gollum fournit une autre couche de son propre balisage, les macros. Les principales différences sont les suivantes:

Macros par défaut

Macros personnalisées

Chaque macro doit:

Diagrammes

Diagrammes de séquence

Gollum peut générer des diagrammes de séquence à partir de la source sur une page. Avec l'utilisation de WebSequenceDiagrams. Par exemple:

{{{{{{blue-modern
    alice-> bob: test
    bob-> alice: test response
}}}}}}

On peut remplacer le style blue-moderne par tout autre style pris en charge.

Diagrammes PlantUML

Gollum peut restituer les diagrammes PlantUML à partir des sources sur une page. en utilisant un serveur PlantUML autohébergé. Par exemple:

@startuml
Alice -> Bob: demande d'authentification
Bob -> Alice: Réponse d'authentification
Alice -> Bob: une autre demande d'authentification
Alice <- Bob: une autre réponse d'authentification
@enduml

On peut intégrer n'importe quel type de diagramme pris en charge par PlantUML: diagrammes de séquence, diagrammes de cas, diagrammes de classes, diagrammes d'activité, diagrammes de composants, diagrammes d'objets et même de diagrammes filaires.

Pour les diagrammes filaires, utiliser la balise @startuml suivie de la syntaxe du mot-clé salt. La nouvelle syntaxe @salt n'est pas prise en charge.

Il ne peut y avoir de lignes vides à l'intérieur du bloc @startuml/@enduml. PlantUML attend un seul paragraphe et l'ajout de lignes vides entre eux sera lu comme plusieurs paragraphes.

Mathématiques

Pour activer les expressions mathématiques dans Gollum, le démarrer avec l'option –mathjax.

Exemples:

\\\(2^2\\\)
$$2^2$$
\\\[2^2\\\]

Par défaut, Gollum utilise la configuration TeX-AMS-MML_HTMLorMML avec l'extension autoload-all. On peut également définir une configuration mathjax avec l'option –mathjax-config.

Lorsqu'on utilise le balisage en mode organisationnel, il faut encapsuler les blocs mathématiques d'affichage dans les blocs
#+BEGIN\_HTML ... #+END\_HTML.

Authentification

Gollum ne prend pas en charge l'authentification d'utilisateur.

Un projet distinct existe, OmniGollum, qui ajoute OmniAuth pour Gollum. Avec OmniGollum, on peut ajouter de nombreux fournisseurs OAuth (Github, Google, etc.) pour effectuer l’authentification.