---
title: "@pitlane/content/satteri"
description: "Sätteri plugins that Markdown and MDX entry bodies need: [headings](https://pitlane.tools/package/content/satteri/function/headings.md) collects the heading list `render()` returns, and [rawStyles](https://pitlane.tools/package/content/satteri/function/rawStyles.md) keeps the CSS inside a `<style>` element intact. With a Vite build, register both with `vite-plugin-satteri`; without one, `render()` applies them itself."
url: "https://pitlane.tools/package/content/satteri"
---

# @pitlane/content/satteri

Sätteri plugins that Markdown and MDX entry bodies need: [headings](https://pitlane.tools/package/content/satteri/function/headings.md) collects the heading list `render()` returns, and [rawStyles](https://pitlane.tools/package/content/satteri/function/rawStyles.md) keeps the CSS inside a `<style>` element intact. With a Vite build, register both with `vite-plugin-satteri`; without one, `render()` applies them itself.

## See

[Content guide](https://pitlane.tools/guides/content.md)

## Functions

- [headings](https://pitlane.tools/package/content/satteri/function/headings.md). Collects every heading of a document as `{ depth, slug, text }`, publishes the list as `data.headings`, and gives each heading an `id` matching its slug so an anchor link lands on it. A heading's text is the text it shows on the page, as `visibleText` reads it. On MDX the list is also appended to the tree as `export const headings`, so the compiled module carries its own table of contents.
- [rawStyles](https://pitlane.tools/package/content/satteri/function/rawStyles.md). Hands a `<style>` element's CSS to Remix as markup rather than as text, so the stylesheet survives being rendered.
