{"id":34016983,"url":"https://github.com/elijahr/mkdocstrings-nim","last_synced_at":"2026-01-20T17:00:03.869Z","repository":{"id":327249710,"uuid":"1107271721","full_name":"elijahr/mkdocstrings-nim","owner":"elijahr","description":"MkDocs API documentation generator for Nim projects","archived":false,"fork":false,"pushed_at":"2025-12-21T10:25:15.000Z","size":1172,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-12-23T02:43:39.264Z","etag":null,"topics":["documentation-generator","mkdocs","mkdocs-material","mkdocstrings","nim"],"latest_commit_sha":null,"homepage":"","language":"Jinja","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/elijahr.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-11-30T22:25:34.000Z","updated_at":"2025-12-21T10:22:37.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/elijahr/mkdocstrings-nim","commit_stats":null,"previous_names":["elijahr/mkdocstrings-nim"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/elijahr/mkdocstrings-nim","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elijahr%2Fmkdocstrings-nim","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elijahr%2Fmkdocstrings-nim/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elijahr%2Fmkdocstrings-nim/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elijahr%2Fmkdocstrings-nim/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/elijahr","download_url":"https://codeload.github.com/elijahr/mkdocstrings-nim/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elijahr%2Fmkdocstrings-nim/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28607624,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-20T16:10:39.856Z","status":"ssl_error","status_checked_at":"2026-01-20T16:10:39.493Z","response_time":117,"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":["documentation-generator","mkdocs","mkdocs-material","mkdocstrings","nim"],"created_at":"2025-12-13T14:17:27.487Z","updated_at":"2026-01-20T17:00:03.847Z","avatar_url":"https://github.com/elijahr.png","language":"Jinja","funding_links":[],"categories":[],"sub_categories":[],"readme":"# mkdocstrings-nim\n\n[![PyPI](https://img.shields.io/pypi/v/mkdocstrings-nim)](https://pypi.org/project/mkdocstrings-nim/)\n[![Python](https://img.shields.io/pypi/pyversions/mkdocstrings-nim)](https://pypi.org/project/mkdocstrings-nim/)\n[![License](https://img.shields.io/github/license/elijahr/mkdocstrings-nim)](https://github.com/elijahr/mkdocstrings-nim/blob/main/LICENSE)\n[![Docs](https://img.shields.io/badge/docs-elijahr.github.io%2Fmkdocstrings--nim-blue)](https://elijahr.github.io/mkdocstrings-nim/)\n\nGenerate API documentation for your Nim projects.\n\nmkdocstrings-nim extracts documentation from Nim source files using the Nim compiler's AST, including module docstrings, procedure signatures, parameter types, return types, and pragma annotations. It renders the documentation as HTML using [MkDocs](https://www.mkdocs.org/) and [mkdocstrings](https://mkdocstrings.github.io/).\n\n**[Full Documentation](https://elijahr.github.io/mkdocstrings-nim/)** | **[Changelog](https://github.com/elijahr/mkdocstrings-nim/blob/main/CHANGELOG.md)**\n\n## Quick Start\n\nThis guide gets you from zero to a running documentation server for your Nim project.\n\n### Prerequisites\n\n- **Nim** compiler installed and in PATH ([install Nim](https://nim-lang.org/install.html))\n- **Python 3.9+** ([install Python](https://www.python.org/downloads/))\n\n### 1. Install the tools\n\n```bash\npip install mkdocs mkdocs-material mkdocstrings-nim\n```\n\n### 2. Create mkdocs.yml\n\nIn your Nim project root, create `mkdocs.yml`:\n\n```yaml\nsite_name: My Nim Project\ntheme:\n  name: material\n\nplugins:\n  - search\n  - mkdocstrings:\n      handlers:\n        nim:\n          paths: [src]  # Where your .nim files are\n          options:\n            show_source: true\n            docstring_style: rst\n```\n\n### 3. Create your docs\n\nCreate a `docs/` directory with an `index.md`:\n\n```bash\nmkdir docs\n```\n\n**docs/index.md:**\n```markdown\n# My Nim Project\n\nWelcome to my project documentation.\n\n## API Reference\n\n::: mymodule\n```\n\nThe `::: mymodule` directive tells mkdocstrings to extract and render documentation from `src/mymodule.nim`.\n\n### 4. Run the docs server\n\n```bash\nmkdocs serve\n```\n\nOpen http://127.0.0.1:8000 to see your documentation.\n\n### 5. Build for deployment\n\n```bash\nmkdocs build\n```\n\nThis creates a `site/` directory with static HTML ready to deploy to GitHub Pages, Netlify, or any static host.\n\n## Writing Nim Docstrings\n\nUse `##` comments to document your Nim code:\n\n```nim\n## This module provides greeting utilities.\n\nproc greet*(name: string): string =\n  ## Greet someone by name.\n  ##\n  ## :param name: The name to greet\n  ## :returns: A greeting message\n  result = \"Hello, \" \u0026 name \u0026 \"!\"\n\ntype\n  Config* = object\n    ## Configuration for the greeter.\n    prefix*: string  ## The greeting prefix\n    suffix*: string  ## The greeting suffix\n```\n\nSupported docstring styles: `rst` (default), `google`, `numpy`, `epydoc`.\n\n## Configuration Options\n\nConfigure in `mkdocs.yml` under `plugins \u003e mkdocstrings \u003e handlers \u003e nim \u003e options`:\n\n| Option | Default | Description |\n|--------|---------|-------------|\n| `paths` | `[\"src\"]` | Search paths for Nim source files |\n| `docstring_style` | `\"rst\"` | Docstring format: `rst`, `google`, `numpy`, `epydoc`, `auto` |\n| `show_source` | `true` | Show source file and line numbers |\n| `show_signature` | `true` | Show full procedure signatures |\n| `show_pragmas` | `true` | Show pragma annotations like `{.raises.}` |\n| `show_private` | `false` | Include non-exported (private) symbols |\n| `heading_level` | `2` | Starting heading level for entries |\n| `source_url` | `null` | Repository URL for source links (e.g., `https://github.com/user/repo`) |\n\nSee the [full documentation](https://elijahr.github.io/mkdocstrings-nim/) for more details.\n\n## Projects Using mkdocstrings-nim\n\n- [nim-typestates](https://github.com/elijahr/nim-typestates) - Compile-time state machine verification\n- [lockfreequeues](https://github.com/elijahr/lockfreequeues) - Lock-free data structures for Nim\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felijahr%2Fmkdocstrings-nim","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Felijahr%2Fmkdocstrings-nim","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felijahr%2Fmkdocstrings-nim/lists"}