[Mise à jour le 18/8/2023]
DocFX est un générateur de documentation API pour .NET, qui prend actuellement en charge C# et VB. Il génère une documentation de référence API à partir de commentaires triples dans votre code source. Il vous permet également d'utiliser des fichiers Markdown1) pour créer des rubriques supplémentaires telles que des didacticiels et des procédures, et de personnaliser la documentation de référence générée. DocFX crée un site Web HTML statique à partir de votre code source et de vos fichiers Markdown, qui peut être facilement hébergé sur tous les serveurs Web (par exemple, github.io). De plus, DocFX vous permet de personnaliser la présentation et le style de votre site Web à l'aide de modèles. Si vous souhaitez créer votre propre site Web avec vos propres styles, vous pouvez suivre la procédure de création d’un modèle personnalisé.
Nous allons nous familiariser avec le principe général d'organisation des documents dans docFX pour générer un site statique.
docfx init -q
. Cette commande génère un dossier docfx_project contenant le fichier docfx.json par défaut. docfx.json est le fichier de configuration que docfx utilise pour générer la documentation.
docfx docfx_project/docfx.json
. Notez qu'un nouveau sous-dossier _site est généré dans ce dossier. C'est là que le site Web statique est généré.docfx serve docfx_project/_site
pour prévisualiser le site Web localement.docfx serve _site -p <port>
pour changer le port.
La page devrait ressembler à ceci.
- name: Introduction href: intro.md - name: Details 1 href: details1.md - name: Details 2 href: details2.md - name: Details 3 href: details3.md
L'organisation des dossiers est maintenant :
|- index.md |- toc.yml |- articles | |- intro.md | |- details1.md | |- details2.md | |- details3.md | |- toc.yml |- images |- details1_image.png
3. Exécuter à nouveau les commandes des étapes 3 et 4 puis cliquer sur Article pour que le site ressemble à ceci :
Dans cette procédure, nous avons construit un site Web à partir d’un ensemble de fichiers markdown. Ces fichiers .md sont la documentation conceptuelle. Dans le paragraphe suivant, nous allons apprendre à ajouter la documentation d'une API 2) à notre site Web. La documentation de l'API sera automatiquement extraite du code source .NET3). Dans une série de procédures avancées, nous verrons d'autres concepts de docFX, tels que les références croisées entre articles, les références externes à d’autres documentations, etc.
Dans cette partie, nous allons apprendre à créer un site Web à partir du code source d'un projet .NET, il s'agit de la Documentation de l'API. Nous allons également intégrer la documentation conceptuelle et la documentation de l'API dans un site Web unique, de manière à pouvoir naviguer de “Conceptuel” à “API”, ou d'“API” à “Conceptuel”.
docfx metadata
dans le dossier D:\docfx_pasapas\docfx_project. La commande docfx metadata
lit la configuration dans la section metadata du fichier docfx.json. La partie [ "src/**.csproj" ] située dans metadata/src/files demande à docFX de rechercher tous les csproj du sous-dossier src pour générer les métadonnées."metadata": [ { "src": [ { "files": [ "src/**.csproj" ], "exclude": [ "**/bin/**", "**/obj/**", "_site/**" ] } ], "dest": "api" } ]
Cela génère plusieurs fichiers YAML4) dans le dossier api. Un fichier YAML contient le modèle de données extrait du fichier de code source C#. YAML est le format de métadonnées utilisé dans docFX. La spécification de métadonnées générales définit le schéma général et la spécification de métadonnées .NET définit le schéma de métadonnées pour les langages .NET pouvant être consommés par docFX.
|- HelloDocfx.Class1.InnerClass.yml |- HelloDocfx.Class1.yml |- HelloDocfx.yml |- toc.yml
"metadata": [ { "src": [ { "src": "../../", "files": [ "somewhere/src/**.csproj" ], "exclude": [ "**/bin/**", "**/obj/**", "_site/**" ] } ], "dest": "api" } ]
Lancer la commande docfx
. Cette commande lit le fichier docfx.json et exécute, une par une, les sous-commandes. Notre fichier docfx.json définit les metadata
et le build
. En exécutant la commande docfx, nous construisons le site Web.
Exécutez la commande docfx serve _site
puis cliquer sur API Documentation. Le site devrait ressembler à :
"metadata": [ { "src": [ { "files": [ "src/**.csproj" ] } ], "dest": "api", "disableGitFeatures": false, "disableDefaultFilter": false }, { "src": "src2/**.cs", "dest": "api-vb" } ],
"build": { "content": [ { "files": [ "api-vb/**.yml" ] } ...
- name: Articles href: articles/ - name: Api Documentation href: api/ homepage: api/index.md - name: Another Api Documentation href: api-vb/
docfx - -serve
puis cliquer sur Another Api Documentation. Le site devrait ressembler à :
- name: Home href: index.md - name: Articles href: articles/ homepage: api/index.md - name: API Documentation href: obj/api/ - name: REST API href: restapi/
- name: Conceptual href: ../articles/toc.yml - name: Reference href: ../obj/api/toc.yml
- name: Home href: index.md - name: Articles href: articles/ homepage: api/index.md - name: API Documentation href: fusion/ - name: REST API href: restapi/
docfx - -serve
puis cliquer sur Api Documentation. Le site devrait ressembler à :
A l'étape précédente, nous avons créé un site Web contenant à la fois la documentation conceptuelle et la documentation API. Dans cette partie, nous allons générer cette documentation au format PDF.
docfx_project obtenu au paragraphe précédent a été réduit a la structure ci desous. A télécharger ici.
|- articles |- images |- src |- src2 |- index.md |- toc.yml |- docfx.json
Nous utiliserons wkhtmltopdf5) pour générer des PDF. Télécharger l'exécutable wkhtmltopdf et l'installer.
Chaque fichier TOC génère le fichier PDF correspondant, TOC est également utilisé pour la page de couverture du PDF, nous créons donc un fichier toc.yml spécifique au PDF dans un nouveau dossier pdf, en utilisant TOC Include pour inclure le contenu d'autres fichiers TOC.
- name: Articles href: ../articles/toc.yml - name: Api Documentation href: ../api/toc.yml - name: Another Api Documentation href: ../api-vb/toc.yml
Les paramètres ressemblent à ceux de la section “construction”, bien qu'on utilise un modèle différent (le modèle intégré est pdf.default), avec une autre destination. Nous excluons les fichiers TOC car chaque fichier TOC génère un fichier PDF:
... "pdf": { "content": [ { "files": [ "api/**.yml", "api-vb/**.yml" ], "exclude": [ "**/toc.yml", "**/toc.md" ] }, { "files": [ "articles/**.md", "articles/**/toc.yml", "toc.yml", "*.md", "pdf/*" ], "exclude": [ "**/bin/**", "**/obj/**", "_site_pdf/**", "**/toc.yml", "**/toc.md" ] }, { "files": "pdf/toc.yml" } ], "resource": [ { "files": [ "images/**" ], "exclude": [ "**/bin/**", "**/obj/**", "_site_pdf/**" ] } ], "overwrite": [ { "files": [ "apidoc/**.md" ], "exclude": [ "**/bin/**", "**/obj/**", "_site_pdf/**" ] } ], "dest": "_site_pdf" }
Exécutons maintenant la commande docfx
.Vous trouverez le fichier pdf walkthrough3_pdf.pdf généré dans le dossier _site_pdf:
Si vous souhaitez également utiliser des plugins avec pdf, vous devez ajouter un noeud de modèle à la section pdf. Il doit commencer par le fichier pdf.template suivi du chemin d'accès aux plugins que vous souhaitez utiliser :
"template": [ "pdf.default", "pluginPackages/rest.tagpage.2.31.0/content" ],
Voir la page consacrée à cette rubrique ici.