国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 網(wǎng)站 > WEB開發(fā) > 正文

擴(kuò)展Dreamweaver:自定義第三方標(biāo)簽的解析

2024-04-27 13:56:05
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

擴(kuò)展 Dreamweaver:自定義第三方標(biāo)簽的解析

因?yàn)樽罱恢痹谧?Dreamweaver 插件的開發(fā),中文的資料非常少,自己英文又差,查看英文資料的時(shí)候不由頭昏腦脹。迫不得已把其中一些重要的內(nèi)容翻譯成中文之后,看的時(shí)候才覺(jué)得爽快不少。本節(jié)選自 Dreamweaver 8 附帶的《Extending Dreamweaver 8》,翻譯的時(shí)候參考了一下俠客島翻譯的《Dreamweaver 4 中文幫助》。不過(guò)老實(shí)不客氣地說(shuō),我有點(diǎn)懷疑那個(gè)幫助的某些部分是用金山快譯之類的軟件翻譯的,反正讀起來(lái)比英文還難懂。

服務(wù)器端技術(shù),比如asp、Macromedia ColdFusion,jsp,以及 php 在 HTML 文件里面使用特殊的非 HTML 語(yǔ)法,服務(wù)器在這些代碼的基礎(chǔ)上創(chuàng)建和提供 HTML 格式的內(nèi)容。當(dāng) Dreamweaver 檢測(cè)到非 HTML 標(biāo)簽,Dreamweaver 會(huì)調(diào)用第三方標(biāo)簽的定義文件來(lái)比較它們,這些文件指定 Dreamweaver 如何讀取和顯示這些標(biāo)簽。

舉個(gè)例子,在標(biāo)準(zhǔn)的 HTML 語(yǔ)言之外,ASP 文件還包含了供服務(wù)器解析的 ASP 代碼。ASP 代碼看起來(lái)和 HTML 標(biāo)簽類似,它由一對(duì)標(biāo)簽,開始的 <% 和關(guān)閉的 %>,來(lái)作標(biāo)記。在 Dreamweaver 的 Configuration/ThirdPartyTags 文件夾里有一個(gè)名為 Tags.xml 的文件,這個(gè)文件就是用來(lái)描述包括 ASP 在內(nèi)的各種第三方標(biāo)簽規(guī)范的,并定義了 Dreamweaver 如何來(lái)顯示這些代碼。使用這種方法,ASP 代碼在 Tags.xml 中已經(jīng)被規(guī)范了,所以 Dreamweaver 不會(huì)再試著在 <%...%>之間解析任何代碼。不過(guò)在設(shè)計(jì)視圖里面,它會(huì)顯示一個(gè)圖標(biāo)以表示這是 ASP 代碼。你可以定義自己的標(biāo)簽,并且能為每套標(biāo)簽創(chuàng)建一個(gè)新的標(biāo)簽庫(kù)文件,來(lái)指定 Dreamweaver 如何讀取和顯示你的標(biāo)簽。

注意:這部分說(shuō)明了如何定義 Dreamweaver 顯示一個(gè)自定義標(biāo)簽的方法,但是沒(méi)有描述如何編輯自定義標(biāo)簽的內(nèi)容或是屬性。如何創(chuàng)建屬性檢查器來(lái)檢查和修改自定義標(biāo)簽的屬性,請(qǐng)查看屬性檢查器以獲得相關(guān)信息。

每個(gè)標(biāo)簽庫(kù)文件都會(huì)定義一個(gè)或者多個(gè)自定義標(biāo)簽的名稱、類型、內(nèi)容模式、顯示規(guī)范和圖標(biāo)。你可以創(chuàng)建任意數(shù)量的標(biāo)簽庫(kù)文件,但是它們必須位于 Configuration/ThirdPartyTags 文件夾以便被 Dreamweaver 讀取和處理。標(biāo)簽庫(kù)文件使用 .xml 文件擴(kuò)展名。

提示:如果你同時(shí)進(jìn)行著好幾個(gè)不同網(wǎng)站的工作(假定當(dāng)你是個(gè)自由職業(yè)者的時(shí)候),你可以把所有的標(biāo)簽規(guī)范定義在一個(gè)文件里面,并存放在一個(gè)特殊的站點(diǎn)上,將來(lái)由其他人維護(hù)這個(gè)站點(diǎn)的時(shí)候,你就可以完整地把包含自定義圖標(biāo)和屬性檢查器在內(nèi)的標(biāo)簽庫(kù)移交給他。

