Yang: July 2006 Archives

明天我要出发了

| | Comments (13) | TrackBacks (0)

明天我就要出发了。

飞机是明天中午的,上午就要离开浦东赶往虹桥机场去桂林。

今天上午Pierre 从桂林打来电话,落实我到达的时间。这是我第二次和他一起工作,上次是去年的五月,我们是好朋友,今年他调到法国大使馆工作去了,是个法国帅哥。

这次我们去湖南凤凰和张家界,太熟悉不过的地方,我都背得出来那边的一草一木了。我们还是会去那个村小学,那些小孩子又会全部出来列队欢迎我们。我们捐助那个小学已经7年了。

在凤凰上网很方便,我的宾馆有宽带,宾馆外面到处是网吧。张家界就难了。所以我在凤凰的三天可以很随便上网,可以来写和看我的blog。

使用tags的困惑

| | Comments (13) | TrackBacks (0)

Tags是MT3.31的新功能。也确实给读者查找相关文章带来更大的方便。

我最近两天也开始在几篇文章中加上相应的tags,但当我想要把某篇文章的tag也列到曾经已有的tag里面时,我竟不知道以前的那个tag到底是什么,不得已翻开以前的文章去查看那个tag然后复制过来,确保是在同一个tag里面。

我不记得已经用过哪些tags。如果一个不小心,本来应该归到同一个tag的文章就会被列到不同的里面去。所以现在的tags系统没有tags提示。用过Delicious的人一定知道,当你要指定tags时,会有各种提示的,提示包括你已经用过的和建议使用的。

我还没有来得及去找,看看是不是有这样的插件。如果有的话,那是太好了。知道的朋友也给我留个言通知一声。

安装MT plugins失败

| | Comments (2) | TrackBacks (0)

今晚想把以前的几个插件都重新装上来,所以到下午看过的 LearningMovableType 去对照一下。看哪些可以与3.3兼容我就先装几个。

因为 Movalog 那里有几个我要装的所以就从这里开始。以前我在3.2的时候装 MTBlogroll 很顺手,马上就可以用,还第一个把黑羽加了上来。记得当时我是趁着 Technorati 正好可以进去赶快拿了个 Technorati 的 API。但今天不同了,Technorati 还是死的,无法得到它的 API,我抱着试试的态度避开它继续装下去,可是不行,永远停在初始数据库这个过程中。关闭再来,还是一样。明知山有虎偏向虎山行,结果还是被老虎吃掉了。对这个 API 不知道还有没有别的办法。所以已经有这个 APIKEY 的朋友要保存好,否则一失足成千古恨。

我接着开始装 Movalog 的 LivePreview,虽然过程一路正确,但还是报错了。我到下面的评论看看,还不是我一个人有那个错,好几个人都是和我一模一样的错误,但不知道解决方案。第二次让我有挫折感。

我装的这几个都是 LearningMovableType 那里说的已经升级到 MT3.3 的插件。因为下午看到 LearningMovableType 那里有几份插件名单,评论里也有人拿出了几份,我暂时没有兴趣了。

看样子现在装插件还不是时候,3.3的插件有很多还没有赶上来,毕竟新版本才出来几天。即使出来了也难免还有bug什么的还要经过测试才知道。现在的问题是有相当多的插件升级到3.3后就不能再与3.2兼容,而升级后的插件在3.3的环境中也不一定能正常运行。

有点象青黄不接的时候。

更新

我费了一肚子劲,总算突破障碍成功到达 Technorati,并取得它的 API Key。这次我就小心了,做了几个备份。接下来装好了 MTBlogRoll,棒极了!

2006年7月22日

今天发现 TheStyleContest 的页面设计变了,原来是比赛结果今天揭晓。

这个模板网站是以比赛的形式来为 Six Apart 的三大系统(Movable Type,TypePad,LiveJournal)提供模板样式的。包括 Movable Type 在内的三大系统共1000多万用户可以共享这些模板设计。

类似这种模板竞赛,老早WordPress做过,今年早些时候 pMachineNucleusTextpattern 也做过。

从奖金数量上看,这个好像是最多的。最高奖金得主是4000美金。

好像这也是一阵风,大家都搞起这个来了。但确实对用户来说还是大大的受欢迎。


补充:

得奖的设计中,排在第三的 Summer Love 的设计者竟然是个19岁的华人女孩,这才叫强。

升级到MT3.31的相关资料

| | Comments (0) | TrackBacks (0)

因为这次我这个是全新安装的MT3.31,所以我写的东西基本没有牵涉到升级的内容。

大多数的MT用户都是需要升级而不是全新安装,所以我找了一下,把几个比较好的地方和相关资料列出来,对于升级来讲差不多了。有人说升级的过程是超级简单,其实那只是针对一切准备完毕后只要按几个按钮的过程,这方面确实是比任何先前版本要容易得多,智能化得多。但在操作之前还是要搞清楚不少的东西。每个人装的插件都不同,不同的插件对新版本的兼容性也不同。

还是一句老话,清楚了再下手。

下面几篇文章比较详细的介绍了升级相关的内容:

1 - 官方关于MT3.3较以前版本的变化 ,谈到有关插件及MT代码。

2 - 来自 Learning Movable Type 的 安全升级到MT3.3 非常详尽的说明。

3 - 来自 Learning Movable Type 的 插件的兼容性与MT3.3 列了一个插件列表。可以对照一下你自己装的插件。并且不要错过该文评论中的这份插件列表这份插件列表

花了点心思,还是完成了从 MT3.2 到 3.31 模板的修改。

以前我的这个设计是在 MT3.2 的基础上做的。由于CSS样式是根据页面结构来设计的,所以随着MT3.31页面模板结构的变化,其CSS样式也应该在原来的基础上做相应的变化 (了解MT3.2的模板特点)。

其实并不是件难事,有点像是帖几块创口贴的味道,贴这里不对那就换个地方贴,总会贴中那个伤口。

在开始之前,我已经新建了一个MT,把MT3.2的所有模板和CSS文件全部覆盖到新的MT(相应的模板)上面,然后"rebuild all files"。这样出来的就是原来的样式,也是备份下以前的模板和样式。如果你只是把所有模板和样式表储存在本地,那好像还不够。

所谓储存的那些3.2的模板可能是你以前自己修改的,也可能是在其他网站下载过来的主题(或皮肤),都没有关系,问题是你确定要使用它来作为你的3.3的样式。

有了上面这个备份,现在就要开始纯粹的体力活了(我是老实人,喜欢做老实事)。首先比较两份CSS文件(3.2和3.3),好苦。把3.2中没有的 class 和 ID 从3.3中复制过来,这样我这个MT3.3 的CSS 文件就应该包含以前的样式和3.3版本新增加的样式了。将它保存好之后就可以看看现在的网站是什么样子了。整个不对头了?

如果是整个的结构都走调了,那你首先要检查的是页面模板的 body 标签中的 "class=......" 是否对头,两栏,三栏还是左边右边。接下来再看 "banner" ,"alpha","beta" 等。这几个 ID 对了就应该不会走调了,布局正确。

因为你已经有了3.2 的备份,所以你开两个窗口看浏览器中的效果有什么不同的地方。本来以前这里有这个的,现在却不见了?

那你就要找到这个东西的名字才知道结果。

例如在首页,本来每篇文章标题上是有时间的,现在没有了,那就到 Main Index 模板中找找看,它的名字是 "date-header" (h2 class="date-header"),然后到CSS文件中找它的定义,你看到了:

/* Main index styles
Suppress date header on main index */
.main-index .date-header { display: none; }

这个时间被隐藏起来了。你想要它象以前一样的显示? 把括号中的 "display: none;" 去掉就是。

你发现哪个东西和以前不一样了?或者你想要它变成一个别的样子?那还是要到模板中先知道它叫什么名字,再到CSS文件中看它的定义,针对该元素的定义进行修改。嘿,先到 Firefox 下看结果,再到 Internet Explorer 下看是否正常 ! MT3.3不是新加了 TAGS 的功能吗?到 Main Index,Individual Entry Archive 和 Search Results Template 几个模板中去看看,它都分别被叫做什么名字?还是要到CSS中找到相关的定义才能对它进行修改或重定义。没有什么特别的。

MT3.31中所有的页面模板和 MT3.2 时代的一个很大的不同是每个页面模板的 body 标签都被分别同时定义了两个类,而3.2 只有一个。怎么说?

看几个模板吧:

<body class="layout-two-column-right main-index">
<body class="layout-two-column-right master-archive-index">
<body class="layout-two-column-right category-archive">
<body class="layout-two-column-right individual-entry-archive">
<body class="layout-one-column comment-preview">
<body class="layout-one-column comment-pending">

以前是类似于这样的:
<body class="layout-two-column-right">

最上面的首页模板中,body 同时被 layout-two-column-right 和 main-index 两个类定义着。不能说这是多此一举。它能更好的满足各个用户的需求,不是说“林子大了什么样的鸟都有”吗?这样你就可以把各个不同的页面做成不同的样子,只要分别定义后面那个类就是。你不想搞得那么是是非非,那就统统地把他们集合到一起给一个统一的定义,不就都一样了吗?

定义body的那些类,不一定都能在CSS中找到,有的没有,主要的几个都有。你要定义它的时候只要到模板中把它复制过来就是,或者单独定义,或者加到同类的里面让它和那些一样就是了。

MT3.3 的模板中,新加了一个模板叫“搜索模板”(Search Results Template),这在以前是没有的。加上来方便多了,而且它是个相当重要的模板类型。我在这个搜索模板中看到了不少的象铁路一样的东西:

<MTIgnore>
########## STRAIGHT SEARCHES GET THE SEARCH QUERY FORM
</MTIgnore>

如果你还不完全明白他们的含义,最好别碰他们啊,都是关于搜索的条件之类的玩意。我不明白我就不动他们。我明白那几个 clas,ID 和那几句洋文什么的,我就改动一点,翻译一下。胆小呢。

还有,那个 Comment Listing Template ,嘿嘿, 里面是空心的,什么都没有 ! 不会吧?有点吓人?那是 Movable Type 的一个小失误,他们忘记了! 可能是那个工程师正好肚子痛来不及了。不过没关系,没有什么影响。因为那是用来评论时以弹出窗口的形式用的模板。如果你不是用弹出窗口那它就没有用,如果你要弹出窗口你可以把3.2的这个模板复制过来就是。总算可以放心了!过不了几天,Movable Type 应该会针对这个模板出个通知的。

其实没有什么好说的,无非就是找来找去,比来比去的。象那首歌:“找呀找呀找呀找,找到一个朋友 ... ...”

虽然有点繁琐,细心点就好了。当最终你的修改完成时,你会觉得还算值。

有点象记流水账哦。写了一堆,也不知道朋友们是不是被我搞糊涂了?实在糊涂的话,把我这个网站的页面多翻几次可能会清醒点。

前几天装好了MT3.31, 一切似乎是运行正常。

但有个小地方让我郁闷了一阵子。那就是当有人在我的MT博客上留言时,我的email收到的通知邮件中的中文部分全部显示为 "?",都是问号,英文显示正常。

以前的3.2版本就没有这个问题。所有的中文留言在email中都很正常。

我到处找不到有关的设置,因为配置文件( config.cgi )里只有三项,MT后台也没有相关的设定。

3.2版的 config.cgi 中有 PublicCharset utf-8 的设置,但3.31中没有。我试了把这行配置加上去,但无效,因为默认就是utf-8。

我把 MailEncoding utf-8 这个加上,好了,自己发个留言,是中文的了,恢复到邮件显示正常。因为MT系统现在的邮件默认编码是 ISO-8859-1 。

config.cgi 文件虽然默认的是三项设定,但是可以添加新的设定。

现在是MT3.31了

| | Comments (25) | TrackBacks (0)

其实昨天就已经装好了 Movable Type 3.31,但不是在这里,而是装到一边去了,连以前的设计模板也复制过去了,等这边完工了再拆。这里暂时先裸体几天。

是有不少的地方不一样了。总的来讲是变得更人性化,更简单化和更强劲。

首先安装上就不一样了,不是别的,是更简单了。配置文件中只要填写三条:cgi ,static 的路径以及数据库信息就好了。而且登陆的时候不再需要那个唱诗班出身的 Melody 了,直接填写你自己的登陆信息。省去把 Melody 赶出去的步骤。

因为新版本的默认插件比以前多了几个,那就是 GoogleSearch,StyleCatcher,FeedsApp 和Widget Manager。后面三个是 cgi 程序,所以要让他们发挥效果,要到 mt 主目录下的 plugin 中把他们的 cgi 后缀的文件属性改为755,否则运行不了的。

哈,文本编辑框和模板编辑框太好了,变得有弹性了,可以随意调节高度,不用成天拎着那根滑条上下倒来倒去的。字体也大了,以前的字体害得我们有点苦啊,尤其是模板中的字体,那么多无聊的代码差点让我们带老花镜。好了,现在改正了,还算有点良心。对于模板编辑区来讲,不光是字体大了,更要紧的是可以让你在线编辑模板的时候更直接了当。在 Index 模板区,每个模板类型的右边都有个小箭头,当你编辑好某个模板后,直接点那个箭头就可以到你网站的相关页面看到效果了。以前就麻烦多了,要么开个窗口刷新看效果,要么就要拐几个弯到页面看完再拐几个弯回来继续修改,哈哈。

左边的导航基本上一样,就是多了个 TAGS,这年头流行这个啊。没有 tag 功能的东西,会被人说成老土,跟不上形势的。谁叫大家成天叫喊着 Web2.0 呢。

还有几样好玩的东西(确实好玩)也是现在很流行玩的,就是刚才说过的 Widget 插件了,你可以到 Widget Manager 那里轻松的装上那些 Widget,其实不是什么装,是用你的鼠标一拎就过来了,象涂了肥皂一样的滑啊。用它来管理你的各个Widget 实在再简单不过了。

FeedsApp 这个 Widget 是干什么用的呢?如果对 rss 有点了解的人可能比较好理解。绝大多数人都只是通过 rss 阅读器来阅读自己订的 feeds,或者自己提供 feeds 给别人订阅。好像不太好玩(不会玩的人说不好玩也懒得玩啦)。FeedsApp 是把你喜欢的 feeds 放到你自己的MT博客页面上来,作为你的网站内容的一部分的一个工具。当然也可以不用这个工具,通过手工来放置代码或使用其他的程序。

还是来举个例子说吧。象黑羽的博客是关于 Flash 的,上面写了不少的好教程也陈列了自己的作品。但是如果他还发现了别的不错的 Flash 资源,比方说其他的教程网站,其他的作品展示网站,那都是他的 fans 喜欢的也希望看几眼的东西啊。如果他把那些网站或博客的 feeds 通过 FeedsApp 导到他自己的博客上来,展现在自己的页面上,你想想,内容不是更丰富了吗,他的 fans 不是更铁杆了吗?如果他把 Adobe 的 feeds 拿过来呢?他还要象别人那样老是去报道“什么东西又出最新版本了,大家快去看哪”吗?Feeds 是及时的同步的,谁有你快啊?我只是举个例子随便说说。黑羽的 Flash 博客不一定就会都放些 Flash 的东西啦,说不定他还聚合一些一超模或什么星之类的也难说,毕竟大家都喜欢啊。哈哈,这个玩笑开得不小(黑羽看到这里别生气啊)。

说到 rss 和 feeds 就打不住了。因为那是有得说的东西。通过程序转换的feeds 在页面的显示上基本有两种形式,一种是 cgi 的,还有一种是 http 的。 cgi 的只是在页面显示了而已, 搜索引擎看不到;而 http 的,搜索引擎就能看到也就具有了 seo 的意义。现在这个 FeedsApp 的是哪种我还没来得及看。但愿也应该是后者。打住,不能再说了,这里不讨论这个话题。

页面设计上也有些小的变化,象首页的文章标题就已经给出了链接,原来都要自己去改的;Indevidule 页面上则把上面的文章导航搬到了侧面;所有文章存档的页面上给出了发表时间等等。对了,还有就是存档页面都改成两栏的了,以前要手工把单栏的改成两栏的。我以前在关于设计MT页面的文章中说过有个搜索模板并不在模板区域并对此不理解,现在他们发现隐藏这个搜索模板确实没有道理,这不,现在拿出来列到系统模板区去了(MT本来就是不需要上服务器去编辑任何东西的嘛)。再仔细看看,类别存档(Category)和时间存档(Archives)的顺序都掉了个头呢 ! 最早发表的文章列在顶部,最晚发表的排到最下面去了。按先后顺序。这样可能是要好些。

还有个不容易发现的东西,就是垃圾评论区的“一次性清除所有的垃圾”的按钮。以前最多只能删一页,删垃圾都花不少时间。现在一按不管多少垃圾全部没有了。每篇文章的静态地址标签也有些变化。如果以前装的插件较多的,最好是先看看官方在这里给出的有关的信息

以前3.2 版本的插件现在很多已经跟不上了。已经出来了不少的新插件,先前版本插件的作者们在赶紧更新中,近期会出来一些。象那个 MTBlograll 就是。

好了,这些是在装上3.31 版之后的一些感想,随便说说而已。

更新

刚才在看 3.31 的 css 文件和其他模板文件。发现和 3.2 有些地方不大相同。举个例子,首页文章标题的时间显示不见了,因为在 <body class="layout-two-column-right main-index"> 这行中用了个 main-index 的类(以前没有这个类),而这个在 css 中的定义是隐藏:
.main-index .date-header { display: none; }
所以要显示时间就要去掉它或重新定义。Individule Archive 模板顶部的导航也被隐藏了:
.content-nav { margin: 0px; display: none; }
取而代之的是在右边的导航中显示出来,也就是说你可以选择一种或两种都选。因为现在的版本增加了新的东西进来,象 tag,所以就增加了相应的css定义。诸如此类。3.31 版本中的 /* Vicksburg II (theme-vicksburg.css) */ 文件和 3.2 中的不完全一样。因此我前几天说的更换主题的方法在 3.31 中使用要注意,搞清楚再动手为好。看清了:现在MT3.31模板中的 Vicksburg 主题是第二版!为了配合3.31已经升级了! 不知道官方网站的和 TheStyleContest 的主题是否也会跟着升级,那才叫方便大家呢。

2006. 07. 15

This post is about IRI and Lee Joon's MT plugin "Cool IRI". It includes my Chinese translation of Lee's email and with the original one attached with it. Posting here for letting more people can share Lee's knowledge and the attitude to the audience. Greatly appreciate.
在此对Lee Joon 表示谢意和敬礼。

一个星期前我装了韩国人Lee 开发的MT插件Cool_IRI

当时在我的中文版的 Internet Explorer上显示正常,而在英文版的 Firefox上显示不正常,都是 "%" 什么的。于是我到Lee 的博客上留言,告诉她我这个问题。她告诉我到FF里把 "network.standard-url.escape-utf8 " 设置为 "false" 就可以正确显示中文了。我完全不明白这个设置在哪里。除了问她在哪里设置,我还写了好几个问题在她的留言处。(说句实话,有些问题如果没弄明白我确实不敢随便来用它,以免以后带来后果。)

这是我的几个问题:

1 - 这个设置在哪里? 你说的FF是指我电脑上安装的FF吗?
2 - 如果是指我本地的FF,那不就意味着只有我的非中文版的FF能正常显示中文IRI,而其他人的非中文版FF就不能正确读出来吗?
3 - 我希望这个设置是在插件里面,但我没有找到。如果能通过插件本身来设置的话,那么就意味着所有的非中文版FF都能正确读出中文的 IRI 了,那才叫酷呢 (就像用UTF编码写的中文一样,任何浏览器都能读出来。只是我能读有什么用啊,东西又不是写给我一个人看的)。
4 - 我的IE是中文版的,那些非中文版的IE显示中文IRI是怎么样的呢?希望你的IE能告诉我结果。
5 - 我认为这点是最重要的了,也是我最关心的。如果非中文版的各种浏览器不能正确显示本来的IRI,取而代之的是一长串的 "%",好了,这个时候如果有人链接我的某篇文章时,他/她在地址栏中复制的我的链接可是那些 "%"啊 ! 那不是我原本的链接啊 ! 这样的链接指向我的页面,搜索引擎会怎么看?PR传递会如何?

我知道我的问题太多了。知道她会答复我( 之前我的每个问题她都有答复的),但不知道会怎么答复。我在等。很快,几个小时后我收到了Lee的 email。很长。我用中文把信的全文都写出来让大家一起看看,原文附在本文的最后(我已经通知Lee我会就此写一篇东西)。

你问了很多问题,但我想每个问题都很有道理。我就我所知道和想到的来谈谈。

1 - 在FF的地址栏,输入 "about:config",FF的所有的配置就被列出来了。很长一串。然后在 "filter" 区域输入 "utf",过滤出来的结果就只剩下三四个了,在这里去设置 "true/false" (把 true 改为 false)。

2 - 是,也可能不是。我用的是韩语版的FF,我就能正确读出你的中文 IRI 来。这和FF的语言版本没有关系,而和电脑安装的字体有关系。

当然,有的中国用户电脑上虽然装有中文字体,但还是会在地址栏上看到 %HH 的编码。因为我不确定中文版中FF默认的 "network.standard-url.escape-utf8" 设置是 "true" 还是 "false"。如果设置的是 "true",那在他们的FF下就只能看到 %HH 编码了。

你知道的,目前差不多所有的网民都不太了解 IRI,他们习惯于那些不允许非 ASCII 编码的老URL(?)。有人说,非 ASCII 编码的地址是没有价值的,这样说来我们就不应该在URL中使用它了 (以避免出现 %HH)。 这样的局限性对非英语用户来说是太过分了一点。

