Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: master

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 code Added the markdown libraries August 07, 2012
Octocat-spinner-32 css
Octocat-spinner-32 images
Octocat-spinner-32 javascript
Octocat-spinner-32 scss Bugfixes everywhere June 30, 2012
Octocat-spinner-32 templates
Octocat-spinner-32 .gitignore
Octocat-spinner-32 README.md
Octocat-spinner-32 _config.php
Octocat-spinner-32 config.rb initial commit January 29, 2012
README.md

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

Something went wrong with that request. Please try again.