PHPackages                             prgfx/neos-markdown-view - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Parsing &amp; Serialization](/categories/parsing)
4. /
5. prgfx/neos-markdown-view

ActiveNeos-package[Parsing &amp; Serialization](/categories/parsing)

prgfx/neos-markdown-view
========================

An inspector view to render markdown

v0.1.2(3y ago)1621[1 issues](https://github.com/PRGfx/Prgfx.Neos.MarkdownView/issues)GPL-3.0-or-laterJavaScript

Since Mar 23Pushed 2y ago1 watchersCompare

[ Source](https://github.com/PRGfx/Prgfx.Neos.MarkdownView)[ Packagist](https://packagist.org/packages/prgfx/neos-markdown-view)[ RSS](/packages/prgfx-neos-markdown-view/feed)WikiDiscussions main Synced 3d ago

READMEChangelog (3)Dependencies (1)Versions (4)Used By (0)

[![Version](https://camo.githubusercontent.com/fab6035218208735c52934ab859e894b116541c6a90f014e919a65274ffe1784/68747470733a2f2f706f7365722e707567782e6f72672f70726766782f6e656f732d6d61726b646f776e2d766965772f76657273696f6e)](//packagist.org/packages/prgfx/neos-markdown-view)

Prgfx.Neos.MarkdownView
=======================

[](#prgfxneosmarkdownview)

> composer require prgfx/neos-markdown-view

Provides an inspector view to render markdown text, e.g. for rendering static help text.

Options
-------

[](#options)

```
ui:
  inspector:
    views:
      helpText:
        group: helpText
        view: Prgfx.Neos.MarkdownView/MarkdownView
        viewOptions:
          content: |
            **Markdown goes here**
          # optional css class for the element in case you want to add custom styling
          # (include stylesheets in the Neos.Neos.Ui.resources.stylesheets setting)
          className: '...'
          # see react-markdown options
          # tag names of elements that may get converted, defaults to all
          allowedElements: []
          # tag names of elements that should not be converted
          disallowedElements: []
```

Notes
-----

[](#notes)

### Newlines

[](#newlines)

The script replaces trailing `\\` with trailing double spaces on your content, so newlines work if trailing spaces are removed from your yaml.

### ClientEval

[](#clienteval)

`ClientEval:` is implemented for the (translated) content. You can use `node`, `parentNode` and `documentNode` in the context.

Additionally, this plugin provides some helpers to the ClientEval context to interact with the guest-frame.

namesyntaxdescriptionwaitFor`(milliseconds)`/`(callback[, retries[, timeout]])`/`(Promise)`Waits until a timeout has passed, a promise is resolved or a callback has succeeded. Intended to wait for elements becoming available in the guest-frame.htmlElement`waitFor(htmlElement('element')).then(match => ... )`Returns a function querying the selector in the guest-framenodeHtml`waitfor(nodeHtml).then(contentElement => ...)`Tries to retrieve the html element with the data-attributes matching the currently selected node. Might not be found.### Asynchronous Content

[](#asynchronous-content)

If [ClientEval](#clienteval) returns a Promise, the resolved value will be loaded as content.

Advanced Examples
-----------------

[](#advanced-examples)

### Show translation status

[](#show-translation-status)

Render the translation status into your page

```
prototype(Neos.Neos:Page) {
    bodyTag.attributes {
        data-translations = Neos.Fusion:Loop {
            @glue = '\\n'
            items = Neos.Neos:DimensionsMenuItems
            itemRenderer = ${'- ' + (item.node ? '✅' : '❌') + ' ' + item.targetDimensions.language.label}
            @if.inBackend = ${documentNode.context.inBackend}
        }
    }
}

```

Configure Widget

```
Neos.Neos.Document:
  ui:
    inspector:
      groups:
        dimensions:
          label: Dimensions
          icon: language
      views:
        helpText:
          group: dimensions
          label: Translations of this page
          view: Prgfx.Neos.MarkdownView/MarkdownView
          viewOptions:
            content: ClientEval:waitFor(() => document.querySelector('iframe').contentDocument?.body?.dataset.availableDimensions?.replaceAll('\\n','\n'))
```

### Show missing heading levels

[](#show-missing-heading-levels)

Create an external script to keep the node-config sane

```
const getHeadings = (waitFor, htmlElement) => {
    return waitFor(htmlElement('body script')).then(() => {
        const iframe = document.querySelector('iframe');
        const headings = [...iframe.contentDocument.querySelectorAll('h1,h2,h3,h4,h5,h6')];
        return headings.reduce(({ md, last }, node) => {
            const level = Number.parseInt(node.tagName.substring(1));
            // skipped heading level?
            const status = level > last && level - last > 1 ? '⚠' : ' ';
            md += `- ${level}${status} ${(node.textContent)}\n`;
            return { md, last: level }
        }, { md: '', last: 0 }).md;
    })
};
// make helper globally available
window['markdownWidget_example_headings'] = getHeadings;
```

Load the JS file in your Settings.yaml

```
Neos:
  Neos:
    Ui:
      resources:
        javascript:
          'My.Example':
            resource: resource://My.Example/Public/missing-headings.js
```

Configure the view in the node-type

```
Neos.Neos:Document:
  ui:
    inspector:
      views:
        headings:
          group: document
          label: Missing heading levels
          view: Prgfx.Neos.MarkdownView/MarkdownView
          viewOptions:
            # we pass the context variables to the function exposed from our script
            content: ClientEval:window['markdownWidget_example_headings']?.(waitFor, htmlElement)
```

###  Health Score

17

—

LowBetter than 6% of packages

Maintenance0

Infrequent updates — may be unmaintained

Popularity11

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity41

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 76.9% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~155 days

Total

3

Last Release

1201d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/b516f86c82d95d7527303175480844e74203b00e59f8c92ffcf6b08611a300c0?d=identicon)[mklatte](/maintainers/mklatte)

---

Top Contributors

[![PRGfx](https://avatars.githubusercontent.com/u/3868790?v=4)](https://github.com/PRGfx "PRGfx (10 commits)")[![grebaldi](https://avatars.githubusercontent.com/u/2522299?v=4)](https://github.com/grebaldi "grebaldi (3 commits)")

---

Tags

neoscmsmarkdownNeosneoscmsinspectorinspector-view

### Embed Badge

![Health badge](/badges/prgfx-neos-markdown-view/health.svg)

```
[![Health](https://phpackages.com/badges/prgfx-neos-markdown-view/health.svg)](https://phpackages.com/packages/prgfx-neos-markdown-view)
```

###  Alternatives

[erusev/parsedown

Parser for Markdown.

15.0k151.8M732](/packages/erusev-parsedown)[league/commonmark

Highly-extensible PHP Markdown parser which fully supports the CommonMark spec and GitHub-Flavored Markdown (GFM)

2.9k404.0M702](/packages/league-commonmark)[michelf/php-markdown

PHP Markdown

3.5k52.4M345](/packages/michelf-php-markdown)[league/html-to-markdown

An HTML-to-markdown conversion helper for PHP

1.9k28.6M199](/packages/league-html-to-markdown)[cebe/markdown

A super fast, highly extensible markdown parser for PHP

1.0k32.5M136](/packages/cebe-markdown)[shel/neos-colorpicker

A plugin for Neos CMS which provides a colorpicker editor

1494.4k6](/packages/shel-neos-colorpicker)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