目前,IRI 还处在过渡阶段。IE6 对 IRI 的支持不是很好 (IE7就能很好的支持),最新的浏览器象 FF / Mozilla / Opera 虽支持 IRI 但就目前来说还不是很完美或不够流畅。

我举个例子:

你知道国际化域名 (Internationalized Domain Name)(IDN) 吗?它赋予了 IRI 更广泛的含义。象 職業.com 这个域名就是个例子(我希望它在你那里能够显示出来)。

当有些人在浏览器中输入 職業.com 时,他们肯定能到这个网站,但当我也这么做时,我的FF浏览器却显示为 http://xn--q6v940c.com/,为什么呢?

原因在于FF提供的 network.IDN_show_punycode true/false 配置选项,它可以让用户选择在浏览器的地址栏中是显示 IDN(職業.com) 还是选择 Punycode 编码的 ( xn--q6v940c.com/)。

这个 IDN 的问题(?) 看起来有点和 IRI 显示方面的问题有点类似。

还是接着上面的 2 - 是的,当用户关闭 IRI 或 IDN 选项的时候,就只能看到 %HH url 或 xn-***** 这样的 punycode 了。

那是浏览器用户所拥有的权利,我觉得这还是有道理的。终端用户应该拥有掌控他们的浏览器的权力。

现在真正的问题(?)是很多人还不了解 IRI / IDN,以至于他们根本就不知道他们还可以打开或关闭这些选项这样一个事实 !

随着时间的推移,更多的人(主要是东方人用户)会来使用 IRI / IDN,更多的人会知道他们拥有在浏览器中选择显示自己语言文字的权力。

3 - 上面说过的,IRI 只是暂时性的用来显示地址。即使有问题也不是本质性的,无非是出于显示的目的罢了。

服务器端,我们没有办法来控制终端用户的行为。比方说,我可以固定某种字体的大小为绝对大小,以前我们可能会想,对啊 ~,所有的人在我的页面上看到的是固定大小的字体。IE6 还是那样。但所有其他的现代浏览器已经不再是那样做了。他们让终端用户可以调控页面的字体大小, 即使你在页面上使用了固定大小的字体。

我想这种浏览器地址栏的现象和上面那种情况应该是差不多的。

4 - 你谈到非中文用户不能看到正确的中文地址,那他们能否用链接指向你的页面?他们能否打开并进到你的页面?

肯定能。当然,非中文用户不能看到正确的中文地址,但并不意味着他们不能到达你的页面。

举个例子说,有的 IRI,象 alogblog.com/中國/index.html ,你可能会想,IRI 的地址你可以到浏览器的地址栏输入 "中國",当然你可以这么做。

但是,那不是正常的使用计算机的方式,很少有人会用手工去输入地址的。比如美国用户的电脑里没有中文字体,他们不能直接输入也不能看到中文的 "中國"。

然而,如果他从其他页面的链接来寻找这个页面 (中國/index.html ),他也能到达。

最终,我要问,为什么我们要使用 IRI 呢?
作为我来讲,为什么我要用韩语的 URL 呢?
作为你来讲,为什么你要用汉语的 URL 呢?
職業.com ,又为什么要用这个域名而不用 occupation.com 呢?

我认为,用户之所以采用 IRI / IDN,是因为他们把能 理解 / 使用 / 看懂 / 他们自己语言的人看得更重要。

所以,如果你的一些页面内容是针对全球用户的,那么标题就用英语来写。如果某些页面都是中文而且这些页面是针对懂得中文的用户的,那么标题就用中文来写。

我也是遵循这条原则的。

5 - 如果链接你中文 IRI 的人是能 理解 / 使用 / 看懂 中文的人 (一般来说应该是中国人),那他就没有必要使用 %HH 地址,如果他知道这只是用来 过渡URL 显示的。

再比方说,如果一个不懂得汉语的美国人要链接你的页面时,那么无论如何他就只能在他那 ISO-8859-1编码的页面上使用 %HH 了。

但是象我在第四条里说的,绝大多数情况下,你的永久地址都会被中文格式所链接。如果你担心别人用 %HH 格式来链接 (因为在他们的浏览器上显示的你的 IRI 是 %HH ),那么我建议你把你的 IRI 地址镶进你的独立页面(Individual Page)中,如果有人要链接它,可以从你的页面中复制那个中文地址而不用到浏览器的地址栏中去复制了。

为了更方便点,你可以提供一些按钮形式的链接给那些要链接该页面的人:
http://alogblog.com/blog/archives/2004/06/Mozillar에서도_가능한_클립보드_복사_자바스크립트.php

如果你想要 IE 或 FF 来复制 Javascript,看看上面这个链接吧。

在韩国,不是很多人知道 IRI。所以我经常故意的把我的 韩语 IRI 地址贴到别人的网页或论坛上,然后,他们会发现 Ooo~,原来韩语地址也可以这样啊... ...

对于 SE / PR / linking ... ... 等等 我可以告诉你,别担心啊 :) 为什么呢?

因为当我们使用 IRI 的时候,我们具有比那些使用非 IRI 或 URL 的人有更多的优势。

例如,当我用韩语在博客上发表文章时,那我的 URL 是什么呢?如果我不使用 IRI,那它的 URL 就只能是下面两种形式:一种是 alogblog.com/my_good_posting.html,而另一种是 alogblog.com/2006/234.html

对啊,只能是这样的了,既不是文章的内容,也不是文章的标题。

如果我们使用 IRI 地址而如果 Yahoo 或 Google 并不能明白我们的 IRI 的含义的话,我们并没有失去什么,只是我们没有额外获得什么而已。

庆幸的是,Google 能很好的理解 IRI,而不明白 %HH 。韩国Yahoo好像能明白 %HH 。即使这样,我们没有失去什么。

随着时间推移,当我们越来越多的把我们自己的语言用作地址,Yahoo 也会要开始采用 IRI 的原始含义,在技术上来说, 这并没有什么困难。

=======================
总而言之,IRI 现在还不算成熟。 所以,眼下来看,我们可以对一些未知的问题获得一些经验,有一点可以确定的是,互联网环境将从 URL (由于只是允许单纯的 ASCII,我讨厌这种哲学,尽管在互联网刚开始时没有问题)转向 IRI 。很多的浏览器将会更好更多的支持 IRI,越来越多的人们将会知道并且理解它。

这只是时间问题。

=============
嘿,写得太长了。
我的英语不是很好,我担心我的想法能不能正确地表达给你。
但愿如此。

好了。我实在是几天没有睡好了,在稀里糊涂中把Lee Joon 的这封邮件写成了中文。可不是吗,现在已经天亮了,这个不眠之夜啊。

关于搜索引擎辨认 IRI 的问题,我也补充一句:美国的 Google 能很好的读懂它,但专门针对我们中国用户立足于本地化的 百度 却不认识正宗的中文。有意思吧? 不信?到这里看看 百度,再看看 Google,你就明白了。

baidu-iri
google-iri


估计上面写的还有不少的错误或语句不通的地方,或者我完全就说错了。现不管它了。以后再改过来吧。

前面已经很长了,不知道你是不是早就没有耐心了?那不怪你,只怪我太无聊。

不管怎样,我还是把 Lee Joon 的原始邮件贴上来,放到下页吧。

