注意此项目目前不受欢迎,它被基于Golang的应用程序所取代,该应用程序具有完整的功能 - 标准:
Chronicle是一种工具,它将将简单文本文件的目录转换为静态HTML Weblog(或Blog)。
该存储库包含编年史静态博客编译器的响应重写,该编译器代表了速度和灵活性的重大升级。
该系统故意简单,但确实支持:
页面生成时的实现速度要比以前的发行版要快得多,这主要是因为帖子被解析并插入SQLite数据库,而不是让每个帖子读入RAM。
在SQLite数据库中填充博客文章后,它们就会插入一系列模板中,这些模板最终会生成输出。
尽管我们假设您将SQLite数据库保留在周围并不重要。解析所有条目的行为仍然是一个非常快速的过程。
克隆存储库,然后按照任何CPAN模块安装:
perl Makefile.PL
make test
su - make install
博客格式非常简单,以下文件是一个示例:
title: The title of my post
date: 12 August 2007
tags: foo, bar, baz
The text of the actual entry goes here.
However much there is of it.
该条目由一个小标头前缀,由几个伪标头组成。必须将标头与身体分开至少一条空线。
未知的标头值被忽略,并且在生成的输出中不包含标头的部分。
确认以下标头值:
可以插入其他标头,默认情况下将忽略特定插件的访问。例如, Chronicle::Plugin::SkipDrafts插件将确保博客条目仍然是草稿,并包括draft:1标题。同样,还有一个名为PostSpooler的插件,它将忽略帖子直到其适当数据,并且使用特殊publish标题 - 而不是默认date 。
假设您有一个包含许多博客文章的目录,您应该能够像这样生成博客:
chronicle --input=path/to/input --output=/path/to/output
--theme=blog.steve.org.uk
这将读取path/to/input/*.txt ,并在目录/path/to/output/创建该目录的下方生成博客,如果丢失了。
默认情况下,将在./blog.db上创建SQLite数据库,如果将其删除,则将重新生成。
上一个示例显示了基本用法,大多数用户更喜欢的一个明显的更改是设置博客标题,字幕:
chronicle --title="Steve Kemp's Blog" --sub-title="Writings about cake" ..
如果您开始设置多个值,则可能更喜欢使用配置文件。编年史将在开始之前读取/etc/chronicle/config ,以及~/.chronicle/config 。您可以通过--config=/path/to/conf指定自己的配置文件。
配置文件完全匹配命令行参数,因此给定“ -foo = bar”配置文件将允许通过:
foo = bar
正如我们之前指出的那样,博客生成很大程度上是通过一系列插件发生的。例如,侧边栏可能会显示所有标签的列表,这些标签可能会很快变得笨拙。如果您希望禁用可以通过:
chronicle --exclude-plugins=AllTags,RecentPosts --force ..
注意:生成输出页面的插件位于
Chronicle::Plugin::Generate名称空间下方。所有页面可用的摘要的插件都位于Chronicle::Plugin::Snippets名称空间下方。
注意:由于摘要包含在每个页面中,因此在默认主题中,我们添加了
--force,以确保更新输出页面。
理想情况下,您应该能够直接从以前的编年史迁移到本代码库,因为目的和主要操作是相同的:
--input ”指定了不同的路径,否则博客条目仍是从data/读取的。*.txt是博客条目,除非您指定“ --pattern=*.blog ”。但是,有变化,这些都与模板以及实施差异有关。
从编年史5开始,主脚本会解析任何命令行参数,并读取博客文章,但是您的网站的实际生成完全基于插件。这些插件是位于Chronicle::Plugin空间下方的标准PERL模块,尽管您不需要了解任何细节,但由于使用Module :: Pluggable ::订购的课程,因此可以订购它们。
模板更改比我想要的要重要一些,但是这些更改很大程度上包括事物的新位置和其他页面。
如前所述,核心代码非常小,所有输出功能均由插件执行。
如果插件中存在,则核心将调用以下方法:
on_db_createon_db_openon_inserton_initiateon_generateon_initiate之间没有逻辑上的差异,只是保证在调用on_generate之前已调用以前的插件方法。