diff options
author | Rangi <remy.oukaour+rangi42@gmail.com> | 2018-07-04 11:56:54 -0400 |
---|---|---|
committer | Rangi <remy.oukaour+rangi42@gmail.com> | 2018-07-04 11:56:54 -0400 |
commit | 8c8082574f7929be1515a35c3c12c9337525a3a1 (patch) | |
tree | d7f8c6a3b1fd8e90493eec80fb77cc1fea55be0c /toc.py | |
parent | 5f3a225e78645976f3fe853f4068f13e43eb0528 (diff) |
TOCs
Diffstat (limited to 'toc.py')
-rw-r--r-- | toc.py | 8 |
1 files changed, 7 insertions, 1 deletions
@@ -17,6 +17,7 @@ valid_toc_headings = {'## TOC', '##TOC'} TocItem = namedtuple('TocItem', ['name', 'anchor', 'level'])
punctuation_regexp = re.compile(r'[^\w\- ]+')
+numbered_heading_regexp = re.compile(r'^[0-9]+\. ')
def name_to_anchor(name):
# GitHub's algorithm for generating anchors from headings
@@ -49,7 +50,12 @@ def toc_string(toc_items): lines = ['## %s' % toc_name, '']
for name, anchor, level in toc_items:
padding = ' ' * level
- line = '%s- [%s](#%s)' % (padding, name, anchor)
+ if re.match(numbered_heading_regexp, name):
+ number, name = name.split('.', 1)
+ name = name.lstrip()
+ line = '%s%s. [%s](#%s)' % (padding, number, name, anchor)
+ else:
+ line = '%s- [%s](#%s)' % (padding, name, anchor)
lines.append(line)
return '\n'.join(lines) + '\n'
|