Markdown renderer as PSR-7 middleware
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.
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.
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.
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.