注意此項目目前不受歡迎,它被基於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之前已調用以前的插件方法。