-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathheaderid.py
More file actions
19 lines (18 loc) · 867 Bytes
/
headerid.py
File metadata and controls
19 lines (18 loc) · 867 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
from pelican import readers
from pelican.readers import PelicanHTMLTranslator
from pelican import signals
from docutils import nodes
def register():
class HeaderIDPatchedPelicanHTMLTranslator(PelicanHTMLTranslator):
def depart_title(self, node):
close_tag = self.context[-1]
parent = node.parent
if isinstance(parent, nodes.section) and parent.hasattr('ids') and parent['ids']:
anchor_name = parent['ids'][0]
# add permalink anchor
if close_tag.startswith('</h'):
self.body.append(
'<a class="headerlink" href="#%s" title="Permalink to this headline">*</a>' % anchor_name
)
PelicanHTMLTranslator.depart_title(self, node)
readers.PelicanHTMLTranslator = HeaderIDPatchedPelicanHTMLTranslator