stephane-klein / backlog

My public backlog
30 stars 1 forks source link

Étudier et Benchmark les outils de génération de documentation #17

Open stephane-klein opened 2 years ago

stephane-klein commented 2 years ago

Sphinx est peut-être le premier générateur de documentation que j'ai utilisé vers 2008.

Sphinx était (et est toujours) très bien : complet, moteur de recherche, stable, énormément d'utilisateurs dans la communauté Python... Vers 2010, le choix était simple, il n'y avait pas de questions à se poser, étant donné que Sphinx était presque le seul et dominait totalement le "marché".

Depuis la progression spectaculaire de l'écosystème JavaScript, la donne a changé : il existe un large choix et générateurs de documentation. Le choix n'est plus simple.

Je pense que Sphinx est toujours un choix pertinent, mais Sphinx est écrit en Python et Python n'a pas la cote chez les développeurs JavaScript.

D'autre part, les générateurs de documentation, basés sur un moteur JS, permettent pour la plupart d'intégrer des Components riches (ReactJS) dans les pages, ce qui peut-être dans certaines situations très pratiques.

Concernant le dialecte Markdown, AsciiDoc, ReStructuredText, je pense que je préfère être conservateur, c'est à dire utiliser du Markdown afin que la source des pages soit correctement rendu dans GitHub ou GitLab.

Dans mes critères de comparaison, je souhaite étudier :

Je ne souhaite plus essayer de configurer le générateur de doc sur la structure de fichiers des README.md d'un monorepo. J'ai perdu trop de temps à faire cela, aucun outil ne le supporte et les hacks que j'ai essayé de mettre en place ont engendré trop de difficultés, problèmes... Par conséquent, la documentation doit rester une documentation, qui suit une narrative, et à côté de cela, des fichiers README.md continuent à exister dans les dossiers des services, outils, environnement... qui fournissent de la documentation contextuelle.

Todo :

Tableau de comparaison : https://docs.google.com/spreadsheets/d/1xZlg0nabIUTH54xzsJ62D5hpc-plDUA8SDkJWp1bFDE/edit?usp=sharing

Mon cahier des charges

Playground repositories

stephane-klein commented 2 years ago

See https://news.ycombinator.com/item?id=31343371

stephane-klein commented 2 years ago

Je lis https://markdoc.io/docs/overview

stephane-klein commented 2 years ago

Je lis https://github.com/facebook/docusaurus/issues/6113

stephane-klein commented 2 years ago

Exemple de sites qui utilisent Docusaurus : https://docusaurus.io/showcase

stephane-klein commented 2 years ago

Je souhaite dans un premier temps tester les plugins de moteur de recherche local suivants (je ne souhaite pas utiliser Algolia) :

stephane-klein commented 2 years ago

Je fais mes tests Docusaurus dans le repository suivant : https://github.com/stephane-klein/docusaurus-playground

stephane-klein commented 2 years ago

Dans ce commit, j'ai réussi à setup docusaurus-lunr-search avec succès.

À noter que :

$ pnpm run swizzle docusaurus-lunr-search SearchBar -- --danger

ne fonctionne pas, j'ai dû passer par npm et lancer :

$ npm run swizzle docusaurus-lunr-search SearchBar -- --danger
stephane-klein commented 2 years ago

Je souhaite tester si je peux placer un dossier de /docs/ dans un dossier parent à Docusaurus, exemple :

/docs/...
/services/docusaurus/...
/services/docusaurus/packages.json
stephane-klein commented 2 years ago

Je souhaite tester si je peux placer un dossier de /docs/ dans un dossier parent à Docusaurus

Cela a fonctionné, exemple :

https://github.com/stephane-klein/docusaurus-playground/commit/e796c8b6d96c69196ab6ef18e575c6c3ca92b105

stephane-klein commented 2 years ago

Je souhaite tester la fonctionnalité i18n de Docusaurus.

stephane-klein commented 2 years ago

Je n'ai pas trouvé dans kit-docs de fonctionnalité "i18n" qui ressemble au fonctionnement de Docusaurus, c'est-à-dire ce type de dropdown :

J'ai trouvé cette issue : https://github.com/svelteness/kit-docs/issues/26

stephane-klein commented 2 years ago

Je trouve ce point très pénible dans Docusaurus :slightly_frowning_face:

stephane-klein commented 2 years ago

J'aime bien l'organisation des fichiers pour le support i18n de Nextra : https://nextra.vercel.app/features/i18n

Autre intérêt de Nextra : le support SSG qui permet par exemple d'afficher des données dynamiques qui viennent par exemple d'une base de données.

stephane-klein commented 2 years ago

J'ai trouvé cette issue : https://github.com/svelteness/kit-docs/issues/26

On m'a répondu : https://github.com/svelteness/kit-docs/issues/26#issuecomment-1172873835

stephane-klein commented 2 years ago

En regardant le code source du thème de Nextra : https://github.com/shuding/nextra/tree/core/packages j'ai l'impression que cet outil est plus "minimaliste" et plus facile à customiser que par exemple Docusaurus.

stephane-klein commented 2 years ago

J'ai créé un playground pour Nextra : https://github.com/stephane-klein/nextra-playground

stephane-klein commented 2 years ago

Je viens de voir que https://github.com/svelteness/kit-docs n'est pas basé sur SvelteKit, ici https://github.com/svelteness/kit-docs/issues/44 je demande pourquoi.

stephane-klein commented 2 years ago

Je trouve ce point très pénible dans Docusaurus slightly_frowning_face

Quelqu'un se pose la même question que moi : https://github.com/facebook/docusaurus/issues/7377.

abordin-spacefill commented 1 year ago

@stephane-klein Pour info, une version 2.0 de nextra est sortie il y a quelques jours https://github.com/shuding/nextra/releases/tag/nextra%402.0.0

stephane-klein commented 1 year ago

@abordin-spacefill merci :+1:, très intéressant.

La gestion i18n de Nextra correspond à ce que je cherche : https://nextra.site/docs/guide/i18n#use-add-locale-to-filenames

stephane-klein commented 1 year ago

@abordin-spacefill Je viens de voir que j'avais noté ceci :

J'aime bien l'organisation des fichiers pour le support i18n de Nextra : https://nextra.vercel.app/features/i18n

Je ne me souviens plus pourquoi j'avais arrêté de travailler sur https://github.com/stephane-klein/nextra-playground

stephane-klein commented 1 year ago

Je ne me souviens plus pourquoi j'avais arrêté de travailler sur https://github.com/stephane-klein/nextra-playground

@abordin-spacefill je pense que c'était à cause de difficulté en mode mono repos, voire cette branche https://github.com/stephane-klein/nextra-playground/commits/monorepo

stephane-klein commented 1 year ago

Un autre moteur de recherche static https://github.com/nextapps-de/flexsearch

stephane-klein commented 1 year ago

La section benchmark de ce repos liste de nombreux moteur de recherches static.

stephane-klein commented 11 months ago

https://vercel.com/templates?utm_source=next-site&utm_medium=navbar&utm_campaign=home&framework=next.js&type=documentation

stephane-klein commented 6 months ago

https://www.writethedocs.org/guide/docs-as-code/

stephane-klein commented 6 months ago

https://github.com/jean-humann/docs-to-pdf

stephane-klein commented 6 months ago

https://github.com/sydasif/my-pandoc-book

stephane-klein commented 5 months ago

Je suis en train de créer un spike privé basé sur Docusaurus, pour le moment, ce que je trouve pénible :