Skip to content

wolfv/silverstripe-markdowneditorfield

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Silverstripe 3.0 MarkdownEditor Field

Requires Silverstripe 3.0 and a modern browser.

A simple, yet versatile field for nice textediting in the Silverstripe CMS. It's based on the ACE Editor.

Features:

  • Suggest Link: [Testlink](: leads to an autosuggest-field.

  • Suggest Image: ![Image Description](! opens an image-autosuggest field.

Getting the markdown editor field as a replacement for TinyMCE is easy:

public function getCMSFields() {
		$fields = parent::getCMSFields();
		$md = new MarkdownField('Content', 'Content');
		$md->addExtraClass('stacked'); // Little different Layout in CMS
		$fields->addFieldToTab('Root.Main', $md);
		return $fields;
}

To use the Markdown-Formatted Content on the website, use e.g. instead of $Content $Content.Parse(MarkdownParser).

To get the same Syntax Highlighting as in the preview pane inside the Editor, include markdown/javascript/lib/highlight/src/highlight.pack.js to your template. Initialization could look like this (with jQuery):

$(document).ready(function() {
  $('pre code').each(function(i, e) {hljs.highlightBlock(e)});
});

More examples are on http://softwaremaniacs.org/soft/highlight/en/description/ (All credit to them)


Example for a Page

DataObject with an additional MarkdownText Field, that automatically caches parsed Markdown into the "Content" Field, so you can later add TinyMCE back.

class Page extends SiteTree {

	public static $db = array(
		"MarkdownText" => "Text"
	);	

	public function getCMSFields() {
		$fields = parent::getCMSFields();
		
		$md = new MarkdownField('MarkdownText', 'Markdown Content');
		$md->addExtraClass('stacked'); // Little different Layout in CMS
	
		$fields->addFieldToTab('Root.Main', $md, 'Content');
		$fields->removeByName('Content');
		
		return $fields;
	}

	public function onBeforeWrite() {
		$Parser = new MarkdownParser($this->MarkdownText);
		$this->Content = $Parser->parse();
		parent::onBeforeWrite();
	}
}

The Markdown Logo was made by Dustin Curtis. All other icons were made by Orman Clark Premium Pixels

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages