Skip to content

Commit 58d8dde

Browse files
committed
Allow setting release-specific navbar link mode
For non-main documentation (e.g., `mpl-third-party`), we want the navbar to use absolute links (`https://matplotlib.org/...`) for local development, but when released on the website, it should use `/stable/...` links.
1 parent e0d42e5 commit 58d8dde

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

mpl_sphinx_theme/__init__.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,16 @@ def get_html_theme_path():
3333

3434
def setup_html_page_context(app, pagename, templatename, context, doctree):
3535
"""Add a mpl_path template function."""
36+
# Pick link setting based on release mode.
3637
navbar_links = context['theme_navbar_links']
37-
if navbar_links not in ['internal', 'absolute', 'server-stable']:
38+
if not isinstance(navbar_links, tuple):
39+
navbar_links = (navbar_links, navbar_links)
40+
if (len(navbar_links) != 2 or
41+
any(opt not in ['internal', 'absolute', 'server-stable']
42+
for opt in navbar_links)):
3843
raise ValueError(f'Invalid navbar_links theme option: {navbar_links}')
44+
navbar_links = (navbar_links[1] if app.tags.has('release') else
45+
navbar_links[0])
3946

4047
def mpl_path(path):
4148
if navbar_links == 'internal':

0 commit comments

Comments
 (0)