Cecil's logo, created by Cécile Ricordeau

A simple and powerful content-driven static site generator.

Latest stable version License

Cecil is a CLI application that merges plain text files (written in Markdown), images and Twig templates to generate a static website.

📄Documentation · 💻Demo · 🐛Issues tracker · 💬Discussions

Cecil CLI animated demo

Continuous Integration status Release status Documentation status
Scrutinizer score Codacy badge Coverage score StyleCI status

Quick Start

Read the Quick Start documentation page.

Create and deploy a blog site:
Deploy to Netlify Deploy with Vercel

Features

  • No database, no server, no dependency: performance and security
  • Your pages are stored in Markdown flat files with a YAML front matter
  • Powered by Twig, a flexible template engine, with themes support
  • Pagination, sitemap, redirections, robots.txt, taxonomies, RSS are generated automatically
  • Handles and optimizes assets for you
  • Download one file and run it
  • Easy to deploy

Requirements

Installation

Download cecil.phar from your terminal:

curl -LO https://github.com/Cecilapp/Cecil/releases/latest/download/cecil.phar

Other installation methods:

Usage

Common commands:

php cecil.phar help      # Get help
php cecil.phar new:site  # Create a new website
php cecil.phar build     # Build your website
php cecil.phar serve     # Preview your website locally

Contributing

See Contributing.

Thanks goes to these wonderful people (emoji key):

This project follows the all-contributors specification. Contributions of any kind welcome!

npx all-contributors add
npx all-contributors generate

Development

Install dependencies:

composer install

Run all quality checks:

composer code

Run individual checks:

composer code:analyse
composer code:style
composer test
composer test:cli

Build binaries

Build binaries with Box and phpacker:

# Install Box and phpacker globally
composer global require humbug/box
composer global require phpacker/phpacker
export PATH=~/.composer/vendor/bin:$PATH
# Build the PHAR file and the package
composer run build:phar
composer run build:package

Build API documentation

Build the API documentation with phpDocumentor:

# Download phpDocumentor PHAR
curl -Lo phpdoc https://phpdoc.org/phpDocumentor.phar
# Build the API documentation
php phpdoc

Release

To release a new version, create a new Git tag with the version number (e.g. 1.0.0), push it to GitHub and the release will be automatically published by GitHub Actions.

git tag 1.0.0
git push origin 1.0.0

[!TIP] To create a pre-release, add a suffix to the version number (e.g. 1.0.0-beta.1).

The automated workflow also will publish the release to the website, update the Homebrew formula and the Scoop manifest.

Sponsors

Aperture Lab         studio cecilliestudio cecillie        NetlifyNetlify

License

Cecil is a free software licensed under the EUPL-1.2 license.

Cecil © Arnaud Ligny
Logo © Cécile Ricordeau