Last active
April 15, 2021 00:43
-
-
Save facelessuser/f9346eb726b181e62684c33ee5adb42c to your computer and use it in GitHub Desktop.
Parse shebangs in fences
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
"""Override default highlighter to handle shebangs.""" | |
import re | |
RE_SHEBANG = re.compile(r'\A\#!(\w+)\b\s*\r?\n') | |
def md_shebang(src="", language="", class_name=None, options=None, md="", **kwargs): | |
"""Formatter wrapper.""" | |
try: | |
if not language: | |
m = RE_SHEBANG.match(src) | |
if m: | |
language = m.group(1) | |
src = src[m.end(0):] | |
return md.preprocessors['fenced_code_block'].highlight( | |
src=src, | |
class_name=class_name, | |
language=language, | |
md=md, | |
options=options, | |
**kwargs | |
) | |
except Exception: | |
import traceback | |
print(traceback.format_exc()) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment