当前位置:软件学习 > Dreamweaver >>

Dreamweaver如何自定义第三方标签

     扩展 Dreamweaver:自己选择第三方标签的解析

     因为前几天一直在做 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" icon_width="18" icon_height="18"></tagspec>

 

您可以使用 tagspec 来定义两种标签:
·HTML 格式的普普通通标签
happy 标签范例是一个 HTML 格式的普普通通标签。它开始于 <happy> 标签,在开始标签与结束标签之间包含数据,最后结束于</happy> 标签。

·字符串界定的标签
字符串界定的标签用一个字符串开始,用另一个字符串结束,它们和 HTML 空标签(诸如 img 之类)有差不多之处,因为它们既不包含内容也没有联系闭标签。可能 happy 也是一个字符串界定的标签,那它的定义规范里面必须包括 start_string 与 end_string 两个属性。ASP 标签都是字符串界定的标签,它们根据 <% 开始,到 %> 结束,也没有联系闭标签。

下面的信息罗列了 tagspec 标签的每个属性和有效值。带有星号(“*”)的属性表示不适用于字符串界定的标签,可选属性则使用了大括号({})来标识;不难推断,别的没有使用大括号标识的都属于需要的属性。

<tagspec>

说明

对于第三方标签的预设信息

属性

tag_name,{tag_type},{render_contents},{content_model},{start_string},{end_string},{detect_in_attribute},{parse_attributes},icon,icon_width,icon_height,{equivalent_tag},{is_visual},{server_model}

tag_name 表示自己选择的名称。对于字符串界定的标签,tag_name 仅用于检测一个特定的属性检查器是不是适用于这种标签。可能属性检查器的第一行在符合规范的位置(还有可以在第一行的声明里面)包含了这种标签名并标上星号(“*”),当这种检查器用被允许检查该类型的标签。举个例子,ASP 代码的标签名可以 ASP,允许检查 ASP 代码的检查器必须在第一行包含 *ASP*。对于属性检查器 API 的信息,请参看 属性检查器。

tag_type 确定这种标签是空的(像前面说到的 img 那样),或者允许在开始与关闭标签之间放置内容(像 code 标签那样)。这种属性对于普普通通(非字符串界定的)标签是需要的,可就是对字符串界定的标签不生效,因为他们老是空的。有效值包括 "empty" 和 "nonempty"。

render_contents 确定在设计视图中,该标签显示内容,或者代之以特定的图标。该属性仅对非空标签是需要的,对于空标签则不生效(空标签本身没有内容可供显示)。该属性仅应用于插入到属性外部的标签,可能一个标签插入别的标签的属性值内,它的内容用不会显示(这一段有点难理解,我想到的是 RealMedia、Flash 之类的 Object,里面的那些 param 标签?)。有效值为 "true" 或者是 "false"。

content_model 描述这种标签能包含哪种内容,还有这种标签能插入到 HTML 文件的什么地方。有效值包括 "block_model","head_model","marker_model",还有"script_model":

·block_model 表示该标签可以包含 div、p之类的块状对象,并且该标签只可以出现在 body 区域,或者是插入到别的的 body-content 标签内,打个比方 div、layer 还有 td 等。

·head_model 表示该标签只可以包含文字而且只可以出现在 HEAD 范围内。

·marker_model 表示该标签能包含每一个有效的 HTML 代码,并且可以放在 HTML 文件内的每一个位置。Dreamweaver 内置的 HTML 检验程序用忽略定义为 marker_model 的标签。可就是,检验程序不会忽略这一系列标签包含的内容;所以,尽管标签本身可以随处放置,可就是它的内容却可能导致 HTML 的某些地方产生不正确。打个比方,纯文本不可以出现(除去合法的 head 元素)在文档的 head 区域,所以您不可以把一个包含纯文本的 marker_model 标签放在 head 区域(可能您要这么做,那您必须把这种标签的内容模式由 marker_model 替换为 head_model)。使用 marker_model 的标签用会在一行内显示(位于 p 或者 div 这种的块状元素内——举个例子,在一个段落里面),可能想促使这种标签内显示它个人的段落,前后都留出空行,当建议不可以使用这种模式。

·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" 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 的编码行为。

   允许 Dreamweaver 在很多类型的文件中改写 HTML:

1、选择菜单按钮中的编辑 > 首选参数,接下来选择“代码改写”栏
2、选择下面的每一个一项:
·修正非法嵌套标签或没有结束标签
·删除多余的结束标签
3、执行下面的一项:
·根据“根据不改写代码:在带有扩展的文件中”的文件扩展名列表里面删除一个或多个。
·取消“根据不改写代码:在带有扩展的文件中”按钮。请注意:这种会导致 Dreamweaver 可以在每一个类型的文件中改写 HTML 代码。

  添加 Dreamweaver 禁止改写的文件类型:

  1、选择菜单按钮中的编辑 > 首选参数,接下来选择“代码改写”栏
  2、选择下面的每一个一项:
  ·修正非法嵌套标签或没有结束标签
  ·删除多余的结束标签
  3、确认“根据不改写代码:在带有扩展的文件中”项已被选中,把新的文件扩展名加入文本框的列表中。

   可能新的文件类型不会显示在“文件 > 打开”对话框的弹出菜单内,您可能就得把它增加到 Configuration/Extensions.txt 文件夹里面。详细信息,请参看改变默认的文件类型。

关闭 Dreamweaver 的编码按钮:

   1、选择菜单按钮中的编辑 > 首选参数,接下来选择“代码改写”栏
   2、取消两个“特殊字符编码”按钮中的每一个一个。

对于“代码改写”参数选择的别的信息,请参看使用 Dreamweaver。

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,