你需要使用一個(gè)名為 tagspec 的 XML 標(biāo)簽來(lái)定義一個(gè)標(biāo)簽規(guī)范。舉例來(lái)說(shuō),下面的代碼表示一個(gè)名為 happy 的標(biāo)簽規(guī)范。

<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 來(lái)定義兩種標(biāo)簽:
·HTML 格式的普通標(biāo)簽
happy 標(biāo)簽范例是一個(gè) HTML 格式的普通標(biāo)簽。它開始于 <happy> 標(biāo)簽,在開始標(biāo)簽與結(jié)束標(biāo)簽之間包含數(shù)據(jù),最后結(jié)束于</happy> 標(biāo)簽。

·字符串界定的標(biāo)簽
字符串界定的標(biāo)簽用一個(gè)字符串開始,用另一個(gè)字符串結(jié)束,它們和 HTML 空標(biāo)簽(諸如 img 之類)有類似之處,因?yàn)樗鼈兗炔话瑑?nèi)容也沒(méi)有關(guān)閉標(biāo)簽。如果 happy 也是一個(gè)字符串界定的標(biāo)簽,那它的定義規(guī)范里面必須包括 start_string 與 end_string 兩個(gè)屬性。ASP 標(biāo)簽都是字符串界定的標(biāo)簽,它們從 <% 開始,到 %> 結(jié)束,也沒(méi)有關(guān)閉標(biāo)簽。

下面的信息羅列了 tagspec 標(biāo)簽的各個(gè)屬性和有效值。帶有星號(hào)(“*”)的屬性表示不適用于字符串界定的標(biāo)簽,可選屬性則使用了大括號(hào)({})來(lái)標(biāo)識(shí);不難推斷,其他沒(méi)有使用大括號(hào)標(biāo)識(shí)的都屬于必要的屬性。

<tagspec>

說(shuō)明

關(guān)于第三方標(biāo)簽的預(yù)設(shè)信息

屬性

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 表示自定義的名稱。對(duì)于字符串界定的標(biāo)簽,tag_name 僅用于檢測(cè)一個(gè)特定的屬性檢查器是否適用于這個(gè)標(biāo)簽。如果屬性檢查器的第一行在符合規(guī)范的位置(其實(shí)就是在第一行的聲明里面)包含了這個(gè)標(biāo)簽名并標(biāo)上星號(hào)(“*”),那么這個(gè)檢查器將被允許檢查該類型的標(biāo)簽。舉個(gè)例子,ASP 代碼的標(biāo)簽名就是 ASP,允許檢查 ASP 代碼的檢查器必須在第一行包含 *ASP*。關(guān)于屬性檢查器 API 的信息,請(qǐng)參看 屬性檢查器。

tag_type 確定這個(gè)標(biāo)簽是空的(像前面提到的 img 那樣),還是允許在開始與關(guān)閉標(biāo)簽之間放置內(nèi)容(像 code 標(biāo)簽?zāi)菢樱_@個(gè)屬性對(duì)于普通(非字符串界定的)標(biāo)簽是必要的,但是對(duì)字符串界定的標(biāo)簽不生效,因?yàn)樗麄兛偸强盏摹S行е蛋?"empty" 和 "nonempty"。

render_contents 確定在設(shè)計(jì)視圖中,該標(biāo)簽顯示內(nèi)容,還是代之以特定的圖標(biāo)。該屬性僅對(duì)非空標(biāo)簽是必要的,對(duì)于空標(biāo)簽則不生效(空標(biāo)簽本身沒(méi)有內(nèi)容可供顯示)。該屬性僅應(yīng)用于插入到屬性外部的標(biāo)簽,如果一個(gè)標(biāo)簽插入其他標(biāo)簽的屬性值內(nèi),它的內(nèi)容將不會(huì)顯示(這一段有點(diǎn)難理解,我想到的是 RealMedia、Flash 之類的 Object,里面的那些 param 標(biāo)簽?)。有效值為 "true" 或者是 "false"。

content_model 描述這個(gè)標(biāo)簽?zāi)馨姆N內(nèi)容,還有這個(gè)標(biāo)簽?zāi)懿迦氲?HTML 文件的什么地方。有效值包括 "block_model","head_model","marker_model",以及"scr

