# nddPlugin-htmlTidy **Repository Path**: tsingkong/ndd-plugin-html-tidy ## Basic Information - **Project Name**: nddPlugin-htmlTidy - **Description**: notepad--(ndd)插件——html解析利器Html Tidy插件版,预览版可以html转换成Xhtml,格式化Xml、html、xhtml(目前插件发行版暂时只支持windows版本) - **Primary Language**: C++ - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2024-06-25 - **Last Updated**: 2024-06-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # tidyHtml5 插件介绍  本插件基于[tidy-5.6.0-vc14-64b.zip](https://github.com/htacg/tidy-html5/releases/download/5.6.0/tidy-5.6.0-vc14-64b.zip) 提供库文件进行二次开发,用于将**HTML**转化为**XHTML**并格式化**XHTML**,(未来)支持自定义配置, 插件可以检查**HTML**并指出一些与已发布的W3C标准不一致的地方。它可以用来解析包含HTML标记的HTML文件或字符串,并可以自动改正错误,使其与相关标准完全一致。HTML Tidy 是一个能够HTML文件的错误及整齐的排列代码(即缩排)的软件及函式库。HTML Tidy 是由W3C的Dave Raggett开发,其后成为一个Sourceforge的专案,其源码是使用ANSI C写成,而适用于不同操作系统的执行档则可因此而编译而成。而HTML Tidy是根据W3C license(宽松的BSD许可证)授权下发布。 ## tidy html介绍:  **HTML Tidy**是一个能够修正不规范的HTML文件,验证(指出一些与已发布的W3C标准不一致的地方)纠正美化HTML代码的小工具,有命令行版本的也有GUI版本的,HTML Tidy是免费的,它可以运行在Windows,Mac和UNIX平台上,**Tidy** 可以处理 **HTML**, **XHTML** 和 **XML** 文件,并生成清理过**HTML**标签的文件. 也用于**HTML** 验证, 检测文件并对常见的代码错误进行纠正, 力求生成文档其表现与原始文档相同而又兼容W3C并可以在大多数浏览器运行。 Tidy常被用于将**HTML**转化为**XHTML**. 对于**XML**文件,Tidy仅限于纠正基本的格式错误和美化. ## html tidy源码地址 官方网站:[HTML 整洁项目页面 (sourceforge.net)](https://tidy.sourceforge.net/) 源码地址:[GitHub - htacg/tidy-html5: The granddaddy of HTML tools, with support for modern standards](https://github.com/htacg/tidy-html5) HTML tidy version 5.8.0 发布版本: [HTML Tidy Binary Releases (html-tidy.org)](https://binaries.html-tidy.org/) html tidy接口文档:[HTML Tidy: Document Tree (html-tidy.org)](https://api.html-tidy.org/tidy/tidylib_api_5.6.0/group__Tree.html) ## 测试和使用 html tidy ### tidy.exe 查看帮助 ```sh tidy -h ``` 现在准备一个不规范的html bad.html ```html

heading

subheading

