打造simple, seo friendly的lifetype模板(1)
"lifetype模板"不多,对搜索引擎也不算很友好,没有办法之下,只好自己来定制一个了.
lifetype模板设计思路:
1. 分上中下三栏
2. 中栏左边是主体,显示文章,右边显示目录等其他内容
为什么要这样设计?
从搜索引擎来说,是从左向右读的,重要内容应该放在左边。当然,通过布局,视觉上导航目录放在左边,但可以搜索引擎先读取右边内容。
从人的阅读来说,导航目录变化较小,放在右边比较合理。
也有很多人把中栏分成左中右三列。 http://www.chinese-blog.org 决定采用两列,很多采用三列的网站感觉比较乱。
我们这里借鉴 Movable Type的模板设计, 不愧是商业公司, movable type的模板设计大方,简洁,对搜索引擎友好。
把lifetype文件包里的templates/standard/目录复制到 http://www.chinese-blog.org 网站的本地目录,重命名为SEOGreen
打开一个movable type主页, 把源代码保存到Dreamweaver里。奇怪的是右键方式得到页面源代码,文章标题跑到页面的最上部去了。于是在写了一个程序,用httpget的方式得到页面源代码就正常了。
movable type页面结构
movable type页面结构很清晰,body节点内全部套以div。id=alpha的div就是中栏左边,beta就是中栏右边
container, container-inner, header
, header-inner,
, header-content
content
, content-inner
, alpha
, alpha-inner
, entry-1
, asset-header
, asset-content
, asset-footer
, entry-2 ...
, content-nav
, beta
, beta-inner
, widget-search
, wiget-about-this-page
footer
, footer-inner
,footer-content
lifetype页面结构
下面以lifetype默认模板为例来看一下lifetype的页面结构:
Container
Title,
Subtitle,
Subcontainer
, Content
, h2 first article title
, div first article content,
, footer
, Menu
, h2 选单
,div Sections
, h2 站内搜索
, div Search
, h2 近期文章
, div Recently
...
Bottommenu
Bottom
可见
"lifetype"的Title,Subtitle == "movable type"的header
"lifetype"的Subcontainer == "movable type"的content
"lifetype"的Content == "movable type"的alpha
"lifetype"的Menu == "movable type"的beta
"lifetype"的Bottommenu和bottom == "movable type"的footer
而movable type的页面结构更加清晰
"lifetype" header.template的修改
lifetype header模板结束于"Content"头, 相当于"Movable type"的"alpha-inner"头。
把"movable type"页面中从body节点到id="alpha-inner"的代码复制到"lifetype"的header.template
原header模板html的title是blog标题跟文章标题,正确的应该是把文章标题放到最前面
由<title>{$pageTitle|escape:"html"}</title>
改为:
<title>{if !empty($post)} {$post->getTopic()} {elseif !empty($category)} {$category->getName()} {else} {$pageTitle|escape:"html"} {/if}</title>
"lifetype" main.template模板的修改
lifetype 默认模板的内容是Content的节点的innerHTML, 相当于"movable type"的alpha-inner的innerHTML.
分两种情况,一是“目录”的页面,二是首页。
在目录页面,我们把页面顶部目录名改到前面,把加上em以示区别
default: {if $category}<h2>{$locale->tr("category")}: {$category->getName()}</h2>{/if}
改成:{if $category}<h1 id="page-title" class="archive-title"><em>{$category->getName()}</em> {$locale->tr("category")}</h2>{/if}
如果是首页,文章列表的内容要到post.template里修改。
"lifetype" post.template的修改
post.template是单篇文章的模板。模板结束处是/id="footer"
使文章标题可点击,方便直接阅读全文。
把文章网址显示在文章前面,方便复制网址。
把作者,发表日期等非重要信息移到文章后面。
"lifetype" footer.template的修改
foot模板包括了侧边栏和底框
对"lifetype 模板"来说,是Content节点的结束。对movable type来说,是alpha-inner, alpha节点的结束。
还有其余的html节点全部在这里。
去掉月历,这个东西除了浪费空间,没有一点用处。
值得注意,w3c的标准来说,搜索的form里不能直接套input, 会通不过校验。暂时的解决办法就是不去校验
这只是初步"lifetype模板"的修改,效果可以看这里:
http://lifetype.chinese-blog.org/
接下来我们要进一步修改完善这个简洁,搜索引擎友好的"lifetype模板".
"lifetype模板"参考资料
http://wiki.lifetype.net/index.php/Template_Development
http://163.17.156.130/moodle/mod/book/view.php?id=1818&chapterid=520
http://wiki.lifetype.org.tw/index.php?title=Edit_Templates
Jan 29, 2008

Elegant!
National Blography | 05/07/2008, 07:44
I'm gonna tweak it on blog.cn.com Thanks~