Static preview. Server-backed interactions are available only in a local checkout.

Outputs & Profiles

One renderer exposes HTML, plain-text, and Markdown targets. Named profiles restrict the same source consistently across every target.

$carve->render($source);
$carve->renderText($source);
$carve->renderMarkdown($source);

$comments = new CarveRenderer(profile: 'comment');

Carve source

# Release notes

Carve /renders/ to *HTML*, plain text, and Markdown from one source.

![A diagram](/diagram.svg)

HTML

Release notes

Carve renders to HTML, plain text, and Markdown from one source.

A diagram
<section id="Release-notes">
  <h1>Release notes</h1>
  <p>Carve <em>renders</em> to <strong>HTML</strong>, plain text, and Markdown from one source.</p>
  <img src="/diagram.svg" alt="A diagram">
</section>

Plain text

Release notes

Carve renders to HTML, plain text, and Markdown from one source.

A diagram

Markdown

# Release notes

Carve *renders* to **HTML**, plain text, and Markdown from one source.

![A diagram](/diagram.svg)

Comment profile

The comment profile rejects document-level headings and images.

# Release notes

Carve renders to HTML, plain text, and Markdown from one source.

[img: A diagram]

<p># Release notes</p>
<p>Carve <em>renders</em> to <strong>HTML</strong>, plain text, and Markdown from one source.</p>
<p>[img: A diagram]</p>

Twig output filters

The same non-HTML targets are available as normally escaped Twig filters.

{{ source|carve_text }}
{{ source|carve_markdown }}

carve_text

Release notes

Carve renders to HTML, plain text, and Markdown from one source.

A diagram

carve_markdown

# Release notes

Carve *renders* to **HTML**, plain text, and Markdown from one source.

![A diagram](/diagram.svg)