1
0
This repository has been archived on 2025-03-06. You can view files and clone it, but cannot push or open issues or pull requests.

40 lines
1.7 KiB
Python

from docutils import nodes
def setup(app):
app.add_role('bugref', bugref_role)
app.add_role('idebugref', idebugref_role)
app.add_role('docbugref', docbugref_role)
return {'version': '0.1'} # identifies the version of our extension
def bugref_role(name, rawtext, text, lineno, inliner, options={}, content=[]):
issue_num = int(text)
if issue_num <= 0:
msg = inliner.reporter.error(
'"%s" is an invalid issue number' % text, line=lineno)
prb = inliner.problematic(rawtext, rawtext, msg)
return [prb], [msg]
node = nodes.reference(rawtext, 'issue ' + str(issue_num), refuri='https://github.com/minizinc/libminizinc/issues/'+str(issue_num))
return [node], []
def idebugref_role(name, rawtext, text, lineno, inliner, options={}, content=[]):
issue_num = int(text)
if issue_num <= 0:
msg = inliner.reporter.error(
'"%s" is an invalid issue number' % text, line=lineno)
prb = inliner.problematic(rawtext, rawtext, msg)
return [prb], [msg]
node = nodes.reference(rawtext, 'issue ' + str(issue_num), refuri='https://github.com/minizinc/minizincide/issues/'+str(issue_num))
return [node], []
def docbugref_role(name, rawtext, text, lineno, inliner, options={}, content=[]):
issue_num = int(text)
if issue_num <= 0:
msg = inliner.reporter.error(
'"%s" is an invalid issue number' % text, line=lineno)
prb = inliner.problematic(rawtext, rawtext, msg)
return [prb], [msg]
node = nodes.reference(rawtext, 'issue ' + str(issue_num), refuri='https://github.com/minizinc/minizinc-doc/issues/'+str(issue_num))
return [node], []