aboutsummaryrefslogtreecommitdiff
path: root/responsive/syntax-material.py
diff options
context:
space:
mode:
authorTolmachev Igor <me@igorek.dev>2026-01-06 06:50:50 +0900
committerTolmachev Igor <me@igorek.dev>2026-01-06 06:50:50 +0900
commit4f14cdffbf165cb3a5b48f5bf5a1b58e515e2ec4 (patch)
tree499b428e207206d92396d66c23a8567fc4967be4 /responsive/syntax-material.py
parent86ffad6fa449cdd56f895eb8faff3ee72456f4ef (diff)
downloadcgit_material_docker-4f14cdffbf165cb3a5b48f5bf5a1b58e515e2ec4.tar.gz
cgit_material_docker-4f14cdffbf165cb3a5b48f5bf5a1b58e515e2ec4.zip
Add material highlight
Diffstat (limited to 'responsive/syntax-material.py')
-rwxr-xr-xresponsive/syntax-material.py37
1 files changed, 37 insertions, 0 deletions
diff --git a/responsive/syntax-material.py b/responsive/syntax-material.py
new file mode 100755
index 0000000..3176691
--- /dev/null
+++ b/responsive/syntax-material.py
@@ -0,0 +1,37 @@
1#!/usr/bin/env python3
2import sys
3
4from pygments import highlight
5from pygments.formatters import HtmlFormatter
6from pygments.lexers import get_lexer_for_filename, guess_lexer
7from pygments.util import ClassNotFound
8
9
10def main():
11 filename = sys.argv[-1] if len(sys.argv) > 1 else "stdin"
12
13 try:
14 data = sys.stdin.read()
15 except Exception:
16 return
17
18 try:
19 lexer = get_lexer_for_filename(filename)
20 except ClassNotFound:
21 try:
22 lexer = guess_lexer(data)
23 except ClassNotFound:
24 sys.stdout.write(f"<pre>{data}</pre>")
25 return
26
27 formatter = HtmlFormatter(style="default", nowrap=True, classprefix="hl-")
28
29 try:
30 sys.stdout.write("<style>.hl- { display: inline; }</style>")
31 highlight(data, lexer, formatter, sys.stdout)
32 except BrokenPipeError:
33 pass
34
35
36if __name__ == "__main__":
37 main()