2009-08-03 2 views
4

Python 웹 애플리케이션을 프로그래밍하면서 사용자가 경량 마크 업 언어로 텍스트를 입력 할 수있는 텍스트 영역을 만들고 싶습니다. 텍스트는 HTML 템플릿으로 가져와 페이지에서 볼 수 있습니다.Python 용 경량 마크 업 언어

가 가
my_text = cgidata.getvalue('my_text', 'default_text') 
ftable.AddRow([Label(_('Enter your text')), 
       TextArea('my_text', my_text, rows=8, cols=60).Format()]) 

는 어떻게 변경할 수 있도록이 일부 (안전, 결국 경량) 마크 업이 허용됩니다 : 오늘은 사용자가 어떤 (HTML) 텍스트를 입력 할 수있는 텍스트 영역을 작성하려면이 명령을 사용합니까? 살균제를 포함한 모든 제안은 Python과 쉽게 통합되는 한 환영합니다.

답변

8

사용하여 파이썬 markdown 구현하여 등 자신의

이 간단한 살균 기능은 화이트리스트를 사용하고과 거의 동일
+0

나는 iPython을 사용하여 텍스트를 스크립트 태그를 포함한 일부 html로 정의하려고 시도했습니다. 나는 이상한 결과를 얻었습니다 : 텍스트는 여전히 동일하고 html = '[HTML_REMOVED]'위험한 태그를 제거하기 위해해야 ​​할 일은 무엇입니까? 나는 같은 결과로 세 가지 모드를 시도했다. –

+0

몇 가지 테스트를 실행하면 HTML 태그를 입력 할 수 없으며 markdown 구문 만 입력 할 수 있다는 것을 알았습니다. 고마워, 효과가 있었다! –

+0

HTML을 바꾸려면 safe_mode = "replace"(safe_mode = True는 이전 버전과의 하위 호환성을 위해 계속 작동 함)을 설정하십시오. HTML은 markdown.HTML_REMOVED_TEXT에 정의 된 텍스트로 바뀌고 기본적으로 [HTML_REMOVED]로 바뀝니다. HTML을 다른 것으로 바꾸려면 markdown.HTML_REMOVED_TEXT = "- HTML HTML은 허용되지 않습니다 -" – molicule

2

restructured text을 사용할 수 있습니다. 나는 위생 옵션이 있는지 확실하지 않지만 Python에서 잘 지원하고 있으며 모든 종류의 형식을 생성합니다. 그것은 매우 유연, 생성, 다양한 확장을 사용할 수있다

import markdown 
mode = "remove" # or "replace" or "escape" 
md = markdown.Markdown(safe_mode=mode) 
html = md.convert(text) 

+1

+1 : RST 및 Docutils 규칙. –