Skip to content

Commit 7c6575f

Browse files
committed
Remove static banner generation
1 parent c4e2f67 commit 7c6575f

8 files changed

Lines changed: 62 additions & 236 deletions

File tree

README.rst

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ Customization
7272

7373
Some customization can be done using the ``conf.py`` file of your Sphinx project:
7474

75-
versionwarning_default_admonition_type (string)
75+
versionwarning_admonition_type (string)
7676
type of admonition for the banner (warning, admonition or note)
7777

7878
versionwarning_default_message (string)
@@ -81,9 +81,6 @@ versionwarning_default_message (string)
8181
versionwarning_messages (dict)
8282
mapping between versions and messages for its banners
8383

84-
versionwarning_message_placeholder (string)
85-
text to be replaced by the version number link from the message
86-
8784
versionwarning_project_slug (string)
8885
slug of the project under Read the Docs (default to ``READTHEDOCS_PROJECT`` environment variable)
8986

@@ -102,9 +99,6 @@ versionwarning_banner_id_div (string)
10299
versionwarning_body_default_selector (string)
103100
jQuery selector to find the body element in the page
104101

105-
versionwarning_body_extra_selector (string)
106-
jQuery selector to find the body element in the page if ``versionwarning_body_default_selector`` wasn't found
107-
108102

109103
How to contribute?
110104
------------------

versionwarning/__init__.py

Lines changed: 1 addition & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -1,56 +1,3 @@
11
# -*- coding: utf-8 -*-
2-
32
name = 'versionwarning'
4-
version = '0.2.0'
5-
6-
7-
def setup(app):
8-
import os
9-
import sphinx
10-
from .signals import process_version_warning_banner, generate_versionwarning_data_json
11-
12-
default_message = 'You are not reading the most up to date version of this documentation. {newest} is the newest version.'
13-
14-
banner_html = '''
15-
<div id="{id_div}" class="admonition warning">
16-
<p class="first admonition-title">{banner_title}</p>
17-
<p class="last">
18-
{message}
19-
</p>
20-
</div>'''.format(
21-
id_div='version-warning-banner',
22-
banner_title='Warning',
23-
message=default_message.format(newest='<a href="#"></a>'),
24-
)
25-
26-
app.add_config_value('versionwarning_message_placeholder', '{newest}', 'html')
27-
app.add_config_value('versionwarning_default_admonition_type', 'warning', 'html')
28-
app.add_config_value('versionwarning_default_message', default_message, 'html')
29-
app.add_config_value('versionwarning_messages', {}, 'html')
30-
31-
app.add_config_value('versionwarning_api_url', 'https://readthedocs.org/api/v2/', 'html')
32-
app.add_config_value('versionwarning_banner_html', banner_html, 'html')
33-
app.add_config_value('versionwarning_banner_id_div', 'version-warning-banner', 'html')
34-
app.add_config_value('versionwarning_body_default_selector', 'div.body', 'html')
35-
app.add_config_value('versionwarning_body_extra_selector', 'div.document', 'html')
36-
app.add_config_value('versionwarning_project_slug', os.environ.get('READTHEDOCS_PROJECT', None), 'html')
37-
app.add_config_value('versionwarning_project_version', os.environ.get('READTHEDOCS_VERSION', None), 'html')
38-
39-
app.connect('doctree-resolved', process_version_warning_banner)
40-
41-
if sphinx.version_info >= (1, 8):
42-
# ``config-initied`` requires Sphinx >= 1.8
43-
app.connect('config-inited', generate_versionwarning_data_json)
44-
45-
# ``add_js_file`` requires Sphinx >= 1.8
46-
app.add_js_file('js/versionwarning.js')
47-
else:
48-
app.connect('builder-inited', generate_versionwarning_data_json)
49-
app.add_javascript('js/versionwarning.js')
50-
51-
return {
52-
'version': version,
53-
'env_version': 1,
54-
'parallel_read_safe': True,
55-
'parallel_write_safe': True,
56-
}
3+
version = '1.0.0'

versionwarning/_static/js/versionwarning.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

versionwarning/_static/js/versionwarning.src.js

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,6 @@ function injectVersionWarningBanner(running_version, version, config) {
1010
.text(version.slug);
1111

1212
var body = $(config.banner.body_default_selector);
13-
if (!body.length) {
14-
body = $(config.banner.body_extra_selector);
15-
}
1613
body.prepend(warning);
1714
}
1815

versionwarning/banner.py

Lines changed: 0 additions & 105 deletions
This file was deleted.

