40 lines
1.7 KiB
Python
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], []
|
|
|