标簽/Tag為[Tags]的文章

使用Nginx的proxy_cache功能緩存MT Tags ,

This is a sitelog of .

一直以來,本站的 MT tag search 都使用的自己寫的 Perl 腳本來緩存 後台 mt-search.cgi 的結果。 前台僞靜态成 tag/key 模式。

詳細介紹在這裡:

  1. MT歸檔頁面變更以及Tags搜索頁面cache機制的變更
  2. 本站使用的文本緩存Tag搜索的Perl腳本

[Perl]本站使用的文本緩存Tag搜索的Perl腳本 ,

Movable Type 資源瓶頸基本上都是mt-search.cgi

不管是站内自定義搜索,還是按照Tags進行查詢,都調用的是這個腳本。

本站靈感來之 AnySQL 的文本緩存。 但是不同于 AnySQL 的一直是獨立的cgi文件進行緩存,配合.htaccess 和默認搜索慢闆完成

這次更新後台,這個獨立cgi腳本也做了小的邏輯修改。

特共享之,供有動手精神的同好自我完善。

代碼如下:

[SiteLog]MT歸檔頁面變更以及Tags搜索頁面cache機制的變更 ,

This is a SiteLog for .

随着文章的增多, Movable Type歸檔頁和按照分類歸檔頁是越來越沒有意義了。抽點時間幹脆徹底改寫模闆(Template)而重構頁面顯示。
改寫的結果是 歸檔頁 全部顯示所有日志的标題和回複數目。照分類歸檔頁 不在顯示最近的幾篇文章的概要而也是顯示該分類下的所有所有日志的标題和回複數目。
具體樣式可以參考 歸檔頁分類 [MT相關] 的文章歸檔 來看看效果。
Movable Type的靜态發布,成也蕭何,敗也蕭何啊。

另外,就是對本站的 Tags 搜索進行了全部重構。 Movable Type 程序的負荷一直在與 mt-search.cgi 。 早在08年底,由于 mt-search.cgi 的效率問題 ,就直接禁止了通過mt-search.cgi來用關鍵字搜索本站,而改成了 Google Custom Search 。 Tags 搜索也自己寫了 Perl 腳本來文本cache mt-search.cgi返回的結果。
但是,最近發現,當初的文本cache機制大有問題。主要表現在下:

  1.  不能自動更新 cache。導緻部分cache返回結果的還是2009年初。
  2. 對于返回數據大于一頁的Tags搜索頁面僅僅是顯示第一頁。不能翻頁。


改寫後這些問題都解決了。
主要流程是:
點擊 tag 後, 檢測是否存在 cache後生成的 html 文件? 如果有并且文件是2天内的,則直接輸出現成的 html文本;如果沒有或者過期,則交給mt-search.cgi并且同時生成新的cache文本。分頁的 tag 返回頁面,用 tag/page 來表示分頁。徹底靜态化。
同理,後台搜索的 Search Results 模闆(Template)做了大量的細緻修改,以滿足搜索返回的要求。
至于靜态化,是通過.htaccess 進行重定位。代碼如下:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !.html
RewriteCond %{REQUEST_URI} !(.*)/$
#RewriteCond %{REQUEST_FILENAME}.html !-f
RewriteRule ^(.*)$ /cgi-bin/mtos/tags_do.cgi/$1 [L]


具體演示參見以下鍊接:

另: Movable Type 已經 5.12 了。 升級還是不升級。這比較糾結。。。。

--EOF--

[MT Tips]如何讓某個日志在Blog首頁固頂?

貌似最簡單的辦法就是修改日期到一個很遙遠的日期,比如 AnySQL 那樣:) 但是帶來的問題的很多,比如導緻Feed閱讀器犯糊塗或者影響搜索引擎的收錄等等,更糟糕的是對于 日志來說,最主要的就是發布日期。

也許大家都已經發現了,我的主頁模仿 MT Forum 搞了一個固頂日志(也是為了風格統一)出來,這個固頂日志是後台通過自己設置實現的。是怎麼設置的。答案是利用 <mt:Entries> 的tags 功能。
具體概念代碼如下:
<mt:Entries tag="@top" sort_by="authored_on"
sort_order="descend" limit="1" blog_ids="1,5">
dosthing.....
</mt:Entries>
這樣我們隻要要在固定的主題 加上 tag ,tag 名字為 @top 就可以了。
PS: @開頭的tag屬于隐藏 tag,不會在發布頁面顯示出來。

MT 4 RC1 試用小記 ,

Movable Type 4 終于告别了 beta7 ,但是卻迎來了 RC,而且是 RC1。笑ing,估計少不了RC2,RC3。。 到真正的 Release 估計還需要等幾天。看來這次 update 真是耗費了 6A 的精力。

周末有空,把測試blog( /temp/mt4/ )升級到了 RC1,也真正的測試了一番,今年由于工作比較忙碌,前幾個beta版本雖然也安裝了,但是卻沒有徹底測試,這次一并測試了 :P RC1的确要成熟的多了:)

對于 MT4 系列,其實對我來說最大的亮點如下:

1.Page 的定義:
頁面功能。說實在的,在以前版本中這個功能依舊有,隻是你需要在 Index Templates 中直接建立新Template而已,這樣産生的頁面重頭開始寫起,沒有固定的樣式和結構。也不可以對之發表評論和引用通告。 而 MT4 系列中,提出了 Page 的定義,說白了就是創立了一個不會出現在歸檔頁面的“Blog文章”而已,可以接受評論和引用通告,可以設定共同的Template來規劃相同的樣式和結構。 說實在的,對我來說,這個功能最大的好處就是讓我的 “Index Templates” List 顯的清爽,因為我的 Index Templates List 現在實在太長了(建立了N個頁面:P).

2.發表文章的“所見即所得(WYSIWYG)”樣式和編輯Template的“代碼加色”:
“所見即所得(WYSIWYG)”就不用說了,更重要的是 編輯Template的“代碼加色”,實在是方便了很多:) 你說呢?

3.導出的格式包含了tags
好不容易來臨的功能,當初可是耗費了精力,還專門給6A寫了 email :) 當然,這次 MT 的備份方式不再隻是 "導出",還有了"Buckup",可以備份包括Templates,Users在内的所有信息。比"導出"方便多了 :P

[MT]MT4, Template Tag 的改進是進步還是後退?

MT beta 3 也出來了。
6A 花了數月時間推出的這個較大改動的版本如同給 Blog 界投放一個深水炸彈,一時間,叫好的有,因為Bug而對 MT 失望的也有,甚至有因為升級而導緻原來的 Database 完蛋的。。

作為 MT 使用者,我也測試了新版本。結論是這次的 beta 的确是個 beta 。也許是 6A 一向表現的太穩健了,原來的bata版本基本都是很穩定了,所以很多人急的升級,導緻問題多多。

不說這個了,通過測試,我發現 MT 4b 對 Template Tag 的處理有了很多變化,一個最重要的,我認為也是很危險的變化就是: MT 在build的時候不在對 Template 中出現的不存在的 Template Tag 做 忽略 處理,而是直接停止 build .