versionwarning/extension.py

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
# -*- coding: utf-8 -*-
2+
import os
3+
import sphinx
4+
from versionwarning import version
5+
from .signals import generate_versionwarning_data_json
6+
7+
8+
def setup(app):
9+
default_message = 'You are not reading the most up to date version of this documentation. {newest} is the newest version.'
10+
11+
banner_html = '''
12+
<div id="{id_div}" class="admonition {admonition_type}">
13+
<p class="first admonition-title">{banner_title}</p>
14+
<p class="last">
15+
{message}
16+
</p>
17+
</div>'''
18+
19+
app.add_config_value('versionwarning_message_placeholder', 'newest', 'html')
20+
app.add_config_value('versionwarning_admonition_type', 'warning', 'html')
21+
app.add_config_value('versionwarning_default_message', default_message, 'html')
22+
app.add_config_value('versionwarning_messages', {}, 'html')
23+
24+
app.add_config_value('versionwarning_api_url', 'https://readthedocs.org/api/v2/', 'html')
25+
app.add_config_value('versionwarning_banner_html', banner_html, 'html')
26+
app.add_config_value('versionwarning_banner_id_div', 'version-warning-banner', 'html')
27+
app.add_config_value('versionwarning_banner_title', 'Warning', 'html')
28+
app.add_config_value('versionwarning_body_default_selector', 'div.body', 'html')
29+
app.add_config_value('versionwarning_project_slug', os.environ.get('READTHEDOCS_PROJECT', None), 'html')
30+
app.add_config_value('versionwarning_project_version', os.environ.get('READTHEDOCS_VERSION', None), 'html')
31+
32+
if sphinx.version_info >= (1, 8):
33+
# ``config-initied`` requires Sphinx >= 1.8
34+
app.connect('config-inited', generate_versionwarning_data_json)
35+
36+
# ``add_js_file`` requires Sphinx >= 1.8
37+
app.add_js_file('js/versionwarning.js')
38+
else:
39+
app.connect('builder-inited', generate_versionwarning_data_json)
40+
app.add_javascript('js/versionwarning.js')
41+
42+
return {
43+
'version': version,
44+
'env_version': 1,
45+
'parallel_read_safe': True,
46+
'parallel_write_safe': True,
47+
}

versionwarning/readthedocs.py

Lines changed: 0 additions & 48 deletions
This file was deleted.

versionwarning/signals.py

Lines changed: 12 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,12 @@
11
# -*- coding: utf-8 -*-
22

3-
from docutils import nodes
43
import json
54
import os
65

7-
from .banner import VersionWarningBanner
86

97
STATIC_PATH = os.path.join(os.path.dirname(__file__), '_static')
108

119

12-
def process_version_warning_banner(app, doctree, fromdocname):
13-
"""
14-
Insert an ``admonition`` with a custom/general message.
15-
"""
16-
17-
banner = VersionWarningBanner(app, doctree)
18-
for document in doctree.traverse(nodes.document):
19-
banner = banner.get_banner_node()
20-
if isinstance(banner, nodes.Admonition):
21-
document.insert(0, banner)
22-
23-
2410
def generate_versionwarning_data_json(app, **kwargs):
2511
"""
2612
Generate the ``versionwarning-data.json`` file.
@@ -40,23 +26,31 @@ def generate_versionwarning_data_json(app, **kwargs):
4026
if config is None:
4127
config = app.config
4228

29+
banner_html = config.versionwarning_banner_html.format(
30+
id_div=config.versionwarning_banner_id_div,
31+
banner_title=config.versionwarning_banner_title,
32+
message=config.versionwarning_default_message.format(
33+
**{config.versionwarning_message_placeholder: '<a href="#"></a>'},
34+
),
35+
admonition_type=config.versionwarning_admonition_type,
36+
)
37+
4338
data = json.dumps({
4439
'meta': {
4540
'api_url': config.versionwarning_api_url,
4641
},
4742
'banner': {
48-
'html': config.versionwarning_banner_html,
43+
'html': banner_html,
4944
'id_div': config.versionwarning_banner_id_div,
5045
'body_default_selector': config.versionwarning_body_default_selector,
51-
'body_extra_selector': config.versionwarning_body_extra_selector,
5246
},
5347
'project': {
5448
'slug': config.versionwarning_project_slug,
5549
},
5650
'version': {
57-
'slug': config.version,
51+
'slug': config.versionwarning_project_version,
5852
},
59-
})
53+
}, indent=4)
6054

6155
data_path = os.path.join(STATIC_PATH, 'data')
6256
if not os.path.exists(data_path):

0 commit comments

Comments
 (0)