# `MishkaCmsCore.Runtime.Resources.Calculations.RenderContent`
[🔗](https://github.com/mishka-group/mishka_cms_core/blob/v0.0.1/lib/mishka_cms_core/runtime/resources/__calculations/render_content.ex#L5)

A reusable calculation that exposes a **plugin-transformable rendered version** of a content field —
the Ash-idiomatic equivalent of the WordPress `the_content` / Joomla `onContentPrepare` filter.

Add it as a calculation over the source attribute you display:

    calculations do
      calculate :rendered_content, :string,
        {MishkaCmsCore.Runtime.Resources.Calculations.RenderContent, source: :content}
    end

Then **load `:rendered_content`** wherever you display the content (admin grid column, JSON API field,
a future public article view) instead of the raw attribute. For each record it calls
`"<app>:<resource>:render_<source>"` with `%{html: raw, record: record}`; a plugin returns
`%{html: transformed}` (shortcodes, oEmbed, related-posts, ToC, syntax-highlight, SEO injection…).
With no plugin registered the raw value is returned unchanged.

> It runs at **display/load time**, so plugins must be pure and cheap (operate on already-fetched data;
> never fetch a remote oEmbed here — precompute + cache, only string-substitute at render).

See `MishkaInstaller.Event.Hook`.

# `describe`

# `has_calculate?`

# `has_expression?`

# `strict_loads?`

---

*Consult [api-reference.md](api-reference.md) for complete listing*
