Article original : How to Write Good Documentation with Docsify
La documentation est cruciale pour un produit réussi. Sans documentation, il est plus difficile pour les gens d'utiliser votre produit, et c'est tout aussi important si vous gérez un projet open-source.
Créer un site de documentation peut être un défi, surtout si vous n'êtes pas familier avec le développement front-end.
Je suis développeur front-end depuis les 8 dernières années. Pendant cette période, j'ai utilisé de nombreux frameworks pour construire de la documentation, comme Next.js, nextra, content layer, Ghost CMS, lume (deno), docusaurus, et Mark doc.
Mais pour utiliser beaucoup de ces outils, vous devez avoir des connaissances essentielles sur JavaScript, Next.js et React. Vous pourriez rencontrer certains défis, comme :
- Manque de connaissances en JavaScript, React ou autres outils nécessaires
- Versioning de la documentation
- Configuration
- Déploiement
Dans ce guide, je vais vous présenter un outil puissant qui peut vous aider à écrire de la documentation sans avoir besoin de autant de connaissances techniques.
Qu'est-ce que Docsify ?
Pour vous aider à résoudre ce problème, je recommande un outil appelé docsify. Docsify est un générateur de documentation simple et léger. Vous pouvez commencer à l'utiliser sans avoir aucune connaissance de JavaScript ou React.
Docsify ne nécessite aucune configuration, ne génère pas de fichiers HTML statiques, supporte plusieurs thèmes, dispose d'une API de plugins intégrée et offre une recherche en texte intégral avec un plugin. Il se déploie également sur une large gamme de plateformes comme GitHub Pages, GitLab Pages, Firebase, Netlify, Vercel et autres.
J'ai créé un projet de démonstration pour vous montrer comment l'utiliser – le code source est disponible sur GitHub. Vous pouvez également consulter le site de démonstration en direct.
Comment installer et utiliser Docsify
Vous pouvez créer un nouveau projet avec docsify-cli. Pour utiliser docsify-cli, vous devez installer Node et NPM si vous ne les avez pas déjà installés.
npm install -g docsify-cli
# ou
yarn add -g docsify-cli
# ou
pnpm add -g docsify-cli
La sortie de la commande ressemble à ceci :
❯ pnpm add -g docsify-cli
Packages: +198
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Progress: resolved 199, reused 114, downloaded 84, added 198, done
.pnpm/docsify@4.13.1/node_modules/docsify: Running postinstall script, done in 196ms
/home/rajdeepsingh/.local/share/pnpm/global/5:
+ docsify-cli 4.4.4
+ pnpm 8.7.0
Done in 13.9s
Créez votre nouveau projet avec l'option docsify-cli init.
❯ docsify init docs
Initialization succeeded! Please run docsify serve ./docs
Vous pouvez également spécifier le --theme et --plugins.
❯ docsify init docs --theme buble --plugins
Vous pouvez en savoir plus sur docsify-cli sur la page de documentation.
Installez les plugins avec l'option docsify init.
Ensuite, démarrez votre serveur de développement local en utilisant docsify-cli. Pour cela, exécutez la commande suivante :
docsify serve docs
# ou
docsify serve .
Votre serveur local s'exécute sur le port 3000 localement.
Exécutez docsify serve
Votre site devrait ressembler à ceci lorsque vous l'ouvrez dans le navigateur :
Demo Docsify
Structure de dossier de Docsify
Docsify a une structure de dossier simple. Par défaut, lorsque vous créez un nouveau projet avec docsify-cli, il y a trois fichiers principaux :
├── index.html // C'est un fichier d'entrée HTML.
├── .nojekyll // Cela est utile lorsque vous déployez votre projet sur GitHub Pages.
└── README.md // C'est la page d'accueil ou le routeur /
Comment personnaliser Docsify
Docsify offre de nombreuses options de personnalisation, et vous n'avez pas besoin de connaissances supplémentaires pour le configurer – c'est assez simple, comme copier et coller du code.
Dans ce guide, nous explorerons certaines des options de personnalisation les plus courantes. Pour une configuration avancée, vous pouvez consulter la documentation de Docsify.
- Configuration de base
- Écran de chargement
- Barre latérale
- En-tête
- Page de couverture
- Plugins
- Thèmes
- Déploiement
Configuration de base
Dans la configuration de base, vous pouvez changer ou ajouter un logo, un nom, ajouter le lien de votre dépôt GitHub, une couleur de thème, etc.
Voici le code pour le faire – vous pouvez remplir vos propres détails.
<!-- index.html -->
<script>
window.$docsify = {
logo: '/_media/icon.svg', <!-- ajouter un logo -->
name: "Document", <!-- Nom du site, il apparaît dans la barre latérale. -->
nameLink: '/', <!-- url pour le nom -->
repo: "officialrajdeepsingh/docsifyjs",<!-- dépôt github -->
maxLevel: 2, <!-- Niveau maximum de la table des matières. -->
themeColor: '#3F51B5', <!-- Personnaliser la couleur du thème -->
};
</script>
Écran de chargement
Activer un écran de chargement ou une boîte de dialogue est généralement très compliqué, surtout si vous venez de l'écosystème JavaScript et React.js.
Écran de chargement dans Docsify
Dans Docsify, vous pouvez activer un écran de chargement sans aucune configuration. Il vous suffit d'écrire un peu de texte avec un élément HTML à l'intérieur de votre ID d'application, qui s'affichera alors comme un écran de chargement. Cela ressemble à ceci :
<!-- index.html -->
<div id="app">Veuillez patienter...</div>
<!-- ou -->
<div id="app">
<h1> Veuillez patienter... </h1>
</div>
Barre latérale
Par défaut, la barre latérale affiche la table des matières. Mais vous pouvez la personnaliser très facilement. Tout d'abord, vous devez activer la barre latérale.
<!-- index.html -->
<script>
window.$docsify = {
loadSidebar: true, <!-- Activer la barre latérale -->
};
</script>
Ensuite, créez un nouveau fichier _sidebar.md au niveau racine et collez le code suivant :
- [Accueil](README.md)
- [Article brouillon](draft-article.md)
- [Guide](guide.md)
- [Premier](page-first.md)
- [Deuxième](page-second.md)
- [Troisième](page-third.md)
- [Quatrième](page-four.md)
Votre barre latérale devrait maintenant ressembler à ceci :
Votre barre latérale ressemble à ceci.
En-tête
Par défaut, vous ne pourrez pas voir la barre de navigation sur votre site Docsify :
Pas de barre de navigation
Mais ne vous inquiétez pas, vous pouvez changer cela. Pour afficher la barre de navigation, vous devez d'abord l'activer comme ceci :
<!-- index.html -->
<script>
window.$docsify = {
loadNavbar: true, <!-- activer la barre de navigation -->
};
</script>
</body>
</html>
Ensuite, créez un nouveau fichier _navbar.md au niveau racine et collez le code suivant :
* Commencer
* [Démarrage rapide](quickstart.md)
* [Écrire plus de pages](more-pages.md)
* [Barre de navigation personnalisée](custom-navbar.md)
* [Page de couverture](cover.md)
* Configuration
* [Configuration](configuration.md)
* [Thèmes](themes.md)
* [Utiliser des plugins](plugins.md)
* [Configuration Markdown](markdown.md)
* [Mise en évidence de la syntaxe](language-highlight.md)
Votre barre de navigation devrait maintenant ressembler à ceci :
Personnaliser la barre de navigation dans Docsify
Page de couverture
Tout d'abord, activez la page de couverture dans docsify avec le code suivant :
<!-- index.html -->
<script>
window.$docsify = {
coverpage: true, <!-- activer la page de couverture -->
};
</script>
L'étape suivante consiste à créer un nouveau fichier _coverpage.md.
# Apprendre Docsify
### Apprendre docsify à partir du début.
[Commencer à apprendre]()
[Github](#/README)
Votre page de couverture devrait ressembler à ceci :
Votre page de couverture
La page de couverture et votre interface dépendent du thème, ils différeront donc d'un thème à l'autre.
Plugins
Les plugins aident à fournir des fonctionnalités et des caractéristiques supplémentaires à Docsify et améliorent également l'expérience utilisateur.
Vous pouvez créer et utiliser des plugins selon vos propres exigences. [Docsify](https://github.com/docsifyjs/awesome-docsify) dispose de nombreux plugins disponibles qui sont open-source et créés par divers contributeurs.
Vous pouvez utiliser n'importe quel plugin en copiant-collant simplement le code. Vous pouvez même créer vos propres plugins avec docsify.
Comment utiliser des plugins tiers
Dans cet exemple, nous allons activer la fonctionnalité de la barre de recherche avec l'aide du plugin docsify.
Pour activer la barre de recherche, copiez et collez le script suivant à l'intérieur de votre fichier index.html :
<script src="//cdn.jsdelivr.net/npm/docsify/lib/plugins/search.min.js"></script>
Maintenant, la barre de recherche apparaîtra et fonctionnera sur votre site. Avec le plugin de recherche, vous pouvez également configurer diverses fonctionnalités – lisez-en plus sur la page d'installation et de configuration du plugin de recherche.
Plugin de recherche Docsify
Comment créer votre propre plugin avec docsify
Pour créer votre propre plugin dans docsify, il y a un hook intégré que vous devrez utiliser pour le plugin.
Docsify dispose de six hooks intégrés : init, mounted, beforeEach, afterEach, doneEach, et ready.
init: est invoqué une fois lorsque le script docsify est initialisé.mounted: est invoqué une fois lorsque l'instance docsify a été montée sur le DOM.beforeEach: est invoqué à chaque chargement de page avant que le nouveau markdown ne soit transformé en HTML.afterEach: est appelé à chaque chargement de page après que le markdown a été transformé en HTML.doneEach: est invoqué à chaque chargement de page après que le nouveau HTML a été ajouté au DOM.ready: est invoqué une fois après le rendu de la page initiale.
Avec l'aide de ces hooks, vous pouvez créer un plugin. Pour en savoir plus sur la création de vos propres plugins, consultez la page de documentation des plugins personnalisés.
Dans cet exemple, nous allons créer un bouton d'édition en utilisant le hook de plugin beforeEach. Il affiche le bouton EDIT DOCUMENT sur chaque page.
<!-- index.html -->
<script>
window.$docsify = {
plugins: [
<!-- écrire un plugin personnalisé -->
function editButton(hook, vm) {
// appeler le hook
hook.beforeEach(function (html) {
var url = "https://github.com/officialrajdeepsingh/docsifyjs/edit/master/" + vm.route.file;
// correction de route de base
let tempFile = url.replace("docsifyjs/README.md", "README.md",)
? url.replace("docsifyjs/README.md", "README.md")
: url;
// Ajouter le bouton d'édition
var editHtml = "[📝 EDIT DOCUMENT](" + url + ")\n";
// Ajouter le bouton d'édition en haut du fichier
return editHtml + html + "\n----\n" + "Dernière modification " + editHtml;
});
},
],
};
</script>
Thèmes
Docsify dispose de thèmes officiels et créés par la communauté. Vous pouvez utiliser n'importe lequel d'entre eux, et le bon côté est que vous n'avez pas besoin d'écrire de code supplémentaire lorsque vous changez de thème.
<!-- thème vue -->
<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/docsify/themes/vue.css" />
<!-- thème buble -->
<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/docsify/themes/buble.css" />
<!-- thème sombre -->
<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/docsify/themes/dark.css" />
<!-- thème pur -->
<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/docsify/themes/pure.css" />
Vous pouvez choisir de compresser ou non les fichiers CSS des thèmes. Le fichier CSS compressé est une version minifiée du thème, et c'est un fichier CSS léger pour la production. D'autre part, un fichier CSS de thème non compressé est utile pour le développement.
Il vous suffit de copier le thème CSS (Vue, buble, dark et pure) et de le coller à l'intérieur de l'élément head. Et avec cela, votre thème est changé.
En termes de thèmes non officiels, je pense que le thème docsify-themeable est la meilleure option pour vous.
Déploiement
Docsify offre diverses options de déploiement. Vous pouvez déployer votre site Docsify sur GitHub Pages, GitLab Pages, Firebase Hosting, VPS (Nginx), Netlify, Vercel, AWS Amplify, et Docker.
Sur certaines plateformes comme GitHub Pages, vous déployez votre site docsify directement avec le dépôt GitHub sans écrire de configuration.
Voici le processus pour le faire :
Vous irez dans Paramètres > Pages > Source > puis sélectionnez Déployer à partir d'une branche > Branche > Sélectionnez votre branche avec le dossier et cliquez sur le bouton enregistrer.
Déployer docsify avec GitHub Pages
Cela prendra un certain temps, selon la taille de votre site. Après la fin du déploiement, vous devriez voir votre URL de production.
Terminer le déploiement
Conclusion
Docsify est un outil puissant pour générer des sites de documentation. Dans docsify, vous pouvez vous concentrer sur la rédaction de la documentation, pas sur la conception de l'interface utilisateur.
Docsify est une bonne option pour les développeurs qui ne sont pas très familiers avec JavaScript. Si vous vous concentrez davantage sur les langages de bas niveau comme C++ ou Rust, docsify peut vous aider à commencer à rédiger votre documentation avec une seule commande.
J'ai récemment utilisé docsify pour mon dépôt awesome-nextjs. Vous pouvez facilement déployer sur la page GitHub sans aucune configuration.
Gardez simplement à l'esprit qu'il y a deux inconvénients à docsify :
- Docsify ne génère pas de balises méta SEO dynamiques pour une page. Il ne génère qu'un titre et une description.
- Le thème docsify ne fournit pas une sensation d'interface utilisateur moderne.
Mais c'est toujours très utile ! Amusez-vous à créer votre documentation :)