All skills
michtio avatar

/craft-plugins

@44a2800

Index and router for plugin-specific Craft CMS 5 guidance — configuration, Twig API, PHP API, migrations, deployment, and pitfalls for the plugins this pack documents. Triggers whenever a task names one of these plugins in ANY context (build, configure, style, render, query, import, migrate, deploy, cache, debug): Formie (forms, submissions, File Upload, form in a migration, notifications, translations), SEOmatic (meta, sitemaps, JSON-LD, SEO field), Blitz (static/page caching, purge), Feed Me (XML/JSON/CSV import), Imager-X (transforms, srcset, quick syntax, named transforms, Power Pack, pppicture, ppimg), ImageOptimize (OptimizedImages), CKEditor (rich text, nested entries), Sprig (reactive, htmx), Element API (JSON endpoints), Retour (redirects, 404s), Navigation (nav menus), Hyper (link field), Colour Swatches, Password Policy (HIBP), Typogrify, Cache Igniter, Knock Knock (staging password), Elements Panel (N+1 debug), Sherlock (security scan), Amazon SES (SES/SNS bounce), Embedded Assets (oEmbed), Timeloop (recurring dates), Vite (craft.vite.*, asset bundling), Warp (passwordless login, magic link, one-time code/OTP, passkeys, WebAuthn, craft.warp, member sessions). Also load for passwordless or magic-link auth with NO plugin named. Always load when a task names one of these plugins — read references/<plugin>.md first. Do NOT trigger for Craft core with no plugin named (craftcms), template architecture (craft-site), or content modeling (craft-content-modeling).

Use this Skill: https://skilld.dev/gh/michtio/craftcms-claude-skills/craft-plugins

This session only. Nothing lands on disk.

referencestypogrify.md

≈745 tokens on demand. Your agent reads this file only when SKILL.md points to it.

Typogrify

Smart typography Twig filters by nystudio107. Prevents widows, fixes quotes, applies hanging punctuation, and handles typographic best practices automatically. Used on every project.

nystudio107/craft-typogrify — Free

Documentation

Common Pitfalls

  • Applying |typogrify to HTML that contains inline scripts or JSON — it can mangle non-prose content. Only use on text/HTML content blocks.
  • Using |typogrify inside {% cache %} tags that also contain SEOMatic variables — the cache conflict is with SEOMatic, not Typogrify, but the combination trips people up.
  • Double-encoding entities — if content already has &amp; entities, Typogrify may double-process them. Use |raw before |typogrify if you're getting entity issues.
  • Not using |widont on headings — this is the single most impactful filter for visual polish. Prevents orphaned single words on the last line.

Twig Filters

|typogrify (All-in-One)

Applies the full suite of typographic improvements:

{{ entry.body|typogrify }}

Includes: smart quotes, ellipses, dashes, widow prevention, ordinal suffixes, math symbols, and more.

Individual Filters

{{ entry.title|widont }}              {# Prevents widows — adds &nbsp; before last word #}
{{ entry.body|smartypants }}          {# Smart quotes and dashes only #}
{{ entry.title|typogrifyFeed }}       {# Safe for RSS feeds (no HTML entities) #}
{{ text|truncate(160) }}              {# Truncate to character count, word-boundary aware #}
{{ text|truncateOnWord(160) }}        {# Same — truncates at word boundary #}
{{ richText|humanFileSize }}          {# Formats bytes as "1.2 MB" #}
{{ number|humanDuration }}            {# Formats seconds as "2 hours, 30 minutes" #}
{{ text|wordCount }}                  {# Returns word count #}

Common Usage Patterns

{# Headings — always prevent widows #}
<h1>{{ entry.title|widont }}</h1>

{# Rich text — full typography treatment #}
<div class="prose">
    {{ entry.body|typogrify }}
</div>

{# SEO descriptions — truncate cleanly #}
<meta name="description" content="{{ entry.summary|truncateOnWord(160) }}">

{# Card excerpts #}
<p>{{ entry.body|striptags|truncateOnWord(120) }}</p>

What |typogrify Does

  • Smart quotes — straight " and ' → curly " " ' '
  • Dashes — -- → en-dash, --- → em-dash
  • Ellipses — ... → …
  • Widow prevention — &nbsp; before last word in block elements
  • Ordinal suffixes — 1st → 1<sup>st</sup>
  • Math symbols — (c) → ©, (tm) → ™
  • Hanging punctuation — opening quotes hang in the margin

Pair With

  • CKEditor — apply |typogrify to CKEditor field output
  • SEOMatic — Typogrify for display, SEOMatic for meta (don't apply |typogrify to meta descriptions)

Source: SKILL.md on GitHub

No alerts16d3 checks · Risk SAFE
  • Gen Agent Trust Hub16d

    The 'craft-plugins' skill is a technical reference and router for Craft CMS 5 plugins. It provides guidance on configuration, Twig and PHP APIs, and best practices for popular extensions in the Craft ecosystem. The skill consists of documentation files that describe legitimate plugin behaviors and does not contain any malicious code, obfuscation, or security vulnerabilities.

  • Socket16d

    No alerts

  • Snyk16d

    Risk: LOW · No issues

Signed by skilld at 44a2800. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub 2 weeks ago.

Activeupdated last month

README badge

README badge for michtio/craftcms-claude-skills/craft-plugins