PHPackages                             s1syphos/kirby-pep - 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. s1syphos/kirby-pep

AbandonedArchivedKirby-plugin[Parsing &amp; Serialization](/categories/parsing)

s1syphos/kirby-pep
==================

Supercharging Parsedown with ParsedownExtraPlugin for Kirby

641PHP

Since Mar 9Pushed 8y ago1 watchersCompare

[ Source](https://github.com/S1SYPHOS/kirby-pep)[ Packagist](https://packagist.org/packages/s1syphos/kirby-pep)[ RSS](/packages/s1syphos-kirby-pep/feed)WikiDiscussions master Synced yesterday

READMEChangelog (2)DependenciesVersions (1)Used By (0)

Kirby P(arsedown)E(xtra)P(lugin)
================================

[](#kirby-parsedownextraplugin)

[![Release](https://camo.githubusercontent.com/ce231c81ddd319a2858c7855dcad03347d05c54d880bd0bde5b2defcea7d4d74/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f72656c656173652f5331535950484f532f6b697262792d7065702e737667)](https://github.com/S1SYPHOS/kirby-pep/releases) [![License](https://camo.githubusercontent.com/cf1489a039e35f0d7d1a7c7acb97d294e5b09f6483ed2e795d6f4b0c2fdf67f8/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f5331535950484f532f6b697262792d7065702e737667)](https://github.com/S1SYPHOS/kirby-pep/blob/master/LICENSE) [![Issues](https://camo.githubusercontent.com/71e86c3fa64900200f317138e5188707442ebeadb374e8a650a8e616a43c4e07/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6973737565732f5331535950484f532f6b697262792d7065702e737667)](https://github.com/S1SYPHOS/kirby-pep/issues)

This plugin modifies Kirby's `markdown` component and enhances the built-in markdown parser [ParsedownExtra](https://github.com/erusev/parsedown-extra) by adding some [PEP](https://github.com/tovic/parsedown-extra-plugin).

**Table of contents**

- [1. What's MarkdownExtra?](#whats-markdownextra)
- [2. Getting started](#getting-started)
- [3. Configuration](#configuration)
- [4. Troubleshooting](#troubleshooting)
- [5. Credits / License](#credits--license)

What's MarkdownExtra?
---------------------

[](#whats-markdownextra)

> Markdown Extra is an extension to PHP Markdown implementing some features currently not available with the plain Markdown syntax \[such as\]
>
> - Inline HTML
> - Markdown Inside HTML Blocks
> - Special Attributes
> - Fenced Code Blocks
> - Tables
> - Definition Lists
> - Footnotes
> - Output
> - Abbreviations
> - Ordered Lists
> - Emphasis
> - Backslash Escapes
>
> By [Michel Fortin](https://michelf.ca/projects/php-markdown/extra/)

While these are already nice to have, [PEP](https://github.com/tovic/parsedown-extra-plugin) takes global configurability just a bit further - because Markdown!

Getting started
---------------

[](#getting-started)

Use one of the following methods to install &amp; use `kirby-pep`:

### Git submodule

[](#git-submodule)

If you know your way around Git, you can download this plugin as a [submodule](https://github.com/blog/2104-working-with-submodules):

```
git submodule add https://github.com/S1SYPHOS/kirby-pep.git site/plugins/kirby-pep

```

### Composer

[](#composer)

```
composer require S1SYPHOS/kirby-pep

```

### Clone or download

[](#clone-or-download)

1. [Clone](https://github.com/S1SYPHOS/kirby-pep.git) or [download](https://github.com/S1SYPHOS/kirby-pep/archive/master.zip) this repository.
2. Unzip / Move the folder to `site/plugins`.

### Activate the plugin

[](#activate-the-plugin)

Activate the plugin with the following line in your `config.php`:

```
c::set('plugin.kirby-pep', true);

```

In order to enable features of [ParsedownExtraPlugin](https://github.com/tovic/parsedown-extra-plugin), read on about configuring it. If you want to activate `kirby-pep` only on specific domains, read about [multi-environment setups](https://getkirby.com/docs/developer-guide/configuration/options).

Configuration
-------------

[](#configuration)

Change `kirby-pep` [options](https://github.com/tovic/parsedown-extra-plugin#features) to suit your needs:

- Element prefix (HTML / XHTML)
    - `'element_suffix' => '>' // HTML5`
- Predefined abbreviations
    - `'abbreviations' => []`
- Predefined links
    - `'links' => null`
- Custom attributes for (external) links / images
    - `'links_attr' => []`
    - `'links_external_attr' => ['rel' => 'nofollow', 'target' => '_blank']`
    - `'images_attr' => null`
    - `'images_external_attr' => null`
- Custom code class / (block) text
    - `'code_class' => 'language-%s'`
    - `'code_text' => null`
    - `'code_block_text' => null`
- Putting `` attributes on `` element
    - `'code_block_attr_on_parent'   => false`
- Custom table (alignment) class
    - `'table_class' => null`
    - `'table_align_class' => null`
- Custom footnote class
    - `'footnote_class' => 'footnotes'`
- Custom footnote link id / class / text
    - `'footnote_link_id' => 'fnref:%s'`
    - `'footnote_link_class' => 'footnote-ref'`
    - `'footnote_link_text' => '[%s]'`
- Custom footnote back link id / class / text
    - `'footnote_back_link_id' => 'fnref:%s-%s'`
    - `'footnote_back_link_class' => 'footnote-backref'`
    - `'footnote_back_link_text' => '↩'`

If you'd like to change them, just prefix each option with `plugin.kirby-pep.` in your `config.php` and you're set! With the following option in place, this plugin integrates seemlessly with `kirby-highlight`, generating themeable [server-side syntax highlighting](https://github.com/S1SYPHOS/kirby-highlight) for Kirby:

```
c::set('plugin.kirby-pep.code_class', 'language-%s hljs');

```

These [examples](https://github.com/tovic/parsedown-extra-plugin#features) are a **good starting point**, too.

Troubleshooting
---------------

[](#troubleshooting)

Custom attributes for (external) links / images currently don't work - feel free to submit a PR with your solution!

Credits / License
-----------------

[](#credits--license)

`kirby-pep` is based on Taufik Nurrohman's `parsedown-extra-plugin` library (an extension to [ParsedownExtra](https://github.com/erusev/parsedown-extra)). It is licensed under the [MIT License](LICENSE), but **using Kirby in production** requires you to [buy a license](https://getkirby.com/buy). Are you ready for the [next step](https://getkirby.com/next)?

Special Thanks
--------------

[](#special-thanks)

I'd like to thank everybody that's making great software - you people are awesome. Also I'm always thankful for feedback and bug reports :)

###  Health Score

22

—

LowBetter than 21% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity9

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity41

Maturing project, gaining track record

 Bus Factor1

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

### Community

Maintainers

![](https://www.gravatar.com/avatar/5933072731cd628e1ef2bdc59bc81da16dac859145a3be2dc5c83aab9095179b?d=identicon)[S1SYPHOS](/maintainers/S1SYPHOS)

---

Top Contributors

[![S1SYPHOS](https://avatars.githubusercontent.com/u/12161504?v=4)](https://github.com/S1SYPHOS "S1SYPHOS (14 commits)")[![daybugging](https://avatars.githubusercontent.com/u/23332902?v=4)](https://github.com/daybugging "daybugging (1 commits)")

---

Tags

kirbykirby-cmskirby-pluginmarkdownparsedownparsedown-extraparsedown-extra-pluginparserphp

### Embed Badge

![Health badge](/badges/s1syphos-kirby-pep/health.svg)

```
[![Health](https://phpackages.com/badges/s1syphos-kirby-pep/health.svg)](https://phpackages.com/packages/s1syphos-kirby-pep)
```

###  Alternatives

[mck89/peast

Peast is PHP library that generates AST for JavaScript code

19037.7M41](/packages/mck89-peast)[sauladam/shipment-tracker

Parses tracking information for several carriers, like UPS, USPS, DHL and GLS by simply scraping the data. No need for any kind of API access.

9642.0k](/packages/sauladam-shipment-tracker)[jstewmc/rtf

Read and write Rich Text Format (RTF) documents with PHP

46143.1k6](/packages/jstewmc-rtf)[moonshine/layouts-field

Field for repeating groups of fields for MoonShine

107.9k](/packages/moonshine-layouts-field)[tcds-io/php-jackson

A lightweight, flexible object serializer for PHP, inspired by FasterXML/jackson

112.9k10](/packages/tcds-io-php-jackson)

PHPackages © 2026

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