Use*_*er0 7 html python regex django wysiwyg
我终于升级(重写 ;))我的第一个Django应用程序,但我正在迁移所有内容.
我愚蠢地为用户提供了一个完整的WYSIWYG编辑器来处理某些任务,所产生的HTML代码当然非常丑陋,附加的标签比内容更多.
有谁知道我可以用来清理代码的库或外壳应用程序?
我有时会使用整洁,但据我所知,这不符合我的要求.我想简化所有额外的跨度和其他垃圾标签.我用一些正则表达式清理了最令人反感的冒犯风格,但是我需要花很长时间才能使用正则表达式做更多的事情.
有任何想法吗?
标准答案是Beautiful Soup。
您需要非常非常仔细地定义“额外跨度”和“垃圾标签”,以便您可以在不删除内容的情况下删除标签。
我建议你做两件事。
修复您的应用程序,以便用户在任何情况下都不会提供 HTML。Django 可以使用 RST 标记,这对用户更加友好。 http://docs.djangoproject.com/en/1.3/ref/templates/builtins/#django-contrib-markup
编写一个 Beautiful Soup 解析器并将用户的内容转换为 RST 标记。保留结构元素(标题、列表等)并尽可能放弃格式。