PHPackages                             mindplay/middlemark - 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. mindplay/middlemark

AbandonedArchivedLibrary

mindplay/middlemark
===================

Markdown renderer as PSR-7 middleware

0.1.0(9y ago)340LGPL-3.0+PHP

Since Jun 24Pushed 9y ago1 watchersCompare

[ Source](https://github.com/mindplay-dk/middlemark)[ Packagist](https://packagist.org/packages/mindplay/middlemark)[ RSS](/packages/mindplay-middlemark/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (1)Dependencies (7)Versions (2)Used By (0)

mindplay/middlemark
===================

[](#mindplaymiddlemark)

[PSR-7](http://www.php-fig.org/psr/psr-7/) Markdown rendering middleware, with support for [front matter](http://jekyllrb.com/docs/frontmatter/), for use with e.g. [mindplay/middleman](https://github.com/mindplay-dk/middleman), [relay/relay](https://github.com/relayphp/Relay.Relay) or [zend-stratigility](https://github.com/zendframework/zend-stratigility) middleware dispatcher.

How it works
------------

[](#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](src/Document.php) and [View](src/View.php) model, which can then be rendered by a renderer implementing a simple interface - the included renderer integrates [mindplay/kisstpl](https://github.com/mindplay-dk/kisstpl), and integrating any other renderer or template engine is trivial.

Adapters
--------

[](#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

[](#markdown-adapters)

The available/default engine adapters are [cebe/markdown](https://packagist.org/packages/cebe/markdown) and [kzykhys/ciconia](https://github.com/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

[](#front-matter-adapter)

The default engine for Jekyll-style [front matter](https://jekyllrb.com/docs/frontmatter/) is [kzykhys/yaml-front-matter](https://packagist.org/packages/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

[](#renderer-adapter)

The default engine for rendering the view-model is [mindplay/kisstpl](https://github.com/mindplay-dk/kisstpl), and this is currently the only renderer supported - to use any different view engine, implement the [Renderer](src/RendererInterface).

###  Health Score

25

—

LowBetter than 37% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity11

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity53

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% 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

Unknown

Total

1

Last Release

3606d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/9445f567f43ee7a963270651e40e533634586f959e4df3d5398d001b1cb49be8?d=identicon)[mindplay.dk](/maintainers/mindplay.dk)

---

Top Contributors

[![mindplay-dk](https://avatars.githubusercontent.com/u/103348?v=4)](https://github.com/mindplay-dk "mindplay-dk (7 commits)")

### Embed Badge

![Health badge](/badges/mindplay-middlemark/health.svg)

```
[![Health](https://phpackages.com/badges/mindplay-middlemark/health.svg)](https://phpackages.com/packages/mindplay-middlemark)
```

###  Alternatives

[league/uri-interfaces

Common tools for parsing and resolving RFC3987/RFC3986 URI

538204.9M23](/packages/league-uri-interfaces)[neuron-core/neuron-ai

The PHP Agentic Framework.

1.8k245.3k20](/packages/neuron-core-neuron-ai)[simplesamlphp/saml2

SAML2 PHP library from SimpleSAMLphp

30317.2M40](/packages/simplesamlphp-saml2)[php-heroku-client/php-heroku-client

A PHP client for the Heroku Platform API

24404.8k4](/packages/php-heroku-client-php-heroku-client)[phpro/http-tools

HTTP tools for developing more consistent HTTP implementations.

28137.8k](/packages/phpro-http-tools)[iwechatpay/openapi

为 wechatpay/wechatpay 增加IDE提示的接口描述包。

406.7k](/packages/iwechatpay-openapi)

PHPackages © 2026

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