各位 TOSSUG 的 hacker 們大家好: 這裡想跟大家介紹 W3C HTML5 中文興趣小組關於 HTML 規範實作註解的線上計 畫,並鼓勵各位踴躍參加。 == 什麼是 HTML 規範實作註解計畫?== 這是由 W3C HTML5 中文興趣小組的 HTML 規範翻譯延伸出來的一個計畫,基本上 就是把規範裡面的某些部份(在極端的情形下是每一行)直接連到瀏覽器實作的原 始碼的某些部份(範例:[2],請點各瀏覽器圖示)。這裡原始碼使用的連結樣式 如下: Gecko: http://hg.mozilla.org/mozilla-central/annotate/945f64763a70/content/html/document/src/nsHTMLDocument.cpp#l823 WebKit: http://trac.webkit.org/browser/trunk/Source/WebCore/dom/Document.idl?annotate=blame&rev=99612#L21 也就是在創造連結當下的最新版本的某一行,用「當下最新版本」而不是「最新版 本」是避免行數在新的版本中會改變,而用「當下最新版本」基本上就是為當時的 原始碼照張像這樣。 [2] http://www.w3.org/html/ig/zh/wiki/HTML5/impl#.E8.BC.B8.E5.85.A5.E4.B8.B2.E6.B5.81 == 為什麼要做這樣的事情?== === 理由零 === 作為一個業餘人士,我目前透過這份規範翻譯 + 實作註解已經貢獻了 Gecko + WebKit 了關於 CSS 實作的三個小補丁。歡迎大家用業餘的時間來 hack Gecko/WebKit 一下,送個補丁,貢獻 Web 標準並給自己的技術人人生添加一筆。 === 理由一 === 幾個月的觀察下來,我發現 Gecko 跟 WebKit 在台灣並沒有開發者,我想這個主 因當然是商業理由。再來就是大型的專案本來要切入就不是很容易,Gecko/WebKit 的文檔也不夠詳細。 商業理由一個小小的 hacker 基本上沒什麼辦法改變,但是在文檔上面,我認為 HTML 規範實際上本身就是相當好的瀏覽器規格書。畢竟這份規格書就是反編譯 IE 的成果與 Gecko/WebKit 願意實作部份的交集。 透過這份規範可以同時掌握世界上大型開源專案前幾名中的兩個專案 — Mozilla 與 WebKit。如果之後有幸做 HTTP 規範的實作註解的話,說不定還可以加上 Apache。我在 COSCUP 聽 Linux Kernel 的 Talk 講說《Lions' Commentary on UNIX》是 Linux 歷史的起點,那我相信 HTML 規範也一定是瀏覽器歷史上相當重要 的一個里程碑。 === 理由二 === 我想短期之內台灣都不太有機會做 WebKit 做全職的開發者(整個 Adobe 做 WebKit 全職的也只有兩個人),如果只是做暫時的 Gecko/WebKit 開發,能夠快 速的找到要開發部份的原始碼就變得很重要。 我常常聽到大陸 WebKit 社群的朋友在問「JS 的切入點在哪?」「要擴展 window 物件怎麼做?」之類的問題,希望之後這個規範實作註解能夠把這種問題的答案記 載下來。 所以目前現有的實現註解已包括 JS 裡面 window、document 物件所用的 IDL,這 樣要找擴展 window、document 的方法就有個起始點了。任何商業公司如果有「如 果我要開發 WebKit,我大概會開發這個部份...」的計畫的話,歡迎跟我們說,我 們可以先行做那個部份的實作註解。 === 理由三 === 之前 pingooo 在提到說要辦中文排版相關的工作紡的時候,有說下午要來個 WebKit hackathon 來解這些問題,老實說我覺得這完全不可能,光是定位相關的 程式碼可能就要花一個下午了... 那時候是覺得如果要辦這樣的活動,事先的準備中一定要先定位出問題程式碼在哪 裡,所以這也是我現在做 CSS2.1 實作註解[3]的一個目標(不過我不能保證我會 不會定位出問題就手癢送補丁了 :p) [3] http://www.w3.org/html/ig/zh/wiki/CSS2/impl == 如何參與?== 我們採 wiki 自助式: 1. 上W3C註冊帳號頁[4]註冊帳號、記得不要用中文(抱歉、W3C的系統不是很有國 際觀) 2. 找想翻譯的段落、看看[5]的對照表有沒有重復 3. 開始翻譯!有wiki的問題歡迎私下問或是在列表或是討論頁詢問 如果想要註解的實作部份尚未有中文翻譯,也歡迎自己先找個地方做英文版規範的 實作註解,之後在統合一下。 就像上面講得,如果有商業公司有未來願意開發 WebKit 哪個部份的情報可以先告 知一下的話,我們可以先看那個部份的程式碼。 其他交流管道: * W3C HTML5 中文興趣小組郵件群[6] * irc.mozilla.org #mozilla-taiwan(我是 MozTW 社群成員,但是本專案與 Mozilla Taiwan 無關) * QQ HTML5 翻譯群,群號:151145242 * 私信 [4] http://www.w3.org/Help/Account/Request/Public [5] http://www.w3.org/html/ig/zh/wiki/Talk:HTML5/impl#.E8.B2.A2.E7.8D.BB.E6.8F.90.E5.A0.B1 呂 康豪(Kenny), 中文興趣小組W3C連絡人, Amateur Gecko/WebKit Contributor Google+: https://plus.google.com/112088462407783855918/posts 新浪微博: http://t.sina.com.cn/1950042164