Sur cette page
Bibliothèque
Cecil propose une API PHP simple pour générer votre site web.
Vous pouvez consulter la documentation de l’API pour plus de détails.
Installation
composer require cecil/cecil
Prise en charge de libvips
Pour traiter les images avec libvips (optionnel), installez le pilote libvips dans votre projet :
composer require intervention/image-driver-vips
Utilisation
Génération
Générez un nouveau site web avec une configuration personnalisée :
<?php
require_once 'vendor/autoload.php';
use Cecil\Builder;
$config = [
'title' => "My website",
'baseurl' => 'https://domain.tld/',
];
Builder::create($config)
->setSourceDir(__DIR__) // répertoire des sources du site (répertoire courant par défaut)
->setDestinationDir(__DIR__) // où le répertoire de sortie (`_site`) est créé (répertoire source par défaut)
->build([]);
exec('php -S localhost:8000 -t _site'); // prévisualisation locale
La méthode build() accepte un tableau d’options :
| Option | Description | Par défaut |
|---|---|---|
drafts |
Inclut les brouillons. | false |
dry-run |
Génère sans enregistrer les fichiers. | false |
page |
Génère une page spécifique. | '' |
render-subset |
Effectue le rendu d’un sous-ensemble nommé de pages. | '' |
Ces options correspondent à celles de la commande build.
Diagnostics
Vous pouvez aussi exécuter les vérifications de doctor via des services dédiés, sans utiliser les commandes CLI :
Cecil\Doctor\SiteDoctor::diagnose(): configuration et environnementCecil\Doctor\FrontmatterDoctor::diagnose(): front matter des pagesCecil\Doctor\SeoDoctor::audit(): SEO des pages rendues (lance une génération à blanc, en dry-run)Cecil\Doctor\LinksDoctor::audit(): liens internes et externes
<?php
require_once 'vendor/autoload.php';
use Cecil\Builder;
use Cecil\Doctor\SeoDoctor;
use Cecil\Doctor\SiteDoctor;
$builder = Builder::create(require 'config.php')
->setSourceDir(__DIR__)
->setDestinationDir(__DIR__);
$siteDoctor = new SiteDoctor();
$diagnosis = $siteDoctor->diagnose($builder, __DIR__, ['cecil.yml']);
$seoDoctor = new SeoDoctor();
$seoAudit = $seoDoctor->audit($builder, [
'page' => '',
'include_generated' => false,
]);
var_dump($diagnosis['errors'], $seoAudit['summary']);