In this case it is Laravel but any PHP framework could use this.

Get the Library

I used the dflydev-markdown library which uses php-markdown as it’s base. 1

As it notes I load it up with composer.json and I am ready to use it.

Inject the class into your controller

At the controller level I inject it like this


use dflydev\markdown\MarkdownExtraParser;

class BaseController {

    public $mk;

    public function __construct(MarkdownExtraParser $mk = null)
        $this->mk       = ($mk == null) ? new MarkdownExtraParser() : $mk;

Later on I call to it on both update and store on any of my Controllers that extend this class.

Add a new field to your Posts or other content type

But the other step here is to add a rendered_body field to my models/tables. Then on store and update I write to these but on edit I am working on the body field which is markdown.

$data['rendered_body']  = $this->mk->transformMarkdown($data['body']);

Render it in the View

And in my Views I render the rendered_body field and NOT the body field which stores the raw text. This idea I got from

Now with the help of the docs on php-markdown I can do most of the work I need to make a post, embed video, images etc.


As far as uploading images I use Dropbox for that so it is really not part of my needs. With dropbox I just take a snapshot and it auto uploads the image and I get the url in my clipboard. Though I then have to go to the URL and get the real URL. Still working on that.

	"name": "laravel/laravel",
	"description": "The Laravel Framework.",
	"keywords": ["framework", "laravel"],
	"license": "MIT",
        "repositories": [
              "type": "git",
              "url": ""
	"require": {
		"laravel/framework": "4.1.*",
                "dflydev/markdown": "dev-master"
	"autoload": {
		"classmap": [
    "require-dev": {
        "way/generators": "2.*",
        "schickling/backup": "dev-master"
	"scripts": {
		"post-install-cmd": [
			"php artisan clear-compiled",
			"php artisan optimize"
		"post-update-cmd": [
			"php artisan clear-compiled",
			"php artisan optimize"
		"post-create-project-cmd": [
			"php artisan key:generate"
	"config": {
		"preferred-install": "dist"
	"minimum-stability": "stable"

  1. I may start using this michelf since the one I am using now is marked depreciated. But I have already made a change to this one so it works a little better with my settings. My fork is here my fork and my composer.json looks below 2 ↩︎

  2. ↩︎