forked from canonical/jaas-documentation
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathconf.py
More file actions
368 lines (287 loc) · 11.4 KB
/
conf.py
File metadata and controls
368 lines (287 loc) · 11.4 KB
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
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
import datetime
import ast
import os
import yaml
# Configuration for the Sphinx documentation builder.
# All configuration specific to your project should be done in this file.
#
# If you're new to Sphinx and don't want any advanced or custom features,
# just go through the items marked 'TODO'.
#
# A complete list of built-in Sphinx configuration values:
# https://www.sphinx-doc.org/en/master/usage/configuration.html
#
# Our starter pack uses the custom Canonical Sphinx extension
# to keep all documentation based on it consistent and on brand:
# https://github.com/canonical/canonical-sphinx
#######################
# Project information #
#######################
# Project name
#
# TODO: Update with the official name of your project or product
project = 'JAAS'
author = 'Canonical Group Ltd'
# Sidebar documentation title; best kept reasonably short
#
# TODO: To include a version number, add it here (hardcoded or automated).
#
# TODO: To disable the title, set to an empty string.
html_title = project + " documentation"
# Copyright string; shown at the bottom of the page
#
# Now, the starter pack uses CC-BY-SA as the license
# and the current year as the copyright year.
#
# TODO: If your docs need another license, specify it instead of 'CC-BY-SA'.
#
# TODO: If your documentation is a part of the code repository of your project,
# it inherits the code license instead; specify it instead of 'CC-BY-SA'.
#
# NOTE: For static works, it is common to provide the first publication year.
# Another option is to provide both the first year of publication
# and the current year, especially for docs that frequently change,
# e.g. 2022–2023 (note the en-dash).
#
# A way to check a repo's creation date is to get a classic GitHub token
# with 'repo' permissions; see https://github.com/settings/tokens
# Next, use 'curl' and 'jq' to extract the date from the API's output:
#
# curl -H 'Authorization: token <TOKEN>' \
# -H 'Accept: application/vnd.github.v3.raw' \
# https://api.github.com/repos/canonical/<REPO> | jq '.created_at'
copyright = "%s CC-BY-SA, %s" % (datetime.date.today().year, author)
# Documentation website URL
#
# TODO: Update with the official URL of your docs or leave empty if unsure.
#
# NOTE: The Open Graph Protocol (OGP) enhances page display in a social graph
# and is used by social media platforms; see https://ogp.me/
ogp_site_url = "https://canonical-jaas-documentation.readthedocs-hosted.com/"
# Preview name of the documentation website
#
# TODO: To use a different name for the project in previews, update as needed.
ogp_site_name = project
# Preview image URL
#
# TODO: To customise the preview image, update as needed.
ogp_image = "https://assets.ubuntu.com/v1/253da317-image-document-ubuntudocs.svg"
# Product favicon; shown in bookmarks, browser tabs, etc.
# TODO: To customise the favicon, uncomment and update as needed.
# html_favicon = '.sphinx/_static/favicon.png'
# Dictionary of values to pass into the Sphinx context for all pages:
# https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-html_context
html_context = {
# Product page URL; can be different from product docs URL
#
# TODO: Change to your product website URL,
# dropping the 'https://' prefix, e.g. 'ubuntu.com/lxd'.
#
# TODO: If there's no such website,
# remove the {{ product_page }} link from the page header template
# (usually .sphinx/_templates/header.html; also, see README.rst).
"product_page": "juju.is/docs",
# Product tag image; the orange part of your logo, shown in the page header
#
# TODO: To add a tag image, uncomment and update as needed.
# _static is no longer in .sphinx.
# For this to work, .sphinx/templates must have base.html defining product_tag.
# 'product_tag': '_static/tag.png',
'product_tag': '_static/logos/juju-logo-no-text.png',
# Your Discourse instance URL
#
# TODO: Change to your Discourse instance URL or leave empty.
#
# NOTE: If set, adding ':discourse: 123' to an .rst file
# will add a link to Discourse topic 123 at the bottom of the page.
"discourse": "https://discourse.charmhub.io",
# Your Mattermost channel URL
#
# TODO: Change to your Mattermost channel URL or leave empty.
# "mattermost": "",
# Your Matrix channel URL
#
# TODO: Change to your Matrix channel URL or leave empty.
"matrix": "https://matrix.to/#/#jimm:ubuntu.com",
# Your documentation GitHub repository URL
#
# TODO: Change to your documentation GitHub repository URL or leave empty.
#
# NOTE: If set, links for viewing the documentation source files
# and creating GitHub issues are added at the bottom of each page.
"github_url": "https://github.com/canonical/jaas-documentation",
# Docs branch in the repo; used in links for viewing the source files
#
# TODO: To customise the branch, uncomment and update as needed.
'repo_default_branch': 'v3',
# Docs location in the repo; used in links for viewing the source files
#
# TODO: To customise the directory, uncomment and update as needed.
"repo_folder": "/",
# TODO: To enable or disable the Previous / Next buttons at the bottom of pages
# Valid options: none, prev, next, both
# "sequential_nav": "both",
# TODO: To enable listing contributors on individual pages, set to True
"display_contributors": False,
# Required for feedback button
'github_issues': 'enabled',
}
# TODO: To enable the edit button on pages, uncomment and change the link to a
# public repository on GitHub or Launchpad. Any of the following link domains
# are accepted:
# - https://github.com/example-org/example"
# - https://launchpad.net/example
# - https://git.launchpad.net/example
#
# html_theme_options = {
# 'source_edit_link': 'https://github.com/canonical/sphinx-docs-starter-pack',
# }
# Project slug; see https://meta.discourse.org/t/what-is-category-slug/87897
#
# TODO: If your documentation is hosted on https://docs.ubuntu.com/,
# uncomment and update as needed.
# slug = ''
# Template and asset locations
html_static_path = ["_static"]
templates_path = [".sphinx/_templates"]
#############
# Redirects #
#############
# To set up redirects: https://documatt.gitlab.io/sphinx-reredirects/usage.html
# For example: 'explanation/old-name.html': '../how-to/prettify.html',
# To set up redirects in the Read the Docs project dashboard:
# https://docs.readthedocs.io/en/stable/guides/redirects.html
# NOTE: If undefined, set to None, or empty,
# the sphinx_reredirects extension will be disabled.
redirects = {}
###########################
# Link checker exceptions #
###########################
# A regex list of URLs that are ignored by 'make linkcheck'
#
# TODO: Remove or adjust the ACME entry after you update the contributing guide
linkcheck_ignore = [
"http://127.0.0.1:8000",
"https://github.com/canonical/ACME/*",
"https://matrix.to/#",
"https://github\.com/.*",
"https://jwt.io/introduction",
]
# A regex list of URLs where anchors are ignored by 'make linkcheck'
# linkcheck_anchors_ignore_for_url = [r"https://github.com/.*"]
# give linkcheck multiple tries on failure
# linkcheck_timeout = 30
linkcheck_retries = 3
########################
# Configuration extras #
########################
# Custom MyST syntax extensions; see
# https://myst-parser.readthedocs.io/en/latest/syntax/optional.html
#
# NOTE: By default, the following MyST extensions are enabled:
# substitution, deflist, linkify
# myst_enable_extensions = set()
# Custom Sphinx extensions; see
# https://www.sphinx-doc.org/en/master/usage/extensions/index.html
# NOTE: The canonical_sphinx extension is required for the starter pack.
# It automatically enables the following extensions:
# - custom-rst-roles
# - myst_parser
# - notfound.extension
# - related-links
# - sphinx_copybutton
# - sphinx_design
# - sphinx_reredirects
# - sphinx_tabs.tabs
# - sphinxcontrib.jquery
# - sphinxext.opengraph
# - terminal-output
# - youtube-links
extensions = [
"canonical_sphinx",
"sphinxcontrib.cairosvgconverter",
"sphinx_last_updated_by_git",
# further extensions that jaas already had:
'sphinx_design',
# 'sphinx_copybutton',
# 'sphinxcontrib.jquery'
# further extensions that we also enable in juju:
# Make it possible to link to related RTD projects using their internal anchors
# with, e.g., {external+ops:ref}`manage-configurations`:
'sphinx.ext.intersphinx',
'sphinxext.rediraffe',
# Display an external link icon and open link in new tab:
# new_tab_link_show_external_link_icon must also be set to True
'sphinx_new_tab_link',
'sphinxcontrib.lightbox2',
]
# Excludes files or directories from processing
exclude_patterns = [
'_build',
'Thumbs.db',
'.DS_Store',
'.sphinx',
]
exclude_patterns.extend(
[
'doc-cheat-sheet*',
'README.md',
'starter-guide.rst',
'TODO.md'
],
)
# Adds custom CSS files, located under 'html_static_path'
# html_css_files = []
# Adds custom JavaScript files, located under 'html_static_path'
# html_js_files = []
# Specifies a reST snippet to be appended to each .rst file
rst_epilog = """
.. include:: /reuse/links.txt
.. include:: /reuse/substitutions.txt
"""
# Feedback button at the top; enabled by default
#
# TODO: To disable the button, uncomment this.
# disable_feedback_button = True
# Your manpage URL
#
# TODO: To enable manpage links, uncomment and replace {codename} with required
# release, preferably an LTS release (e.g. noble). Do *not* substitute
# {section} or {page}; these will be replaced by sphinx at build time
#
# NOTE: If set, adding ':manpage:' to an .rst file
# adds a link to the corresponding man section at the bottom of the page.
# manpages_url = 'https://manpages.ubuntu.com/manpages/{codename}/en/' + \
# 'man{section}/{page}.{section}.html'
# Specifies a reST snippet to be prepended to each .rst file
# This defines a :center: role that centers table cell content.
# This defines a :h2: role that styles content for use with PDF generation.
rst_prolog = """
.. role:: center
:class: align-center
.. role:: h2
:class: hclass2
.. role:: woke-ignore
:class: woke-ignore
.. role:: vale-ignore
:class: vale-ignore
"""
# Workaround for https://github.com/canonical/canonical-sphinx/issues/34
if "discourse_prefix" not in html_context and "discourse" in html_context:
html_context["discourse_prefix"] = html_context["discourse"] + "/t/"
# Workaround for substitutions.yaml
if os.path.exists('./reuse/substitutions.yaml'):
with open('./reuse/substitutions.yaml', 'r') as fd:
myst_substitutions = yaml.safe_load(fd.read())
# Add configuration for rediraffe redirects:
# Add redirects, so they can be updated here to land with docs being moved
# rediraffe_branch = ""
rediraffe_redirects = "redirects.txt"
# Add configuration for intersphinx mapping
intersphinx_mapping = {
'juju': ('https://canonical-juju.readthedocs-hosted.com/3.6/', None),
'tfjuju': ('https://canonical-terraform-provider-juju.readthedocs-hosted.com/en/latest/', None),
'pyjuju': ('https://pythonlibjuju.readthedocs.io/en/latest/', None),
'charmcraft': ('https://canonical-charmcraft.readthedocs-hosted.com/en/latest/', None),
'ops': ('https://ops.readthedocs.io/en/latest/', None),
}