summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/build/builder/changelog.py26
-rw-r--r--doc/build/static/docs.css8
2 files changed, 31 insertions, 3 deletions
diff --git a/doc/build/builder/changelog.py b/doc/build/builder/changelog.py
index 1d24d486c..023d11818 100644
--- a/doc/build/builder/changelog.py
+++ b/doc/build/builder/changelog.py
@@ -5,6 +5,7 @@ from docutils import nodes
import textwrap
import itertools
import collections
+import md5
def _comma_list(text):
return re.split(r"\s*,\s*", text.strip())
@@ -147,9 +148,19 @@ class ChangeLogDirective(EnvDirective, Directive):
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)
+ text = _text_rawsource_from_node(para)
+ if len(text) > 50:
+ targetid = "%s-%s" % (self.type_,
+ md5.md5(text[0:100].encode('ascii', 'ignore')
+ ).hexdigest())
+ targetnode = nodes.target('', '', ids=[targetid])
+ para.insert(0, targetnode)
+ permalink = nodes.reference('', '',
+ nodes.Text("(link)", "(link)"),
+ refid=targetid,
+ classes=['changeset-link']
+ )
+ para.append(permalink)
insert_ticket = nodes.paragraph('')
para.append(insert_ticket)
@@ -224,6 +235,15 @@ class ChangeDirective(EnvDirective, Directive):
return []
+def _text_rawsource_from_node(node):
+ src = []
+ stack = [node]
+ while stack:
+ n = stack.pop(0)
+ if isinstance(n, nodes.Text):
+ src.append(n.rawsource)
+ stack.extend(n.children)
+ return "".join(src)
def _rst2sphinx(text):
return StringList(
diff --git a/doc/build/static/docs.css b/doc/build/static/docs.css
index a5a0cba8d..1243c2a65 100644
--- a/doc/build/static/docs.css
+++ b/doc/build/static/docs.css
@@ -305,6 +305,14 @@ a.headerlink:hover {
background-color: #900;
}
+/* changeset stuff */
+
+#docs-container a.changeset-link {
+ font-size: 0.8em;
+ padding: 0 4px 0 4px;
+ text-decoration: none;
+}
+
/* docutils-specific elements */
th.field-name {