標籤 (Tag) 是隨著網路共享書籤興起的分類與搜尋方式,其中有些共享書籤還提供了幫你產生「標籤碼」的功能,例如 Technorati 。網路上也不少標籤產生器,像《關鍵字轉Technorati標籤》、《Technorati Tag 書籤產生器》、《讓你的網誌擁有 Blog Tag》。但這些產生器不是要裝外掛,就是只產生 code ,還要部落客再自己剪貼、複製什麼的,實在是太麻煩了。我想要直接把 Tag 寫在文章中,然後讓程式自動幫我把 Tag 轉成連結。於是,就完成了這篇小玩意。
標籤 (Tag) 是隨著網路共享書籤興起的分類與搜尋方式,其中有些共享書籤還提供了幫你產生「標籤碼」的功能,例如 Technorati 。網路上也不少標籤產生器,像《關鍵字轉Technorati標籤》、《Technorati Tag 書籤產生器》、《讓你的網誌擁有 Blog Tag》。但這些產生器不是要裝外掛,就是只產生 code ,還要部落客再自己剪貼、複製什麼的,實在是太麻煩了。我想要直接把 Tag 寫在文章中,然後讓程式自動幫我把 Tag 轉成連結。於是,就完成了這篇小玩意。
我的作法是,我只要在文章中註記 Tag 的文字, JavaScript 就會自動幫我把 Tag 轉成標籤連結。不用記複雜的語法,也不用剪貼複製,一切都是那麼順暢。這個小玩意共支援五種共享書籤系服務的 Tag 連結,分別是:黑米 HEMiDEMi, 智邦 MyShare, Yahoo 分享書籤, 國外的 del.icio.us, technorati。
首先,我希望在文章中註記 Tag 的語法要很簡單,因此我規劃了兩種語法形式。第一種是用 <div>,屬性 name 要設定為 "tags" ,而 Tag 註記則寫在 <div> 區塊中。第二種是用 <meta name="keywords"> ,要把 Tag 寫在屬性 content 中,這種語法是擴展自 HTML 以 <meta> 定義文章關鍵字之應用,且瀏覽器不會將內容顯示在畫面上。是用 我寫 Tag 的方式也要很自由,只要寫單純的文字內容;可以用空格也可用逗號 (,) 分隔標籤。還有,我希望我可以在文章中任何地方放這些語法,也很可以放很多組。兩種語法的使用方式如下第4、11、15行所示。
<tags> ,要把 Tag 寫在屬性 value 中。第二種語法是我的「自定 HTML 元素」,瀏覽器不認得,所以瀏覽器不會主動顯示在畫面上。這種自定 HTML 元素的方式,我自有其用途,雖然在這看不出作用。
使用 <div> 語法時,我留了個小技巧。如果第一個詞是冒號 (:) 結尾的,如上例所示,就不把它當作標籤。因為這個語法要透過 JavaScript 轉換成連結,若讀者的瀏覽器不支援 JavaScript 或者關閉了 JavaScript 時,就不會轉換了。如果我把第一個詞加上冒號,讀者透過不跑 JavaScript 的瀏覽器時,仍然會看到上面的文字內容,這樣讀者就可以看懂這些文字是 Tag 的意思,而不會覺得有一段莫明其妙的「單字」在文章中。我們也可以用 CSS 定義 Tag 的顯示外觀,因為我的標籤註記語法是 HTML 的一部份,所以只要在 CSS 中定義好樣式內容,再將樣式名稱加在語法中就可以了,如第 15 行所示。
決定用法後,我就寫了一段 JavaScript 。樂多的用戶只要把這段 JavaScript 加在「Blog 基本設定」的「說明」欄位處。然後更新所有文章後就會生效。注意,請添加在部落格正常說明文字之後,不要把你的部落格說明漏掉了。其他系統的用戶請自己找地方加。
我的轉換動作是「就地轉換」,亦即 Tag 語法寫在什麼地方,就在什麼地方產生 Tag 連結。像上面的範例有三段 Tag 語法,就會在原地轉成三段 Tag 連結。
我列出了五種共享書籤服務的 Tag 連結的設定值,通常我們只需要留自己最常用的那一種就好了。如果五種都用,那麼就會產生五行 Tag 連結列。嘿嘿嘿。對了,不熟 JavaScript 語法者要注意逗號,最後一組設定值之後不要加逗號。而設定值的屬性意義如下列:
titleurliconlinkClassNamea HTML標籤的 CSS class 名稱。這讓我們可以為不同的書籤服務設定不同的顯示樣式。notShowTitle這段語法也可以和我的另一個小玩意《為部落格加上「加入xx分享書籤」的按鈕》一起用。對了,如果各位有其他的網頁空間可以放檔案,那麼可以參考丸小管在《為樂多加入收藏按鈕》的作法,把這些程式碼放到外部的檔案中。