Catatan Proyek ini saat ini tidak terawat, digantikan oleh aplikasi berbasis Golang yang memiliki paritas fitur lengkap:
Chronicle adalah alat yang akan mengonversi direktori file teks sederhana menjadi weblog html statis, (atau blog jika Anda lebih suka).
Repositori ini berisi penulisan ulang dari Compiler Blog Statis Chronicle, yang mewakili peningkatan yang signifikan dalam hal kecepatan dan fleksibilitas.
Sistem ini sengaja sederhana, tetapi mendukung:
Implementasi ini secara signifikan lebih cepat pada pembuatan halaman daripada rilis sebelumnya, terutama karena posting diuraikan dan dimasukkan ke dalam database SQLite, daripada memiliki setiap posting dibaca ke RAM.
Setelah posting blog telah diisi dalam database SQLite, mereka dimasukkan ke dalam serangkaian templat, yang pada akhirnya menghasilkan output.
Meskipun kami menganggap Anda menyimpan database SQLite di sekitarnya, tidak masalah jika Anda menghapusnya. Tindakan parsing semua entri Anda masih merupakan proses yang sangat cepat.
Klon Repositori kemudian instal seperti halnya modul CPAN:
perl Makefile.PL
make test
su - make install
Format blog sangat sederhana, dan file berikut adalah sampel:
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.
Entri diawali dengan header kecil, yang terdiri dari beberapa bidang pseudo-header. Header harus dipisahkan dari tubuh dengan setidaknya satu garis kosong.
Nilai header yang tidak diketahui diabaikan, dan tidak ada bagian dari header yang termasuk dalam output yang dihasilkan.
Nilai header berikut diakui:
Header tambahan dapat dimasukkan, yang akan diabaikan secara default, untuk akses oleh plugin tertentu. Misalnya The Chronicle::Plugin::SkipDrafts Plugin akan memastikan bahwa entri blog diabaikan jika masih draft - dan termasuk draft:1 header. Demikian pula ada plugin yang disebut PostSpooler yang akan mengabaikan posting sampai data mereka, dan itu menggunakan header publish khusus - daripada date default.
Dengan asumsi Anda memiliki direktori yang berisi sejumlah posting blog, Anda harus dapat menghasilkan blog Anda seperti itu:
chronicle --input=path/to/input --output=/path/to/output
--theme=blog.steve.org.uk
Ini akan membaca path/to/input/*.txt dan menghasilkan blog di bawah direktori /path/to/output/ membuat direktori itu jika hilang.
Database SQLite akan dibuat di ./blog.db secara default, dan jika dihapus itu akan diregenerasi.
Contoh sebelumnya menunjukkan penggunaan dasar, satu perubahan yang jelas sebagian besar pengguna lebih suka adalah mengatur judul blog, dan subtitle:
chronicle --title="Steve Kemp's Blog" --sub-title="Writings about cake" ..
Jika Anda mulai mengatur beberapa nilai, Anda mungkin lebih suka menggunakan file konfigurasi sebagai gantinya. Chronicle akan membaca /etc/chronicle/config , dan ~/.chronicle/config sebelum memulai. Gagal Anda dapat menentukan file konfigurasi Anda sendiri melalui --config=/path/to/conf .
File konfigurasi cocok dengan argumen baris perintah dengan tepat, jadi diberikan "--foo = bar" File konfigurasi akan memungkinkan hal yang sama diatur melalui:
foo = bar
Seperti yang sebelumnya telah kami perhatikan, generasi blog sebagian besar terjadi melalui serangkaian plugin. Misalnya bilah samping mungkin menampilkan daftar semua tag, yang bisa menjadi sulit dengan cepat. Jika Anda ingin menonaktifkan bahwa Anda bisa melakukannya melalui:
chronicle --exclude-plugins=AllTags,RecentPosts --force ..
Catatan : Plugin yang menghasilkan halaman output terletak di bawah
Chronicle::Plugin::Generateruang nama. Plugin yang menghasilkan cuplikan yang tersedia untuk semua halaman terletak di bawahChronicle::Plugin::Snippetsnama-ruang.
Catatan : Karena cuplikan disertakan dalam setiap halaman, dalam tema default, kami telah menambahkan
--forceuntuk memastikan bahwa halaman output diperbarui.
Dalam cita -cita Anda, Anda harus dapat bermigrasi dari pelepasan Chronicle sebelumnya secara langsung ke basis kode ini, karena tujuan dan operasi utama identik:
data/ , kecuali Anda menentukan jalur yang berbeda melalui " --input ".*.txt adalah entri blog, kecuali Anda menentukan " --pattern=*.blog ".Namun ada perubahan, dan ini sebagian besar berhubungan dengan templat, bersama dengan perbedaan implementasi.
Pada Chronicle 5, skrip utama mem-parsing setiap argumen baris perintah, dan membaca posting blog, tetapi generasi sebenarnya dari situs Anda sepenuhnya berbasis plugin. Plugin adalah modul Perl standar yang terletak di bawah ruang nama Chronicle::Plugin , dan meskipun Anda tidak perlu mengetahui detail apa pun yang dapat dipesan berkat penggunaan modul :: pluggable :: kelas yang dipesan.
Perubahan template sedikit lebih signifikan dari yang saya inginkan, tetapi dengan senang hati perubahan ini sebagian besar terdiri dari lokasi baru untuk hal -hal, dan halaman tambahan.
Seperti yang disebutkan kode inti cukup minim dan semua fungsionalitas output dilakukan oleh plugin.
Inti akan memanggil metode berikut jika ada di plugin:
on_db_createon_db_openon_inserton_initiateon_generateon_initiate kecuali bahwa metode plugin sebelumnya dijamin telah dipanggil sebelum on_generate dipanggil.