全站 Site

标题:site.title,示例:

a(href="/")= site.title

副标题:site.sub_title,示例:

if site.sub_title
	h2.site-description= site.sub_title]

关键词:site.keywords 描述:site.description

站点头像:site.avatar 背景:site.background_image,示例:

header#header(style="background-image:url({{site.background_image}})")

当下年份:site.now.year

文章 post

标题:post.title 发表时间:post.date 分类:a(href=post.category.url)= post.category.title

文章标签:

if post.tags
	for tag in post.tags
		a(href="/tag/{{tag}}")= tag

文章摘要:+post.content.opening 显示文章 <!--more--> 前的内容 全文内容:post.content 结合以上两者,首页 index 完美输出内容:

if post.content.opening
    .post-content= post.content.opening
    a(href=post.url).more-link= '阅读全文 »'
else
    .post-content= post.content
    a(href=post.url+'#comments').more-link= '发表评论 »'

以上判断:如果有设置more标签,则显示部分和“阅读全文”链接,若无则全文显示并显示“发表评论”链接。limit函数遇到图片、表格代码,截取出的内容显示一塌糊涂。。。

上一篇文章链接:a(href=posts.previous_one.url)= posts.previous_one.title 下一篇文章链接:a(href=posts.next_one.url)= posts.next_one.title

计数统计

阅读次数:post.visits or 0 主评论数:post.comments.length 总评论数:post.comments_count,包括回复的评论

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

单篇文章字数: span= '%s字' %post.text_words 全站总字数: span= '总共写了%s字' %site.text_words 字数格式化:span= '{0:,}'.format(site.text_words) + '字'

H & HTML

头部属性:+h.headers 等效于 h.mobile_metas + h.seo() 载入资源:+h.load("") 中间可用逗号连接 载入默认md样式:+h.load('markdown')

载入云字体:

+font("wxihei")
	a(href='/')= site.title

返回头部:+h.back_to_top(label="△")

载入搜索功能:+posts.search_in_html(base_url="/result") ,需与 result.jade 相配合。以下自定义 placeholder +posts.search_in_html(placeholder='搜索')

导航代码:+site.just_nav 社交代码:+site.just_socials 文章分页导航:+h.paginator()

文章缩略图:

if post.cover
	a.post_cover(href=post.url)
		img(src=post.cover.resize(200, 200, fixed=True))

TAB 切换功能:

+tab(['归档', '分类'], active=1)
		#tab
		#tab

网站所有标签链接:

if site.tags: .tags
	.name
		h2= '标签'
			span= '(%s)'%site.tags.length
	ul.list: for tag_name, tag_count in site.tags: li
    	a(href='/tag/{{tag_name}}')= tag_name
    	span= '(%s)'%tag_count

网站所有分类链接:

if posts.categories: .categories
				.name
					h2= '分类'
						span= '(%s)'%(d.get_data(types='folder', return_count=true, level=1, min_posts_count=1, render=true))
				ul.list: for category in posts.categories: li
					a(href=category.url)= category.title
					span= '(%s)'%category.posts_count

request.path 相关说明

假设 http://www.example.com/page.html?x=y 被访问,则 request 有以下几个属性:

变量名|值
path|/page.html
base_url|http://www.example.com/page.html
url|http://www.example.com/page.html?x=y
url_root|http://www.example.com/
request.url_without_host|/page.html?x=y

分页导航

if paginator.has_previous or paginator.has_next:nav
    if paginator.has_previous
        a(href=paginator.previous_page_url) 上一页
    for page in range(1, paginator.total_pages+1)
        if page == paginator.page
            span= page
        else 
            a(href="/page/{{page}}")= page
    if paginator.has_next
        a(href=paginator.next_page_url) 下一页

生成效果(当前页为第二页)

<nav>
    <a href="/page/1">上一页</a>
    <a href="/page/1">1</a>
    <span>2</span>
    <a href="/page/3">3</a>
    <a href="/page/3">下一页</a>
</nav>

浏览器判断

仅在 Safari 系列浏览器中生效的样式

+browser('safari')
    style(type="text/css")
        .homepage_body{ margin-left: 13px; }

感谢

https://sxlf.org/post/bitcron-template-code.html

https://blog.shuiba.co/bitcron-count-code