๐Ÿ“ฆ lovelydinosaur / mkautodoc

๐Ÿ“„ README.md ยท 83 lines
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83# MkAutoDoc

Python API documentation for MkDocs.

This markdown extension adds `autodoc` style support, for use with MkDocs.

![aIAgAAjQpG](https://user-images.githubusercontent.com/647359/66651320-a276ff80-ec2a-11e9-9cec-9eba425d5304.gif)

## Usage

#### 1. Include the extension in you `mkdocs.yml` config file:

```yaml
[...]
markdown_extensions:
  - admonition
  - codehilite
  - mkautodoc
```

#### 2. Ensure the library you want to document is importable.

This will depend on how your documentation building is setup, but
you may need to use `pip install -e .` or modify `PYTHONPATH` in your docs build script.

#### 3. Use the `:::` block syntax to add autodoc blocks to your documentation.

```markdown
# API documentation

::: my_library.some_function
    :docstring:

::: my_library.SomeClass
    :docstring:
    :members:
```

#### 4. Optionally, add styling for the API docs

Update your `mkdocs.yml` to include some custom CSS.

```yaml
[...]
extra_css:
    - css/custom.css
```

Then add a `css/custom.css` file to your documentation.

```css
div.autodoc-docstring {
  padding-left: 20px;
  margin-bottom: 30px;
  border-left: 5px solid rgba(230, 230, 230);
}

div.autodoc-members {
  padding-left: 20px;
  margin-bottom: 15px;
}
```

## Notes

#### The :docstring: declaration.

Renders the docstring of the associated function, method, or class.

#### The `:members:` declaration.

Renders documentation for member attributes of the associated class.
Currently handles methods and properties.
Instance attributes set during `__init__` are not currently recognised.

May optionally accept a list of member attributes that should be documented. For example:

```markdown
::: my_library.SomeClass
    :docstring:
    :members: currency vat_registered calculate_expenses
```