dakota/croogomark

A croogo plugin for using markdown for content

Installs: 19

Dependents: 0

Suggesters: 0

Stars: 2

Watchers: 1

Forks: 0

Open Issues: 0

Type:croogo-plugin

0.2.0 2015-01-08 07:04 UTC

README

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');