MT3.3今天正式发布

| | Comments (9) | TrackBacks (0)

昨天还看到是 3.3beta2,今天看到是 3.3 了。

之前我装了 3.3beta1,看了一下效果。后来我删掉了,想等到把那个 beta 去掉再说。现在出来了。

官方下载地址

从 3.3beta 来看,还是有不少地方改进了,功能方面增强是肯定的。我个人会在近期升级。刚才看到价钱方面好像差不多和以前一样。但有个大的变化是已经取消了作者人数的限制。个人付费版以前是限制3个作者,现在是无数个作者;免费版则是个空白留在那里。是不是也是无数?应该是吧。以前是免费版只能允许你建立一个博客,个人付费版允许建三个。现在没有这样的话了。总之我没有看到。

还有,随着3.3 正式版的推出,它的 Plugin 也更新了,好像还推出了不少新的插件。

强吧?

看到不少国内的博客上说因为MT变成付费所以大家转到用别的程序。我不明白那些人。他们也不明白MT。去年我买下3.2的个人版本后,就去问他们的客户服务,说到底免费的和付费的区别在那里。下面是他们在帮助台给我的答复:

Hi, there are no built-in limitations to the software itself; it is the license you hold which dictates how many authors you are allowed to have. We're operating under the honor system in this regard.

You may want to see the following Knowledge Base article related to your recent license upgrade:

http://www.sixapart.com/movabletype/kb/licenses/updating_for_an.html

Regards,

大意是:MT软件本身并没有什么功能限制,购买的凭证用来授权允许几个作者,这些是建立在诚信的基础上的。

中国用户可能不好理解,会有点“晕... ...”的感觉,但在外国人看来很正常。正因为不好理解,才吓跑了好多我们的同胞。当然,如果你拿它做商业用途,那就是另外一回事了。

所以 ......

如果你喜欢它,你就用它。

因为今天又有朋友到我这里留言,说在MT安装教程的帮助下安装成功。那是去年十月写的。今天觉得应该赶快补充这个提示。

正在使用MT的朋友知道,当你安装好MT之后,你会迫不及待的开始建立文章类别 (Categories),并把文章发表在相应的类别中。可能你的类别还建了好长一串呢:-))

在MT的默认设置下,你到你的服务器上看看,在根目录下,除了有 cgi-bin,mt-static 等文件夹外,还列出了所有的文章存档类型所产生的相关文件夹。他们包括所有的类别,所有的年份和月份等文件夹。好长一串。随着时间的推移,也随着你不断增加的类别建立,这一长串的文件夹还会不断的增加。他们都被列在了根目录下。

另外,如果你的服务器是有绑定Addon Domains的功能的话,而这些绑定的Addon Domains又正好在现有的根目录下,那更增加了这个长度。最后,你以后还可能在这个MT的基础上再建立新的MT博客,可能还是好几个呢,他们也会被列在根目录下。

所有的这些都在根目录下,显得有些无序。

当然增加根目录的长度看起来并不可怕,因为它不会妨碍到MT的任何功能的正常使用。或许你根本不在乎,那是另外一回事了。

我不喜欢什么东西都挤在一起,而希望什么东西都被归类到相应的地方去。尽量让每个目录都条理化,有利于将来站点的管理和发展 (你可别告诉我你只想写点心情之类的东西)。

设立存档路径,到 "SETTINGS" >> "Publishing",找到 Advanced Archive Publishing:

advanced-archive

在存档地址和路径上做相应的设置。你可以参考官方文档来进行设置。或者点开右边的那些问号,找到相应的文档来解答。

可以看到,我本人没有做上面的设置,而是在 Archive Mapping 区域设置的。

archive-mapping

我希望所有的存档都放到一个叫 "archives" 的目录下(你可以随便取个别的名字如 "archi" 又短又好理解),所以在每个类型的存档路径前加上了 "archives/" ,这样的话,他们就都到这个目录下了(不用到服务器上去加这个目录,只要你在MT上设置了,程序会自动写上去的 ! )。你也可以根据你自己的需要把不同类别的存档放到不同的目录下。

同时,你也看到了,每个存档类型都有个下拉菜单,让你选择该类型存档的显示方式,也就是该类型在地址栏的显示,包括日期和类别。

所以当你选择了你要的显示方式后,保存,再去点 "Custom...",在前面加上你希望的目录名称。再保存,重建。

在 Individual Entry Aarchive 的下拉菜单下,你看到了共有12种方式让你选择,够多吧,如果你还觉得都不好,那你也是点这个 "Custom..." 来进行自定义。 这些选项都是为了使存档类型具有相关的含义,并同时有利于搜索引擎来索引。是MT的很大的一个特色。所以你要好好利用它们。

上面的这些设置,最好是在你的 Weblog 还没有正式开始运作的时候就设置好。如果在默认情况下写了一些东西,而后再来这里设置,那就意味着你的存档这里有一点,那里也有一点,日子一长,东西一多,可能你自己都搞不清了。如果你把他们都搬到现在设置的目录下,哈哈,浏览器会告诉你该页面找不到。那你就只能重新发表然后改变发表时间了。

我碰到了这个麻烦,我没有选择重新发表,而是选择了重新安装。因为重新安装要比发表来得快得多,三分钟解决安装(删除数据库,再次建立数据库,重新运行 mt.cgi,重新安装成功)。切记,在重新安装前先导出所有的文章,然后紧接着就去设置,完了再导入,否则又是一锅粥了。同志们哪,我当时就这么倒腾着重装了三次才彻底弄好!

与其到后面这样麻烦不如趁早现在就开始行动。

酷吧。

感觉难受的一场球

| | Comments (9) | TrackBacks (0)

french我是相信法国会赢的.最后的结果我还是觉得法国没有输.

比赛结束后,中央一台那个主持人对三位嘉宾和现场100多球迷说,意大利队会要付出很多球迷对意大利队憎恨的代价。我不知道别人是怎么想的,也许有道理。

开赛前我就在看一台的那场聊天,一个中央台的女的,两个男的( 我统统不记得名字)。那个女的来说球,真好笑,说什么意大利的风情,法国的浪漫什么的,我看她是个白痴主持,典型的不懂装懂。她绝对不了解法国和意大利,更不知道足球。那个男的说,这场球注定是场枯燥的比赛。都在装内行。

舆论普遍说法国队会输在年龄上,结果不是。

那个前几天还在喊意大利万岁的人就更有意思了。一路上法国队打得顺畅他没说三道四,意大利赢了点球时,他说比赛前他就有预感,因为两只球队唱的歌,一个是凯旋曲一个是象征悲剧的"卡门"。结果出来时他就什么都知道了,之前他就不敢说。大概看到法国队顺的时候他心里太紧张,担心自己买彩的钱都会输掉。这个结果出来,他可以暗自开心了。

穿深蓝色球衣的人一路上小动作太多。当时我就在想,法国人哪里挡得住那么多的人体炸弹啊。

有位爷爷说过,不管白猫黑猫,抓到老鼠就是好猫,现在连外国人都把这招学过去了。这句话着实害人不浅。

我为法国人工作了十五年,多少知道一点什么是法国人。

看这场球的无疑有意迷和法迷。我说的只是我自己的一些想法而已。

刚才在外国人那里找来两段录像,竟然有一段是中国人的解说。两段录像拍的镜头很不一样。

