File tree Expand file tree Collapse file tree 1 file changed +15
-2
lines changed Expand file tree Collapse file tree 1 file changed +15
-2
lines changed Original file line number Diff line number Diff line change 3
3
from pygments .formatters import html
4
4
from pygments .lexers import get_lexer_by_name
5
5
6
+ from bolt .utils .text import slugify
7
+
8
+
9
+ class PagesRenderer (mistune .HTMLRenderer ):
10
+ def heading (self , text , level , ** attrs ):
11
+ """Automatically add an ID to headings if one is not provided."""
12
+
13
+ if "id" not in attrs :
14
+ attrs ["id" ] = slugify (text )
15
+
16
+ return super ().heading (text , level , ** attrs )
6
17
7
- class HighlightRenderer (mistune .HTMLRenderer ):
8
18
def block_code (self , code , info = None ):
19
+ """Highlight code blocks using Pygments."""
20
+
9
21
if info :
10
22
lexer = get_lexer_by_name (info , stripall = True )
11
23
formatter = html .HtmlFormatter ()
12
24
return highlight (code , lexer , formatter )
25
+
13
26
return "<pre><code>" + mistune .escape (code ) + "</code></pre>"
14
27
15
28
16
29
def render_markdown (content ):
17
- renderer = HighlightRenderer (escape = False )
30
+ renderer = PagesRenderer (escape = False )
18
31
markdown = mistune .create_markdown (
19
32
renderer = renderer , plugins = ["strikethrough" , "table" ]
20
33
)
You can’t perform that action at this time.
0 commit comments