Skip to content
A croogo plugin for using markdown for content
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


This plugin enables use of Markdown (Using the commonmark standard) for nodes.

NB. This does not convert existing HTML nodes to Markdown!


Install using composer by running composer require dakota/croogomark.


  1. Activate the plugin

  2. Disable the CkEditor plugin

  3. Create or edit a node


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.

The hooks are:

  • 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:

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');
You can’t perform that action at this time.