Category Archives: Blog

pLog 也修正 Content-Type 的問題了

一切都是 Google Adsense 惹的禍: gslin 發現 Google AdSense 原來是因為 WordPress 和 pLog 這些 Blog 系統都沒有送出完整的 Content-Type,所以才不認得文章的內容 [他的原文]。

因為 WordPress 最新版已經 patch 了,所以我就去翻了那邊的 bug report system,然後直接回報到 pLog 去了。感謝 oscar 很快的 patch 好,還有 Mark 幫忙修正 summary page 的部份。現在等看看 Google AdSense 什麼時候會冒出正常的廣告了。

不過奇怪的是,gslin 那邊現在出現的廣告大都是英文的,而我的法國之旅的廣告則是消失了,相當奇怪啊。

做了一些更動

把原本的 Blog 先拆成兩個,主要是覺得這兩種東西放在同一個 Blog 感覺有點奇怪,所以原本的 Pesty's Articles 改成只放資訊相關的主題,新的 Pesty's Murmur 則放人文相關的東西;未來還會有一個 Travelling Taiwan 的英文 Blog。

如果想要同時 subscribe 這幾個 Blog,可以用 https://pesty.yichi.org/plog/rss.php?summary=1 這個 Link 來閱讀最新的內容。謝謝大家的支持。

如何在 pLog 和 WordPress 之間做 trackback?

先前和 ijliao 那邊的 WordPress 之間的 trackback 怎麼試都試不起來,一時還懷疑是 pLog 和 wordpress 不合,不過剛剛發現應該是因為不會用的關係。

如果從 pLog 要送 trackback 給 WordPress,那麼 trackback 網址要用文章本身的網址,而不要用 WordPress 的 trackback URI,例如,《pLog 和 WordPress 不合 ?》這篇文章本身的網址是 http://blog.ijliao.info/archives/2005/01/09/1008/,而它的 trackback URI 是 http://blog.ijliao.info/archives/2005/01/09/1008/trackback/

反之,如果要從 WordPress 送 trackback 給 pLog 的文章,那麼要用的是 MT 引用網址,例如,《QK 咖啡》一文的 MT 引用網址是 https://pesty.yichi.org/plog/trackbacks/1/187,相對於文章本身的網址(又翻為"靜態連結網址") https://pesty.yichi.org/plog/post/1/187

總之從 pLog 要 trackback 別的文章,就是用靜態連結網址。XD

2005 年 blog 界大預言 — 個人板與 blog 的整合

雖然 Mark 預言的是《2005年初 pLog 大事記大預言》,不過我把這個推廣到整個 blog 界好了。我覺得整個中文 blog 界今年最大的大事就是:BBS 個人板 和 blog 正式結合。

BBS 在中文世界的力量還是很強,特別是『個人板』的盛行。僅管沒有 trackback 機制,但是個人板在更早以前就已經扮演了某種程度的『個人新聞台』的角色。如今 BBS 再一次受到 web 化的衝擊,過去轉信機制造成大者衡大的問題,而這一次的轉變則會更進一步把 BBS 虛化:整個閱讀平台會轉向 RSS Reader 而非 BBS 的 telnet 介面,所以無可避免的個人板會和 blog 進行整合。

一個作法是利用原本 BBS web 化的作法,加一個外掛程式把資料利用 CGI 轉換。這個作法的缺點是在 Scaling 的問題,大站大都不會採用這個方式才對。另一個方式則是直接利用轉信的媒介:newsgroup 來把資料轉到 blog 上面,一種作法是直接把資料塞到資料庫裡面去,那大多數的 blog 系統都不需要更改就可以達到這個效果了,只是 blog 的文章要轉到 newsgroup 上面,就需要利用 xmlrpc ping 的方式,notify agent 來抓取該篇文章並 post 到 newsgroup。

不過,認證問題是其中最棘手的。例如說,在甲站的 pest 不一定就是乙站的 pest,那麼如何避免 blog 被 flooding 就是一個問題。當然還有 comment/trackback spaming 的問題。

另一種方式是建立一個共通的 Interface 來處理所有 newsgroup to blog 的 request,只是中文世界的這種需要是否能塞進各個 blog 的發展目標,也是一個很有趣的指標吧。

plog 畫面在某些 IE 瀏覽器會呈現空白的原因

一直有朋友跟我反映在文章的部份常常看不到,因為自己的 desktop 沒辦法重現這個問題,所以今天用 tablet 去試,找了很久之後才在部落格隨便祭看到 reic 的文章,說把 <title></title> 放到 <meta> 的後面就沒問題了,果然改完之後就解決了。

