835° 2017747字0条评论

Bitcron中的关于页面

几乎每个网站都会有关于页面,地址通常是/about。根据Bitcron的URL匹配规则,在根目录中放入about.jade便可得到/about页面,所以可以利用SmartPage自己构建一个。如果只是简单的文本信息,那么在后台设置Hide Post Prefix URL之后,在根目录中放入about.md也能达到同样效果,也是我最为推荐的方式。

使用about.md不仅简单,还能用Metadata进行自定义。

调用 post.metadata.xxx 即可,比如 post.metadata.title;如果不在系统默认处理的字段外,比如 my_field,也是类同,post.metadata.my_field 即可。

由此,我在主题制作中用到了两个重要的判断,在此做个记录。

文章评论

文章是否开启评论可以直接在后台设置,如果是单篇文章则在meta部分加上comment: no即可。此时若要根据有否开启评论而调整评论样式,可以使用以下判断:

// 如果post.metadata.comment不是no,即:如果开启了评论
if post.metadata.comment not in ['no', 'No', False]
    // 则添加评论区
    #comments
        +post.comments_as_html()

如此一来便可大胆定义#comments的样式而不用怕在没有评论时变得尴尬。

上下篇导航

从以上语句中得到启发,顺手移除了/about页面中的「上一篇」「下一篇」导航。首先在about.md文档中写入status: page,表示状态为页面。同理比如留言簿页面的message.md里也可以如是写。然后在post.jade相应位置写入以下判断:

// 如果post.metadata.status不是page
if post.metadata.status not in ['page', 'Page']
    // 则添加上下篇导航
    #postpager
        if posts.previous_one
            a.pre(href=posts.previous_one.url) 更新
        if posts.next_one
            a.next(href=posts.next_one.url) 更早

只要有以上判断,在任何不想要上下篇导航的文章meta内写上status: page就能达成心愿。

更多拓展

以上都是按照官方提到的post.metadata.my_field进行的自定义,只不过使用了官方的key。同理可以自定义key与value(key: value)来构建特殊的页面。这么一来还能批量定义,比如把文章格式设置为「日志」、「相片」、「一句话」等几种类型,可以用format: diaryformat: photoformat: chat等来区分样式。

参考文章

EOF
1,319°
Bitcron主题「淡泊」
Comments
Write a Comment
点击加载Disqus