aboutsummaryrefslogtreecommitdiff
path: root/docs/markdown/Hotdoc-module.md
blob: cf972ca351864caf941a6b312286dc11c103584a (plain)
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
---
short-description: Hotdoc module
authors:
    - name: Thibault Saunier
      email: tsaunier@igalia.com
      years: [2018]
      has-copyright: false
...

# Hotdoc module

This module provides helper functions for generating documentation using
[hotdoc].

*Added 0.48.0*

## Usage

To use this module, just do: **`hotdoc = import('hotdoc')`**. The
following functions will then be available as methods on the object
with the name `hotdoc`. You can, of course, replace the name `hotdoc`
with anything else.

### hotdoc.generate_doc()

Generates documentation using [hotdoc] and installs it into `$prefix/share/doc/html`.

**Positional argument:**

* `project_name`: The name of the hotdoc project

**Keyworded arguments:**

* `sitemap` ([[@str]] or [[@file]]) (**required**): The hotdoc sitemap file
* `index` ([[@str]] or [[@file]]) (**required**): Location of the index file
* `dependencies`([[@build_tgt]]): Build targets to use when generating documentation.
* `depends`([[@custom_tgt]]): Custom targets on which this documentation target depends.
* `subprojects`: A list of `HotdocTarget` that are used as subprojects for hotdoc to generate
  the documentation.
* ... Any argument of `hotdoc` can be used replacing dashes (`-`) with underscores (`_`).
  For a full list of available parameters, just have a look at `hotdoc help`.

*Changed in 0.64.1:* `depends:` added.
Previously, all types of targets were accepted by `dependencies:`.
This is now deprecated.
Use `dependencies:` only with build targets, to pass their configuration to hotdoc.
Use `depends:` to set up dependency relationships on custom targets.

**Returns:**

`HotdocTarget`: A [[custom_target]] with the
following extra methods:

* `config_path`: Path to the generated `hotdoc` configuration file.

### hotdoc.has_extensions()

**Positional arguments:**

* `...`: The hotdoc extension names to look for

**No keyworded arguments**

**Returns:** `true` if all the extensions where found, `false` otherwise.

### Example

``` meson
hotdoc = import('hotdoc')

hotdoc.generate_doc('foobar',
  project_version: '0.1',
  sitemap: 'sitemap.txt',
  index: 'index.md',
  c_sources: ['path/to/file.c'],
  c_smart_index: true,
  languages: ['c'],
  install: true,
)
```

[hotdoc]: https://hotdoc.github.io/