Skip to content

Commit 7f33a90

Browse files
authored
Prepare supporting multiple output formats. (#176)
1 parent 589968a commit 7f33a90

36 files changed

+226
-80
lines changed

src/antsibull_docs/cli/doc_commands/_build.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
load_ansible_config,
2929
)
3030
from ...extra_docs import load_collections_extra_docs
31+
from ...jinja2.environment import OutputFormat
3132
from ...process_docs import (
3233
get_callback_plugin_contents,
3334
get_collection_contents,
@@ -56,6 +57,8 @@ def generate_docs_for_all_collections(
5657
venv: VenvRunner | FakeVenvRunner,
5758
collection_dir: str | None,
5859
dest_dir: str,
60+
output_format: OutputFormat,
61+
*,
5962
collection_names: list[str] | None = None,
6063
create_indexes: bool = True,
6164
squash_hierarchy: bool = False,
@@ -72,6 +75,7 @@ def generate_docs_for_all_collections(
7275
If ``None``, the collections are assumed to be in the current
7376
search path for Ansible.
7477
:arg dest_dir: The directory into which the documentation is written.
78+
:arg output_format: The output format.
7579
:kwarg collection_names: Optional list of collection names. If specified, only documentation
7680
for these collections will be collected and generated.
7781
:kwarg create_indexes: Whether to create the collection, namespace, and plugin indexes. By
@@ -187,6 +191,7 @@ def generate_docs_for_all_collections(
187191
dest_dir,
188192
collection_url=collection_url,
189193
collection_install=collection_install,
194+
output_format=output_format,
190195
breadcrumbs=breadcrumbs,
191196
for_official_docsite=for_official_docsite,
192197
referable_envvars=referable_envvars,
@@ -199,6 +204,7 @@ def generate_docs_for_all_collections(
199204
dest_dir,
200205
collection_url=collection_url,
201206
collection_install=collection_install,
207+
output_format=output_format,
202208
breadcrumbs=breadcrumbs,
203209
for_official_docsite=for_official_docsite,
204210
referable_envvars=referable_envvars,
@@ -212,6 +218,7 @@ def generate_docs_for_all_collections(
212218
dest_dir,
213219
collection_url=collection_url,
214220
collection_install=collection_install,
221+
output_format=output_format,
215222
for_official_docsite=for_official_docsite,
216223
referable_envvars=referable_envvars,
217224
)
@@ -223,6 +230,7 @@ def generate_docs_for_all_collections(
223230
dest_dir,
224231
collection_url=collection_url,
225232
collection_install=collection_install,
233+
output_format=output_format,
226234
for_official_docsite=for_official_docsite,
227235
referable_envvars=referable_envvars,
228236
)
@@ -239,6 +247,7 @@ def generate_docs_for_all_collections(
239247
squash_hierarchy=squash_hierarchy,
240248
extra_docs_data=extra_docs_data,
241249
link_data=link_data,
250+
output_format=output_format,
242251
breadcrumbs=breadcrumbs,
243252
for_official_docsite=for_official_docsite,
244253
referable_envvars=referable_envvars,
@@ -254,6 +263,7 @@ def generate_docs_for_all_collections(
254263
collection_install=collection_install,
255264
collection_metadata=collection_metadata,
256265
link_data=link_data,
266+
output_format=output_format,
257267
squash_hierarchy=squash_hierarchy,
258268
for_official_docsite=for_official_docsite,
259269
referable_envvars=referable_envvars,
@@ -271,6 +281,7 @@ def generate_docs_for_all_collections(
271281
collection_install=collection_install,
272282
collection_metadata=collection_metadata,
273283
link_data=link_data,
284+
output_format=output_format,
274285
squash_hierarchy=squash_hierarchy,
275286
use_html_blobs=use_html_blobs,
276287
for_official_docsite=for_official_docsite,
@@ -288,6 +299,7 @@ def generate_docs_for_all_collections(
288299
output_environment_variables(
289300
dest_dir,
290301
referenced_env_vars,
302+
output_format=output_format,
291303
squash_hierarchy=squash_hierarchy,
292304
referable_envvars=referable_envvars,
293305
)

src/antsibull_docs/cli/doc_commands/collection.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
from antsibull_core.venv import FakeVenvRunner
2222

2323
from ... import app_context
24+
from ...jinja2.environment import OutputFormat
2425
from ._build import generate_docs_for_all_collections
2526

2627
mlog = log.fields(mod=__name__)
@@ -38,7 +39,8 @@ def generate_collection_docs(collection_dir: str | None, squash_hierarchy: bool)
3839
venv,
3940
collection_dir,
4041
app_ctx.extra["dest_dir"],
41-
app_ctx.extra["collections"],
42+
OutputFormat.ANSIBLE_DOCSITE,
43+
collection_names=app_ctx.extra["collections"],
4244
create_indexes=app_ctx.indexes and not squash_hierarchy,
4345
squash_hierarchy=squash_hierarchy,
4446
breadcrumbs=app_ctx.breadcrumbs,

src/antsibull_docs/cli/doc_commands/current.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
from antsibull_core.venv import FakeVenvRunner
1212

1313
from ... import app_context
14+
from ...jinja2.environment import OutputFormat
1415
from ._build import generate_docs_for_all_collections
1516

1617
mlog = log.fields(mod=__name__)
@@ -37,6 +38,7 @@ def generate_docs() -> int:
3738
venv,
3839
app_ctx.extra["collection_dir"],
3940
app_ctx.extra["dest_dir"],
41+
OutputFormat.ANSIBLE_DOCSITE,
4042
breadcrumbs=app_ctx.breadcrumbs,
4143
use_html_blobs=app_ctx.use_html_blobs,
4244
fail_on_error=app_ctx.extra["fail_on_error"],

src/antsibull_docs/cli/doc_commands/devel.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
from antsibull_core.venv import FakeVenvRunner, VenvRunner
2323

2424
from ... import app_context
25+
from ...jinja2.environment import OutputFormat
2526
from ._build import generate_docs_for_all_collections
2627

2728
mlog = log.fields(mod=__name__)
@@ -173,6 +174,7 @@ def generate_docs() -> int:
173174
venv,
174175
collection_dir,
175176
app_ctx.extra["dest_dir"],
177+
OutputFormat.ANSIBLE_DOCSITE,
176178
breadcrumbs=app_ctx.breadcrumbs,
177179
use_html_blobs=app_ctx.use_html_blobs,
178180
fail_on_error=app_ctx.extra["fail_on_error"],

src/antsibull_docs/cli/doc_commands/plugin.py

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
from ...collection_links import CollectionLinks
2727
from ...docs_parsing import AnsibleCollectionMetadata
2828
from ...docs_parsing.fqcn import get_fqcn_parts, is_fqcn
29-
from ...jinja2.environment import doc_environment
29+
from ...jinja2.environment import OutputFormat, doc_environment
3030
from ...process_docs import normalize_plugin_info
3131
from ...utils.collection_name_transformer import CollectionNameTransformer
3232
from ...write_docs.plugins import write_plugin_rst
@@ -40,6 +40,7 @@ def generate_plugin_docs(
4040
collection_name: str,
4141
plugin: str,
4242
output_path: str,
43+
output_format: OutputFormat,
4344
) -> int:
4445
"""
4546
Render documentation for a locally installed plugin.
@@ -114,9 +115,9 @@ def generate_plugin_docs(
114115
"ansible-galaxy collection install {namespace}.{name}",
115116
)
116117
env = doc_environment(
117-
("antsibull_docs.data", "docsite"),
118118
collection_url=collection_url,
119119
collection_install=collection_install,
120+
output_format=output_format,
120121
)
121122
# Get the templates
122123
plugin_tmpl = env.get_template("plugin.rst.j2")
@@ -179,5 +180,10 @@ def generate_docs() -> int:
179180
plugin_name = ".".join([namespace, collection, plugin])
180181

181182
return generate_plugin_docs(
182-
plugin_type, plugin_name, collection_name, plugin, output_path
183+
plugin_type,
184+
plugin_name,
185+
collection_name,
186+
plugin,
187+
output_path,
188+
OutputFormat.ANSIBLE_DOCSITE,
183189
)

src/antsibull_docs/cli/doc_commands/stable.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
from antsibull_core.venv import FakeVenvRunner, VenvRunner
2424

2525
from ... import app_context
26+
from ...jinja2.environment import OutputFormat
2627
from ._build import generate_docs_for_all_collections
2728

2829
mlog = log.fields(mod=__name__)
@@ -175,6 +176,7 @@ def generate_docs() -> int:
175176
venv,
176177
collection_dir,
177178
app_ctx.extra["dest_dir"],
179+
OutputFormat.ANSIBLE_DOCSITE,
178180
breadcrumbs=app_ctx.breadcrumbs,
179181
use_html_blobs=app_ctx.use_html_blobs,
180182
fail_on_error=app_ctx.extra["fail_on_error"],

0 commit comments

Comments
 (0)