Implements an inline Markdown syntax in PHP for Uniter.
Please note that you probably shouldn't use this in production. It's intended to demonstrate the unified platform config feature of Uniter only. That said, feel free to contribute any improvements that still fit within that (admittedly contrived) use-case.
In reality, you'd probably want to avoid extending PHP's syntax for this particular feature, or at least perform a PHP source-to-source transpilation. That said, PHP currently lacks a source-map equivalent, so you'd probably have to bunch your generated code up onto a smaller number of lines in order to maintain the correct line numbers after transpilation.
$ npm install --save uniter uniter-markdown-plugin
uniter.config.js
:
module.exports = {
'plugins': [
// Import this plugin itself
require('uniter-markdown-plugin'),
],
};
Note that interpolation works too:
my_markdown.php
:
<?php
$name = 'Anastasia';
$where = 'here';
$myMarkdownTree = markdown {
### My intro
- Firstly, hello *$name*, how are _you_?
- Secondly, $where did you go?
};
return $myMarkdownTree->toHtml();
Note that the uniter.config.js
file will be detected automatically,
assuming it is in the same folder as your entry script:
$ uniter my_markdown.php
As above, I don't recommend you use this plugin in production - but feel free to experiment!
Something like the following:
<?php
$myMarkdownTree = markdown {
My plain text with * an asterisk.
};
will raise a PHP Parse error: syntax error, unexpected ...
error.
To overcome this, you'll need to backslash-escape the special character, like so:
my_markdown.php
<?php
$myMarkdownTree = markdown {
My plain text with \* an asterisk.
};
print $myMarkdownTree->toHtml();
- this should then give the desired result. Note that the backslash will be removed:
$ uniter my_markdown.php
My plain text with * an asterisk.
- Follow me on Twitter for updates: https://twitter.com/@asmblah