Skip to content

Instantly share code, notes, and snippets.

@facelessuser
Last active April 15, 2021 00:43
Show Gist options
  • Save facelessuser/f9346eb726b181e62684c33ee5adb42c to your computer and use it in GitHub Desktop.
Save facelessuser/f9346eb726b181e62684c33ee5adb42c to your computer and use it in GitHub Desktop.
Parse shebangs in fences
"""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