아이디어는 다음과 같습니다. stackoverflow와 비슷한 태그를 사용하여 jinja2에 텍스트를 보냅니다. jinja2에 텍스트를 포함하는 마크 업으로 처리하고 html로 텍스트를 굵게, 기울임 꼴로 표시하도록 jinja2에 지시하려면 어떻게합니까?jinja2 + reStructured Markup
감사합니다.
아이디어는 다음과 같습니다. stackoverflow와 비슷한 태그를 사용하여 jinja2에 텍스트를 보냅니다. jinja2에 텍스트를 포함하는 마크 업으로 처리하고 html로 텍스트를 굵게, 기울임 꼴로 표시하도록 jinja2에 지시하려면 어떻게합니까?jinja2 + reStructured Markup
감사합니다.
이 작업을 수행 할 수 있어야한다 : node
는 신사 2 노드
from docutils.core import publish_string
import jinja2
html = publish_string(source=text, writer_name='html')
node = jinja2.Markup(html)
실제로 범위에 포함 할 수 있습니다.
나는 django-markdown 사용 해요, 그래서 필터를 사용하여이 작업을 수행 할 수있는 좋은 방법이라고 생각 :
<div class="content">{{ article.body|rst }}</div>
같은 필터가 jinja2하지만 it should be very easy to write이있는 경우, 내가 잘 모르는 것 같아요. 이 줄 (테스트되지 않은 코드)에서 뭔가를 추측합니다.
from docutils.core import publish_parts
import jinja2
def rst_filter(s):
return jinja2.Markup(publish_parts(source=s, writer_name='html')['body'])
environment.filters['rst'] = rst_filter
이것은 작동하지만 필터는 publish_string() 대신 publish_parts() [ 'html_body']를 사용하는 것이 좋습니다. 감사! –
@AdiRoiban : 나는 당신을 믿고 당신의 제안을 반영하기 위해 나의 대답을 업데이트하고 싶습니다만, publish_parts가 publish_string보다 나은 이유를 설명해 주시겠습니까? TIA. –
이 코멘트 시스템은 추악합니다. 코드를 어떻게 추가합니까? "html"작성자가있는 publish_string은 머리, 스타일 가이드 및 본문을 포함하여 _whole_ HTML 문서를 만듭니다. 이 시도 : docutils.core 수입 publish_string에서 ''' 이 publish_parts publish_string (소스 = '처음', writer_name = 'HTML') publish_parts (소스 = '처음'을, writer_name = 'html로') [ 'body'] ''' –
감사합니다. – DTailor
HTML 구문 부분 만 필요한 경우 어떻게해야합니까? 그 .css 스타일을 다른 파일에 넣을 수 있습니다. – DTailor
@DTailor : html의 일부를 사용할 수 있습니다. http://docutils.sourceforge.net/docs/api/publisher.html#parts-provided-by-the-html-writer – Wolph