Personal static website generator
PHP HTML CSS
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
bin
config
css
img
js
recipes
src
tests
.gitignore
.travis.yml
README.html
README.md
composer.json
default.html.twig
index.html
index.md
phpcs.xml
phpmd.xml
phpunit.xml

README.md

Build Status Latest Stable Version Total Downloads

Introduction

Preacher is a personal static website generator, which allows you to setup and maintain a personal website with zero configuration.

I always figured the word 'blog' would sound less silly as the years went by.

Fresh installation

To create a fresh website using Preacher, one can install it as follows:

composer create-project zero-config/static-website

When asked to remove the existing VCS, answer Y.

Installation on top of existing website

composer require --dev zero-config/preacher

This installs the necessary files and packages. The next step is initiating a git repository, so Preacher can keep track of what needs to be published:

git init

Now all we need to do, is commit our first page and template:

git add index.md default.html.twig && git commit -m "My first Preacher page!"

To see what a basic .md page file and template can contain, have a look at Preacher's own index.md page and default.html.twig template.

By default, Preacher will look for the Twig template called default.html.twig. However, if a custom template is required, simply give it the same name as the source file.

E.g.: articles/something-fancy.md => articles/something-fancy.html.twig.

Generating pages

Preacher creates pages from the committed .md page files and .twig templates. It uses a single command to either generate the current directory and all its children, or one can (re)generate a single source file.

vendor/bin/preach [<source>]...

Optionally, if one wants to always generate output when a file is committed, try the following:

ln -s ../../vendor/bin/preach .git/hooks/post-commit

This will install Preacher as a post-commit hook and makes it run each time you commit one of your files.

The contents of vendor directories are skipped by interpreting the vendor-dir composer config.

If one wants to force the generation of files, add the --force flag.

Standards

Preacher uses existing software with well-defined standards to create the most stable and user friendly experience at the same time.

Preacher is built with programmers in mind.

Component Type Package
Content parser GitHub Flavored Markdown erusev/parsedown
Template engine Twig 2 twig/twig
Version control git coyl/git
Package manager Composer composer/composer
Syntax highlighter Prism prismjs

Documentation

For full documentation and a cookbook for Preacher, go to the Preacher homepage.