代码之家  ›  专栏  ›  技术社区  ›  Steven A. Lowe

是否有一个工作的html css规范化器?[关闭]

  •  1
  • Steven A. Lowe  · 技术社区  · 16 年前

    很久以前,我编写了一个样式“normalizer”程序来扫描一大堆经典asp页面的asp/html代码(其中大多数页面最初是由ms-word文档生成的,因此很自然地,它们充斥着超级样式表和大量一次性样式)。样式规范化器生成了一组最少的样式表和样式以及一个新的“净化”asp/html文档,因此净化后的文档生成的呈现输出与原始文档完全相同(通过屏幕截图图像比较验证)。

    时不时地,我会遇到对这样一个程序的需求,我会考虑编写一个用于商业发布的程序。

    我的google技能还没有找到像这样的东西(html:normalize perl模块和html tidy项目似乎只是清理了标签)。

    所以,我的问题是:

    1. 已经有这样的工具了吗,商业的还是其他的?
    2. 如果没有,有人真的需要吗?
    3. 如果是的话,哪些特性会让它真正有价值?

    Re 3例如,为一组页面收集基本样式表,或调整所有页面以使用给定的基本样式表;保留经典的ASP命令,遵循includes,保留ASP.NET嵌入脚本等。越具体,越多越好。

    例子:
    带嵌入标记的旧HTML

    <html><head>
    <title>title</title>
    <style type='css/text'>
    .cls1 { font-family: arial; font-size: 10px; font-weight: bold; }
    </style>
    </head>
    <body>
    <% somefunction() %>
    <div class='cls1' style='font-size:10px;'>test div</div>
    </body>
    </html>
    

    新HTML

    <html><head>
    <title>title</title>
    <style type='css/text'>
    .cls1 { font-family: arial; font-size: 10px; font-weight: bold; }
    </style>
    </head>
    <body>
    <% somefunction() %>
    <div class='cls1'>test div</div>
    </body>
    </html>
    

    注意,div上的样式已经消失,因为它与类CLS1是多余的。

    编辑:删除了术语“sanitizer”,因为我不关注xss攻击或过滤注释中的输入,只关注将许多特殊样式和随机css类合并为最小的连贯样式表集。

    4 回复  |  直到 16 年前
        1
  •  3
  •   Ken Gentle    16 年前

    当然,我不能肯定地说,这一切都是“工作”的,但是整洁比清理标签要多得多。

    HTML Tidy Configuration Options ,尤其是那些与Microsoft Word有关的 word-2000 )

        2
  •  2
  •   ianb    16 年前

    如果你想知道你做得是否合理,你应该试试 these tests (使用像tidy这样的工具,你可能会发现你没有做一个合理的工作)。

    一些选项:

    在我看来,任何使用正则表达式但不解析标记的东西都是可疑的(而且太复杂,无法实现)。

        3
  •  1
  •   Amber June    14 年前

    老问题,但有些人可能仍然觉得这很有用。退房 http://necolas.github.com/normalize.css/ . 它工作得很好!

        4
  •  0
  •   Community CDub    8 年前