清理丑陋的WYSIWYG HTML代码?Python或*nix实用程序

Use*_*er0 7 html python regex django wysiwyg

我终于升级(重写 ;))我的第一个Django应用程序,但我正在迁移所有内容.

我愚蠢地为用户提供了一个完整的WYSIWYG编辑器来处理某些任务,所产生的HTML代码当然非常丑陋,附加的标签比内容更多.

有谁知道我可以用来清理代码的库或外壳应用程序?

我有时会使用整洁,但据我所知,这不符合我的要求.我想简化所有额外的跨度和其他垃圾标签.我用一些正则表达式清理了最令人反感的冒犯风格,但是我需要花很长时间才能使用正则表达式做更多的事情.

有任何想法吗?

S.L*_*ott 0

标准答案是Beautiful Soup

您需要非常非常仔细地定义“额外跨度”和“垃圾标签”,以便您可以在不删除内容的情况下删除标签。

我建议你做两件事。

  1. 修复您的应用程序,以便用户在任何情况下都不会提供 HTML。Django 可以使用 RST 标记,这对用户更加友好。 http://docs.djangoproject.com/en/1.3/ref/templates/builtins/#django-contrib-markup

  2. 编写一个 Beautiful Soup 解析器并将用户的内容转换为 RST 标记。保留结构元素(标题、列表等)并尽可能放弃格式。