このプロジェクトは現在維持されていませんが、完全な機能特性を持つGolangベースのアプリケーションに置き換えられました。
Chronicleは、単純なテキストファイルのディレクトリを静的HTMLウェブログ(またはブログ)に変換するツールです。
このリポジトリには、Chronicle Static BlogコンパイラのSCRATCH FROM SCRATCの書き換えが含まれています。
システムは意図的に単純ですが、サポートしています。
この実装は、主に各投稿をRAMに読み取るのではなく、SQLiteデータベースに挿入されて挿入されているため、以前のリリースよりもページ生成で大幅に速くなります。
ブログの投稿が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.
エントリは、いくつかの擬似ヘッダーフィールドで構成される小さなヘッダーが付いています。ヘッダーは、少なくとも1つの空のラインで体から分離する必要があります。
未知のヘッダー値は無視され、生成される出力にヘッダーの一部は含まれていません。
次のヘッダー値が認識されます。
特定のプラグインによるアクセスのために、デフォルトでは無視される追加のヘッダーが挿入される場合があります。たとえば、 Chronicle::Plugin::SkipDraftsプラグインは、ブログエントリがまだドラフトである場合、 draft:1を含めている場合、ブログエントリが無視されることを保証します。同様に、 PostSpoolerと呼ばれるプラグインがあります。これは、期限のデータまで投稿を無視し、デフォルトのdateではなく特別なpublishヘッダーを使用します。
多くのブログ投稿を含むディレクトリがあると仮定すると、あなたはあなたのブログを生成できるはずです:
chronicle --input=path/to/input --output=/path/to/output
--theme=blog.steve.org.uk
これによりpath/to/input/*.txtを読み取り、ディレクトリの下にブログを生成します/path/to/output/作成が欠落している場合はそのディレクトリを作成します。
sqliteデータベースはデフォルトで./blog.dbで作成され、削除された場合は再生されます。
前の例は、基本的な使用法を示しました。ほとんどのユーザーが好む明らかな変更の1つは、ブログのタイトルと字幕を設定することです。
chronicle --title="Steve Kemp's Blog" --sub-title="Writings about cake" ..
複数の値の設定を開始すると、代わりに構成ファイルを使用することをお勧めします。 Chronicleは、開始前に/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/から読み取られます。--pattern=*.blog 」を指定しない限り、 *.txtはブログエントリであると想定しています。ただし、変更があり、これらは主にテンプレートに関連しており、実装の違いがあります。
Chronicle 5の時点で、メインスクリプトはコマンドライン引数を解析し、ブログの投稿を読み取りますが、サイトの実際の生成は完全にプラグインベースです。プラグインはChronicle::Plugin名空間の下にある標準のPERLモジュールであり、モジュール:: Pluggable :: Orderedクラスの使用のおかげで注文できる詳細を知る必要はありませんが。
テンプレートの変更は私が望むよりも少し重要ですが、幸いなことに、これらの変更は主に物事の新しい場所と追加ページで構成されています。
前述のように、コアコードは非常に最小限であり、すべての出力機能はプラグインによって実行されます。
コアは、プラグインに存在する場合、次の方法を呼び出します。
on_db_createon_db_openon_inserton_initiateon_generateon_generateが呼び出される前に、以前のプラグインメソッドが呼び出されたことが保証されていることを除いて、この方法とon_initiateの間に論理的な違いはありません。