{"id":18009942,"url":"https://github.com/kekyo/dockit","last_synced_at":"2026-04-03T07:02:36.611Z","repository":{"id":191361205,"uuid":"671791210","full_name":"kekyo/Dockit","owner":"kekyo","description":"An automatic Markdown documentation generator, fetch from .NET XML comment/metadata.","archived":false,"fork":false,"pushed_at":"2026-04-01T04:59:29.000Z","size":119,"stargazers_count":2,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-01T05:10:29.166Z","etag":null,"topics":["dotnet","html","markdown","pandoc","pdf","xml-document"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kekyo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-07-28T06:30:28.000Z","updated_at":"2025-05-15T03:23:57.000Z","dependencies_parsed_at":null,"dependency_job_id":"f3116d47-ea7e-4569-b79f-e79d3251d6ea","html_url":"https://github.com/kekyo/Dockit","commit_stats":null,"previous_names":["kekyo/dockit"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/kekyo/Dockit","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kekyo%2FDockit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kekyo%2FDockit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kekyo%2FDockit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kekyo%2FDockit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kekyo","download_url":"https://codeload.github.com/kekyo/Dockit/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kekyo%2FDockit/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31275740,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-01T06:57:45.811Z","status":"ssl_error","status_checked_at":"2026-04-01T06:57:42.389Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dotnet","html","markdown","pandoc","pdf","xml-document"],"created_at":"2024-10-30T02:11:36.285Z","updated_at":"2026-04-03T07:02:36.605Z","avatar_url":"https://github.com/kekyo.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Dockit\n\n![Dockit](Images/Dockit.100.png)\n\n[![Project Status: Active – The project has reached a stable, usable state and is being actively developed.](https://www.repostatus.org/badges/latest/active.svg)](https://www.repostatus.org/#active)\n\n|Package|Link|\n|:----|:----|\n|dockit-cli (.NET CLI)|[![NuGet dockit-cli](https://img.shields.io/nuget/v/dockit-cli.svg?style=flat)](https://www.nuget.org/packages/dockit-cli)|\n|dockit-cli (NPM CLI)|[![NPM dockit-cli](https://img.shields.io/npm/v/dockit-cli.svg)](https://www.npmjs.com/package/dockit-cli)|\n\n----\n\n[(For Japanese language/日本語はこちら)](./README_ja.md)\n\n\u003e Please note that this English version of the document was machine-translated and then partially edited, so it may contain inaccuracies.\n\u003e We welcome pull requests to correct any errors in the text.\n\n## What is this?\n\nDockit is an automatic Markdown documentation generator.\nThis repository contains:\n\n- a `.NET` generator for assemblies and XML documentation metadata\n- a TypeScript generator for npm projects using the TypeScript compiler API\n\nThe advantage of Dockit is that it generates the document once in Markdown format\nand then uses Pandoc to generate the document from Markdown.\nThis allows you to target a variety of output formats.\n\nIt is also much simpler to manage than other solutions,\nas you simply install NuGet and it automatically generates the documentation for you.\n\n----\n\n## Install\n\n### .NET\n\nInstall the `.NET` tooling via NuGet:\n\n```bash\ndotnet tool install -g dockit-cli\n```\n\nOr, pre-built .NET Framework binaries in [GitHub Release page](https://github.com/kekyo/Dockit/releases).\n\n### TypeScript / JavaScript\n\nInstall the `NPM` package via npmjs:\n\n```bash\nnpm install -g dockit-cli\n```\n\n----\n\n## Usage\n\n### .NET\n\nThe `.NET` generator accepts two positional arguments and optional flags:\n\n```bash\ndockit-dotnet [options] \u003cassembly-path\u003e \u003coutput-directory\u003e\n```\n\nAvailable options:\n\n- `-h`, `--help`: Show usage help.\n- `-l VALUE`, `--initial-level=VALUE`: Set the base heading level of the generated Markdown. The default is `1`.\n\nBefore you run it, make sure that:\n\n- The target assembly has already been built.\n- XML documentation output is enabled for that project.\n- The XML documentation file is placed next to the assembly with the same base name, such as `MyLibrary.dll` and `MyLibrary.xml`.\n- Referenced assemblies are also available in the assembly directory so metadata can be resolved.\n\nFor SDK-style projects, the minimum setup is:\n\n```xml\n\u003cPropertyGroup\u003e\n  \u003cGenerateDocumentationFile\u003etrue\u003c/GenerateDocumentationFile\u003e\n\u003c/PropertyGroup\u003e\n```\n\nGenerate Markdown from a library build output:\n\n```bash\ndockit-dotnet ./src/MyLibrary/bin/Release/net8.0/MyLibrary.dll ./docs/api\n```\n\nThis writes `./docs/api/MyLibrary.md`.\n\nSuccessful runs print the resolved input and output paths:\n\n```text\nInput assembly: /absolute/path/to/MyLibrary.dll\nInput XML: /absolute/path/to/MyLibrary.xml\nOutput markdown: /absolute/path/to/docs/api/MyLibrary.md\nElapsed time: 123.456 ms\n```\n\nGenerate documentation after a normal build:\n\n```bash\ndotnet build -c Release\ndockit-dotnet ./MyLibrary/bin/Release/net8.0/MyLibrary.dll ./artifacts/docs\n```\n\nGenerate Markdown first, then convert it with Pandoc:\n\n```bash\ndockit-dotnet ./MyLibrary/bin/Release/net8.0/MyLibrary.dll ./docs\npandoc ./docs/MyLibrary.md -o ./docs/MyLibrary.pdf\n```\n\n### TypeScript / JavaScript\n\nThe TypeScript generator accepts a package root path and an output directory:\n\n```bash\ndockit-ts [options] \u003cproject-path\u003e \u003coutput-directory\u003e\n```\n\nAvailable options:\n\n- `-h`, `--help`: Show usage help.\n- `-l VALUE`, `--initial-level=VALUE`: Set the base heading level of the generated Markdown. The default is `1`.\n- `-e VALUE`, `--entry=VALUE`: Add a source entry point. Can be specified multiple times.\n\nBefore you run it, make sure that:\n\n- The target directory contains `package.json`.\n- The project is a TypeScript or JavaScript npm package.\n- Exported declarations are reachable from the package entry points.\n- A `tsconfig.json` or `jsconfig.json` is available when the project needs custom compiler settings.\n\nWhen `package.json` does not expose source entry points directly, Dockit tries these strategies in order:\n\n1. Explicit `--entry` values.\n2. `package.json` `dockit.entryPoints`.\n3. `package.json` `exports`, `types`, `typings`, `module`, `main`.\n4. Conventional fallback files such as `./src/index.ts` and `./src/main.ts`.\n\nFor CLI-oriented packages, you can set custom entry points in `package.json`:\n\n```json\n{\n  \"dockit\": {\n    \"entryPoints\": {\n      \".\": \"./src/index.ts\",\n      \"./extra\": \"./src/extra.ts\"\n    }\n  }\n}\n```\n\nGenerate Markdown from an npm package:\n\n```bash\ndockit-ts ./path/to/package ./docs/api\n```\n\nThis writes `./docs/api/\u003cpackage-name\u003e.md`.\n\nSuccessful runs print the resolved input and output paths:\n\n```text\nInput project: /absolute/path/to/package\nOutput markdown: /absolute/path/to/docs/api/\u003cpackage-name\u003e.md\nElapsed time: 123.456 ms\n```\n\nGenerate Markdown from a CLI-style package that keeps source files under `src`:\n\n```bash\ndockit-ts --entry ./src/index.ts ./path/to/package ./docs/api\n```\n\n----\n\n## Motivation\n\nUnfortunately, in many (formal?) software development undertakings,\nthere are many projects that require documentation as a deliverable that is never read at all.\nModern software development environments, especially IDEs have improved greatly,\nand source code parsing engines such as the Language Server Protocol,\nallow help information to be displayed directly in the editor.\n\nInterface specifications for software libraries are combined with metadata information and supplied by the LSP engine.\nIn the past, this same thing had to be done manually by humans, hence the reason for the existence of a \"reference manual.\"\n\nWith this background, I do not see the value in increasing the output quality of this tool or making it more sophisticated.\nRather, I wanted to create a situation where the minimum effort is required to install only the NuGet package,\nand the output is generated.\n\n(Although care was taken to ensure that a certain level of documentation was generated)\nIt doesn't matter because no one will read it anyway.)\n\nYou just submit the reference document output by Dockit to your important (and not-so-important) customers :)\n\n----\n\n## License\n\nCopyright (c) Kouji Matsui (@kekyo@mi.kekyo.net)\n\nLicense under Apache-v2.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkekyo%2Fdockit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkekyo%2Fdockit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkekyo%2Fdockit/lists"}