References ``` 输入 ```sh tidy -indent -output good.html bad.html ``` 查看生成的good.html ### 使用tidy API修复HTML文档的小例子 ```cpp #include < cstdlib > #include < cstdio > #include < iostream > #include < tidy / tidy.h > int main( int argc, char * argv[]) { int rc = - 1 ; Bool ok; TidyDoc tdoc = tidyCreate(); ok = tidyOptSetBool(tdoc,TidyXhtmlOut,yes); rc = tidyParseFile(tdoc, " file.html " ); rc = tidyCleanAndRepair(tdoc); rc = tidyRunDiagnostics(tdoc); rc = tidySaveFile(tdoc, " file.htm " ); tidyRelease(tdoc); system( " PAUSE " ); return EXIT_SUCCESS; } ``` ## 插件使用: ```cpp 1. tidyHtml5.dll /*插件本件, 需放置在 Notepad--.exe/plugin 目录下*/ 2. tidy.dll /*必要动态库,需放置在 Notepad--.exe/目录下*/ ``` ## 配置项说明(未开发完成) > tidy库的配置文档: http://tidy.sourceforge.net/docs/quickref.html > 打开Notepad--软件,选择工具(o)——tidyHtml5 Plug———Edit config1可对html格式化进行配置 ```c break-before-br 默认取值: no 可选参数:yes/no 此选项规定是否输出时在每一个
元素前,加一个空行. indent 默认取值: no 可选参数:auto/yes/no 此选项规定是否缩进块级标签. 若置为 "auto", 则此选项会根据标签,如:TITLE, H1-H6, LI, TD, TD, 或 P是否包括块级元素内容, 决定是否缩进标签内容. 建议避免使用yes, 因为会使一些浏览器出现层(layout)bugs. indent-attributes 默认取值: no 可选参数:yes/no 此选项规定是否每个属性占一行. indent-spaces 默认取值: 2 可选参数: 0, 1, 2, ... 此选项规定缩进选型开启时,缩进的空格数. markup 默认取值: yes 可选参数:yes/no 此选项规定是否生成美化版本的标记.注意:如果有严重错误时不生成美化版. (见 force-output). punctuation-wrap 默认取值: no 可选参数:yes/no 此选项规定是否在一些Unicode 或 中文发音字符后绕行. sort-attributes 默认取值: none 可选参数: none, alpha 此选项规定是否按一些特定的排序算法对元素中的属性进行排序. 如果置为 "alpha", 则按字母序排序. split 默认取值: no 可选参数:yes/no 当前未用,仅在Tidy Classic中使用. tab-size 默认取值: 8 可选参数: 0, 1, 2, ... 此选项规定连续tab符号所占的列数.用于从tab到空格的映射.Tidy不输出tab. vertical-space 默认取值: no 可选参数:yes/no 此选项规定是否为可读性加入一些空行. wrap 默认取值: 68 可选参数: 0 (no wrapping), 1, 2, ... 此选项规定绕行的右边距. Tidy在不超过此长度内换行. 置为0,意味着关闭绕行功能. wrap-asp 默认取值: yes 可选参数:yes/no 此选项规定是否在对ASP伪元素内的文本内容换行, 形如: <% ... %>. wrap-attributes 默认取值: no 可选参数:yes/no 此选项规定是否为方便编辑而对属性值绕行. 该选项可独立于wrap-script-literals选项设置. wrap-jste 默认取值: yes 可选参数:yes/no 此选项规定是否对JSTE伪元素内的文本内容进行绕行, 形如: <# ... #>. wrap-php 默认取值: yes 可选参数:yes/no 此选项规定是否对php伪元素内的文本内容进行绕行, 形如: wrap-script-literals 默认取值: no 可选参数:yes/no 此选项规定是否对出现在脚本属性(script attributes)中的字符串字面量进行绕行. Tidy通过在换行前插入反斜杠对长字符串字面量进行绕行. wrap-sections 默认取值: yes 可选参数:yes/no 此选项规定是否对 段标签内的文本内容进行绕行. output-xml 默认取值: no 可选参数:yes/no 此选项规定是否输出为美化的格式良好XML.任何没有在XML 1.0中定义过的实体都会被转化为数字实体,以使其能被XML解析器解析. 无论其他选项,原始的标签大小写和属性将不变. input-xml 默认取值: no 可选参数:yes/no 此选项规定是用XML解析器还是用纠错HTML解析器. numeric-entities 默认取值: no 可选参数:yes/no 此选项规定数字是否应该输出除内建HTML实体(&, <, > and & quot;)以外的实体,而不是命名实体形式只有和DOCTYPE声明约定相兼容的实体备用. 在输出编码中可以被表现的实体被对应转化. quote-marks 默认取值: no 可选参数:yes/no 此选项规定是否将字符 " 输出为 " 因为这是一些编辑环境首选的. 撇号 ’ 输出为 ' 因为一些浏览器不支持 '. quote-nbsp 默认取值: yes 可选参数:yes/no 此选项规定是否将non-breaking空格字符转为实体, 而不是Unicode 160 (decimal). quote-ampersand 默认取值: yes 可选参数:yes/no 此选项规定是否转化&为&. uppercase-tags 默认取值: no 可选参数:yes/no 此选项规定是否用大写输出标签名. 默认为 no, 使标签名转为小写, 除XML,将保留原始的大小写. uppercase-attributes 默认取值: no 可选参数:yes/no 此选项规定是否用大写输出属性名. 默认为 no, 使属性名转为小写, 除XML,将保留原始的大小写. new-inline-tags 取值类型: Tag names 默认取值: - 可选参数: tagX, tagY, ... 此选项规定新的非空inline标签.此选项用空格或逗号分隔标签列表. 除非你声明了新表签,如果输入文件包含先前未知的标签,Tidy将不会生成处理文件. 这个选项在XML模式中被忽略. new-blocklevel-tags 取值类型: Tag names 默认取值: - 可选参数:tagX, tagY, ... 此选项规定新的块级标签. 此选项用空格或逗号分隔标签列表.除非你声明了新表签, 如果输入文件包含先前未知的标签,Tidy将不会生成处理文件. 你不能改变元素内容的模式,比如: ,