summaryrefslogtreecommitdiff
path: root/doc/build/builder
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2012-10-21 17:26:10 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2012-10-21 17:26:10 -0400
commite5fb4fec474925ba6883e899650516cd072ff35e (patch)
treef48e22081136ba52ff1ca57575608bf3f7636a71 /doc/build/builder
parent39fdc1e21a1e17150c569a5e4f7c9b0ff6517b36 (diff)
downloadsqlalchemy-e5fb4fec474925ba6883e899650516cd072ff35e.tar.gz
add support to link to changelogs and pullrequests
Diffstat (limited to 'doc/build/builder')
-rw-r--r--doc/build/builder/changelog.py56
1 files changed, 38 insertions, 18 deletions
diff --git a/doc/build/builder/changelog.py b/doc/build/builder/changelog.py
index 24ceaeaa3..1d24d486c 100644
--- a/doc/build/builder/changelog.py
+++ b/doc/build/builder/changelog.py
@@ -143,29 +143,39 @@ class ChangeLogDirective(EnvDirective, Directive):
topsection.append(nodes.Text("no release date"))
return topsection
+
def _render_rec(self, rec, section, cat, append_sec):
para = rec['node'].deepcopy()
+
+ #targetid = "%s-%d" % (self.type_, self.env.new_serialno(self.type_))
+ #targetnode = nodes.target('', '', ids=[targetid])
+ #para.insert(0, targetnode)
+
insert_ticket = nodes.paragraph('')
para.append(insert_ticket)
- for i, ticket in enumerate(rec['tickets']):
- if i > 0:
- insert_ticket.append(nodes.Text(", ", ", "))
- else:
- insert_ticket.append(nodes.Text(" ", " "))
- refuri = self.env.config.changelog_render_ticket
- if refuri is not None:
- refuri = refuri % ticket
- insert_ticket.append(
- nodes.reference('', '',
- nodes.Text("#%s" % ticket, "#%s" % ticket),
- refuri=refuri
- )
- )
- else:
- insert_ticket.append(
- nodes.Text("#%s" % ticket, "#%s" % ticket)
- )
+ i = 0
+ for collection, render, prefix in (
+ (rec['tickets'], self.env.config.changelog_render_ticket, "#%s"),
+ (rec['pullreq'], self.env.config.changelog_render_pullreq,
+ "pull request %s"),
+ (rec['changeset'], self.env.config.changelog_render_changeset, "r%s"),
+ ):
+ for refname in collection:
+ if i > 0:
+ insert_ticket.append(nodes.Text(", ", ", "))
+ else:
+ insert_ticket.append(nodes.Text(" ", " "))
+ i += 1
+ if render is not None:
+ refuri = render % refname
+ node = nodes.reference('', '',
+ nodes.Text(prefix % refname, prefix % refname),
+ refuri=refuri
+ )
+ else:
+ node = nodes.Text(prefix % refname, prefix % refname)
+ insert_ticket.append(node)
if rec['tags']:
tag_node = nodes.strong('',
@@ -199,6 +209,8 @@ class ChangeDirective(EnvDirective, Directive):
rec = {
'tags': set(_comma_list(content.get('tags', ''))).difference(['']),
'tickets': set(_comma_list(content.get('tickets', ''))).difference(['']),
+ 'pullreq': set(_comma_list(content.get('pullreq', ''))).difference(['']),
+ 'changeset': set(_comma_list(content.get('changeset', ''))).difference(['']),
'node': p,
'type': self.type_,
"title": content.get("title", None)
@@ -227,3 +239,11 @@ def setup(app):
None,
'env'
)
+ app.add_config_value("changelog_render_pullreq",
+ None,
+ 'env'
+ )
+ app.add_config_value("changelog_render_changeset",
+ None,
+ 'env'
+ )