在 IRC 上 horance 的解釋是,如果 <title> 放在 <meta> 前,那 ie 會先用 default encoding 先去 parse 整個 html,所以會造成問題;這種問題比較常發生在 UTF-8 的 pages。目前發現 plog 幾乎所有的 templates 都是把 <title> 放在 <meta> 前面,某些 wordpress 的 themes 似乎也是這樣。

消息來源

一直以來在撰寫 blog 時都會有個疑問,我該把消息來源交待得多清楚?

會有這樣的疑問不是沒有道理的;當你活在某個圈子時,總會有來自不同管道的各種消息來源。有些有趣的東西是朋友花時間去閱讀,或是花時間在網路上 google 出來的東西;別人分享出來,你把它寫在 blog 上,卻完全沒有提到這位熱心者,不是很不公平嗎?

又,blog 本來不就是希望這樣的消息能夠利用簡單的方式 trackback 到原始的消息來源嗎?在這條訊息的鎖鏈上,至少我覺得應該給原始的 source 一點 trackback 吧?

Anyway,這也只是自己的想法,從自己先做起吧。

利用 Apache Mode Rewrite 微痛轉換 MovableType 到 pLog

許多由 MovableType 轉換到 pLog 的網友都會遇到一個問題:我該怎麼保有原本的靜態連結(permanant link)呢?原因有兩個,一個是別的 blog 會利用靜態連結來連結到文章,另一個則是搜尋引擎會記得原本的網址,如果沒有辦法保留的話,對於網站的點閱率會有很大的影響。

這個問題可以利用 ApacheRewrite 模組來解決。本篇文章將以義氣愛智網為例來說明如何達成。

步驟:

1. 請先用 MTtoPlog 程式將您的文章轉換到 pLog 格式,轉換時並請按照步驟七保留 pLog 中現存的文章編號。

*注意* 若是沒有保存現有的文章編號,本篇的內容並不適用。

2. 確認您的 blogId;例如在 pLog system 中義氣愛智網是編號為 1 。

3. 確認您的 plog 安裝網址。例如說,義氣愛智網的安裝網址為 http://ai.yichi.org/ ,並不含子目錄;而沛斯特文集 https://pesty.yichi.org/plog/ 有子目錄 /plog,這兩種方式在隨後的 Rewrite Rules 並不同,本篇只考慮 *不含子目錄* 的狀況。

4. 確認您的 Apache Mod_Rewrite。檢查方式最簡單的就是,在 pLog 中啟用"讓搜尋引擎易於搜尋的簡潔網址"看看能不能正常運作即可。

5. 依序修改置於 plog system(亦即安裝目錄)下的 .htaccess 如下:

5.1. 在 後一行加入 RewriteEngine on
5.2. 在最前面的 RewriteRule 最前面加入:

# MT style archives URL /archives/000018.php or 000018.html
RewriteRule ^archives/([0-9]+).(php|html)$ /post/1/$1 [R=301]

# MT style archives URL /archives/cat_robotics.php
RewriteRule ^archives/cat_(.+).(php|html)$ /category/1 [R=301]

# MT style monthly archives URL /archives/2003_06.php
RewriteRule ^archives/([0-9]{4})_([0-9]{2}).(php|html)$ /archives/1/$1$2 [R=301]

    *注意* 若您的 blogId 並非 1, 請把每個 RewriteRule 作對應修改,例如, 若 blogId 為 2, 第一個要由 /post/1/$1 改成 /post/2/$1

5.3. 為了讓原本使用 MT RSS feed 的網友不需要轉換就可以直接看到新的 plog RSS feed,加入下列 Rule:

# MT rdf file
RewriteRule ^index.(rdf|xml)$ /rss/rss090/1 [R=301]

    *注意* 若您的 blodId 為 2, 請改為 /rss/rss090/2

6. 把 .htaccess 上傳覆蓋掉原本的檔案,測試是否能正常運作。

理論上,當瀏覽器收到 301 的重新導向之後,就會自動把網址轉為新的。所以包括使用者看到的網址、還有搜尋引擎的 bots,都會隨之更改。

目前還沒有辦法轉換的是分類的 archives;理論上可以利用 RewriteMap 達成,但因為這部份需要動到 Apache 本身的設定檔,所以暫時不予以轉換。

相關資料:

MovableType to pLog 0.3.2 Release

