-
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
-
84
-
85
-
86
-
87
-
88
-
89
-
90
-
91
-
92
-
93
-
94
-
95
-
96
-
97
-
98
-
99
-
100
-
101
-
102
-
103
-
104
-
105
-
106
-
107
-
108
-
109
-
110
-
111
-
112
-
113
-
114
-
115
-
116
-
117
-
118
-
119
-
120
-
121
-
122
-
123
-
124
-
125
-
126
-
127
-
128
-
129
-
130
-
131
-
132
-
133
-
134
-
135
-
136
-
137
-
138
-
139
-
140
-
141
-
142
-
143
-
144
-
145
-
146
-
147
-
148
-
149
-
150
-
151
-
152
-
153
-
154
-
155
-
156
-
157
-
158
-
159
-
160
-
161
-
162
-
163
-
164
-
165
-
166
-
167
-
168
-
169
-
170
-
171
-
172
-
173
-
174
-
175
-
176
-
177
-
178
-
179
-
180
-
181
-
182
## Input options
### `input.path`
- Type: `string` (file path)
- CLI: First positional argument
- Required
Path to a Vault (source directory includes documents).
Path needs to be relative and resolved from the config file.
## Output options
### `output.path`
- Type: `string` (file path)
- CLI: `--out <PATH>` option
- Required
Path to the output directory.
Path needs to be relative and resolved from the config file.
### `output.baseURL`
- Type: `string` (URL or path)
- CLI: `--base-url <URL OR PATH>` option
- Example: `"/foo/"`, `"https://example.com/"`
Base URL for the generated website.
Path part needs to end with trailing slash: otherwise the last segment will be omitted.
For example, link for the `Foo.md` under `--base-url /bar/baz` will look like `/bar/Foo/`.
### `output.userCSS`
- Type: `string` (file path)
- CLI: `--user-css <PATH>` option
Path to the user provided CSS file.
Path needs to be relative and inside the vault, and will be resolved from the config file.
Assets referenced in the CSS file are automatically included in the final output, such as font file.
Referenced assets needs to be relative and inside the vault too.
### `output.notFoundPage.enabled`
- Type: `boolean`
- Default: `true` if `output.baseURL` is full URL or absolute path, otherwise `false`
Enable generation of Not Found page.
### `output.notFoundPage.filename`
- Type: `string` (file name)
- CLI: `--not-found-filename <FILENAME>` option
- Default: `404.html`
Filename of generated Not Found page.
### `output.precompress`
- Type: `boolean`
- CLI: `--precompress` flag
Whether to compress `.html`, `.css` and `.js` files into `.<ext>.gz`, `.<ext>.br` and `.<ext>.zst` files.
For example, if an output directory contains `index.html`, Macana also generates
- `index.html.gz` (Gzip)
- `index.html.br` (Brotli)
- `index.html.zst` (ZStandard)
inside the same directory.
## Website metadata options
### `metadata.name`
- Type: `string`
- CLI: `--name <TEXT>` option
- Required
Website name, title.
`<title>` and a title section in a header uses this text.
### `metadata.favicon.svg`
- Type: `string` (file path)
- CLI: `--favicon-svg <PATH>` option
Path to a SVG file to use as a favicon.
Path needs to be relative and resolved from the config file.
### `metadata.favicon.png`
- Type: `string` (file path)
- CLI: `--favicon-png <PATH>` option
Path to a PNG file to use as a favicon.
Path needs to be relative and resolved from the config file.
### `metadata.copyright`
- Type: `string`
- CLI: `--copyright <TEXT>` option
- Required
Copyright text to show in the generated website.
### `metadata.logoImage`
- Type: `string` (file path)
- CLI: `--logo-image <PATH>` option
Path to an image file to use as a website logo.
Path needs to be relative and resolved from the config file.
### `metadata.openGraph.image`
- Type: `string` (file path)
- CLI: `--og-image <PATH>` option
Path to an image file to use as an [Open Graph](https://ogp.me/) image (`og:image`).
Path needs to be relative and resolved from the config file.
Macana sets Open Graph attributes only when the value of [[#`output.baseURL`]] is full URL string.
Path only strings and such are not considered as Open Graph ready base URL.
## Document options
### `documents.defaultLanguage`
- Type: `string`
- CLI: `--lang <TEXT>` option
- Default: `"en"`
Default language for the generated website.
### `documents.languages.<directory>`
- Type: `{ title: string; lang: string }`
If a directory name matches to `<directory>`, the directory is treated as a language directory: the directory itself and its contents have different language than the parent one.
### `documents.resolveShortestPathWhenPossible`
- Type: `boolean`
- CLI: `--shortest-path-when-possible` flag
Enable support for Obsidian's "[[Ambiguous path resolution#Shortest path when possible|Shortest path when possible]]" link resolution.
### `documents.title.keepExtension`
- Type: `boolean`
- CLI: `--keep-ext` flag
By default, Macana use filename without file extension part as a document title.
If this option is enabled, Macana does not trim the file extension part.
## Markdown options
### `markdown.enabled`
- Type: `boolean`
- Default: `true`
Enable parsing of Markdown documents.
You can disable this from CLI via `--disable-markdown` flag.
### `markdown.yamlFrontmatter`
- Type: `boolean`
- CLI: `--markdown-frontmatter` flag
Enable parsing of YAML frontmatter in Markdown documents.
## JSONCanvas options
### `jsonCanvas.enabled`
- Type: `boolean`
- Default: `true`
Enable parsing of JSONCanvas documents.
You can disable this from CLI via `--disable-jsoncanvas` flag.