Skip to content

Commit c0a892a

Browse files
Merge pull request #711 from gaoflow/fix/header-ids-html-entity-decode
fix: decode HTML entities before slugifying header IDs
2 parents ee81a6b + 64948d2 commit c0a892a

4 files changed

Lines changed: 13 additions & 1 deletion

File tree

lib/markdown2.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@
116116
__author__ = "Trent Mick"
117117

118118
import argparse
119+
import html
119120
import logging
120121
import re
121122
import sys
@@ -1578,7 +1579,7 @@ def header_id_from_text(self,
15781579
None to not have an id attribute and to exclude this header from
15791580
the TOC (if the "toc" extra is specified).
15801581
"""
1581-
header_id = _slugify(text)
1582+
header_id = _slugify(html.unescape(text))
15821583
if prefix and isinstance(prefix, str):
15831584
header_id = prefix + '-' + header_id
15841585

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<h1 id="escaped-lt">&lt;escaped-lt</h1>
2+
3+
<h1 id="rd-notes">R&amp;D Notes</h1>
4+
5+
<h1 id="normal-header">Normal Header</h1>
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"extras": ["header-ids"]}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# &lt;escaped-lt
2+
3+
# R&amp;D Notes
4+
5+
# Normal Header

0 commit comments

Comments
 (0)