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.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
Config
View/Helper
LICENSE
README.md
composer.json

README.md

Croogodown

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

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

Installation

Install using composer by running composer require dakota/croogomark.

Usage

  1. Activate the plugin

  2. Disable the CkEditor plugin

  3. Create or edit a node

Requirements

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:

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