这段是外国人解说的,这段是央视解说的。

我是从这个博客这里得到的录像资料来源。

更新:

随着的更新,我也来补上:

Materazzi (马特拉奇)在其他赛场的表现,可以看出点什么。

都不能原谅,但都能理解。

2006年7月10日15:00

再次更新:

刚得到消息说,齐达内荣获世界杯金球奖。真正的光荣永远属于真正的英雄。

这又使我想起比赛刚结束时那位解说的说的话:齐达内肯定与最佳球员奖无缘。当时说话的口气显得那么自信,好像是真理一般。结果又扇了自己一个耳光。

你的思维方式如何可以和国际足联的相提并论啊,你也没有任何资格去代国际足联向观众下任何结论。

这都不是意外。

廉耻总是追随着光荣。

自由,平等,博爱。

2006年7月10日18:00

更新:

齐达内铁头功在线游戏

2006年7月11日5:00

我的新任务

| | Comments (5) | TrackBacks (0)

前段日子我花了点时间写了几篇 Movable Type 的设计文章,虽然我自己结了个尾,但我并不知道写的这些到底能给大家有多少帮助,是不是还要继续进行补充,还要补充点什么。到目前为止我不知道。

所以近两天我写些乱七八糟的东西。

今天我瞎逛,看到John写的这个系列,是关于WordPress 的设计指南,受到的评价很高。我就有了一个想法:把它翻译过来。这样给我一个新的任务。

WordPress 在我的服务器上是已经预安装好的,我虽然没有用它来做我的博客,但我常去看看它的零部件什么的,有点肤浅的认识,不至于太陌生。

做这个翻译的原因有几点:
1 - 是个不错的翻译练习。
2 - 对那些正在使用 WordPress 的朋友设计自己的作品能起到一点参考作用。
3 - 参照别人的教程写法,使我自己以后也能写出象样的东西来。尤其是写作态度。

我还有一个星期就要出去带团,这个系列总共有四部分,每部分有8篇,所以总共有32篇,规模有点宏大。我不知道在这个星期能完成多少,尽量吧。反正翻译比自己写更难。

好了,明天开始。

MT的默认评论显示只是简单的把每条评论列出来而已。

当一篇文章的评论少的时候看起来还没有问题, 但如果有十几条或几十条的时候就有点费劲了。我看过不少的博客每发表一篇文章其评论都会有上百条到几百条的。要使评论看起来容易,使读者感到轻松,在设计上需要使用很多方法,其中为评论加上数字顺序是其中的一种,有点象论坛的样子,“喂,我说,6楼的朋友...... ”。

办法很简单。

因为评论功能是在 Individual Entry Archive 模版里, 所以我们到那里找到 Comments 部分,再找到这几行:

<div class="comment-content">
<$MTCommentBody$>
</div>

其中的 <$MTCommentBody$> 就是评论的内容。在它前面加上一行:

<span class="commentOrder"><$MTCommentOrderNumber$></span>

使用的这个 <$MTCommentOrderNumber$> 是个变量标签,可以用数字来显示评论的顺序。<span class="commentOrder"> 是给显示的数字做的样式定义。

也就是:

<div class="comment-content">
<span class="commentOrder"><$MTCommentOrderNumber$></span>
<$MTCommentBody$>
</div>

在 Individual Entry Archive 的任务完成后,就要到CSS样式表中去编辑这个类 "commentOrder"。根据你的设计需要,来定义他们的大小,颜色和背景等。甚至你还可以不把这些数字显示在上面介绍的那个地方,你可以放到 "comment-footer" 那行,看你喜欢了。

几种博客程序对比

| | Comments (6) | TrackBacks (0)
我看到关于国外几个主流博客程序的功能对比表,包括 Blogger,TypePad, Blogware,WordPress,Movable Type 和 Expression Engine 等几个。 文章开头说明了,这些功能方面的对比只是就安装后的基本功能来进行对比的,并不包括扩展后的功能,象插件和 hack等。 这个对比表是今年前几个月发布的,应该还是比较新的。我只是初初看了一下,除了Blogger有比较大的出入外,其他的我也没有看出有什么大的区别。对比的功能里有一项叫 "Skins" 的,我想了好一阵子还是没有明白到底是什么。

互联网是由 US-ASCII 编码构建的,连URL也不例外。但随着Unicode, UTF-8, IRI等的出现,US-ASCII 一同天下的局面将不再延续,而是走向国际化,多语种化。

如果你用非英语,比方象法语,德语,汉语,韩语,日语等在 Movable Type 写文章和文章的标题时,Movable Type 可以对文章的永久地址也就是 Permalink 进行优化,使文章的标题和归类都也出现在地址栏中(这个设置在 SETTINGS > Publishing > Publish Mapping )。这是 Movable Type 的一个特色,能使你的文章更有利于搜索引擎。能够把文章标题和类别显示到地址栏的 Permalink 才是完美的地址和链接。但问题是这个完美的功能只适用于英语。当你的标题是非英语,象汉语时,它就不会显示在地址栏中,取而代之的是类似于 "cat","post" 这样的地址,毫无疑义。如果标题是用汉语和英语的混合体,就是既有英语又有汉语时,那就只有英语能显示到地址上,而汉语就被省略了。非英语的语种也就丧失了这种完美。

好处都被写英语的人捡走了 ... ...

总算找到了解决方案,韩国人Lee写了这个插件,叫 Cool IRI。很棒,试试吧。上面都有很详细的安装说明。 效果可以看我的这篇文章的地址栏。

测试Cool_IRI地址

| | Comments (0) | TrackBacks (0)

这是在测试文章的永久地址。

哈哈,这是个伟大的插件!

这是英语国家的人不能享用的一个插件。非英语国家 Movable Type 用户也是中国 Movable Type 用户适用的一个非常棒的插件。

看到了吧?地址栏上的中文完整显示!

以前的文章只显示英语部分,现在的地址上,中文和英文全部上去了!

酷死了啊!

但还有一点我不清楚:我看到的是IE的效果,我还不知道FF下怎么样。我装的FF是英文版的,显示的地址中中文部分还是那些“%”。猜想中文版的FF应该和IE一样吧。

现在是深夜两点半,明天再写介绍吧。

test-iri

好不容易总算基本把那五篇MT设计的东西写完了。

松了一口气。

这篇说的话题我不原意把它归到那五篇里面去。因为你完全可以不去管它。之所以还写出来,是因为我这样做了,在这点上我也不理解MT为什么会这样。

在任一个页面模版中的文章主题部分,你可以找到这行代码,也就是文章的标题部分:

<h2 class="date-header"><$MTEntryDate format="%x"$></h2>

<a id="a<$MTEntryID pad="1"$>"></a>

<div class="entry" id="entry-<$MTEntryID$>">

<h3 class="entry-header"><$MTEntryTitle$></h3>

你一眼就可以看出来,H2是文章发表的时间,H3是文章的标题。看到这样的代码我马上会恼火。凭什么时间是 H2? 而标题却是 H3? 太莫名其妙了! 反正不理解。

地球人都知道,文章标题对于搜索引擎意味着什么,有多么重要,是影响搜索结果的几个至关重要的因素之一。在搜索引擎看来,H1最重要,H2其次,H3再其次,依次类推。

