名稱

tb-standalone - 獨立的引用 (TrackBack)


描述

這份單獨的引用工具提供兩種用途: 1) 祇要非 Movable Type 的使用者能達到安裝需求,就可以透過這份工具來使用引用功能; 2) 提供一份參考點,幫助其他的開發者也能在她們自己的系統裏實做引用功能。這份工具本身祇是個單獨的 CGI 腳本,能夠透過 HTTP 要求來接受引用通告,把通告儲存在本機的檔案系統中,並且能把通告清單用 RSS 或能被瀏覽器檢視的格式傳回來。當然她也能夠送出通告到其他站台。

這份工具以 Artistic License 釋出。 Artistic License 的詳細條款陳述於 http://www.perl.com/language/misc/Artistic.html.


需求

妳會需要一個能夠執行 CGI 腳本的網頁伺服器(這意味著,舉例來說,那些位於 BlogSpot 的網誌就沒辦法用這個工具了)。妳同時也會需要有 Perl 和下列這些 Perl 模組:

我相信前四個模組都是 Perl 5.6.0 的核心模組,而 LWP 通常也都會被安裝在多數主機上。事實上 LWP 祇有當妳想送出引用通告時纔會用到。


安裝

安裝這份獨立的引用工具相當地簡單。她就祇是個 CGI 腳本, tb.cgi ,以及兩個用來定義 HTML 檔頭檔尾的純文字檔案,用來列出引用通告清單。

  1. 組態 tb.cgi
    妳得編輯這個腳本並變更 $DataDir$RSSDir 、和 $Password 等設定。

    請務必在安裝這份工具前確認妳有變更 $Password

    $DataDir 是引用資料檔所要存放的目錄路徑; $RSSDir 是產出的靜態 RSS 檔案所要存放的目錄路徑; $Password 是讓妳能夠登入系統並刪除引用通告的隱私密碼。

    當妳設定了 $DataDir$RSSDir 之後,還得建立出那兩個目錄,並且讓執行 CGI 腳本的使用者在這兩個目錄裡都有寫入權限。在多數的情況下,這意味著妳得把這兩個目錄的權限都設定為 777 纔行。

  2. 上傳檔案
    編輯了這些設定後,請以 ASCII 模式把 tb.cgiheader.txt 、和 footer.txt 上傳到網頁伺服器上、妳能彀執行 CGI 腳本的目錄裏。再來把 tb.cgi 的權限設成 755 。


用法

送出通告

要從這份工具送出通告的話,請使用下列的網址:

http://yourserver.com/cgi-bin/tb.cgi?__mode=send_form

此處的 http://yourserver.com/cgi-bin/tb.cgi 是妳安裝了 tb.cgi 的網址。填寫表單裏的各個欄位,然後按下 Send

接收通告

如果妳想要在既有的頁面裏使用這份工具,就得做這兩件事:

  1. 連結到引用清單
    首先,妳得在每一篇網誌項目裏加入一個鏈結,連結到該項目的引用通告清單。妳可以在模版裏加入下列的 HTML 來完成這項工作:
    <a href="http://yourserver.com/cgi-bin/tb.cgi?__mode=list&tb_id=[TrackBack ID]" onclick="window.open(this.href, 'trackback', 'width=480,height=480,scrollbars=yes,status=yes'); return false">TrackBack</a>
    

    妳得把 http://yourserver.com/cgi-bin/tb.cgi 改成合適的網址,指到妳伺服器上的 tb.cgi 。然後,根據妳所用的網誌工具,妳還得把 [TrackBack ID] 更換成獨特的文章 ID 。請見底下的轉換表來決定要如何根據妳所用的工具,使用合適的標籤來產生這個獨特的文章 ID 。

  2. 加入 RDF
    引用功能用了嵌入於網頁中的 RDF ,來自動發掘頁面中啟用了引用功能的項目。這項資訊也被用於建立跨網誌的「討論」串。因此,在頁面裏嵌入 RDF 資訊會相當地有用。

    請在妳的網誌模版裏加入下列的內容,讓她能被顯示於頁面裏的每一則項目:

    <!--
    <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
             xmlns:dc="http://purl.org/dc/elements/1.1/"
             xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
    <rdf:Description
        rdf:about="[Entry Permalink]"
        dc:title="[Entry Title]"
        dc:identifier="[Entry Permalink]" />
        trackback:ping="http://yourserver.com/cgi-bin/tb.cgi/[TrackBack ID]"
    </rdf:RDF>
    -->
    

    就跟前面一樣,妳在 [TrackBack ID][Entry Title] 、和 [Entry Permalink] 之處該使用的標籤會依據妳所使用的網誌工具而有所不同。請見底下的轉換表

轉換表


可能的用途

  1. 內容資源庫
    就跟 Movable Type 所實做的引用功能一樣,這份獨立的腳本也可以用來架出一份內容資源庫。 tb_id 參數的值不見得非要整數不可,因為它祇不過是用於檔名罷了(請注意在於其他多數實做引用的系統上卻未必如此)。舉例來說,如果妳架了個跟貓有關的站台,並希望能提供使用者某個方法,讓她們能把關於她們貓瞇的文章項目通告到妳的站台上的話,就可以設立一個像 http://www.foo.com/bar/tb.cgi?tb_id=cats 的引用網址,然後在妳的站台上公布這個網址。其他使用者可以在她們自己的網誌中,把 Cats 類別直接關聯到這個網址,然後每當寫了跟貓咪有關的東西就發出通告給妳。

  2. 建材
    妳也可以把這個單純的實做當作是一份建材、或指導方針,然後在妳自己的系統裏實做出更複雜的引用功能。這份工具勾勒出引用架構最核心的功能,妳可以奠基於此並加上鈴鐺跟風鈴(阻擋 IP 、密碼保護的飲用、之類之類)。

  3. 中心化的工具
    這份引用工具需要使用者能夠在她們各自的伺服器上有執行 CGI 腳本的能力。對於多數的使用者(像是 BlogSpot 的使用者)來說,並沒有這樣的機會。對於這些使用者來說,(也許透過這個工具)提供一個中心化的系統會是個解決方案。