Skip to main content

A Nim handler for mkdocstrings

Project description

mkdocstrings-nim

PyPI Python License Docs

Generate API documentation for your Nim projects.

mkdocstrings-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 and mkdocstrings.

Full Documentation | Changelog

Quick Start

This guide gets you from zero to a running documentation server for your Nim project.

Prerequisites

1. Install the tools

pip install mkdocs mkdocs-material mkdocstrings-nim

2. Create mkdocs.yml

In your Nim project root, create mkdocs.yml:

site_name: My Nim Project
theme:
  name: material

plugins:
  - search
  - mkdocstrings:
      handlers:
        nim:
          paths: [src]  # Where your .nim files are
          options:
            show_source: true
            docstring_style: rst

3. Create your docs

Create a docs/ directory with an index.md:

mkdir docs

docs/index.md:

# My Nim Project

Welcome to my project documentation.

## API Reference

::: mymodule

The ::: mymodule directive tells mkdocstrings to extract and render documentation from src/mymodule.nim.

4. Run the docs server

mkdocs serve

Open http://127.0.0.1:8000 to see your documentation.

5. Build for deployment

mkdocs build

This creates a site/ directory with static HTML ready to deploy to GitHub Pages, Netlify, or any static host.

Writing Nim Docstrings

Use ## comments to document your Nim code:

## This module provides greeting utilities.

proc greet*(name: string): string =
  ## Greet someone by name.
  ##
  ## :param name: The name to greet
  ## :returns: A greeting message
  result = "Hello, " & name & "!"

type
  Config* = object
    ## Configuration for the greeter.
    prefix*: string  ## The greeting prefix
    suffix*: string  ## The greeting suffix

Supported docstring styles: rst (default), google, numpy, epydoc.

Configuration Options

Configure in mkdocs.yml under plugins > mkdocstrings > handlers > nim > options:

Option Default Description
paths ["src"] Search paths for Nim source files
docstring_style "rst" Docstring format: rst, google, numpy, epydoc, auto
show_source true Show source file and line numbers
show_signature true Show full procedure signatures
show_pragmas true Show pragma annotations like {.raises.}
show_private false Include non-exported (private) symbols
heading_level 2 Starting heading level for entries
source_url null Repository URL for source links (e.g., https://github.com/user/repo)

See the full documentation for more details.

Projects Using mkdocstrings-nim

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mkdocstrings_nim-0.2.1.tar.gz (37.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mkdocstrings_nim-0.2.1-py3-none-any.whl (85.7 kB view details)

Uploaded Python 3

File details

Details for the file mkdocstrings_nim-0.2.1.tar.gz.

File metadata

  • Download URL: mkdocstrings_nim-0.2.1.tar.gz
  • Upload date:
  • Size: 37.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for mkdocstrings_nim-0.2.1.tar.gz
Algorithm Hash digest
SHA256 96fc860a4bfb5bcb38a084bc440f6400729dbe2321ceff61042a363816519b32
MD5 17d145ba714fb0dd8a22a1b607695bcb
BLAKE2b-256 37acc4f77bcfdaa596fc6e9a5f14e3ac757ef00678e4797136c22c50390db3a2

See more details on using hashes here.

Provenance

The following attestation bundles were made for mkdocstrings_nim-0.2.1.tar.gz:

Publisher: publish.yml on elijahr/mkdocstrings-nim

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mkdocstrings_nim-0.2.1-py3-none-any.whl.

File metadata

File hashes

Hashes for mkdocstrings_nim-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 6e72d23fc3511f7ce11ae2298280508ca65187074d256fbf90aa3fd82a65e8c5
MD5 8d82114c7a5dd714c81e2739b2b9ac50
BLAKE2b-256 da79d29af479f7c23132f9760363268450dd983e963006200d0a1acee1585c44

See more details on using hashes here.

Provenance

The following attestation bundles were made for mkdocstrings_nim-0.2.1-py3-none-any.whl:

Publisher: publish.yml on elijahr/mkdocstrings-nim

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page