Skip to content
Snippets Groups Projects
Unverified Commit 73317e3c authored by Ezio Melotti's avatar Ezio Melotti Committed by GitHub
Browse files

[3.7] gh-91888: add a `:flag_gh:` role to the documentation (GH-91889) (GH-91937)


Co-authored-by: default avatarHugo van Kemenade <hugovk@users.noreply.github.com&gt;.>
Co-authored-by: default avatarEzio Melotti <ezio.melotti@gmail.com>
(cherry picked from commit f7641a2f)
parent 5da1197d
No related branches found
No related tags found
No related merge requests found
......@@ -36,6 +36,7 @@
ISSUE_URI = 'https://bugs.python.org/issue?@action=redirect&bpo=%s'
GH_ISSUE_URI = 'https://github.com/python/cpython/issues/%s'
SOURCE_URI = 'https://github.com/python/cpython/tree/3.7/%s'
# monkey-patch reST parser to disable alphabetic and roman enumerated lists
......@@ -81,11 +82,33 @@ def new_depart_literal_block(self, node):
def issue_role(typ, rawtext, text, lineno, inliner, options={}, content=[]):
issue = utils.unescape(text)
# sanity check: there are no bpo issues within these two values
if 47261 < int(issue) < 400000:
msg = inliner.reporter.error(f'The BPO ID {text!r} seems too high -- '
'use :gh:`...` for GitHub IDs', line=lineno)
prb = inliner.problematic(rawtext, rawtext, msg)
return [prb], [msg]
text = 'bpo-' + issue
refnode = nodes.reference(text, text, refuri=ISSUE_URI % issue)
return [refnode], []
# Support for marking up and linking to GitHub issues
def gh_issue_role(typ, rawtext, text, lineno, inliner, options={}, content=[]):
issue = utils.unescape(text)
# sanity check: all GitHub issues have ID >= 32426
# even though some of them are also valid BPO IDs
if int(issue) < 32426:
msg = inliner.reporter.error(f'The GitHub ID {text!r} seems too low -- '
'use :issue:`...` for BPO IDs', line=lineno)
prb = inliner.problematic(rawtext, rawtext, msg)
return [prb], [msg]
text = 'gh-' + issue
refnode = nodes.reference(text, text, refuri=GH_ISSUE_URI % issue)
return [refnode], []
# Support for linking to Python source files easily
def source_role(typ, rawtext, text, lineno, inliner, options={}, content=[]):
......@@ -431,6 +454,7 @@ def parse_pdb_command(env, sig, signode):
def setup(app):
app.add_role('issue', issue_role)
app.add_role('gh', gh_issue_role)
app.add_role('source', source_role)
app.add_directive('impl-detail', ImplementationDetail)
app.add_directive('availability', Availability)
......
Add a new ``gh`` role to the documentation to link to GitHub issues.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment