Croogodown
This plugin enables use of Markdown (Using the commonmark standard) for nodes., (*1)
NB. This does not convert existing HTML nodes to Markdown!, (*2)
Installation
Install using composer by running composer require dakota/croogomark
., (*3)
Usage
-
Activate the plugin, (*4)
-
Disable the CkEditor plugin, (*5)
-
Create or edit a node, (*6)
Requirements
- Croogo 2.2 - http://croogo.org/
- PHP 5.3.3
Advanced usage
When markdown text is rendered into HTML, a number of Croogo hooks are triggered.
This makes it possible to alter the behaviour of the CommonMark library., (*7)
The hooks are:, (*8)
-
Helper.Markdown.beforeMarkdownParse
- Receives two arguments and is triggered after the CommonMark environment is created, but before the AST is generated. The arguments are:
** environment
- the CommonMark environment object
** markdown
- the text that will be rendered.
-
Helper.Markdown.beforeMarkdownRender
- Receives one argument, and is triggered after the AST is generated, but before the HTML is rendered.
** ast
- The CommonMark AST document
-
Helper.Markdown.afterMarkdownRender
- Receives one argument, and is triggered after the HTML is generated.
** rendered
- The rendered HTML
Custom parsers and renderers
Using the hooks, it is possible to implement your own custom block or inline parser and renderer.
For example, to implement the twitter example given in the CommonMark documentation
you could do the following:, (*9)
//Config/bootstrap.php
CakeEventManager::instance()->attach(function ($event) {
//Assuming that you've created the TwitterHandleParser in Lib/
App::uses('TwitterHandleParser', 'Lib');
$event->data['environment']->addInlineParser(new TwitterHandleParser());
}, 'Helper.Markdown.beforeMarkdownParse');