2021-03-10 11:13:33 +01:00
# HtmGem, voir Gemini via le web
2021-03-09 01:51:45 +01:00
2021-03-09 20:19:17 +01:00
Ceci est la page d’ installation et de présentation d’ **HtmGem**.
2021-03-10 11:13:33 +01:00
=> tutogemtext.gmi Cliquez ici pour voir le tutoriel pour écrire des pages Gemini.
2021-03-09 20:19:17 +01:00
2021-03-10 11:13:33 +01:00
HtmGem permet d’ héberger des pages Gemini et de les publier sur un serveur web muni de **Php**. À l’ ouverture d’ une page ***.gmi**, il la traduit pour le navigateur web. Cette présente page est affichée de cette façon. Gemini utilise son propre protocole, format, clients et serveurs ; HtmGem permet d’ en utiliser le format (Gemtext) via le web.
2021-03-10 10:47:40 +01:00
```
Gemini est un nouveau protocole internet qui :
* est plus lourd que gopher,
* est plus léger que le web,
* n’ en remplacera aucun,
* vise le rapport puissance sur poids maximum,
* prend la vie privée très sérieusement.
```
=> https://gemini.circumlunar.space/
2021-03-12 20:25:22 +01:00
=> https://framagit.org/Sbgodin/htmgem/-/archive/master/htmgem-master.zip Téléchargez htmgem-master.zip pour l’ installer
2021-03-12 00:48:57 +01:00
=> https://framagit.org/Sbgodin/htmgem Code source, rapports de bug, commentaires…
2021-03-12 20:25:22 +01:00
2021-03-10 10:47:40 +01:00
=> https://gmi.sbgodin.fr/htmgem Page principale de HtmGem via le web
=> gemini://gmi.sbgodin.fr/htmgem Page principale de HtmGem via Gemini
2021-03-12 20:25:22 +01:00
2021-03-12 00:48:57 +01:00
=> CHANGELOG.gmi Journal des modifications (//changelog//)
=> COPYING.gmi GNU Affero General Public License (AGPLv3)
2021-03-10 10:47:40 +01:00
———————————————————— ————————————————————
# Installation
Pour faire fonctionner HtmGem — après avoir copié les fichiers — 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 😄
2021-03-09 00:48:07 +01:00
2021-03-10 11:13:33 +01:00
## Prérequis
* Php v7.3 minimum
* Module **Php-mbstring** pour gérer l’ unicode
* Un serveur web (Apache et Nginx testés)
* Module **mod-rewrite** pour intercepter les pages Gemini
2021-03-09 00:48:07 +01:00
### Nginx
```
# Ce texte doit être placé dans la configuration du serveur.
2021-03-09 01:51:45 +01:00
index index.php index.gmi index.html
2021-03-09 00:48:07 +01:00
rewrite ^(.+\.gmi)$ htmgem/?url=$1;
```
### Apache
```
# Ce texte peut se placer à la racine du site dans un fichier ".htaccess".
2021-03-09 01:51:45 +01:00
DirectoryIndex index.php index.gmi index.html
2021-03-09 00:48:07 +01:00
RewriteEngine on
RewriteRule ^(.+\.gmi)$ htmgem/?url=$1
```
Par la suite,
2021-03-10 10:47:40 +01:00
* Quand un fichier se terminant par **.gmi** sera demandé, HtmGem le traduira à la volée en HTML.
2021-03-09 00:48:07 +01:00
* Quand seul le répertoire sera demandé (http:/ /site.tld/path) le fichier //index.gmi// sera automatiquement choisi.
2021-03-09 20:19:17 +01:00
Le paramétrage d’ Apache et de Nginx est similaire. Par la suite, la syntaxe Nginx sera utilisée.
2021-03-09 00:48:07 +01:00
## Tester HtmGem
2021-03-09 20:19:17 +01:00
2021-03-09 00:48:07 +01:00
Il est supposé que HtmGem est installé à la racine du site dans un répertoire //HtmGem//. Sinon, il faudra simplement adapter les liens.
2021-03-11 11:05:01 +01:00
Chargez cette présente page directement, en cliquant ci-après.
2021-03-09 00:48:07 +01:00
=> index.gmi
2021-03-11 11:05:01 +01:00
Enfin, pour vérifier que le fichier //index.gmi// est automatiquement appelé quand le fichier **.gmi** n’ est pas indiqué :
2021-03-10 14:26:29 +01:00
=> /htmgem
2021-03-09 20:19:17 +01:00
2021-03-10 10:47:40 +01:00
L’ installation est terminée 🥳 La suite du texte donne des informations complémentaires, et n’ est pas nécessaire dans l’ immédiat. Les fichiers **.gmi** que vous créerez seront disponibles dès maintenant.
2021-03-10 11:13:33 +01:00
=> tutogemtext.gmi Inspirez-vous du tutoriel
2021-03-09 00:48:07 +01:00
2021-03-09 11:26:31 +01:00
———————————————————— ————————————————————
2021-03-09 20:19:17 +01:00
# Configuration avancée
2021-03-09 11:26:31 +01:00
2021-03-09 20:19:17 +01:00
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 le même répertoire. Dans ce cas, il est utilisé.
2021-03-09 11:26:31 +01:00
Lorsque l’ option css est activé dans la configuration (voir //rewrite// plus haut) d’ autres comportements sont possibles :
2021-03-09 12:02:04 +01:00
* &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=**<autre nom>** : Le fichier htmgem/css/<autre nom>.css est utilisé en tant que style externe.
* &style=**/<path>** : 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 //<pre>//, voir ci-après…
2021-03-09 11:26:31 +01:00
2021-03-09 20:19:17 +01:00
## Réécriture d’ URL pour préciser le style à utiliser
2021-03-09 11:26:31 +01:00
2021-03-09 20:19:17 +01:00
Modifier la configuration du serveur 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=<…>
2021-03-09 12:02:04 +01:00
2021-03-09 20:19:17 +01:00
Il est aussi possible de faire une réécriture d’ URL qui intègre le style :
> rewrite ^(.+\.gmi)$ /htmgem/?url=$1;
2021-03-11 11:04:27 +01:00
> rewrite ^(.+\.gmi)\ *\|\ *([\w_]+)$ /htmgem/?url=$1&style=$2;
2021-03-09 11:26:31 +01:00
2021-03-09 20:19:17 +01:00
Par exemple, lorsque ce sera activé :
2021-03-11 11:04:27 +01:00
=> index.gmi%20|%20source Le lien index.gmi | source Produit le code source, pas bien lisible à l’ écran. À utiliser avec //wget//.
=> index.gmi%20|%20pre Produit le code source de façon lisble à l’ écran en utilisant la balise **<pre>**.
2021-03-09 15:23:58 +01:00
2021-03-09 20:19:17 +01:00
=> index.gmi Ouvre la page avec le style par défaut, avec le style importé dans l’ en-tête.
2021-03-11 00:28:53 +01:00
=> css Sélecteur de style : une page de démo pour essayer chaque style 😎
2021-03-09 20:19:17 +01:00
### Avec les styles déjà fournis
2021-03-11 11:04:27 +01:00
=> index.gmi%20|%20htmgem Ouvre la page avec le style par défaut (//htmgem.css//), mais le style est importé dans l’ en-tête.
=> index.gmi%20|%20none Ouvre la page courante avec le style //none//. Aucune CSS utilisée.
2021-03-09 20:19:17 +01:00
2021-03-11 11:04:27 +01:00
=> index.gmi%20|%20terminal Style //terminal//
=> index.gmi%20|%20black_wide Style //black wide//
=> index.gmi%20|%20simple Style //simple//
2021-03-09 20:19:17 +01:00
2021-03-11 10:59:58 +01:00
## Décoration du texte
2021-03-09 20:19:17 +01:00
2021-03-11 10:59:58 +01:00
La décoration du texte, qui interprête le **gras** par exemple, ne fait pas partie de la définition de GemText. La décoration du texte s’ applique partout sauf sur les titres et blocs préformatés.
### Désactiver la décoration du texte
On peut :
* commencer la ligne par **^**,
* faire un bloc non décoré avec **^^^**,
* ajouter ce qui suit à la **réécriture** d’ URL :
2021-03-09 20:19:17 +01:00
> &textDecoration=0
2021-03-09 15:23:58 +01:00
———————————————————— ————————————————————
2021-03-09 00:48:07 +01:00
# Quand tout marche…
2021-03-09 20:19:17 +01:00
2021-03-10 11:13:33 +01:00
Parmi les fichiers et répertoires distribués, seuls sont utiles pour le fonctionnement de HtmGem :
* **htmgem/index.php** : Il se charge de traduire le gemtext en HTML.
2021-03-09 12:02:04 +01:00
* **htmgem/css/htmgem.css** : S’ il manque, l’ affichage sera dépourvu de style — littéralement.
2021-03-10 11:13:33 +01:00
* **htmgem/css/… : Conservez les styles que vous utilisez.
Les autres peuvent être supprimés (y compris ce présent fichier //index.gmi//) bien qu’ ils ne présentent aucun danger.