Moteur Eleventy — carte de engine/

⚙️ ARTEFACT GÉNÉRÉ — ne pas éditer à la main. Régénérer : npm run docs:engine (extrait depuis .eleventy.js + engine/).

Filtres Nunjucks maison (19)

FiltreRôle.eleventy.js
absoluteUrlL195
byAuthorFiltre par data[author] === id.L245
byCategoryFiltre une collection Eleventy par data[key] === val.L240
dateFrL207
dateISOL202
excludeUrlExclut un élément de collection par son url.L250
faqJsonLdL258
findTrouve le 1er élément d'un tableau d'objets par clé (objet simple).L235
heroImageUrlRésout le chemin hero vers la variante optimisée générée par eleventy-img. Reproduit la logique du filenameFormat ci-dessus : slugL187
injectProductIconsInjection des logos produits dans les tableaux comparatifs et H2/H3. Lit le champ front-matter products[] et matche les noms danL303
injectSponsoredLinksInjection des liens sponsorisés (filtre principal du métier).L294
itemListElementsItemList JSON-LD pour les comparatifs top-N (champ front-matter comparison.rows). Position + nom du modèle uniquement : PAS de aL269
jsonldL254
keysL222
limitL232
readingTimeL213
tableOfContentsSommaire (TOC) : extrait les H2/H3 (avec leur id markdown-it-anchor) du HTML rendu. Lit les IDs RÉELS émis → pas de problème de paL277
tplInterpolation de variables {name} {email} {operator} {domain} {year} dans les blocs de thème.L228
wordCountL218

Transforms (3)

TransformRôle.eleventy.js
tableWrap--- Wrap
dans un conteneur scrollable ---
L433
externalLinks--- Liens externes : rel="nofollow noopener" target="_blank" --- Liens éditoriaux (sources citées) en nofollow → conserve le linkL442
htmlmin--- Minification HTML en production ---L455

Collections (3)

CollectionRôle.eleventy.js
article--- Collections ---L370
categoryPagesL377
activeCategoriesCatégories actives = celles du thème ayant ≥ 1 article (évite le thin content).L404

Layouts & blocks

Clés fingerprint.* reconnues (anti-footprint)

Posées dans blogs/{domain}/blog.json > fingerprint, consommées par les templates. 21 clés détectées :

CléFichiers consommateurs
article_variant_includes/layouts/article.njk
css_decoy_includes/layouts/base.njk
css_salt_includes/layouts/base.njk
faq_id_includes/blocks/faq.njk
four04pages/404.njk
headerspages/headers.njk
hero_size_includes/blocks/hero.njk
home_intro_includes/layouts/home.njk
js_data/inlineJs.js
jsonld_includes/layouts/base.njk
layout_includes/layouts/article.njk, _includes/layouts/base.njk, _includes/layouts/home.njk
llmspages/llms.njk
main_id_includes/layouts/base.njk
mobile_nav_id_includes/blocks/header.njk
nav_style_data/site.js, _includes/blocks/header.njk
og_order_includes/layouts/base.njk
robots_botspages/robots.njk
robots_meta_includes/layouts/base.njk
rss_suffix_includes/layouts/base.njk
security_includes/blocks/video.njk, pages/headers.njk
skip_link_includes/layouts/base.njk

Gotchas (rappel — détail dans CLAUDE.md & docs/claude/anti-regression.md)