Skip to content

Commit 12bc237

Browse files
authored
Merge pull request #1128 from sphinx-contrib/deprecate-page-specific-editor-overrides
flag page-specific editor overrides as deprecated
2 parents 9be5196 + 52c25d4 commit 12bc237

File tree

8 files changed

+42
-8
lines changed

8 files changed

+42
-8
lines changed

doc/_themes/sphinx13b/static/sphinx13b.css

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -438,6 +438,10 @@ div.viewcode-block:target {
438438
border-bottom: 1px solid #ac9;
439439
}
440440

441+
span.deprecated {
442+
font-weight: bold;
443+
}
444+
441445
.contentstable {
442446
margin-left: 30px;
443447
margin: 0 auto;

doc/directives.rst

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,11 @@ Common
214214
.. rst:directive:option:: editor: value
215215
:type: v1, v2
216216
217+
.. deprecated:: 2.14
218+
219+
Support for page-specific editor overrides will be removed in 2026
220+
as Confluence Cloud removes support for the ``v1`` editor.
221+
217222
Pages are publish with the editor type configured through the
218223
:lref:`confluence_editor` option. However, users can override the
219224
editor for a specific page using the ``editor`` metadata option.

sphinxcontrib/confluencebuilder/builder.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -954,6 +954,15 @@ def _extract_metadata(self, docname, doctree):
954954
else:
955955
metadata[k] = v
956956

957+
if k == 'editor':
958+
msg = 'page-specific editor overrides are deprecated'
959+
if node.source:
960+
lpf = f'#{node.line}' if node.line else ''
961+
self.warn(f'{msg}: {node.source}{lpf}',
962+
subtype='deprecated')
963+
else:
964+
self.warn(f'{msg}: {docname}', subtype='deprecated')
965+
957966
node.parent.remove(node)
958967

959968
def _find_title_element(self, doctree):
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
confluence metadata
2+
-------------------
3+
4+
.. confluence_metadata::
5+
:editor: v2

tests/unit-tests/datasets/metadata/index.rst

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,5 @@ confluence metadata
22
-------------------
33

44
.. confluence_metadata::
5-
:editor: v2
65
:full-width: true
76
:labels: tag-a tag-c

tests/unit-tests/test_confluence_metadata.py

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,6 @@ def test_confluence_metadata_directive_expected(self):
2323
doc_metadata = builder_metadata['index']
2424
self.assertTrue(doc_metadata)
2525

26-
# verify expected editor override
27-
self.assertTrue('editor' in doc_metadata)
28-
editor = doc_metadata['editor']
29-
self.assertEqual(editor, 'v2')
30-
3126
# verify expected full-width override
3227
self.assertTrue('fullWidth' in doc_metadata)
3328
editor = doc_metadata['fullWidth']
@@ -40,6 +35,23 @@ def test_confluence_metadata_directive_expected(self):
4035
self.assertIn('tag-a', labels)
4136
self.assertIn('tag-c', labels)
4237

38+
def test_confluence_metadata_directive_legacy(self):
39+
dataset = self.datasets / 'metadata-legacy'
40+
with self.prepare(dataset, relax=True) as app:
41+
app.build()
42+
builder_metadata = app.builder.metadata
43+
44+
self.assertTrue(builder_metadata)
45+
self.assertTrue('index' in builder_metadata)
46+
47+
doc_metadata = builder_metadata['index']
48+
self.assertTrue(doc_metadata)
49+
50+
# verify expected editor override
51+
self.assertTrue('editor' in doc_metadata)
52+
editor = doc_metadata['editor']
53+
self.assertEqual(editor, 'v2')
54+
4355
@setup_builder('html')
4456
def test_html_confluence_metadata_directive_ignore(self):
4557
with self.prepare(self.dataset, relax=True) as app:

tests/unit-tests/test_local_toc.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ def setUpClass(cls):
1515

1616
@setup_builder('confluence')
1717
def test_storage_local_toc(self):
18-
out_dir = self.build(self.dataset)
18+
out_dir = self.build(self.dataset, relax=True)
1919

2020
with parse('rst-v1', out_dir) as data:
2121
# for v1, no a-tags

tests/unit-tests/test_references_confluence.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ def setUpClass(cls):
3232

3333
@setup_builder('confluence')
3434
def test_storage_references_confluence(self):
35-
out_dir = self.build(self.dataset)
35+
out_dir = self.build(self.dataset, relax=True)
3636

3737
# expected page names
3838
rst_v1_first_name = 'reStructuredText v1 First'

0 commit comments

Comments
 (0)