·block_model 表示該標(biāo)簽可以包含 div、p之類的塊狀對(duì)象,并且該標(biāo)簽只可以出現(xiàn)在 body 區(qū)域,或者是插入到其他的 body-content 標(biāo)簽內(nèi),比如 div、layer 以及 td 等。

·head_model 表示該標(biāo)簽只能包含文字而且只能出現(xiàn)在 HEAD 范圍內(nèi)。

·marker_model 表示該標(biāo)簽?zāi)馨魏斡行У?HTML 代碼,并且可以放在 HTML 文件內(nèi)的任何位置。Dreamweaver 內(nèi)置的 HTML 檢驗(yàn)程序?qū)⒑雎远x為 marker_model 的標(biāo)簽。不過(guò),檢驗(yàn)程序不會(huì)忽略這些標(biāo)簽包含的內(nèi)容;所以,盡管標(biāo)簽本身可以隨處放置,但是它的內(nèi)容卻可能導(dǎo)致 HTML 的某些地方產(chǎn)生錯(cuò)誤。例如,純文本不能出現(xiàn)(除去合法的 head 元素)在文檔的 head 區(qū)域,所以你不能把一個(gè)包含純文本的 marker_model 標(biāo)簽放在 head 區(qū)域(如果你要這么做,那你必須把這個(gè)標(biāo)簽的內(nèi)容模式由 marker_model 替換為 head_model)。使用 marker_model 的標(biāo)簽將會(huì)在一行內(nèi)顯示(位于 p 或者 div 這樣的塊狀元素內(nèi)——舉個(gè)例子,在一個(gè)段落里面),如果想讓這個(gè)標(biāo)簽內(nèi)顯示它自己的段落,前后都留出空行,那么建議不要使用這個(gè)模式。

·script_model 讓這個(gè)標(biāo)簽可以放置在文檔內(nèi) HTML 標(biāo)簽之間的任何位置。當(dāng) Dreamweaver 檢測(cè)到使用該模式的標(biāo)簽,將忽略該標(biāo)簽的所有內(nèi)容。使用這種標(biāo)記(比如某些 ColdFusion 標(biāo)簽)后 Dreamweaver 將不會(huì)解析。

start_string 指定一個(gè)分隔符作為字符串界定的標(biāo)簽的起始點(diǎn)。字符串界定的標(biāo)簽可以被放置在任何可以插入注釋的地方。對(duì)于start_string 和 end_string 之間的代碼,Dreamweaver 既不會(huì)去解析,也不會(huì)去編碼或者是作鏈接。當(dāng) end_string 已經(jīng)被定義的時(shí)候,這個(gè)屬性是必需的。

end_string 指定一個(gè)分隔符作為字符串界定的標(biāo)簽的結(jié)束點(diǎn)。同樣,當(dāng) start_string 已經(jīng)被定義的時(shí)候,這個(gè)屬性是必需的。

detect_in_attribute 指定是否要忽略 start_string 和 end_string 之間的所有代碼(或者是在開始和結(jié)束標(biāo)簽之間,如果這兩個(gè)字符串沒(méi)有被定義),不管這些代碼之間插入屬性還是值。它的默認(rèn)值是 "false",不過(guò)一般情況下字符串界定的標(biāo)簽應(yīng)該把這個(gè)值設(shè)置為 "true"。例如,ASP 標(biāo)簽規(guī)范指定 detect_in_attribute="true",這樣就算 ASP 標(biāo)簽內(nèi)部有包含屬性值的引號(hào),也將被 Dreamweaver 忽略。

parse_attributes 表示是否要解析該標(biāo)簽的屬性。如果設(shè)置為 "true"(默認(rèn)值),Dreamweaver 將解析這些屬性;如果設(shè)置為 "false",Dreamweaver 將把引號(hào)外部的“>”出現(xiàn)之前的所有代碼代碼全部忽略。例如, 諸如 cfif 諸如的標(biāo)簽應(yīng)該將這個(gè)屬性設(shè)置為 "false"(因?yàn)樵?<cfif a is 1> 這樣的標(biāo)簽里面,Dreamweaver 無(wú)法將其作為一對(duì)屬性名稱/值的組合來(lái)解析)。

icon 指定匹配該標(biāo)簽的圖標(biāo)的路徑和文件名。該屬性對(duì)于空標(biāo)簽是必要的,另外對(duì)那些內(nèi)容不能顯示在文檔窗口的設(shè)計(jì)視圖中的非空標(biāo)簽也同樣是必要的。