本版主要修正:

  • 加強 regular expression 以處理文章內文包涵 "–" 的狀況。
  • 修正轉換計數器錯字。
  • 若文章允許評論,將該文章設定為有新評論就通知作者。
  • 將 class/dao/ 目錄下的檔案改為符合 0.3.2 API。

下載: https://pesty.yichi.org/plog/resource/1/8

關於 MTtoPlog
————–

MTtoPlog 是個可以將 MovableType 匯出的資料傳換為 pLog 格式的程式,關於 MovableType 及 pLog 的詳細資訊,請參考官方網站。

pLog: http://www.plogworld.org
MovableType: http://www.movabletype.org/

誰該使用本程式?
—————

如果您已經使用 MovabeType 架設 blog 網站一段時間,目前打算改用 pLog,希望能夠將原本在 MovableType 中的資料轉換進 pLog,本程式可以協助您轉換資料。

本程式能做什麼?
—————-

本程式可以由 MovableType 匯出的資料,匯入文章內容、分類、評論和 Trackback。

本程式不能做什麼?
—————–

本程式並不能自動的幫您建立 blog、把設定轉換進去,您必須要自行新增一個blog。同時,程式也不能自動把作者的資料建進去,因為密碼檔並無法直接轉換。但是若您將所有文章的作者的帳號都建立好,轉換程式就會自動把文章的作者對應上去。

安裝程序
———

0. 請先備份您的所有系統! 程式作者不為本程式所造成的資料掉失或毀損負責。風險自負。

1. 將您的 pLog 系統設定好,包括建立 pLog 資料庫及所需的 tables,您可以用 wizard.php 設定或是手動建立。

2. 先在 pLog 系統上建立一個 blog 站台,如果您在上一步是使用 wizard.php,那直接跳到下一步驟。

3. 在 pLog 系統中幫所有在 MovableType 中有帳號的作者建立好新的帳號。

4. 由 MovableType的管理介面匯出資料,將匯出的資料存為 MTData.txt,或是您所希望的檔名。[注意: 如果您使用微軟的 IE,請在匯出資料的連結上按右鍵,選 "另存目標",否則存檔的資料可能不正確。]

5. [optional: 若 pLog 中沒有您想要保存的文章才執行]
   登入 pLog 管理介面,刪除您不想要保留的文章,例如說在安裝時加入的歡迎文章。請務必在刪除之後到全站管理的地方選擇"清除已刪除文章"。當文章都刪除後,您也可以將所有分類都刪除。

   若是您未執行此步驟,本程式預設不會在已有文章的系統中轉入文章。若是您不想刪除文章、且希望程式把文章轉入,請參考下一步驟。

6. [optional]
   若您在上一步未執行刪除全部文章和分類的動作,且希望保留 pLog 中現存文章,請將 MTtoPlog.php script 中的 $FORCEINSERT 和 $IGNOREARTID 設為 1。

7. [optional]
   如果您希望把保留原本在 MovableType 中文章的編號,您必須要由資料庫中匯出。指令如下:

   SELECT mt_entry.entry_id from mt_entry WHERE mt_entry.entry_blog_id='3';

   其中 3 是您原本的 blog site id。

   將結果存到 MapArtId.txt 中,一個 id 一行,如下:

|        5 |
|        6 |
|        7 |
|        8 |
|        9 |
|       10 |

   再次注意,必須要存為 UNIX 格式,而非 DOS 格式。

   完成後,在 MTtoPlog.php 設定 $IGNOREARTID=0。

8. 編輯 MTtoPlog.php,將相關的設定照您系統的設定修正。例如,把 $BLOGID 改成在 pLog 上的站台編號。

9. 利用 FTP 軟體上傳 MTtoPlog.php, MTdata.txt, MapArtId.txt 到 pLog 安裝的目錄,同時將 class/dao/ 目錄下的三個檔案上傳到 pLog 安裝目錄下的 class/dao/ 目錄,覆蓋過原本的檔案。

10. 打開瀏覽器,輸入您 pLog 站台網址,後面加上 MTtoPlog.php,例如,http://your.plog.url/plog/MTtoPlog.php

11. 轉換成功!

錯誤排除
——–

請閱讀畫面上的訊息,修改相關設定。

常見問題
——–

目前空白

版權
—–

本程式以 GPL 發行。

程式臭蟲及建議功能
——————

– 若標題為兩行則無法處理

請將您所遇到的問題寄到 YehChihWei@gmail.com.