标签/Tag为[Tags]的文章

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

This is a sitelog of Easun.org.

一直以来,本站的 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 Easun.org.

随着文章的增多, 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( http://easun.org/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 .