秉着将白嫖进行到底的宗旨,决定不再续费 VPS,博客从转移到 Github,使用 Hexo。

第一步:将 Typecho 文章转为 Hexo 文章格式

Hexo 的文章在网站\source\_posts\目录下,Markdown 格式,内容包含了文章标题、发布时间、更新时间、分类、标签、固定连接、文章内容等信息,所以流程就是从 Typecho 数据库中查询出这些数据,拼接成 Hexo 文章的格式,写入.md文件。

查询文章 SQL:

select title,slug,text,created,modified,category,tags from typecho_contents c,(select cid,group_concat(m.name) tags from typecho_metas m,typecho_relationships r where m.mid=r.mid and m.type='tag' group by cid ) t1,(select cid,m.name category from typecho_metas m,typecho_relationships r where m.mid=r.mid and m.type='category') t2 where t1.cid=t2.cid and c.cid=t1.cid

结果入下:
Typecho 数据库

- 阅读剩余部分 -

Bitcron模板中可使用include来引用另一个文件,比如网站侧边栏在首页和分类页都有展示,这里就可以把侧边栏的代码写到单独的模板文件aside.jade中,然后在首页模板index.jade或者分类页模板中直接引用这个文件。

//index.jade
include aside.jade

然而实际上侧边栏有很多部分,在不同页面往往显示的不完全一样,比如首页显示网站信息、分类列表,分类页显示网站信息和最新文章列表。
如果用include来实现的话就得判断当前页是首页还是分类页,或者干脆把网站信息、分类列表、最新文章列表都独立成单个文件?这就更复杂了。。

这个时候就需要用到Bitcron模板中的mixin,mixin相当于自定义函数,我们可以把每个模块独立成函数统一写到mixins.jade文件中,然后在需要的地方用from mixins import来调用。

- 阅读剩余部分 -

整理了些Bitcron模板常用的代码片段,方便使用,不定期更新。

全站相关(site)

网站标题:site.title
网站二级标题:site.sub_title
网站关键词:site.keywords
网站描述:site.description
网站所有标签链接:

for tag_name in site.tags
    a(href="/tag/{{tag_name|urlencode()}}")= tag_name

网站文章数:get_data(return_count=true,with_page=false)
网站分类数:get_data(type='folder', level=[1,2], return_count=true,min_posts_count=1)
网站标签数:site.tags.length

- 阅读剩余部分 -