mindplay/middlemark

This package is abandoned and no longer maintained. No replacement package was suggested.

Markdown renderer as PSR-7 middleware

0.1.0 2016-06-24 10:59 UTC

This package is auto-updated.

Last update: 2022-02-01 12:51:45 UTC


README

PSR-7 Markdown rendering middleware, with support for front matter, for use with e.g. mindplay/middleman, relay/relay or zend-stratigility middleware dispatcher.

How it works

The idea is, you point this middleware to a root-folder containing *.md files, and when this middleware gets a request for e.g. foo/bar.html, it searches for foo/bar.md, and renders it.

It does this by assembling a simple Document and View model, which can then be rendered by a renderer implementing a simple interface - the included renderer integrates mindplay/kisstpl, and integrating any other renderer or template engine is trivial.

Adapters

Every third-party component is integrated via an adapter interface - to get a working middleware component, you need to select a Markdown engine, front-matter adapter, and renderer.

Markdown Adapters

The available/default engine adapters are cebe/markdown and kzykhys/ciconia, both of which default to GitHub-flavored Markdown, though you are free to replace/reconfigure these as needed. Engine adapters are a simple interface, and you can easily integrate any Markdown engine you wish to.

Front Matter Adapter

The default engine for Jekyll-style front matter is kzykhys/yaml-front-matter. Only one (YAML) front matter engine is currently available, but this is behind an adapter interface as well, and is easy to replace.

Renderer Adapter

The default engine for rendering the view-model is mindplay/kisstpl, and this is currently the only renderer supported - to use any different view engine, implement the Renderer.