因为最近一直在做 Dreamweaver 插件的开发,中文的资料非常少,自己英文又差,查看英文资料的时候不由头昏脑胀。迫不得已把其中一些重要的内容翻译成中文之后,看的时候才觉得爽快不少。本节选自 Dreamweaver 8 附带的《Extending Dreamweaver 8》,翻译的时候参考了一下侠客岛翻译的《Dreamweaver 4 中文帮助》。不过老实不客气地说,我有点怀疑那个帮助的某些部分是用金山快译之类的软件翻译的,反正读起来比英文还难懂。
服务器端技术,比如ASP、Macromedia ColdFusion,JSP,以及 PHP 在 HTML 文件里面使用特殊的非 HTML 语法,服务器在这些代码的基础上创建和提供 HTML 格式的内容。当 Dreamweaver 检测到非 HTML 标签,Dreamweaver 会调用第三方标签的定义文件来比较它们,这些文件指定 Dreamweaver 如何读取和显示这些标签。
举个例子,在标准的 HTML 语言之外,ASP 文件还包含了供服务器解析的 ASP 代码。ASP 代码看起来和 HTML 标签类似,它由一对标签,开始的 <% 和关闭的 %>,来作标记。在 Dreamweaver 的 Configuration/ThirdPartyTags 文件夹里有一个名为 Tags.xml 的文件,这个文件就是用来描述包括 ASP 在内的各种第三方标签规范的,并定义了 Dreamweaver 如何来显示这些代码。使用这种方法,ASP 代码在 Tags.xml 中已经被规范了,所以 Dreamweaver 不会再试着在 <%...%>之间解析任何代码。不过在设计视图里面,它会显示一个图标以表示这是 ASP 代码。你可以定义自己的标签,并且能为每套标签创建一个新的标签库文件,来指定 Dreamweaver 如何读取和显示你的标签。
注意:这部分说明了如何定义 Dreamweaver 显示一个自定义标签的方法,但是没有描述如何编辑自定义标签的内容或是属性。如何创建属性检查器来检查和修改自定义标签的属性,请查看属性检查器以获得相关信息。
每个标签库文件都会定义一个或者多个自定义标签的名称、类型、内容模式、显示规范和图标。你可以创建任意数量的标签库文件,但是它们必须位于 Configuration/ThirdPartyTags 文件夹以便被 Dreamweaver 读取和处理。标签库文件使用 .xml 文件扩展名。
提示:如果你同时进行着好几个不同网站的工作(假定当你是个自由职业者的时候),你可以把所有的标签规范定义在一个文件里面,并存放在一个特殊的站点上,将来由其他人维护这个站点的时候,你就可以完整地把包含自定义图标和属性检查器在内的标签库移交给他。
你需要使用一个名为 tagspec 的 XML 标签来定义一个标签规范。举例来说,下面的代码表示一个名为 happy 的标签规范。
<tagspec tag_name="happy" tag_type="nonempty" render_contents="false" content_model="marker_model" icon="happy.gif?http://www.xvna.com" icon_width="18" icon_height="18"></tagspec>
·script_model 让这个标签可以放置在文档内 HTML 标签之间的任何位置。当 Dreamweaver 检测到使用该模式的标签,将忽略该标签的所有内容。使用这种标记(比如某些 ColdFusion 标签)后 Dreamweaver 将不会解析。
start_string 指定一个分隔符作为字符串界定的标签的起始点。字符串界定的标签可以被放置在任何可以插入注释的地方。对于start_string 和 end_string 之间的代码,Dreamweaver 既不会去解析,也不会去编码或者是作链接。当 end_string 已经被定义的时候,这个属性是必需的。
end_string 指定一个分隔符作为字符串界定的标签的结束点。同样,当 start_string 已经被定义的时候,这个属性是必需的。
detect_in_attribute 指定是否要忽略 start_string 和 end_string 之间的所有代码(或者是在开始和结束标签之间,如果这两个字符串没有被定义),不管这些代码之间插入属性还是值。它的默认值是 "false",不过一般情况下字符串界定的标签应该把这个值设置为 "true"。例如,ASP 标签规范指定 detect_in_attribute="true",这样就算 ASP 标签内部有包含属性值的引号,也将被 Dreamweaver 忽略。
parse_attributes 表示是否要解析该标签的属性。如果设置为 "true"(默认值),Dreamweaver 将解析这些属性;如果设置为 "false",Dreamweaver 将把引号外部的“>”出现之前的所有代码代码全部忽略。例如, 诸如 cfif 诸如的标签应该将这个属性设置为 "false"(因为在 <cfif a is 1> 这样的标签里面,Dreamweaver 无法将其作为一对属性名称/值的组合来解析)。
icon 指定匹配该标签的图标的路径和文件名。该属性对于空标签是必要的,另外对那些内容不能显示在文档窗口的设计视图中的非空标签也同样是必要的。
icon_width 指定图标的像素宽度。
icon_height 指定图标的像素高度。
equivalent_tag 为 ColdFusion 里某些和表单关联的标签指定简单的 HTML 等价物。其他标签不能使用该属性。
is_visual 指定该标签是否在页面上可见。例如,ColdFusion 标签 cfgraph 没有指定 is_visual 的值(因此使用默认值 "true"),ColdFusion 标签 cfset 指定了 is_visual 的值为 "false"。在预设对话框的“不可见元素”一栏内,你可以控制服务器标签的可见性;可视化服务器标签与不可视化服务器标签的可见性可以分开设置。
server_model,如果设置了该属性,表示 tagspec 标签仅可应用于属于指定服务器模式的页面。如果没有设置,则 tagspec 可以应用于所有页面。例如,ASP 和 JSP 的定界符是一样的,但是适用 JSP 的 tagspec 标签指定了服务器模式为 "JSP",所以当 Dreamweaver 在 JSP 页面检测到特定的定界符,它会显示一个 JSP 的图标;当在非 JSP 页面检测到相同的代码,它会显示 ASP 图标。
内容
无(空标签)。
容器
无。
示例
<tagspec tag_name="happy" tag_type="nonempty" render_contents="false" content_model="marker_model" icon="happy.gif?http://www.xvna.com" icon_width="18" icon_height="18"></tagspec>
自定义标签在设计视图如何显示
自定义标签在文档窗口的设计视图中显示的方式,决定于 tagspec 标签的 tag_type 属性和 render_contents 属性的值(请参看自定义第三方标签的解析)。如果 tag_type 的值为 "empty",就显示 icon 属性定义的指定图标。如果 tag_type 的值为 "nonempty",但是 render_contents 的值为 "false",也会像空标签那样显示图标。下面的例子演示了我们刚才定义的 happy 标签的一个实例如何插入到 HTML 代码中:
<p>This is a paragraph that includes an instance of the <code>happy</code>tag (<happy>Joe</happy>).</p>
因为在标签规范里, render_contents 已经被设置为 "false",所以 happy 标签(单词 joe)将不被显示,开始和关闭标签包括它们之间的内容将被替换成一个简单的图标。
对于一个 render_contents 值为 "true" 的非空标签,设计视图不会将其显示为图标,而是显示开始标签与关闭标签之间的内容(比如标签之间的文本,就像这样: <mytag>这里是开始与关闭标签之间的内容</mytag>)。如果在菜单选项中,查看 > 可视化助理 > 不可见元素已经被选中,那么这些内容将会使用“代码颜色”参数指定的第三方标签颜色来高亮显示(“代码颜色”仅应用于标签库文件定义的标签)
如何更改第三方标签的高亮颜色:
1、选择菜单选项中的编辑 > 首选参数,然后选择“代码颜色”栏。
2、点击第三方标签颜色框以显示颜色选择器。
3、选择一种颜色,然后点击“确定”并关闭预设对话框。关于如何选择颜色,另请参看使用 Dreamweaver。
避免改写第三方标签
Dreamweaver 会在 HTML 代码中校正某些特定的错误,详细信息请参考使用 Dreamweaver。默认情况下,Dreamweaver 禁止在特定文件扩展名的文件中更改 HTML 代码,这些文件名包括 .asp(ASP)、.cfm(ColdFusion)、.jsp(JSP),以及 .php(PHP)。这样的默认设置是为了保证 Dreamweaver 不会意外地修改任何包含在非 HTML 标签里面的代码。你可以更改 Dreamweaver 的默认改写行为,以便在打开这类文件的时候改写 HTML 代码,并且你也可以在 Dreamweaver 禁止改写的文件类型列表里面加入其他的文件类型。
当你把某些特殊字符输入到属性检查器的时候,Dreamweaver 会把它们编码成数值。一般来说,让 Dreamweaver 执行这种编码是最好的,因为这些特殊字符在跨越不同的平台和浏览器的时候,将可能被更好地显示。不过,因为这种编码会影响第三方标签,所以当你在编辑包括第三方标签的文件时,你可能要更改 Dreamweaver 的编码行为。
1、选择菜单选项中的编辑 > 首选参数,然后选择“代码改写”栏
2、选择下面的任何一项:
·修正非法嵌套标签或未结束标签
·删除多余的结束标签
3、执行下面的一项:
·从“从不改写代码:在带有扩展的文件中”的文件扩展名列表里面删除一个或多个。
·取消“从不改写代码:在带有扩展的文件中”选项。请注意:这样会导致 Dreamweaver 可以在任何类型的文件中改写 HTML 代码。
添加 Dreamweaver 禁止改写的文件类型:
1、选择菜单选项中的编辑 > 首选参数,然后选择“代码改写”栏
2、选择下面的任何一项:
·修正非法嵌套标签或未结束标签
·删除多余的结束标签
3、确认“从不改写代码:在带有扩展的文件中”项已被选中,把新的文件扩展名加入文本框的列表中。
如果新的文件类型不会显示在“文件 > 打开”对话框的弹出菜单内,你可能需要把它增加到 Configuration/Extensions.txt 文件夹里面。详细信息,请参看改变默认的文件类型。
关闭 Dreamweaver 的编码选项:
1、选择菜单选项中的编辑 > 首选参数,然后选择“代码改写”栏
2、取消两个“特殊字符编码”选项中的任何一个。