# HtmGem, voir Gemini à travers HTTP Il ne reste qu’à ajouter une règle de ré-écriture d’URL (//URL Rewriting//). Si vous pouvez lire ce texte en ayant demandé //htmgem.php// avec le navigateur, il ne reste que cette dernière étape à franchir 😄 ### Nginx ``` # Ce texte doit être placé dans la configuration du serveur. index index.php index.gmi index.html rewrite ^(.+\.gmi)$ htmgem/?url=$1; ``` ### Apache ``` # Ce texte peut se placer à la racine du site dans un fichier ".htaccess". DirectoryIndex index.php index.gmi index.html RewriteEngine on RewriteRule ^(.+\.gmi)$ htmgem/?url=$1 ``` Par la suite, * Quand un fichier se terminant par //.gmi// sera demandé, HtmGem le traduira à la volée en HTML. * Quand seul le répertoire sera demandé (http:/​/site.tld/path) le fichier //index.gmi// sera automatiquement choisi. ## Tester HtmGem Il est supposé que HtmGem est installé à la racine du site dans un répertoire //HtmGem//. Sinon, il faudra simplement adapter les liens. 🢂 Appeler cette présente page directement, en cliquant ci-après. Elle devrait être formatée exactement comme actuellement : => index.gmi 🢂 Enfin, pour vérifier que le fichier //index.gmi// est automatiquement appelé quand le fichier //**.gmi**// n’est pas indiqué : => / Lien vers la racine du site ———————————————————— ———————————————————— # Configuration avancée avec les styles Par défaut, le style est incorporé dans chaque page récupérée par le navigateur web. Le même style est utilisé pour toutes les pages, //htmgem/css/htmgem.css//, sauf lorsqu’un fichier ayant le même nom que la page mais avec l’extension **.css** existe. Dans ce cas, il est utilisé. Lorsque l’option css est activé dans la configuration (voir //rewrite// plus haut) d’autres comportements sont possibles : * &style=**htmgem** : Utilise le style par défaut, mais en tant que fichier externe. * &style=**none** : La page HTML est envoyée sans style. * &style=**** : Le fichier htmgem/css/.css est utilisé en tant que style externe. * &style=**/** : Le fichier indiqué (chemin absolu) est utilisé en tant que style externe. * &style=**source** : Le code source de la page est envoyée au navigateur, voir ci-après… * &style=**pre** : Le code source de la page est envoyée au navigateur encadré par des //
//, voir ci-après…

## Réécriture d’URL pour afficher le code source

Par défaut, le code source du fichier **.gmi** n’est pas accessible extérieurement puisqu’il est interprété à la volée par HtmGem. Il est possible cependant d’ajouter l’affichage

Pour obtenir le source avec un lien du type
=> index.gmi.source Envoie le code source, le navigateur l‘affichera comme une longue ligne. À utiliser en ligne commande avec **wget**!
=> index.gmi.pre Affiche le code source dans le navigateur, l’ayant adapté avec la balise **
**.
Il faut ajouter les lignes suivantes dans la réécriture d’URL, ici pour Nginx :
> rewrite ^(.+\.gmi)\.source$ /htmgem/?url=$1&style=source;
> rewrite ^(.+\.gmi)\.pre$ /htmgem/?url=$1&style=pre;

## Tester les styles

Modifier la configuration du server web fonctionne mais est assez lourd. On peut tester un style en particulier de la façon suivante :
> https://site.tld/htmgem/index.php?url=/url/page.gmi&style=<…>
En accédant de cette façon à la page, on reproduit ce que fait le serveur web lors de la réécriture d’URL. On peut changer le style à la volée.

———————————————————— ————————————————————

# Quand tout marche…
Parmi les fichiers et répertoires distribués, seuls sont utiles :
* **htmgem/index.php** : Il se charge de traduire le gemtext en HTML
* **htmgem/css/htmgem.css** : S’il manque, l’affichage sera dépourvu de style — littéralement.
Les autres peuvent être supprimés (y compris ce présent fichier) bien qu’ils ne présentent aucun danger. Ils restent nécessaires au développement du projet et sont disponibles sur le site de HtmGem.