appertly/axe-markdown

Appertly XHP Extras Markdown: Markdown to XHP

0.1.0 2016-05-23 15:25 UTC

This package is not auto-updated.

Last update: 2024-03-16 15:58:14 UTC


README

A ppertly X HP E xtras Markdown: Markdown to XHP in Hack/HHVM.

Packagist Build Status

Installation

You can install this library using Composer:

$ composer require appertly/axe-markdown
  • The master branch (version 0.x) of this project requires HHVM 3.12 and depends on XHP 2.2+ and league/commonmark.

Compliance

Releases of this library will conform to Semantic Versioning.

Our code is intended to comply with PSR-1 and PSR-2. If you find any issues related to standards compliance, please send a pull request!

Features

Instead of using league/commonmark to actually render the HTML, we use it to parse Markdown into an Abstract Syntax Tree, then we create real bona fide XHP nodes from that AST.

Example

function getXhp(): XHPRoot
{
    $str = <<<EOD
# Hello!
This is great
* Don't you think?
EOD;
    return <axe:markdown text={$str}/>;
}

Calling this function will produce XHP nodes exactly like this:

<h1>Hello!</h1><p>This is great</p><ul><li>Don't you think?</li></ul>

You can also supply your own DocParser in case you've registered custom extensions.

$environment = League\CommonMark\Environment::createCommonMarkEnvironment();
// customize Environment
$docParser = new League\CommonMark\DocParser($environment);
// customize DocParser
echo <axe:markdown text={$text} docParser={$docParser}/>;