Skip to content

Commit 06ec395

Browse files
authored
Merge pull request #1170 from sphinx-contrib/adjust-warning-node-to-note-macro
Adjust rst warning directive to a confluence note type
2 parents f6d01f7 + 9d96386 commit 06ec395

File tree

7 files changed

+73
-5
lines changed

7 files changed

+73
-5
lines changed

sphinxcontrib/confluencebuilder/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -301,6 +301,8 @@ def setup(app):
301301
cm.add_conf_bool('confluence_mermaid_html_macro', 'confluence')
302302

303303
# (configuration - undocumented)
304+
# Allow overriding which admonition type is used
305+
cm.add_conf('confluence_adv_admonition_overrides', 'confluence')
304306
# Enablement for bulk archiving of packages (for premium environments).
305307
cm.add_conf_bool('confluence_adv_bulk_archiving')
306308
# Disable any delays when publishing property updates on Cloud

sphinxcontrib/confluencebuilder/config/checks.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,12 @@ def validate_configuration(builder):
8282

8383
# ##################################################################
8484

85+
# confluence_adv_admonition_overrides
86+
validator.conf('confluence_adv_admonition_overrides') \
87+
.dict_str_str()
88+
89+
# ##################################################################
90+
8591
# confluence_adv_bulk_archiving
8692
validator.conf('confluence_adv_bulk_archiving') \
8793
.bool()

sphinxcontrib/confluencebuilder/storage/translator.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1011,6 +1011,10 @@ def depart_attribution(self, node):
10111011
def _visit_admonition(self, node, atype, title=None, logo=True):
10121012
collapsible = node.get('collapsible', False)
10131013

1014+
ato = self.builder.config.confluence_adv_admonition_overrides
1015+
if ato:
1016+
atype = ato.get(node.__class__.__name__, atype)
1017+
10141018
self.body.append(self.start_ac_macro(node, atype))
10151019
if title and not collapsible:
10161020
self.body.append(self.build_ac_param(node, 'title', title))
@@ -1138,7 +1142,7 @@ def depart_admonition(self, node):
11381142
depart_tip = _depart_admonition
11391143
visit_todo_node = _visit_todo_node
11401144
depart_todo_node = depart_admonition
1141-
visit_warning = _visit_warning
1145+
visit_warning = _visit_note
11421146
depart_warning = _depart_admonition
11431147

11441148
# ------
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
extensions = [
2+
'sphinxcontrib.confluencebuilder',
3+
]
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
Admonitions
2+
###########
3+
4+
.. admonition:: my-title
5+
6+
admonition content
7+
8+
.. attention::
9+
10+
attention content
11+
12+
.. caution::
13+
14+
caution content
15+
16+
.. danger::
17+
18+
danger content
19+
20+
.. error::
21+
22+
error content
23+
24+
.. hint::
25+
26+
hint content
27+
28+
.. important::
29+
30+
important content
31+
32+
.. note::
33+
34+
note content
35+
36+
.. tip::
37+
38+
tip content
39+
40+
.. warning::
41+
42+
warning content
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
[tox]
2+
package_root={toxinidir}{/}..{/}..{/}..
3+
4+
[testenv]
5+
commands =
6+
{envpython} -m tests.test_sample {posargs}
7+
setenv =
8+
PYTHONDONTWRITEBYTECODE=1
9+
TOX_INI_DIR={toxinidir}
10+
passenv = *
11+
use_develop = true

tests/unit-tests/test_rst_admonitions.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,17 +27,17 @@ def test_storage_rst_admonitions_default(self):
2727
self._verify_storage_tags(data, 'important', 'warning')
2828
self._verify_storage_tags(data, 'note', 'info')
2929
self._verify_storage_tags(data, 'tip', 'tip')
30-
self._verify_storage_tags(data, 'warning', 'warning')
30+
self._verify_storage_tags(data, 'warning', 'note')
3131

3232
macro = self._verify_storage_tags(data, 'admonition', 'info')
3333
title_param = macro.find('ac:parameter', {'ac:name': 'title'})
3434
self.assertIsNotNone(title_param,
35-
'admonition is missing a title paramater')
35+
'admonition is missing a title parameter')
3636
self.assertEqual(title_param.text, 'my-title',
3737
'admonition title value does not match expected')
3838
icon_param = macro.find('ac:parameter', {'ac:name': 'icon'})
3939
self.assertIsNotNone(icon_param,
40-
'admonition is missing a icon paramater')
40+
'admonition is missing a icon parameter')
4141
self.assertEqual(icon_param.text, 'false',
4242
'admonition icon value is not disabled')
4343

@@ -55,7 +55,7 @@ def test_storage_rst_admonitions_v2(self):
5555
self._verify_storage_tags(data, 'important', 'warning')
5656
self._verify_storage_tags(data, 'note', 'info')
5757
self._verify_storage_tags(data, 'tip', 'tip')
58-
self._verify_storage_tags(data, 'warning', 'warning')
58+
self._verify_storage_tags(data, 'warning', 'note')
5959

6060
# v2 admonition is stored in a adf panel node
6161
# - adf nodes are wrapped in extension tags

0 commit comments

Comments
 (0)