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 檔頭檔尾的純文字檔案,用來列出引用通告清單。
請務必在安裝這份工具前確認妳有變更 $Password 。
$DataDir 是引用資料檔所要存放的目錄路徑; $RSSDir 是產出的靜態 RSS 檔案所要存放的目錄路徑; $Password 是讓妳能夠登入系統並刪除引用通告的隱私密碼。
當妳設定了 $DataDir 和 $RSSDir 之後,還得建立出那兩個目錄,並且讓執行 CGI 腳本的使用者在這兩個目錄裡都有寫入權限。在多數的情況下,這意味著妳得把這兩個目錄的權限都設定為 777 纔行。
要從這份工具送出通告的話,請使用下列的網址:
http://yourserver.com/cgi-bin/tb.cgi?__mode=send_form
此處的 http://yourserver.com/cgi-bin/tb.cgi 是妳安裝了 tb.cgi 的網址。填寫表單裏的各個欄位,然後按下 Send 。
如果妳想要在既有的頁面裏使用這份工具,就得做這兩件事:
<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 。
請在妳的網誌模版裏加入下列的內容,讓她能被顯示於頁面裏的每一則項目:
<!--
<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] 之處該使用的標籤會依據妳所使用的網誌工具而有所不同。請見底下的轉換表。
<$BlogItemNumber$>
Entry Title = <PostSubject><$BlogItemSubject$></PostSubject>
Entry Permalink = <$BlogItemArchiveFileName$>#<$BlogItemNumber$>
{{entrynumber}}
Entry Title = {{entrysubject}}
Entry Permalink = {{pagelink}}
<?php the_ID() ?>
Entry Title = <?php the_title() ?>
Entry Permalink = <?php permalink_link() ?>
%%id%%
Entry Title = %%title%%
Entry Permalink = %%comment_permalink%%
$fn
Entry Title = $title
Entry Permalink = $url/$yr/$mo/$da#$fn
這份轉換清單得感謝 Rael 。