icon_width 指定圖標(biāo)的像素寬度。

icon_height 指定圖標(biāo)的像素高度。

equivalent_tag 為 ColdFusion 里某些和表單關(guān)聯(lián)的標(biāo)簽指定簡(jiǎn)單的 HTML 等價(jià)物。其他標(biāo)簽不能使用該屬性。

is_visual 指定該標(biāo)簽是否在頁(yè)面上可見。例如,ColdFusion 標(biāo)簽 cfgraph 沒(méi)有指定 is_visual 的值(因此使用默認(rèn)值 "true"),ColdFusion 標(biāo)簽 cfset 指定了 is_visual 的值為 "false"。在預(yù)設(shè)對(duì)話框的“不可見元素”一欄內(nèi),你可以控制服務(wù)器標(biāo)簽的可見性;可視化服務(wù)器標(biāo)簽與不可視化服務(wù)器標(biāo)簽的可見性可以分開設(shè)置。

server_model,如果設(shè)置了該屬性,表示 tagspec 標(biāo)簽僅可應(yīng)用于屬于指定服務(wù)器模式的頁(yè)面。如果沒(méi)有設(shè)置,則 tagspec 可以應(yīng)用于所有頁(yè)面。例如,ASP 和 JSP 的定界符是一樣的,但是適用 JSP 的 tagspec 標(biāo)簽指定了服務(wù)器模式為 "JSP",所以當(dāng) Dreamweaver 在 JSP 頁(yè)面檢測(cè)到特定的定界符,它會(huì)顯示一個(gè) JSP 的圖標(biāo);當(dāng)在非 JSP 頁(yè)面檢測(cè)到相同的代碼,它會(huì)顯示 ASP 圖標(biāo)。

內(nèi)容

無(wú)(空標(biāo)簽)。

容器

無(wú)。

示例

<tagspec tag_name="happy" tag_type="nonempty" render_contents="false" content_model="marker_model" icon="happy.gif" icon_width="18" icon_height="18"></tagspec>

自定義標(biāo)簽在設(shè)計(jì)視圖如何顯示

自定義標(biāo)簽在文檔窗口的設(shè)計(jì)視圖中顯示的方式,決定于 tagspec 標(biāo)簽的 tag_type 屬性和 render_contents 屬性的值(請(qǐng)參看自定義第三方標(biāo)簽的解析)。如果 tag_type 的值為 "empty",就顯示 icon 屬性定義的指定圖標(biāo)。如果 tag_type 的值為 "nonempty",但是 render_contents 的值為 "false",也會(huì)像空標(biāo)簽?zāi)菢语@示圖標(biāo)。下面的例子演示了我們剛才定義的 happy 標(biāo)簽的一個(gè)實(shí)例如何插入到 HTML 代碼中:

<p>This is a paragraph that includes an instance of the <code>happy</code>tag (<happy>Joe</happy>).</p>

因?yàn)樵跇?biāo)簽規(guī)范里, render_contents 已經(jīng)被設(shè)置為 "false",所以 happy 標(biāo)簽(單詞 joe)將不被顯示,開始和關(guān)閉標(biāo)簽包括它們之間的內(nèi)容將被替換成一個(gè)簡(jiǎn)單的圖標(biāo)。

對(duì)于一個(gè) render_contents 值為 "true" 的非空標(biāo)簽,設(shè)計(jì)視圖不會(huì)將其顯示為圖標(biāo),而是顯示開始標(biāo)簽與關(guān)閉標(biāo)簽之間的內(nèi)容(比如標(biāo)簽之間的文本,就像這樣: <mytag>這里是開始與關(guān)閉標(biāo)簽之間的內(nèi)容</mytag>)。如果在菜單選項(xiàng)中,查看 > 可視化助理 > 不可見元素已經(jīng)被選中,那么這些內(nèi)容將會(huì)使用“代碼顏色”參數(shù)指定的第三方標(biāo)簽顏色來(lái)高亮顯示(“代碼顏色”僅應(yīng)用于標(biāo)簽庫(kù)文件定義的標(biāo)簽)

如何更改第三方標(biāo)簽的高亮顏色:

1、選擇菜單選項(xiàng)中的編輯 > 首選參數(shù),然后選擇“代碼顏色”欄。
2、點(diǎn)擊第三方標(biāo)簽顏色框以顯示顏色選擇器。
3、選擇一種顏色,然后點(diǎn)擊“確定”并關(guān)閉預(yù)設(shè)對(duì)話框。關(guān)于如何選擇顏色,另請(qǐng)參看使用 Dreamweaver。

