Nota Atualmente, este projeto não é mantido, foi substituído por um aplicativo baseado em Golang, que possui paridade completa de recursos:
O Chronicle é uma ferramenta que converterá um diretório de arquivos de texto simples em um blog estático HTML (ou blog, se você preferir).
Este repositório contém uma reescrita do rastreamento do compilador de blogs estática do Chronicle, que representa uma atualização significativa em termos de velocidade e flexibilidade.
O sistema é intencionalmente simples, mas suporta:
Essa implementação é significativamente mais rápida na geração de páginas do que as versões anteriores, principalmente porque as postagens são analisadas e inseridas em um banco de dados SQLite, em vez de ler cada postagem na RAM.
Depois que as postagens do blog foram preenchidas no banco de dados SQLite, elas são inseridas em uma série de modelos, o que gera a saída.
Embora assummos que você mantenha o banco de dados SQLite, não importa se você o excluir. O ato de analisar todas as suas entradas ainda é um processo muito rápido.
Clone o repositório e instale como faria com qualquer módulo CPAN:
perl Makefile.PL
make test
su - make install
O formato do blog é muito simples e o arquivo a seguir é uma amostra:
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.
A entrada é prefixada por um cabeçalho pequeno, composto por vários campos de pseudo-cabeçalho. O cabeçalho deve ser separado do corpo por pelo menos uma linha vazia.
Os valores do cabeçalho que são desconhecidos são ignorados e nenhuma parte do cabeçalho é incluída na saída que é gerada.
Os seguintes valores do cabeçalho são reconhecidos:
Cabeçalhos adicionais podem ser inseridos, que serão ignorados por padrão, para acesso por plugins específicos. Por exemplo, o plugin Chronicle::Plugin::SkipDrafts garantirá que as entradas do blog sejam ignoradas se ainda forem rascunhos - e incluam um draft:1 cabeçalho. Da mesma forma, existe um plug -in chamado PostSpooler , que ignorará as postagens até os dados devido e que usa o cabeçalho publish especial - em vez da date padrão.
Supondo que você tenha um diretório contendo várias postagens do blog, você poderá gerar seu blog como:
chronicle --input=path/to/input --output=/path/to/output
--theme=blog.steve.org.uk
Isso lerá path/to/input/*.txt e gerará o blog abaixo do diretório /path/to/output/ criando esse diretório, se estiver ausente.
O banco de dados SQLite será criado em ./blog.db por padrão e, se for excluído, será regenerado.
O exemplo anterior mostrou o uso básico, uma mudança óbvia que a maioria dos usuários prefere seria definir o título do blog e a legenda:
chronicle --title="Steve Kemp's Blog" --sub-title="Writings about cake" ..
Se você começar a definir vários valores, poderá preferir usar um arquivo de configuração. Chronicle lerá /etc/chronicle/config e ~/.chronicle/config antes de iniciar. Falhando que você pode especificar um arquivo de configuração próprio via --config=/path/to/conf .
O arquivo de configuração corresponde exatamente aos argumentos da linha de comando, então, dado "--OO = Bar", o arquivo de configuração permitiria que a mesma coisa fosse definida via:
foo = bar
Como observamos anteriormente, a geração do blog ocorre amplamente através de uma série de plugins. Por exemplo, a barra lateral pode mostrar a lista de todas as tags, que podem ficar difíceis rapidamente. Se você desejou desativar que poderia fazê -lo via:
chronicle --exclude-plugins=AllTags,RecentPosts --force ..
NOTA : Os plug-ins que geram páginas de saída estão localizados abaixo do
Chronicle::Plugin::GenerateSpace Name. Os plugins que geram trechos disponíveis para todas as páginas estão localizados abaixo do espaço de nomeChronicle::Plugin::Snippets.
Nota : Como os trechos estão incluídos em todas as páginas, nos temas padrão, adicionamos
--forcepara garantir que as páginas de saída sejam atualizadas.
Em um ideal, você poderá migrar de lançamentos anteriores do Chronicle diretamente para esta base de código, pois a finalidade e a operação principal são idênticas:
data/ , a menos que você especifique um caminho diferente via " --input ".*.txt são as entradas do blog, a menos que você especifique " --pattern=*.blog ".No entanto, existem mudanças, e elas se relacionam amplamente aos modelos, juntamente com as diferenças de implementação.
A partir do Chronicle 5, o script principal analisa qualquer argumento da linha de comando e lê as postagens do blog, mas a geração real do seu site é totalmente baseada em plug-in. Os plug-ins são módulos Perl padrão localizados abaixo da Chronicle::Plugin Space e, embora você não precise conhecer nenhum dos detalhes que eles possam ser encomendados graças ao uso do Module :: Classe Pedida de Módulo ::
As mudanças de modelo são um pouco mais significativas do que eu gostaria, mas felizmente essas mudanças consistem amplamente em novos locais para coisas e páginas adicionais.
Como mencionado, o código principal é bastante mínimo e toda a funcionalidade de saída é realizada por plugins.
O núcleo chamará os seguintes métodos, se presente nos plugins:
on_db_createon_db_openon_inserton_initiateon_generateon_initiate , exceto que os métodos anteriores do plug -in garantem que foram chamados antes de ser on_generate .