diff options
| author | Tolmachev Igor <me@igorek.dev> | 2026-01-06 06:50:50 +0900 |
|---|---|---|
| committer | Tolmachev Igor <me@igorek.dev> | 2026-01-06 06:50:50 +0900 |
| commit | 4f14cdffbf165cb3a5b48f5bf5a1b58e515e2ec4 (patch) | |
| tree | 499b428e207206d92396d66c23a8567fc4967be4 /responsive/syntax-material.py | |
| parent | 86ffad6fa449cdd56f895eb8faff3ee72456f4ef (diff) | |
| download | cgit_material_docker-4f14cdffbf165cb3a5b48f5bf5a1b58e515e2ec4.tar.gz cgit_material_docker-4f14cdffbf165cb3a5b48f5bf5a1b58e515e2ec4.zip | |
Add material highlight
Diffstat (limited to 'responsive/syntax-material.py')
| -rwxr-xr-x | responsive/syntax-material.py | 37 |
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 | ||
| 2 | import sys | ||
| 3 | |||
| 4 | from pygments import highlight | ||
| 5 | from pygments.formatters import HtmlFormatter | ||
| 6 | from pygments.lexers import get_lexer_for_filename, guess_lexer | ||
| 7 | from pygments.util import ClassNotFound | ||
| 8 | |||
| 9 | |||
| 10 | def 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 | |||
| 36 | if __name__ == "__main__": | ||
| 37 | main() | ||