避免改寫第三方標(biāo)簽

Dreamweaver 會(huì)在 HTML 代碼中校正某些特定的錯(cuò)誤,詳細(xì)信息請(qǐng)參考使用 Dreamweaver。默認(rèn)情況下,Dreamweaver 禁止在特定文件擴(kuò)展名的文件中更改 HTML 代碼,這些文件名包括 .asp(ASP)、.cfm(ColdFusion)、.jsp(JSP),以及 .php(PHP)。這樣的默認(rèn)設(shè)置是為了保證 Dreamweaver 不會(huì)意外地修改任何包含在非 HTML 標(biāo)簽里面的代碼。你可以更改 Dreamweaver 的默認(rèn)改寫行為,以便在打開這類文件的時(shí)候改寫 HTML 代碼,并且你也可以在 Dreamweaver 禁止改寫的文件類型列表里面加入其他的文件類型。

當(dāng)你把某些特殊字符輸入到屬性檢查器的時(shí)候,Dreamweaver 會(huì)把它們編碼成數(shù)值。一般來(lái)說(shuō),讓 Dreamweaver 執(zhí)行這種編碼是最好的,因?yàn)檫@些特殊字符在跨越不同的平臺(tái)和瀏覽器的時(shí)候,將可能被更好地顯示。不過(guò),因?yàn)檫@種編碼會(huì)影響第三方標(biāo)簽,所以當(dāng)你在編輯包括第三方標(biāo)簽的文件時(shí),你可能要更改 Dreamweaver 的編碼行為。

允許 Dreamweaver 在更多類型的文件中改寫 HTML:

1、選擇菜單選項(xiàng)中的編輯 > 首選參數(shù),然后選擇“代碼改寫”欄
2、選擇下面的任何一項(xiàng):
·修正非法嵌套標(biāo)簽或未結(jié)束標(biāo)簽
·刪除多余的結(jié)束標(biāo)簽
3、執(zhí)行下面的一項(xiàng):
·從“從不改寫代碼:在帶有擴(kuò)展的文件中”的文件擴(kuò)展名列表里面刪除一個(gè)或多個(gè)。
·取消“從不改寫代碼:在帶有擴(kuò)展的文件中”選項(xiàng)。請(qǐng)注意:這樣會(huì)導(dǎo)致 Dreamweaver 可以在任何類型的文件中改寫 HTML 代碼。

添加 Dreamweaver 禁止改寫的文件類型:

1、選擇菜單選項(xiàng)中的編輯 > 首選參數(shù),然后選擇“代碼改寫”欄
2、選擇下面的任何一項(xiàng):
·修正非法嵌套標(biāo)簽或未結(jié)束標(biāo)簽
·刪除多余的結(jié)束標(biāo)簽
3、確認(rèn)“從不改寫代碼:在帶有擴(kuò)展的文件中”項(xiàng)已被選中,把新的文件擴(kuò)展名加入文本框的列表中。

如果新的文件類型不會(huì)顯示在“文件 > 打開”對(duì)話框的彈出菜單內(nèi),你可能需要把它增加到 Configuration/Extensions.txt 文件夾里面。詳細(xì)信息,請(qǐng)參看改變默認(rèn)的文件類型。

關(guān)閉 Dreamweaver 的編碼選項(xiàng):

1、選擇菜單選項(xiàng)中的編輯 > 首選參數(shù),然后選擇“代碼改寫”欄
2、取消兩個(gè)“特殊字符編碼”選項(xiàng)中的任何一個(gè)。

關(guān)于“代碼改寫”參數(shù)選擇的其他信息,請(qǐng)參看使用 Dreamweaver。


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 朝阳县| 泰宁县| 姜堰市| 乌什县| 砚山县| 尉犁县| 屏东市| 旅游| 连平县| 和硕县| 瑞安市| 紫阳县| 富阳市| 大田县| 资中县| 巴楚县| 八宿县| 镇江市| 东城区| 巴林右旗| 景德镇市| 青州市| 梅州市| 内黄县| 巴林左旗| 吉木萨尔县| 大田县| 泸水县| 孟津县| 前郭尔| 湖南省| 新民市| 富民县| 南汇区| 沂源县| 新郑市| 通州市| 盐山县| 托克逊县| 十堰市| 定襄县|