一般情况下,Post 对象 会拥有下述这些属性,但是 FarBox 的基础存储是完全开放的,如果你使用了特殊的方式,直接往 Bucket 里存入了一个
post
类型的 record,那么,以上的属性将完全由你自己的 record 决定。
文章的名称
文章的URL地址,默认类似/post/xxxx
,如果网站设置中设定无前缀,则会是/xxxx
的形式
接近url,但是没有前缀,比如 post.url
为 /post/xxxx
的时候,对应的 url_path 为 xxxx
当前文章的状态,默认为public
,可以自定义,由用户书写当前文章的Metadata中的status
这个key决定
当前文章的TOC内容(各层级标题的索引),HTML结构的源码,数据格式为字符串
等同post.metadata.tags
,视为文档的标签,类型为list
日志的发布时间,数据类型为 Date
已经(由Markdown)编译为HTML格式的内容, 数据类型为 Text
文章的原始内容,Markdown未编译
日志的封面,如果metadata.cover
不存在,则默认提取文章内的第一张图片作为封面;如果都不存在,则是一个空值
字符长度, 但不同于 utf8 编码, 这是 unicode 编码的计数,一个中文字或者一个字母,都计数为 1
字数长度, 英文的单词计数为1, 中日韩文一个字计数为1 (误差率 2% 左右)
从文章中提取出来的图片 URL (list 类型)
访问页面数 (PV),这是系统构造属性,不是 post 对象直接拥有的,并且会随着 post 详细页的访问而增加
访问人数 (UV),同 visits 也是系统构造属性
用户对该文档声明的元数据。
---
date: 2015-01-10 19:55
layout: 'post'
title: 'Blogging Like a Hacker'
tags:
- "hello"
- 'world'
status: 'public'
---
然后这里是文章的开始
如上所示,首行以---
开始,内部使用yaml格式,并最终以---
单独一行结束的,会最终解析为文章的元信息(描述性信息),一般Jekyll、Hexo等静态博客用得比较多。
另外,Bitcron的Markdown解析,也支持一种更简洁的Meta声明语法,就是首行开始,每行用key: value
格式进行声明的,其中key
必须是英文名。
比如
date: 2015-01-10 19:55
layout: 'post'
title: 'Blogging Like a Hacker'
tags: hello, world
然后这里是正文的开始...
+-x/
,post-x: value
这种写法是错误的,正确的是post\_x: value
KEY
与key
的效果是一样的
如果有定义title,则会覆盖写入至对应的{{post.title}}
字段。
如果没有定义title,则会自动取文件名作为日志的标题; 如果文章中有、且仅有一个H1的一级标题,则会以之作为title。
日志的发布时间,如果没有声明,我们会按照以下的规则获取文章的发表时间:
2012-12-12 Title.txt
这样的文件名,我们会取出前面符合日期规则的字符作为发表时间;
可以用来自定义日志的URL
它会写入到 {{post.url_path}}
这个字段中去。
默认为public
,也是默认显示在网站中的日志类型。
它的value可以是任意值,但不能超过20个字符长。
一篇日志如果使用多级标题(H1、H2、H3 .etc),那么'post.toc'这个属性则对应多级标题的索引,即Table of Contents。
单篇文章的toc
配置信息, 优先级高于站点上的配置。
接受值: true/false