如何撰寫 install.rdf
From MoztwWiki

 這個頁面屬於 如何製作 Firefox 擴充套件計畫 的一部份,歡迎您共同參與本
                             計畫。詳見 專案首頁。


             內容大綱      [隱藏]
1 line for test
2 什麼是 install.rdf?
3 開始製作 install.rdf

3.1 事前準備
3.2 範例
3.3 必備標籤

3.3.1 em:id
3.3.2 em:version
3.3.3 em:targetApplication

3.3.3.1 em:id
3.3.3.2 em:minVersion, em:maxVersion

3.3.4 em:name
3.3.5 em:file

3.3.5.1 em:package
3.3.5.2 em:skin
3.3.5.3 em:locale

3.4 選用標籤

3.4.1 em:description
3.4.2 em:creator
3.4.3 em:contributor
3.4.4 em:homepageURL
3.4.5 em:updateURL
3.4.6 em:optionsURL
3.4.7 em:aboutURL
3.4.8 em:iconURL

4 1.1 版後的更新
[編輯]



line for test
[編輯]



什麼是 install.rdf?
指 Firefox、Thunderbird 等軟體擴充套件中的安裝描述檔,也就是說如果您是
一般使用者,那... 您走錯了 ^__^。要是想包裝擴充套件,那就看下去...
這邊的資訊適用 Firefox 1.0 版,1.1 版以後將有所變動,請參考 Packaging
Firefox/Thunderbird Extensions
(http://www.mozilla.org/projects/firefox/extensions/packaging/extensions.html)
[編輯]



開始製作 install.rdf
[編輯]


事前準備

你需要一個支援 Unicode 的純文字編輯器,因為這個檔案必須以 Unicode 儲存,
就這樣... 很簡單吧! .rdf 檔基本上也是 XML 檔,所以該守的 XML 規範一樣不
缺;如果你先前對 XML 有所認識,那以下就是蛋糕一片囉。
不瞭解也無妨,先來看一個完整的範例,:
[編輯]


範例
<!-- 宣告區 -->
<?xml version="1.0"?>
<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:em="http://www.mozilla.org/2004/em-rdf#">


<!-- 主要內容 -->
 <Description about="urn:mozilla:install-manifest">


  <em:id>{c7ae9c4d-e8f5-4a01-8ec9-1233018a202e}</em:id>
  <em:version>0.1</em:version>


  <!-- 指明要安裝套件的應用程式,這個例子是 Firefox -->
  <em:targetApplication>
   <Description>
    <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
    <em:minVersion>0.10</em:minVersion>
    <em:maxVersion>1.0+</em:maxVersion>
   </Description>
  </em:targetApplication>


  <!-- 套件資訊 -->
  <em:name>Moztw Pack</em:name>
  <em:description>Moztw 自訂的套件</em:description>
  <em:creator>Moztw</em:creator>
  <em:contributor>dken</em:contributor>
  <em:homepageURL>http://moztw.org/</em:homepageURL>


  <!-- 安裝檔案 -->
  <em:file>
   <Description about="urn:mozilla:extension:file:moztwPack.jar">
    <em:package>content/moztwPack/</em:package>
    <em:skin>skin/classic/moztwPack/</em:skin>
    <em:locale>locale/zh-TW/moztwPack/<em:locale>
   </Description>
  </em:file>
</Description>
</RDF>

其中宣告區是固定的,照抄即可;主要內容的 <Description> 標籤寫法也可以直
接抄:
<Description about="urn:mozilla:install-manifest">
   ...
   [套件屬性]
   ...
</Description>

而其中的套件屬性分成必備跟選用兩類標籤,以下一一介紹:
[編輯]


必備標籤

這些標籤是一定要寫的,也只能寫一個(組)。
[編輯]


em:id

這是用來指定套件的 UID。怎麼取得 UID 呢? 有三套工具可以用 guidgen
(Windows), uuidgen (Unix/Linux), "botbot uuid" (在 IRC 上)
[編輯]


em:version

指定套件的版本號。所有版本號請依循 Firefox 規則,以主版本號.副版本號.
修補版本號方式列明 (如 1.0.3)。
[編輯]


em:targetApplication

說明你的套件該給那個應用程式(例如 Firefox 或 Mozilla)安裝,像這樣:
<em:targetApplication>
 <Description>
  <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
  <em:minVersion>0.10</em:minVersion>
<em:maxVersion>1.0+</em:maxVersion>
 </Description>
</em:targetApplication>

如果套件可以同時安裝在多種應用程式上,則可寫兩組(以上)的
<Description>,每組當中指定一套應用程式。以下介紹                          em:id、em:minVersion
和 em:maxVersion。
[編輯]

em:id

應用程式的 UID,如果是給 Firefox 用就寫 Firefox 的,以此類推。以下是常見
三種應用程式的 UID:

   •    Firefox: {ec8030f7-c20a-464f-9b0e-13a3a9e97384}
   •    Mozilla: {86c18b42-e466-45a9-ae7a-9b95ba6f5640}
   •    Thunderbird: {3550f703-e582-4d05-9a08-453d09bdfdc6}

[編輯]

em:minVersion, em:maxVersion

最小相容版和最大相容版本,請填上版本號。
[編輯]


em:name

擴充套件的名稱,可以填中文。
[編輯]


em:file

指定 chrome 裡頭檔案的安裝目錄,也包含一組(以上?)Description 標籤。
Description   的標籤格式一定是 <Description
about="urn:mozilla:extension:file:moztwPack.jar">,其中的   moztwPack.jar 要替換成你
包好的 jar 檔名稱,可不要照抄哪!
Description   中包含 em:package、em:skin 跟 em:locale 標籤。其中的 em:skin 跟
em:locale   屬於選用,也可以寫一個以上。
[編輯]

em:package

指定安裝 content/ 裡的檔案
[編輯]

em:skin

佈景主題,指定安裝到 skin/ 裡的檔案。
[編輯]

em:locale

各語言專用檔,指定安裝 locale/ 裡的檔案。
[編輯]


選用標籤

此處為選用標籤,有則寫之無則略過...
[編輯]


em:description

簡介你的套件功能,只能寫一組,可以用中文。
[編輯]


em:creator

主要開發者名稱,只能寫一組,可以用中文。
[編輯]


em:contributor

在開發過程中予以協助的貢獻者,可以寫很多個(每個人寫一個標籤),可以
用中文。
[編輯]
em:homepageURL

套件首頁網址。
[編輯]


em:updateURL

填上檢查自動更新的 rdf 網址,請參考 Enable Extension Updates
(http://roachfiend.com/archives/2005/03/09/enabling-extension-updates/)
[編輯]


em:optionsURL

指定選項對話方塊的資源位置,如果省略則代表不使用擴充套件管理員中的選
項功能。範例:
<em:optionsURL>chrome://moztwPack/content/options.xul</em:optionsURL>

[編輯]


em:aboutURL

指定關於對話方塊的資源位置,如果省略則會自動採用內建的陽春對話方塊。
範例:
<em:aboutURL>chrome://myext/content/about.xul</em:aboutURL>

[編輯]


em:iconURL

指定套件圖示的資源位置,如果省略則會自動採用預設圖示。範例:
<em:iconURL>chrome://myext/skin/icon.png</em:iconURL>

[編輯]



1.1 版後的更新
em:file 標籤在 Firefox 1.1 版起不用寫,應以 chrome.manifest 檔案代替,相關
寫法請參考 Packaging Firefox/Thunderbird Extensions
(http://www.mozilla.org/projects/firefox/extensions/packaging/extensions.html)
,有興趣者請順便翻譯過來... ;)
底下是新版的基本格式:(主要分成四類 - content,locale,skin,overlay)

      •   content package
             o content packagename path/to/files

      •   locale package
              o locale packagename localename path/to/files

      •   skin package
              o skin packagename skinname path/to/files

      •   XUL overlay
            o overlay chrome://file-to-overlay chrome://overlay-file

      •   Style overlay
              o style chrome://file-to-style chrome://stylesheet-file


範例:
content mypackagename jar:chrome/myjarfile.jar!/content/
locale mypackagename en-US jar:chrome/myjarfile.jar!/locale/English/
locale mypackagename fr-FR jar:chrome/myjarfile.jar!/locale/French/
skin mypackagename classic/1.0 jar:chrome/myjarfile.jar!/skin/classic/


mozilla.org 上較完整的例子:
(1)
content     necko     jar:comm.jar!/content/necko/
content     pippki    jar:pippki.jar!/content/pippki/
content     xbl-marquee          jar:comm.jar!/content/xbl-marquee/
content     pipnss    jar:pipnss.jar!/content/pipnss/
content global-platform jar:toolkit.jar!/content/global-platform/ platform
(2)
overlay     chrome://browser/content/pageInfo.xul chrome://pippki/content/PageInfoOverlay.xul
overlay     chrome://communicator/content/pref/preftree.xul
            chrome://pippki/content/PrefOverlay.xul
overlay     chrome://navigator/content/pageInfo.xul
            chrome://pippki/content/PageInfoOverlay.xul
(3)
locale      pipnss    en-US      jar:en-US.jar!/locale/en-US/pipnss/
locale      necko     en-US      jar:en-US.jar!/locale/en-US/necko/
locale      pippki    en-US      jar:en-US.jar!/locale/en-US/pippki/
1. 第一類(1):
     o   "necko" 為套件名稱
     o   "jar:comm.jar!" 代表 necko 是被包在 comm.jar 裡頭的
     o   "/content/necko/" 就是代表 necko 的相關套件所在路徑
2. 第二類(2):
     o   這個就很容易辨認了,但是不要忘了 chrome:// 的格式和一般的
         URL 是不一樣哦,這要特別注意!
3. 第三類(3):
     o   同(1)"pipnss" 為套件名稱
     o   "jar:en-US.jar!" 代表 pipnss 是被包在 en-US.jar 裡頭的
     o   "/locale/en-US/pipnss/" 路徑。

如何撰寫Install

  • 1.
    如何撰寫 install.rdf From MoztwWiki 這個頁面屬於 如何製作 Firefox 擴充套件計畫 的一部份,歡迎您共同參與本 計畫。詳見 專案首頁。 內容大綱 [隱藏] 1 line for test 2 什麼是 install.rdf? 3 開始製作 install.rdf 3.1 事前準備 3.2 範例 3.3 必備標籤 3.3.1 em:id 3.3.2 em:version 3.3.3 em:targetApplication 3.3.3.1 em:id 3.3.3.2 em:minVersion, em:maxVersion 3.3.4 em:name 3.3.5 em:file 3.3.5.1 em:package 3.3.5.2 em:skin 3.3.5.3 em:locale 3.4 選用標籤 3.4.1 em:description 3.4.2 em:creator 3.4.3 em:contributor
  • 2.
    3.4.4 em:homepageURL 3.4.5 em:updateURL 3.4.6em:optionsURL 3.4.7 em:aboutURL 3.4.8 em:iconURL 4 1.1 版後的更新 [編輯] line for test [編輯] 什麼是 install.rdf? 指 Firefox、Thunderbird 等軟體擴充套件中的安裝描述檔,也就是說如果您是 一般使用者,那... 您走錯了 ^__^。要是想包裝擴充套件,那就看下去... 這邊的資訊適用 Firefox 1.0 版,1.1 版以後將有所變動,請參考 Packaging Firefox/Thunderbird Extensions (http://www.mozilla.org/projects/firefox/extensions/packaging/extensions.html) [編輯] 開始製作 install.rdf [編輯] 事前準備 你需要一個支援 Unicode 的純文字編輯器,因為這個檔案必須以 Unicode 儲存, 就這樣... 很簡單吧! .rdf 檔基本上也是 XML 檔,所以該守的 XML 規範一樣不 缺;如果你先前對 XML 有所認識,那以下就是蛋糕一片囉。 不瞭解也無妨,先來看一個完整的範例,:
  • 3.
    [編輯] 範例 <!-- 宣告區 --> <?xmlversion="1.0"?> <RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:em="http://www.mozilla.org/2004/em-rdf#"> <!-- 主要內容 --> <Description about="urn:mozilla:install-manifest"> <em:id>{c7ae9c4d-e8f5-4a01-8ec9-1233018a202e}</em:id> <em:version>0.1</em:version> <!-- 指明要安裝套件的應用程式,這個例子是 Firefox --> <em:targetApplication> <Description> <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id> <em:minVersion>0.10</em:minVersion> <em:maxVersion>1.0+</em:maxVersion> </Description> </em:targetApplication> <!-- 套件資訊 --> <em:name>Moztw Pack</em:name> <em:description>Moztw 自訂的套件</em:description> <em:creator>Moztw</em:creator> <em:contributor>dken</em:contributor> <em:homepageURL>http://moztw.org/</em:homepageURL> <!-- 安裝檔案 --> <em:file> <Description about="urn:mozilla:extension:file:moztwPack.jar"> <em:package>content/moztwPack/</em:package> <em:skin>skin/classic/moztwPack/</em:skin> <em:locale>locale/zh-TW/moztwPack/<em:locale> </Description> </em:file>
  • 4.
    </Description> </RDF> 其中宣告區是固定的,照抄即可;主要內容的 <Description> 標籤寫法也可以直 接抄: <Descriptionabout="urn:mozilla:install-manifest"> ... [套件屬性] ... </Description> 而其中的套件屬性分成必備跟選用兩類標籤,以下一一介紹: [編輯] 必備標籤 這些標籤是一定要寫的,也只能寫一個(組)。 [編輯] em:id 這是用來指定套件的 UID。怎麼取得 UID 呢? 有三套工具可以用 guidgen (Windows), uuidgen (Unix/Linux), "botbot uuid" (在 IRC 上) [編輯] em:version 指定套件的版本號。所有版本號請依循 Firefox 規則,以主版本號.副版本號. 修補版本號方式列明 (如 1.0.3)。 [編輯] em:targetApplication 說明你的套件該給那個應用程式(例如 Firefox 或 Mozilla)安裝,像這樣: <em:targetApplication> <Description> <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id> <em:minVersion>0.10</em:minVersion>
  • 5.
    <em:maxVersion>1.0+</em:maxVersion> </Description> </em:targetApplication> 如果套件可以同時安裝在多種應用程式上,則可寫兩組(以上)的 <Description>,每組當中指定一套應用程式。以下介紹 em:id、em:minVersion 和 em:maxVersion。 [編輯] em:id 應用程式的 UID,如果是給 Firefox 用就寫 Firefox 的,以此類推。以下是常見 三種應用程式的 UID: • Firefox: {ec8030f7-c20a-464f-9b0e-13a3a9e97384} • Mozilla: {86c18b42-e466-45a9-ae7a-9b95ba6f5640} • Thunderbird: {3550f703-e582-4d05-9a08-453d09bdfdc6} [編輯] em:minVersion, em:maxVersion 最小相容版和最大相容版本,請填上版本號。 [編輯] em:name 擴充套件的名稱,可以填中文。 [編輯] em:file 指定 chrome 裡頭檔案的安裝目錄,也包含一組(以上?)Description 標籤。 Description 的標籤格式一定是 <Description about="urn:mozilla:extension:file:moztwPack.jar">,其中的 moztwPack.jar 要替換成你 包好的 jar 檔名稱,可不要照抄哪! Description 中包含 em:package、em:skin 跟 em:locale 標籤。其中的 em:skin 跟 em:locale 屬於選用,也可以寫一個以上。
  • 6.
    [編輯] em:package 指定安裝 content/ 裡的檔案 [編輯] em:skin 佈景主題,指定安裝到skin/ 裡的檔案。 [編輯] em:locale 各語言專用檔,指定安裝 locale/ 裡的檔案。 [編輯] 選用標籤 此處為選用標籤,有則寫之無則略過... [編輯] em:description 簡介你的套件功能,只能寫一組,可以用中文。 [編輯] em:creator 主要開發者名稱,只能寫一組,可以用中文。 [編輯] em:contributor 在開發過程中予以協助的貢獻者,可以寫很多個(每個人寫一個標籤),可以 用中文。 [編輯]
  • 7.
    em:homepageURL 套件首頁網址。 [編輯] em:updateURL 填上檢查自動更新的 rdf 網址,請參考Enable Extension Updates (http://roachfiend.com/archives/2005/03/09/enabling-extension-updates/) [編輯] em:optionsURL 指定選項對話方塊的資源位置,如果省略則代表不使用擴充套件管理員中的選 項功能。範例: <em:optionsURL>chrome://moztwPack/content/options.xul</em:optionsURL> [編輯] em:aboutURL 指定關於對話方塊的資源位置,如果省略則會自動採用內建的陽春對話方塊。 範例: <em:aboutURL>chrome://myext/content/about.xul</em:aboutURL> [編輯] em:iconURL 指定套件圖示的資源位置,如果省略則會自動採用預設圖示。範例: <em:iconURL>chrome://myext/skin/icon.png</em:iconURL> [編輯] 1.1 版後的更新 em:file 標籤在 Firefox 1.1 版起不用寫,應以 chrome.manifest 檔案代替,相關 寫法請參考 Packaging Firefox/Thunderbird Extensions
  • 8.
    (http://www.mozilla.org/projects/firefox/extensions/packaging/extensions.html) ,有興趣者請順便翻譯過來... ;) 底下是新版的基本格式:(主要分成四類 -content,locale,skin,overlay) • content package o content packagename path/to/files • locale package o locale packagename localename path/to/files • skin package o skin packagename skinname path/to/files • XUL overlay o overlay chrome://file-to-overlay chrome://overlay-file • Style overlay o style chrome://file-to-style chrome://stylesheet-file 範例: content mypackagename jar:chrome/myjarfile.jar!/content/ locale mypackagename en-US jar:chrome/myjarfile.jar!/locale/English/ locale mypackagename fr-FR jar:chrome/myjarfile.jar!/locale/French/ skin mypackagename classic/1.0 jar:chrome/myjarfile.jar!/skin/classic/ mozilla.org 上較完整的例子: (1) content necko jar:comm.jar!/content/necko/ content pippki jar:pippki.jar!/content/pippki/ content xbl-marquee jar:comm.jar!/content/xbl-marquee/ content pipnss jar:pipnss.jar!/content/pipnss/ content global-platform jar:toolkit.jar!/content/global-platform/ platform (2) overlay chrome://browser/content/pageInfo.xul chrome://pippki/content/PageInfoOverlay.xul overlay chrome://communicator/content/pref/preftree.xul chrome://pippki/content/PrefOverlay.xul overlay chrome://navigator/content/pageInfo.xul chrome://pippki/content/PageInfoOverlay.xul (3) locale pipnss en-US jar:en-US.jar!/locale/en-US/pipnss/ locale necko en-US jar:en-US.jar!/locale/en-US/necko/ locale pippki en-US jar:en-US.jar!/locale/en-US/pippki/
  • 9.
    1. 第一類(1): o "necko" 為套件名稱 o "jar:comm.jar!" 代表 necko 是被包在 comm.jar 裡頭的 o "/content/necko/" 就是代表 necko 的相關套件所在路徑 2. 第二類(2): o 這個就很容易辨認了,但是不要忘了 chrome:// 的格式和一般的 URL 是不一樣哦,這要特別注意! 3. 第三類(3): o 同(1)"pipnss" 為套件名稱 o "jar:en-US.jar!" 代表 pipnss 是被包在 en-US.jar 裡頭的 o "/locale/en-US/pipnss/" 路徑。