about summary refs log tree commit diff stats
path: root/filters
diff options
context:
space:
mode:
authorChristian Hesse2018-07-13 21:44:50 +0200
committerChristian Hesse2018-08-28 14:37:19 +0200
commitb0fc647fe61c19338aec65ffcab513cc84599b18 (patch)
tree88173f5f4f234f8a8e7a99fd65fce6e16dbd1750 /filters
parentBump version. (diff)
downloadcgit-b0fc647fe61c19338aec65ffcab513cc84599b18.tar.gz
cgit-b0fc647fe61c19338aec65ffcab513cc84599b18.zip
filters: generate anchor links from markdown
This makes the markdown filter generate anchor links for headings.

Signed-off-by: Christian Hesse <mail@eworm.de>
Tested-by: jean-christophe manciot <actionmystique@gmail.com>
Diffstat (limited to 'filters')
-rwxr-xr-xfilters/html-converters/md2html17
1 files changed, 15 insertions, 2 deletions
diff --git a/filters/html-converters/md2html b/filters/html-converters/md2html index ebf3856..dc20f42 100755 --- a/filters/html-converters/md2html +++ b/filters/html-converters/md2html
@@ -3,6 +3,7 @@ import markdown
3import sys 3import sys
4import io 4import io
5from pygments.formatters import HtmlFormatter 5from pygments.formatters import HtmlFormatter
6from markdown.extensions.toc import TocExtension
6sys.stdin = io.TextIOWrapper(sys.stdin.buffer, encoding='utf-8') 7sys.stdin = io.TextIOWrapper(sys.stdin.buffer, encoding='utf-8')
7sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8') 8sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
8sys.stdout.write(''' 9sys.stdout.write('''
@@ -48,10 +49,14 @@ sys.stdout.write('''
48 line-height: 1; 49 line-height: 1;
49 padding-left: 0; 50 padding-left: 0;
50 margin-left: -22px; 51 margin-left: -22px;
51 top: 15%} 52 top: 15%;
53}
52.markdown-body h1:hover a.anchor .mini-icon-link, .markdown-body h2:hover a.anchor .mini-icon-link, .markdown-body h3:hover a.anchor .mini-icon-link, .markdown-body h4:hover a.anchor .mini-icon-link, .markdown-body h5:hover a.anchor .mini-icon-link, .markdown-body h6:hover a.anchor .mini-icon-link { 54.markdown-body h1:hover a.anchor .mini-icon-link, .markdown-body h2:hover a.anchor .mini-icon-link, .markdown-body h3:hover a.anchor .mini-icon-link, .markdown-body h4:hover a.anchor .mini-icon-link, .markdown-body h5:hover a.anchor .mini-icon-link, .markdown-body h6:hover a.anchor .mini-icon-link {
53 display: inline-block; 55 display: inline-block;
54} 56}
57div#cgit .markdown-body h1 a.toclink, div#cgit .markdown-body h2 a.toclink, div#cgit .markdown-body h3 a.toclink, div#cgit .markdown-body h4 a.toclink, div#cgit .markdown-body h5 a.toclink, div#cgit .markdown-body h6 a.toclink {
58 color: black;
59}
55.markdown-body h1 tt, .markdown-body h1 code, .markdown-body h2 tt, .markdown-body h2 code, .markdown-body h3 tt, .markdown-body h3 code, .markdown-body h4 tt, .markdown-body h4 code, .markdown-body h5 tt, .markdown-body h5 code, .markdown-body h6 tt, .markdown-body h6 code { 60.markdown-body h1 tt, .markdown-body h1 code, .markdown-body h2 tt, .markdown-body h2 code, .markdown-body h3 tt, .markdown-body h3 code, .markdown-body h4 tt, .markdown-body h4 code, .markdown-body h5 tt, .markdown-body h5 code, .markdown-body h6 tt, .markdown-body h6 code {
56 font-size: inherit; 61 font-size: inherit;
57} 62}
@@ -290,5 +295,13 @@ sys.stdout.write('''
290sys.stdout.write("<div class='markdown-body'>") 295sys.stdout.write("<div class='markdown-body'>")
291sys.stdout.flush() 296sys.stdout.flush()
292# Note: you may want to run this through bleach for sanitization 297# Note: you may want to run this through bleach for sanitization
293markdown.markdownFromFile(output_format="html5", extensions=["markdown.extensions.fenced_code", "markdown.extensions.codehilite", "markdown.extensions.tables"], extension_configs={"markdown.extensions.codehilite":{"css_class":"highlight"}}) 298markdown.markdownFromFile(
299 output_format="html5",
300 extensions=[
301 "markdown.extensions.fenced_code",
302 "markdown.extensions.codehilite",
303 "markdown.extensions.tables",
304 TocExtension(anchorlink=True)],
305 extension_configs={
306 "markdown.extensions.codehilite":{"css_class":"highlight"}})
294sys.stdout.write("</div>") 307sys.stdout.write("</div>")