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

- 阅读剩余部分 -

虽然并没有技术可言,就当自己做个笔记吧,搞博客这么多年,前前后后也换了好多平台,模板也自己折腾了一些,并没有留下什么,实在惭愧啊。

所谓的标签云就是一堆标签链接,可能在一起看起来像一坨云?Bitcron 提供了获取网站所有标签的方法site.tags,然后在遍历生成链接就可以咯。

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

这里用urlencode()编码了一下tag_name,因为如果出现’C#’这种标签的话,不编码会链接到’C’标签。

为了体现标签下的文章多少,可以通过tag_count来设置链接字体的大小,玩得转的还可以设置颜色啊字体粗细什么的。

for tag_name, tag_count in site.tags
    a(href="/tag/{{tag_name|urlencode()}}",style="font-size: {{tag_count*1.5+12 }}px;")= tag_name

最后效果大概就是这样!
tags-cloud