Sur cette page
doctor
Diagnostique le site courant et l'environnement Cecil.
Utilisation
Description:
Diagnoses the site configuration
Usage:
doctor [options] [--] [<path>]
Arguments:
path Use the given path as working directory
Options:
-c, --config=CONFIG Set the path to an extra configuration file
-h, --help Display help for the given command. When no command is given display help for the list command
-q, --quiet Do not output any message
-V, --version Display this application version
--ansi|--no-ansi Force (or disable --no-ansi) ANSI output
-n, --no-interaction Do not ask any interactive question
-v|vv|vvv, --verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
Help:
The doctor command diagnoses the current site and Cecil environment.
cecil.phar doctor
cecil.phar doctor path/to/the/working/directory
To inspect a site with an extra configuration file, run:
cecil.phar doctor --config=config.yml
doctor:frontmatter
Valide la syntaxe du front matter des pages.
Description:
Validates pages front matter syntax
Usage:
doctor:frontmatter|doctor:fm [options] [--] [<path>]
Arguments:
path Use the given path as working directory
Options:
-c, --config=CONFIG Set the path to an extra configuration file
-p, --page=PAGE Validate a single page relative to the pages directory
--ansi|--no-ansi Force (or disable --no-ansi) ANSI output
-n, --no-interaction Do not ask any interactive question
-h, --help Display help for the given command. When no command is given display help for the list command
-q, --quiet Do not output any message
-V, --version Display this application version
-v|vv|vvv Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
doctor:seo
Audite les pages HTML rendues pour détecter les problèmes SEO courants.
Description:
Audits rendered HTML pages for common SEO issues
Usage:
doctor:seo [options] [--] [<path>]
Arguments:
path Use the given path as working directory
Options:
-c, --config=CONFIG Set the path to an extra configuration file
-p, --page=PAGE Audit a single page relative to the pages directory
--format=FORMAT Output format: text (default) or json
--feedback Include findings with feedback level
--include-virtual Include virtual pages (paginated, taxonomies) in audit
--fail-on=FAIL-ON Return a failure exit code when findings of this level or higher are found: bad (default), ok, feedback or never
La commande construit le site en mode dry-run, puis audite le HTML rendu avec un jeu de contrôles ciblés : balise title, meta description, URL canonique, structure des titres, balises Open Graph, attributs alt des images et longueur estimée du contenu.
Par défaut, les pages virtuelles (paginées, pages de taxonomie) sont exclues de l'audit. Utilisez --include-virtual pour les inclure.
Par défaut, les findings de niveau feedback ne sont pas listés.
Utilisez --feedback pour inclure les findings de niveau feedback en plus des autres findings.
Exportez les résultats en JSON pour l'intégration CI en utilisant --format=json.
Par défaut, la commande retourne un code de sortie en échec (1) lorsque des findings de niveau bad sont trouvés. Utilisez --fail-on=ok pour échouer également sur les findings ok, --fail-on=feedback pour échouer sur n'importe quel finding, ou --fail-on=never pour toujours réussir.
Configuration
Personnalisez les seuils d'audit et les contrôles activés dans votre fichier de configuration :
doctor:
seo:
title: { min: 30, max: 60 }
description: { min: 120, max: 160 }
content: { min_words: 300 }
checks:
title: true
description: true
canonical: true
h1: true
og_tags: true
img_alt: true
content_length: true
lang_attribute: true
doctor:links
Contrôle les liens internes et externes des pages rendues.
Description:
Checks internal and external links of the rendered pages
Usage:
doctor:links [options] [--] [<path>]
Arguments:
path Use the given path as working directory
Options:
-c, --config=CONFIG Set the path to an extra configuration file
-p, --page=PAGE Check links of a single page relative to the pages directory
--internal Check internal links
--external Check external links
--exclude=EXCLUDE Exclude links matching this regular expression (multiple values allowed)
--timeout=TIMEOUT External links request timeout, in seconds
--concurrency=CONCURRENCY Number of concurrent external links requests
--no-cache Do not use cached external links results
--format=FORMAT Output format: text (default) or json
--include-virtual Include virtual pages (paginated, taxonomies) in audit
--feedback Include findings with feedback level
--fail-on=FAIL-ON Return a failure exit code when findings of this level or higher are found: bad (default), ok, feedback or never
La commande construit le site en mode dry-run, puis contrôle les liens trouvés dans les pages HTML rendues : liens (<a>, <area>, <link>), images (src et srcset), scripts, iframes, médias et styles en ligne. Les fichiers CSS liés depuis les pages sont également analysés (url() et @import).
- Liens internes : ils doivent cibler une page générée, un fichier statique ou un asset. Les fragments (
#ancre) doivent correspondre à l'ID d'un élément de la page cible. Les URL absolues commençant parbaseurlsont considérées comme des liens internes. - Liens externes : ils sont requêtés en HTTP (
HEAD, puisGETsi le serveur refuseHEAD), en parallèle. Les résultats en succès sont mis en cache (24 heures par défaut) : utilisez--no-cachepour les contrôler à nouveau.
Par défaut, seuls les liens internes sont contrôlés :
php cecil.phar doctor:links # liens internes (par défaut)
php cecil.phar doctor:links --external # liens externes uniquement
php cecil.phar doctor:links --internal --external # les deux
Niveaux des findings :
| Niveau | Signification |
|---|---|
bad |
Lien cassé : cible introuvable, ancre manquante, erreur HTTP (4xx, 5xx), hôte introuvable, etc. |
ok |
Lien fonctionnel mais améliorable : redirection, slash final manquant |
feedback |
Lien invérifiable : accès refusé (401, 403, 429), probablement par une protection anti-bot, ou timeout |
Les liens utilisant d'autres schémas que HTTP (ex. : mailto:, tel:, data:) sont ignorés. Utilisez --exclude (expression régulière, insensible à la casse) pour ignorer d'autres liens.
Les options --page, --include-virtual, --feedback, --format et --fail-on se comportent comme avec doctor:seo (voir ci-dessus).
Configuration
Personnalisez les réglages par défaut dans votre fichier de configuration :
doctor:
links:
internal: true # contrôle des liens internes
external: false # contrôle des liens externes
timeout: 10 # timeout des requêtes des liens externes, en secondes
concurrency: 10 # nombre de requêtes simultanées des liens externes
cache_ttl: 86400 # durée de mise en cache des résultats en succès des liens externes, en secondes
exclude: [] # liens à ignorer (liste d'expressions régulières), ex. : ['linkedin\.com', '^https://localhost']
useragent: ~ # en-tête User-Agent des requêtes des liens externes (`assets.remote.useragent.default` par défaut)