一部の限定されたマークアップと一部のHTMLにマークダウン(およびJavascriptではページダウン)を使用して、ユーザーが入力をカスタマイズできるようにします。
カスタムユーザーマークアップを保存または表示する前に、次のコマンドでHTMLをクリーンアップします。
from html5lib import sanitizer
from html5lib import html5parser, serializer, treebuilders, treewalkers
# This sanitizer translates all the troublesome tokens
def sanitize2(text):
if (text is None) or isinstance( text, ( int, long ) ):
return text
sanobj = sanitizer.HTMLSanitizer
sanobj.strip_tokens = True
sanobj.lowercaseElementName = True
sanobj.lowercaseAttrName = True
hparser = html5parser.HTMLParser(tree = treebuilders.getTreeBuilder('dom'), tokenizer=sanobj)
dommodel = hparser.parse(text)
serobj = serializer.htmlserializer.HTMLSerializer(sanitize = False)
outstr = ''.join(serobj.serialize(treewalkers.getTreeWalker('dom')(dommodel)))
return outstr
次に、実際に表示するカスタムピラミッドフィルターがあります。
import markdown
def jmarkdown(text):
return markdown.markdown(text)
これにより、「| jmarkdown」が機能します!