summaryrefslogtreecommitdiff
path: root/sphinx/ext/extlinks.py
diff options
context:
space:
mode:
Diffstat (limited to 'sphinx/ext/extlinks.py')
-rw-r--r--sphinx/ext/extlinks.py17
1 files changed, 14 insertions, 3 deletions
diff --git a/sphinx/ext/extlinks.py b/sphinx/ext/extlinks.py
index dbd55e4b4..29bfe928f 100644
--- a/sphinx/ext/extlinks.py
+++ b/sphinx/ext/extlinks.py
@@ -8,11 +8,11 @@
This adds a new config value called ``extlinks`` that is created like this::
- extlinks = {'exmpl': ('http://example.com/%s.html', prefix), ...}
+ extlinks = {'exmpl': ('https://example.invalid/%s.html', prefix), ...}
Now you can use e.g. :exmpl:`foo` in your documents. This will create a
- link to ``http://example.com/foo.html``. The link caption depends on the
- *prefix* value given:
+ link to ``https://example.invalid/foo.html``. The link caption depends on
+ the *prefix* value given:
- If it is ``None``, the caption will be the full URL.
- If it is a string (empty or not), the caption will be the prefix prepended
@@ -30,9 +30,18 @@ from six import iteritems
import sphinx
from sphinx.util.nodes import split_explicit_title
+if False:
+ # For type annotation
+ from typing import Any, Dict, List, Tuple # NOQA
+ from docutils.parsers.rst.states import Inliner # NOQA
+ from sphinx.application import Sphinx # NOQA
+ from sphinx.util.typing import RoleFunction # NOQA
+
def make_link_role(base_url, prefix):
+ # type: (unicode, unicode) -> RoleFunction
def role(typ, rawtext, text, lineno, inliner, options={}, content=[]):
+ # type: (unicode, unicode, unicode, int, Inliner, Dict, List[unicode]) -> Tuple[List[nodes.Node], List[nodes.Node]] # NOQA
text = utils.unescape(text)
has_explicit_title, title, part = split_explicit_title(text)
try:
@@ -54,11 +63,13 @@ def make_link_role(base_url, prefix):
def setup_link_roles(app):
+ # type: (Sphinx) -> None
for name, (base_url, prefix) in iteritems(app.config.extlinks):
app.add_role(name, make_link_role(base_url, prefix))
def setup(app):
+ # type: (Sphinx) -> Dict[unicode, Any]
app.add_config_value('extlinks', {}, 'env')
app.connect('builder-inited', setup_link_roles)
return {'version': sphinx.__display_version__, 'parallel_read_safe': True}