在MT的默认模版中,把网站的名称列为 H1,这无疑是对的。文章的标题应该是H2,而至于那个时间列为H5也不过分。所以我自己的模版上我把文章标题改成了H2,把时间改成了H3(还是没有排到H5去)。改动这几个HTML的标签并不涉及到其CSS,因为它们的CSS都是通过 "date-header" 和 "entry-header" 来定义的。改了标签并没有改动它们的“类”。

当然我承认MT在搜索引擎方面的表现已经是相当的不错,我也并不认为MT的这个地方就是个错误,只是我个人觉得不理解。所以我做了上面说的改动(当然也没有错),觉得更合理点罢了,看起来更顺眼点。

这是在松了口气的心情下写的,如果没意思,权当没看见吧。

关于设计个性化的Movable Type templates,前面已经谈了很多了。虽然不一定面面俱到,但我想至少从概念上来说,还是有了点认识,不至于无从下手了。

下面说的可能对某些同志来说完全是废话,可我还是把他们写下来,作为一点小提示吧。

设计Movable Type的方式

在第一节中说过设计的途径主要有两种:修改现成的模板和完全丢开Movable Type的现成模板而自己设计。

这里再进行一点补充。

1 - 按照前几节谈过的在默认模板的基础上进行修改。

2 - 通过安装MT的插件StyleCatcher来更换样式。昨天搜索了一下,发现不少人在安装上有问题。我是去年安装的这个插件,装完后换了两个样式不喜欢就没有再用了。我觉得装这个插件是件花不来的事。因为不是经常用,还费了一肚子劲去装。谁会总去更换样式啊。

如果确实看上其中的某个样式而又不装StyleCatcher,有什么办法吗?我在第四节中说过,因为默认模板的Styles-site.css这个文件是由两部分组成的,一部分是base-weblog.css,后一部分是 "某某theme.css",默认模板也是采用的某一个 theme(样式),那你要更换某个 theme,就只要把它下载回来然后复制"某某theme.css",把它覆盖在默认模板的 "theme-vicksburg.css"上面就行了(当然还有图片要传上去)。这要比安装那玩意简单得多。若要再修改这个 theme 的某些细节,你只要改动 "某某theme.css" 而不用改动那个 base-weblog.css。

除了在官方网站有样式更换,而且在 thestylecontest 也有很多的样式供你选择。同样的道理,当你下载了由个样式后,你也只要复制那个 "某某theme.css" 的CSS文件然后覆盖到默认模板的 "theme-vicksburg.css"上面就大功告成 (还有图片)。

3 - 你完全不想要任何人的模板,你可以自己设计一个。在你喜欢的网页编辑器中把样稿设计出来后,参考MT的默认模板,搞清什么地方要用容器标签,什么地方要用变量标签。插入合适的容器标签,然后把那些变量性质的内容全部用变量标签代替。比方说,文章的主体内容 (不管它有多长也不管它有几段) 全部只用 <$MTEntryBody$> 这几个代码代替。当所有的内容都被换成MT的标签后,它就已经是MT的模版了,形象点说就是你的汽车已经装上了油门和各种操纵杆,可以带动你的MT发动机了,它们会为你产生100%的静态网页。

这时从你的编辑器的预览窗看起来肯定已经变得面目全非,如果你使用该死的DreamWeaver甚至还给你报出100条错误。你别管这些。将这个页面模板复制到相应的模版中 (或者上传到服务器,在模板区域用相应的外部链接连上),保存重建。CSS文件也一样。

到你的网站看看是不是你要的样子?

如果对MT的标签不熟悉,也可以用 Golive CS2来试试,其中有一块是专门用来设计MT的模板的。但到目前为止,我还没有尝试过,我自己习惯用手写。如果你用过,希望你也来谈谈一些使用感受。另外就是你也可以使用这个MT标签的插件或者这个模板编辑器,让你在设计的时候所有的标签看起来一目了然。

----------
(全文完)

补充:

这里 还有几款通过网页编辑器的插件用来方便编辑MT的标签的,其中有 DreamWeaverTopStyle Pro 等常用的几个。里面都有详细的使用说明以及下载处,并附有图片说明。

补充时间:2006年7月5日

更新

如果是 MT3.31版的用户,请参考一下这篇文章的更新部分。因为3.2 版本和3.31版的结构与css文件有些不同。上面提到的 /* Vicksburg (theme-vicksburg.css) */ 已经更新为 /* Vicksburg II (theme-vicksburg.css) */ 了,就是第二版。所以更换主题时请看清该主题的详细信息。

2006年7月15日

[ 1 ] [ 2 ] [ 3 ] [4 ] [ 5 ]

通过前面几节对MT模版的观察,应该说你对MT的页面设计有了一个大概的认识。

不管你的页面设计得有多好看,也不管你其它的程序运用上来可以使你的博客具有多么诱人的效果,如果缺少MT的标签,那就怎么也不是 Movable Type,就不可能让MT运行起来。因为只有那些独特的MT标签才能带动Movable Type这台发动机。

前面两节谈的只是纯粹的页面布局和样式设计,也就是HTML/XHTML的内容。

下面我们来看看Movable Type的标签是怎么样的。

认识Movable Type的标签

Movable Type 的标签分为两种:容器标签(Container tags)和变量标签(Variable tags)。

这里我不再把各自的定义闯述一遍,还是通过实例可能更好理解。这是我从Main Index 模板中简化出来的一段代码:

<MTEntries>
<h3 class="entry-header"><$MTEntryTitle$></h3>

<$MTEntryBody$>

<MTEntryIfExtended>
<p class="entry-more-link">
<a href="<$MTEntryPermalink$>#more">Continue reading "<$MTEntryTitle$>" &raquo;</a>
</p>
</MTEntryIfExtended>

<p>Posted by <$MTEntryAuthor$> at <$MTEntryDate format="%X"$></p>
</MTEntries>

1 - 第一行的 <MTEntries> 和最后一行的 </MTEntries> 就是一对容器标签。类似于HTML/XHTML中的标签一样,必须成对出现,一个开头一个结尾。所有这篇文章的相关的内容都被包含在这对标签里面了。象<div> 和 </div>一样。

2 - 第二行H3,是文章的标题,用的是 <$MTEntryTitle$>。这是一个变量标签。它的值是变化的,我们可以理解成随着每篇文章标题的不同,它会产生不同的标题。它代表不同的标题的值。我们也看出来,变量标签总被一对"$"包围着,而容器标签就没有这个符号。所以也很容易判断。并且变量标签不是成对的。

3 - 第三行的 <$MTEntryBody$> 是文章的主体部分。也是一个变量标签。大段的文章就被这个标签所代表。

4 - 接下来的 <MTEntryIfExtended> 和 </MTEntryIfExtended> 又是一对条件性质的容器标签。意思是说如果你的文章有延伸部分,那么延伸部分就会体现在页面上并且都会包含在这对标签当中。如果没有延伸部分那在页面上就不会有体现了。

5 - 那么文章的延伸是怎么样的呢?我们看到了延伸部分是以一个链接形式来体现的,是这行:

<a href="<$MTEntryPermalink$>#more">Continue reading "<$MTEntryTitle$>" »</a>

里面的 <$MTEntryPermalink$> 和 <$MTEntryTitle$> 都是变量标签。前者是这篇文章的固定地址,后面加上 "#more" 就是到该文章的延伸部分;后者指的是这篇文章的标题。比方说你的这篇文章的标题是“我的第一篇文章”,那么这行代码在页面上的体现就是:“继续阅读 ‘我的第一篇文章’”。每篇文章的地址和标题都是变化的,他们代表变量的值。

