2023년 1월 5일 7:15 오후
import markdown
from django import template
from django.utils.safestring import mark_safe
register = template.Library()
@register.filter
def youtube(value):
v = value
result = value
while "<https://youtu.be/" in v:
start_slice = v.find("<https://youtu.be/")
end_slice = v.find("><br/><iframe src="https://www.youtube.com/embed/" in v:
start_slice = v.find("<https://youtu.be/")
end_slice = v.find("" title="Youtube" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>")
result = result.replace(v[start_slice:end_slice+1], v[start_slice:end_slice+1]+"<br/>" +
f'<iframe src="https://www.youtube.com/embed/{v[start_slice+18:end_slice]}" title="Youtube" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>')
v = v[end_slice+1:]
return result
@register.filter
def mark(value):
youtube(value)
extensions = ["nl2br", "fenced_code"]
return mark_safe(markdown.markdown(youtube(value), extensions=extensions))
오...
참고로 highlight.js 라는 라이브러리를 사용했다