NDOJ/judge/highlight_code.py

14 lines
435 B
Python
Raw Normal View History

2020-01-21 15:35:58 +09:00
from django.utils.html import escape, mark_safe
2024-01-18 19:46:41 -06:00
from judge.markdown import markdown
2020-01-21 15:35:58 +09:00
2022-05-14 12:57:27 -05:00
__all__ = ["highlight_code"]
2020-01-21 15:35:58 +09:00
2024-01-18 19:46:41 -06:00
def highlight_code(code, language, linenos=True, title=None):
linenos_option = 'linenums="1"' if linenos else ""
title_option = f'title="{title}"' if title else ""
options = f"{{.{language} {linenos_option} {title_option}}}"
2020-01-21 15:35:58 +09:00
2024-01-18 19:46:41 -06:00
value = f"```{options}\n{code}\n```\n"
return mark_safe(markdown(value))