6 - 再下来一行,<$MTEntryAuthor$> 是表示文章作者。因为Movable Type 是多作者的发布系统,所以作者也是变量。而 <$MTEntryDate format="%X"$> 就是时间的变量了。时间的格式你可以根据自己的需要来改变。

上面只是举个例子来简单说明了MT的标签。

更详细的内容可以到官方的标签解说查看。

从上面这个举例中,也可以看到,HTML/XHTML标签和MT的标签是混杂在一起的。但是你在设计或修改MT模板的时候要保持清醒地头脑,尤其要注意容器标签一定要有结尾部分。否则在重建模版的时候系统会报错的,你的设计会无法安装到模版中。

关于MT标签大概就说这么多吧。

[ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ]

在观察过了Movable Type 页面模板中几个大板块的布局情况后,再往下看看这些板块内的细节设计。这应该是很有意思的一个部分。

深入观察Movable Type 页面模板结构

Movable Type的页面模板设计从多方面为用户自定义设计或修改现有设计提供了足够的预留空间或扩展空间。

在第一节浅谈MT模板设计中,我谈到过在MT的页面设计中有很多“div 套 div,class 套 class”的现象,有似乎是多余的感觉。其实并不是这样的。不但不是多余,而是必要。这套模板要提供给1000多万用户同时使用,必然要最大程度在设计上满足自定义的需求,必须要有足够的扩展和自定义的空间。

我们现在先来看 ID (选择器):

你可以到 Main Index 模版中会看的比较清楚。每种类型的 ID 都是一对,而且很相似:

<div id="container">
<div id="container-inner" class="pkg">

<div id="banner">
<div id="banner-inner" class="pkg">

<div id="pagebody">
<div id="pagebody-inner" class="pkg">

<div id="alpha">
<div id="alpha-inner" class="pkg">

<div id="beta">
<div id="beta-inner" class="pkg">

这些 "ID"s 都是每个页面独有的元素,除了在命名方面方便记忆外,在页面样式的设计方面你可以根据自己的设计需要分别对某个或某几个 ID 进行重新定义或不定义。另外一个方面的好处是,你可以很方便的在页面运用一些程序,比如象 java 或者是 ajax,甚至是 greasemonkey 等,来为你的网站带来更有趣或更生动的效果。MT产生出来的页面是纯粹的HTML页面,所以凡是能在HTML上运行的程序都能在MT上运行。

再来看看导航部分的 class (类) 选择器:
在<div id="beta-inner" class="pkg">的下面,你可以找到分别以下面一句开头的段落:

<div class="module-search module">

<div class="module-categories module">

<div class="module-archives module">

<div class="module-syndicate module">

<div class="module-creative-commons module">

<div class="module-powered module">

他们分别代表不同的“模块”,都被包围在<div id="beta-inner" class="pkg">里面了。导航部分就是由这六个“模块”组成的。

看出来他们的相同和不同吗?

拿第一个,就是“搜索”来说,它的结构是这样的:

<div class="module-search module">
<h2 class="module-header">Search</h2>
<div class="module-content">
blah blah blah ......
</div>
</div>

第一行 <div class="module-search module">,这个 class 被 "module-search" 定义着,是它的独特性,同时还被 "module" 定义着,是它与其它“模块”一样的共性。如果你希望把这个模块跟其它的模块区别开来而有其独特的地方,只要到CSS文件中去修改这个独特的就可以了。比方说,你要这个“搜索”部分的背景是红色的,那么你到CSS文件中加上这么一行:
.module-search {background-color: red;}

我只是举个例子。

第一行下面的这个H2,也有个 class 来定义它,就是:"module-header"。我们可以看到,每个“模块”的这个H2都是使用这个定义,所以每个H2在页面上看起来都一样了。如果你要修改导航部分的H2,你只要去修改这个"module-header"就可以了,到CSS文件中找到 .module-header

“模块”中的具体内容就在 <div class="module-content"> 中,而且每个模块都统一使用它。

如果你觉得以上模块不够,还要加进去更多的模块,例如你要加入一个Blogroll的模块,你可以到模版中加上:

<div class="module-blogroll module">
<h2 class="module-header">Blogroll</h2>
<div class="module-content">
blah blah blah ......
</div>
</div>

然后到CSS文件中添加一个 "module-blogroll" 的类及其定义。

或者你觉得这个新添加的 Blogroll 模块所使用的样式是和其他几个模块或某个模块一样的,那你就用那个模块一样的名字来定义。 比方说你新添加的这个模块 Blogroll 是和 Categories 模块一样的样式,那就这样添加:

<div class="module-categories module">
<h2 class="module-header">Blogroll</h2>
<div class="module-content">
blah blah blah ......
</div>
</div>

上面的 "blah blah blah... ..." 是代表具体内容的。为了样式统一,最好使用一致的列表样式,比如:

<ul class="module-list">
<li class="module-list-item"><a href="http://www.example.com">Link Text</a></li>
<li class="module-list-item"><a href="http://www.example.com">Link Text</a></li>
<li class="module-list-item"><a href="http://www.example.com">Link Text</a></li>
</ul>

到样式表中看看 module-list 和 module-list-item 这两个类的定义就知道是怎么回事了。

在做自定义设计的时候,还有一点要注意:在默认模版中,页面中的某些元素因为被设计成一样,所以在CSS文件中你会看到诸如这样的表达:

.entry-footer,
.comment-footer,
.trackback-footer
{
margin: 0 0 20px 0;
border-top: 1px solid #dae0e6;
padding-top: 3px;
color: #666;
font-size: 10px;
text-align: right;
}

这是说 entry-footer, comment-footer 和 trackback-footer 这三个 class (类)都应用以上相同的CSS定义。这是CSS的简写形式。如果你不希望其中的某个元素被定义成那样,那你就把它从上面去掉,再另外对它进行单独的定义。相反,如果你觉得某个其它的元素也要使用这个定义,那你就把它加上去就是。这是属于CSS的范畴了。

综上所述,页面中的每个元素都被定义成不同的 ID 或 class 。你要修改或重新设计,只要到CSS文件中找到相对应的 ID 或 class 对它们进行修改。不成问题吧?

在结束这节之前,最后还提醒一点,就是关于那个CSS文件。

我们看到的这个 Stylesheet ( 即styles-site.css ) 实际上是由两部分组成的:"base-weblog.css" 和 "theme-vicksburg.css"。

前者是默认模版对页面元素的基本定义;而后者是一个叫做 "vicksburg" 的 theme ( 我们通常说的皮肤?)。再换句话说,MT的默认模版采用的样式是一个叫 "vicksburg" 的样式。所以当你修改或设计的时候,尽量不要去动 base-weblog.css 部分,否则页面的显示可能会有问题。如果你安装使用过MT的一个叫做 StyleCatcher 的插件,你可能就知道,不管你采用哪种 theme,都只是更换了后面那个CSS文件,而前面的那个 base-weblog.css 保持不变。

[ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ]

About this Archive

This page is a archive of recent entries written by Yang in July 2006.

Yang: June 2006 is the previous archive.

Yang: August 2006 is the next archive.

Find recent content on the main index or look in the archives to find all content.