Skip to content
Snippets Groups Projects
Commit 9f05f7f9 authored by Raniere Silva's avatar Raniere Silva
Browse files

Add id to glossary entry

This is needed to enable users jump to glossary entries.
parent 7df94bf9
Branches
Tags
No related merge requests found
#!/usr/bin/env python
"""Pandoc filter to convert add ids to glossary entries.
Usage:
pandoc source.md --filter=id4glossary.py --output=output.html
"""
import pandocfilters as pf
def normalize_keyword(keyword):
"""Normalize keyword for became id
- Replace white space with '-'
- Convert to lowercase"""
return keyword.lower().replace(' ', '-')
def keyword2html(keyword_node):
"""Return HTML version of keyword with id."""
keyword = ' '.join([word['c'] for word in keyword_node if word['t'] == 'Str'])
id = normalize_keyword(keyword)
return [{"t": "Span",
"c": [[id, [],[]],
keyword_node]}]
def id4glossary(key, value, format, meta):
"""Add id to keywords at glossary."""
if "subtitle" in meta and \
''.join([string['c'] for string in meta["subtitle"]['c']]) == 'Reference':
if key == "DefinitionList":
for definition in value:
definition[0] = keyword2html(definition[0])
return {"t": key,
"c": value}
if __name__ == '__main__':
pf.toJSONFilter(id4glossary)
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment