Markdown helper class.

Calling Markdown::parse($text) returns the HTML corresponding to the Markdown input in $text.

October CMS uses ParsedownExtra as its Markdown parser, but fires markdown.beforeParse and markdown.parse events allowing hooks into the default parsing,

The markdown.beforeParse event passes a MarkdownData instance, containing a public $text variable. Event listeners can modify $text, for example to filter out or protect snippets from being interpreted by ParseDown.

Similarly, markdown.parse is fired after ParseDown has interpreted the (possibly modified) input. This event passes an array [$text, $data], where $text is the original unmodified Markdown input, and $data is the HTML code generated by ParseDown.

Protected Properties

protected ParsedownExtra $parser

parser is the parsedown instance

protected array $emitterSingleEventCollection

emitterSingleEventCollection of events to be fired once only

protected array $emitterEventCollection

emitterEventCollection of all registered events

protected array $emitterEventSorted

emitterEventSorted collection

Public Methods

public bindEvent()

public bindEvent($event, $callback, $priority = 0): void 

bindEvent creates a new event binding

public bindEventOnce()

public bindEventOnce($event, $callback, $priority = 0): void 

bindEventOnce creates a new event binding that fires once only

public fireEvent()

public fireEvent(
    string $event,
    array $params = [],
    boolean $halt = false
): array 

fireEvent and call the listeners

public parse()

public parse($text): string 

parse text using Markdown and Markdown-Extra

public parseClean()

public parseClean($text): string 

parseClean enables safe mode where the resulting HTML is cleaned using a sanitizer

public parseIndent()

public parseIndent($text): string 

parseIndent disables code blocks caused by indentation

public parseLine()

public parseLine($text): string 

parseLine parses a single line

public parseSafe()

public parseSafe($text): string 

parseSafe is stricter than parse clean allowing no HTML at all except for basic protocols such as https://, ftps://, mailto:, etc.

public unbindEvent()

public unbindEvent($event = null): void 

unbindEvent destroys an event binding

Protected Methods

protected emitterEventSortEvents()

protected emitterEventSortEvents($eventName, $combined = []): array 

emitterEventSortEvents sorts the listeners for a given event by priority

protected getParser()

protected getParser(): October\Rain\Parse\Parsedown\ParsedownExtra 

getParser returns an instance of the parser

protected parseInternal()

protected parseInternal($text, $method = 'text'): string 

parseInternal is an internal method for parsing