创作
文章和页面
Pelican 把 "articles" 当作成一系列按时间排序的内容(比如博客之中的日志),因此按照时间来管理这些内容。
"pages" 的概念来源于那些自然中不会经常发生变化的内容。(比如“关于”,“取得联系”页面)
你可以从仓库 samples/content/
获取一些样例。
文章元信息
Pelican 尝试智能地从文件系统中获取它所需要的信息(比如文章分类),但是你必须在文件中按照表格的形式提供一些信息。
如果你正在使用 reStructuredText 格式创作你的内容,你可以在文章的开篇,通过下面的格式来提供这些元信息(假设文件扩展名是 .rst
):
作者和标签列表可以通过分号来分隔开,像下面这样:
Pelican 实现了一个 reStructuredText 扩展来支持 addr
HTML 标签。使用它,你需要在你的日志中这样写:
你还可以使用 Markdown 语法(文件名以 .md
,markdown
,mkd
,mdown
等扩展名结束)。 Markdown 生成器需要你首先安装 Markdown
包(通过命令 pip install Markdown
)。
Pelican 还支持 Markdown 扩展
,这个包需要单独的安装,因为他们没有包含在默认的 Markdown
包中,并且可以通过 Markdown
设置来配置和导入。
Markdown 的元信息格式如下所示:
你还可以定义自己的元信息标签(只要他们和保留的标签不冲突),并在 Python 模版中使用。下面这些元信息关键字被保留了:
Title
Tags
Date
Modified
Status
Category
Author
Authors
Slug
Summary
Template
Save_as
Url
额外的格式的阅读器(比如 AsciiDoc )可以通过插件提供支持。可以通过 pelican-plugins
插件寻求支持。
Pelican 还可以驱动 HTML 文件(以 .html
和 .htm
结尾)。Pelican 解释器将以一种非常生硬的办法解析 HTML 文件,从 meta
标签中获取元信息,从 title
标签中获取标题,并把 body
看作文章的内容:
HTML 文件中,有一个小小的例外: tags 可以通过 tag
标签来指明,也可以像标准 HTML 一样使用 keywords
来标记。这两种方法都可以交替使用。
注意,除了标题之外,没有一个文章元信息是必须的:如果日期没有被指明,并且 DEFAULT_DATE
被设置为 'fs'
那么 Pelican 将会通过文件的最近修改时间戳来定义;分类将会通过文件在那一个目录之中被指定。比如,一个文件的位置在 python/foobar/myfoobar.rst
那么将会有一个 foobar
的分类。如果你想通过其他方式来组织你的文件,比如子文件夹的名字不适合作为一个好的分类名的时候,你可以把设置中 USE_FOLDER_AS_CATEGORY
设置成 False
。当你解析时间信息的时候, Pelican 支持 W3C 的 seggested subset ISO 8601 。
注意
当更改设置的时候,缓存可能会产生影响,并使得更改不可见。在这种情形下,通过
LOAD_CONTENT_CACHE = False
来取消缓存,或者使用--ignore-chche
命令标签。
modified
标签是你最后一次上传文章的时间,如果不显式的指明,默认值是 date
。 此外,你还可以在模版中显示modified
,当你在修改文章之后设置 Modified
为当前时间,feed 渲染器将会自动的更改 feed 参数。
author
参数是一个逗号分割的作者列表。如果除了你之外还有别的作者,你可以使用这个标签。
如果你不想显式的指明 summary 元信息,SUMMARY_MAX_LENGTH
可以用来设置成为指定文章开头多少个字作为总结。
你还可以从文件名中取出任何一个元信息,通过 FILENAME_METADATA
设置的标准表达式。所有匹配的命名组都可以被设为元信息对象。这个变量的默认值将只尝试从文件名中获取时间信息。比如如果你想要同文件名中抽取时间和 slug 信息,你可以设置成:'(?P<date>\d{4}-\d{2}-\d{2})_(?P<slug>.*)'
。
请注意文件中的元信息的优先级高于文件名中抽取出来的元信息。
页面
如果在当前文件夹中创建一个文件夹叫做 pages
,其中所有的文件都被用作生成静态文件,比如 关于 或者 取得联系 页面。(请看下面的文件系统布局)。
你还可以使用变量 DISPLAY_PAGES_ON_MENU
来控制时候这些页面时候在导航栏中显示。(默认值是 True
)。
如果想要放置任何一个页面被链接和罗列在菜单之中,请在元信息中添加 status:hidden
属性。这对于生成适合主题的错误页面之类的页面非常有用。
Last updated