Meta支持
什么是Meta
Meta(元数据)是对一篇文章属性的额外扩展,在文章正文开始前,进行额外的声明。
除了系统默认会对应的url(一般作为日志的自定义路径)、date、status(文章是否公开)、tags这些属性之外,你也可以按照自己的想法随意自定义Metadata,再配合自己子定义模板对post.metadata
这个属性的调用,来实现各种结构化的界面输出。
一般情况下,Meta是对一篇文章的属性进行扩展,如果是一个文件夹,文件夹内的一个以index
为名的Markdown文件上的metadata,比如index.md
,其Meta会直接存储到文件夹的metadata字段中。
基本语法
yaml 形式
---
date: 2015-01-10 19:55
layout: 'post'
title: 'Blogging Like a Hacker'
tags:
- "hello"
- 'world'
status: 'public'
---
然后这里是文章的开始
如上所示,首行以---
开始,内部使用yaml格式,并最终以---
单独一行结束的,会最终解析为文章的元信息(描述性信息),一般Jekyll、Hexo等静态博客用得比较多。
Bitcron、FarBox 式
另外,Bitcron的Markdown解析,也支持一种更简洁的Meta声明语法,就是首行开始,每行用key: value
格式进行声明的,其中key
必须是英文名。
比如
date: 2015-01-10 19:55
layout: 'post'
title: 'Blogging Like a Hacker'
tags: hello, world
然后这里是正文的开始...
注意事项
- 两种方式只能选择一种,两者无法同时生效。
- key的值必须是英文,并且不能以数字开头
- key的文字之间不能使用运算符号,比如
+-x/
,post-x: value
这种写法是错误的,正确的是post_x: value
- key不区分大小写,
KEY
与key
的效果是一样的
Metadata 的字段说明
以下key是Bitcron系统会特殊对应的属性:
title
自定义日志的标题
tag
日志的标签,使用英文状态下的 ,
区隔,如果不存在 ,
,则以空格为区隔自动提取。
date
日志的发布时间, 类似2016-12-19 01:22:44
url
可以用来自定义日志的URL
status
默认为public
,也是默认显示在网站中的日志类型。
它的value可以是任意值,但不能超过20个字符长。
toc
这个看具体的场景,有些模板呈现的时候,会读取这个属性,true or false
,针对这个设定不同,来显示或者不显示TOC(内容索引)。
app
申明当前 Markdown 文档使用什么类型的 App 进行渲染,从而当其被访问的时候,会由指定的 App 进行渲染。
目前支持两种类型: markdown
, page
.
text / html
如果设置为 true
的时候,则网站直接访问 Markdown 的文件路径是存在的,进行内容返回(未设置的话,默认一般会触发404以保护原始的文档)。如果 html
设定了,则不会返回原始平文本,而是渲染后的 HTML。
接受值: true/false
as_template
是否作为模板。
如果可作为模板,那么通过URL 的 GET 方式传递的参数,会替换掉 Markdown 文档最终 HTML 内容中{{ key }}
的内容。比如http://yourdomain.com/post/my.md?title=hello
, 会将 {{ title }}
替换为 hello
。
此外,如果文档中的代码块声明的语言类型为code
,那么在该代码块内可以直接调用模板语法。
接受值: true/false
position
这个字段,可以作为排序的依据,要配合d.get_data
这类的函数使用,并声明sort='position'
。
除了在metada中对position进行支持之外,文档的原文件名也会为position提供支持,比如1.2 my article.txt
或者1.3 my other tiltes
, 分别获得的position为1.2
1.3
,其中(空格符)用以分割position与正常的标题。
nav
一般是一个 list 形式,每个 item 是title: url
的形式。
根据不同场合用户不一,多数时候,是构建当前页面的导航栏。
nav:
- title: url
- title2: url2