Aller au contenu
DocPensieve
Menu de la documentation

Premier site

Générer

npx docpensieve build

Toutes les versions déclarées sont générées. Pour n'en générer qu'une, passez son slug :

npx docpensieve build v1.0

Regarder le résultat

npx docpensieve serve

Le dossier de sortie est servi statiquement sur le port 4000. C'est exactement ce que fera un hébergeur : aucune différence entre ce serveur et la mise en ligne.

Travailler

npx docpensieve dev

Le serveur de développement surveille les sources et régénère à chaque enregistrement. Il écoute sur le port 3000 ; --port en change.

La différence avec serve tient à ceci : dev régénère, serve ne fait que servir. Pour vérifier ce qui sera réellement publié, enchaînez build puis serve.

Ce qui a été produit

dist/
├── index.html              redirection vers la version courante
├── versions.json           les versions et leurs adresses
└── versions/
    └── v1.0/
        ├── index.html      la page d'accueil de la version
        ├── assets/
        │   └── docpensieve.css
        └── guide/
            └── installation/
                └── index.html

Trois choses méritent d'être remarquées.

Chaque page est un dossier contenant un index.html. C'est ce qui donne des adresses sans extension — /guide/installation/ plutôt que /guide/installation.html — sans rien demander à l'hébergeur.

Une seule feuille de style pour toute la version. Elle est compilée en dernier, une fois les pages écrites, parce qu'un thème utilitaire a besoin de savoir quelles classes ont réellement servi pour n'émettre que celles-là.

Le versions.json à la racine décrit les versions disponibles. C'est lui qui permet à des versions générées il y a longtemps de rester en ligne sans jamais être regénérées.

Le dossier lui-même est dist/, que outDir change — vers public/, ou vers ce que votre hébergeur attend. La génération vide les dossiers qu'elle écrit et laisse le reste de ce dossier tranquille : un dossier de sortie partagé avec autre chose garde ce qui ne lui appartient pas.

Relire ce qui sort

Une génération réussie ne dit rien d'un lien mort : rien dans la chaîne ne les regarde. Une commande s'en charge :

npx docpensieve build
npx docpensieve check

Elle parcourt les pages produites, retire le préfixe de déploiement de chaque cible interne et vérifie que le fichier existe. Elle signale aussi les cibles qui ignorent ce préfixe — le fichier est là, mais le lien ne mènera nulle part une fois en ligne.

  index.html
    /guide/installation/
    → ignores the deployment prefix "/mon-projet/"

C'est le contrôle à lancer après tout changement de baseUrl, de structure de dossiers ou d'adresse. Quand quelque chose ne colle pas, Quand ça casse recense les pannes que cet outil produit, par le symptôme que vous voyez.

Chercher dans le site

Chaque page porte un champ de recherche dans son en-tête. Il mène à la page de recherche de la version, sous /search/, que la génération écrit avec le site : la liste de toutes les pages, qu'un petit script filtre à mesure que le lecteur tape — les meilleures correspondances d'abord, chacune avec un extrait. C'est la seule page à charger un script qui lui soit propre, et sans lui, elle reste la liste de toutes les pages.

Elle fonctionne de la même façon sous les deux thèmes. search: false dans la configuration retire le champ et la page.