舊文件

此處文件僅供參考,請自行考量時效性與適用程度,其他庫藏文件請參考文件頁面
我們亟需您的協助,進行共筆系統搬移、及文件整理工作,詳情請查閱參與我們

「如何撰寫install.rdf」修訂間的差異

出自 MozTW Wiki

 
(line for test)
 
(未顯示由 4 位使用者於中間所作的 8 次修訂)
行 1: 行 1:
== install.rdf 範例 ==
+
{{subpage|如何製作 Firefox 擴充套件}}
這裡我們先給一個樣板:
+
 
 +
 
 +
= line for test =
 +
= 什麼是 install.rdf? =
 +
指 Firefox、Thunderbird 等軟體擴充套件中的安裝描述檔,也就是說如果您是一般使用者,那... 您走錯了 ^__^。要是想包裝擴充套件,那就看下去...
 +
 
 +
這邊的資訊適用 Firefox 1.0 版,1.1 版以後將有所變動,請參考 [http://www.mozilla.org/projects/firefox/extensions/packaging/extensions.html Packaging Firefox/Thunderbird Extensions]
 +
 
 +
= 開始製作 install.rdf =
 +
 
 +
== 事前準備 ==
 +
你需要一個支援 Unicode 的純文字編輯器,因為這個檔案必須以 Unicode 儲存,就這樣... 很簡單吧! .rdf 檔基本上也是 XML 檔,所以該守的 XML 規範一樣不缺;如果你先前對 XML 有所認識,那以下就是蛋糕一片囉。
 +
 
 +
不瞭解也無妨,先來看一個完整的範例,:
 +
 
 +
== 範例 ==
 
<pre>
 
<pre>
 
<!-- 宣告區 -->
 
<!-- 宣告區 -->
行 41: 行 56:
 
</RDF>
 
</RDF>
 
</pre>
 
</pre>
*宣告區:這個部份是固定的,只要照抄即可
+
 
*主要內容:
+
其中'''宣告區'''是固定的,照抄即可;'''主要內容'''的 <code><Description></code> 標籤寫法也可以直接抄:
這個部份頭尾的 <Description> 標籤寫法都是固定,而其中的 properties 的部份則可以視我們的需要來改變,但是有幾個<b>必要</b>的 properties 是一定要寫的,接下來會介紹。
+
 
 
<pre>
 
<pre>
 
<Description about="urn:mozilla:install-manifest">
 
<Description about="urn:mozilla:install-manifest">
 
     ...
 
     ...
     [properties]
+
     [套件屬性]
 
     ...
 
     ...
 
</Description>
 
</Description>
 
</pre>
 
</pre>
*一定要寫的標籤
 
#<em:id>: 這是用來指定你的套件的 UID,那麼你要怎麼取得 UID 呢? 這裡有三套工具可以用 guidgen (Windows), uuidgen (Unix/Linux), "botbot uuid" (在IRC上)
 
#<em:version>: 指定你套件的版本號
 
#<em:targetApplication>: 這個部份指明你要安裝套件的是那個應用程式,例如:Firefox 或 mozilla
 
#*<em:id>: 這裡的 id 是固定的哦
 
#**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 about="urn:mozilla:extension:file:moztwPack.jar">: 注意,這裡的 moztwPack.jar 要替換成你包好的套件,可不要照抄吶。
 
#*<em:package>: 指定安裝 content/ 裡的檔案
 
#*<em:skin>: 指定安裝 skin/ 裡的檔案
 
#*<em:locale>: 指定安裝 locale/ 裡的檔案
 
  
*不一定要寫的標籤
+
而其中的'''套件屬性'''分成'''必備'''跟'''選用'''兩類標籤,以下一一介紹:
 +
 
 +
== 必備標籤 ==
 +
這些標籤是一定要寫的,也只能寫一個(組)。
 +
=== em:id ===
 +
這是用來指定套件的 UID。怎麼取得 UID 呢? 有三套工具可以用 guidgen (Windows), uuidgen (Unix/Linux), "botbot uuid" (在IRC上)
 +
=== em:version ===
 +
指定套件的版本號。所有版本號請依循 Firefox 規則,以'''主版本號'''.'''副版本號'''.'''修補版本號'''方式列明 (如 1.0.3)。
 +
=== em:targetApplication ===
 +
說明你的套件該給那個應用程式(例如 Firefox 或 Mozilla)安裝,像這樣:
 +
<pre>
 +
<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>
 +
</pre>
 +
如果套件可以同時安裝在多種應用程式上,則可寫兩組(以上)的<code><Description></code>,每組當中指定一套應用程式。以下介紹 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 裡頭檔案的安裝目錄,也包含一組(以上?)<code>Description</code> 標籤。 <code>Description</code> 的標籤格式一定是 <code><nowiki><Description about="urn:mozilla:extension:file:moztwPack.jar"></nowiki></code>,其中的 moztwPack.jar 要替換成你包好的 jar 檔名稱,可不要照抄哪!
 +
 
 +
<code>Description</code> 中包含 <code>em:package</code>、<code>em:skin</code> 跟 <code>em:locale</code> 標籤。其中的 <code>em:skin</code> 跟 <code>em:locale</code> 屬於選用,也可以寫一個以上。
 +
 
 +
==== em:package ====
 +
指定安裝 content/ 裡的檔案
 +
==== em:skin ====
 +
佈景主題,指定安裝到 skin/ 裡的檔案。
 +
==== em:locale ====
 +
各語言專用檔,指定安裝 locale/ 裡的檔案。
 +
 
 +
== 選用標籤 ==
 +
此處為選用標籤,有則寫之無則略過...
 +
=== em:description ===
 +
簡介你的套件功能,只能寫一組,可以用中文。
 +
=== em:creator ===
 +
主要開發者名稱,只能寫一組,可以用中文。
 +
=== em:contributor ===
 +
在開發過程中予以協助的貢獻者,可以寫很多個(每個人寫一個標籤),可以用中文。
 +
=== em:homepageURL ===
 +
套件首頁網址。
 +
=== em:updateURL ===
 +
填上檢查自動更新的 rdf 網址,請參考 [http://roachfiend.com/archives/2005/03/09/enabling-extension-updates/ Enable Extension Updates]
 +
=== em:optionsURL ===
 +
指定'''選項'''對話方塊的資源位置,如果省略則代表不使用擴充套件管理員中的'''選項'''功能。範例:
 +
 
 +
<pre><nowiki><em:optionsURL>chrome://moztwPack/content/options.xul</em:optionsURL></nowiki></pre>
 +
=== em:aboutURL ===
 +
指定'''關於'''對話方塊的資源位置,如果省略則會自動採用內建的陽春對話方塊。範例:
 +
 
 +
<pre><nowiki><em:aboutURL>chrome://myext/content/about.xul</em:aboutURL></nowiki></pre>
 +
=== em:iconURL ===
 +
指定'''套件圖示'''的資源位置,如果省略則會自動採用預設圖示。範例:
 +
 
 +
<pre><nowiki><em:iconURL>chrome://myext/skin/icon.png</em:iconURL></nowiki></pre>
 +
= 1.1 版後的更新 =
 +
em:file 標籤在 Firefox 1.1 版起不用寫,應以 chrome.manifest 檔案代替,相關寫法請參考 [http://www.mozilla.org/projects/firefox/extensions/packaging/extensions.html Packaging Firefox/Thunderbird Extensions],有興趣者請順便翻譯過來... ;)
 +
 
 +
底下是新版的基本格式:(主要分成四類 - content,locale,skin,overlay)
 +
*content package
 +
**content  packagename  path/to/files
 +
 
 +
*locale package
 +
**locale packagename localename path/to/files
 +
 
 +
*skin package
 +
**skin packagename skinname path/to/files
 +
 
 +
*XUL overlay
 +
**overlay chrome://file-to-overlay chrome://overlay-file
 +
 
 +
*Style overlay
 +
**style chrome://file-to-style chrome://stylesheet-file
 +
 
 +
<pre>
 +
範例:
 +
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/
 +
</pre>
 +
 
 +
 
 +
<pre>
 +
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/
 +
 
 +
</pre>
 +
#第一類(1):
 +
#*"necko" 為套件名稱
 +
#*"jar:comm.jar!" 代表 necko 是被包在 comm.jar 裡頭的
 +
#*"/content/necko/" 就是代表 necko 的相關套件所在路徑
 +
#第二類(2):
 +
#*這個就很容易辨認了,但是不要忘了 chrome:// 的格式和一般的 URL 是不一樣哦,這要特別注意!
 +
#第三類(3):
 +
#*同(1)"pipnss" 為套件名稱
 +
#*"jar:en-US.jar!" 代表 pipnss 是被包在 en-US.jar 裡頭的
 +
#*"/locale/en-US/pipnss/" 路徑。
 +
 
 +
 
 +
{{link|文件專案|如何製作 Firefox 擴充套件}}

於 2005年4月22日 (五) 17:54 的最新修訂

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


line for test

什麼是 install.rdf?

指 Firefox、Thunderbird 等軟體擴充套件中的安裝描述檔,也就是說如果您是一般使用者,那... 您走錯了 ^__^。要是想包裝擴充套件,那就看下去...

這邊的資訊適用 Firefox 1.0 版,1.1 版以後將有所變動,請參考 Packaging Firefox/Thunderbird Extensions

開始製作 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:packageem:skinem:locale 標籤。其中的 em:skinem:locale 屬於選用,也可以寫一個以上。

em:package

指定安裝 content/ 裡的檔案

em:skin

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

em:locale

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

選用標籤

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

em:description

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

em:creator

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

em:contributor

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

em:homepageURL

套件首頁網址。

em:updateURL

填上檢查自動更新的 rdf 網址,請參考 Enable 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,有興趣者請順便翻譯過來... ;)

底下是新版的基本格式:(主要分成四類 - content,locale,skin,overlay)

  • content package
    • content packagename path/to/files
  • locale package
    • locale packagename localename path/to/files
  • skin package
    • skin packagename skinname path/to/files
  • XUL overlay
    • overlay chrome://file-to-overlay chrome://overlay-file
  • Style overlay
    • 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):
    • "necko" 為套件名稱
    • "jar:comm.jar!" 代表 necko 是被包在 comm.jar 裡頭的
    • "/content/necko/" 就是代表 necko 的相關套件所在路徑
  2. 第二類(2):
    • 這個就很容易辨認了,但是不要忘了 chrome:// 的格式和一般的 URL 是不一樣哦,這要特別注意!
  3. 第三類(3):
    • 同(1)"pipnss" 為套件名稱
    • "jar:en-US.jar!" 代表 pipnss 是被包在 en-US.jar 裡頭的
    • "/locale/en-US/pipnss/" 路徑。


個人工具