Skip to content
The last Markdown editor, ever.
JavaScript CSS HTML
Latest commit 9a1d7ed Jun 14, 2016 @joemccann committed on GitHub Merge pull request #539 from benjamin-albert/pre_build
Makes Travis CI produce and deploy pre-built .zip and .tar.gz archives
Failed to load latest commit information.
gulp Makes the dist task produce tar.gz and .zip files Jun 4, 2016
nginx nginx now serves content Dec 1, 2015
plugins Merge pull request #544 from benjamin-albert/preview_as May 19, 2016
public Merge pull request #544 from benjamin-albert/preview_as May 20, 2016
routes removed core.js Sep 30, 2015
views Adds the "preview as" menu to the navbar May 17, 2016
.dockerignore added some meaningful defaults Nov 29, 2015
.editorconfig add editorconfig Oct 1, 2014
.gitignore ignore build css js files Dec 5, 2015
.jshintrc add jshintrc Oct 29, 2014
.travis.yml Removes on.repo from .travis.yml Jun 4, 2016
Dockerfile Working Docker image/container Mar 25, 2016
LICENSE updated License year Sep 24, 2015
Procfile Add Procfile. Apr 16, 2014 Merge remote-tracking branch 'joemccann/master' into pre_build_travis Jun 4, 2016
app.js Revert "You can now set the bind address by declaring the BIND_ADDRES… May 4, 2016
config.js add author to config Oct 2, 2014
deploy.yml adding yml files for N|Solid and docker Nov 29, 2015
dillinger.service Captured deployment in ansible play. Created systemd file to manage c… Sep 12, 2015
docker-compose.yml Updated logging, fixed compose file. Mar 28, 2016
gulpfile.js Fixed missing dependency Jan 23, 2016
karma.conf.js fix karma Oct 31, 2014
npm-shrinkwrap.json Github plugin: Paginate server side w/ link header May 16, 2016
nsolid.yml nginx now serves content Dec 1, 2015
package.json Merge remote-tracking branch 'joemccann/master' into pre_build_travis Jun 4, 2016
webpack.config.js move markdown-it to standalone module, and make it searchable in angular May 10, 2015


Dillinger is a cloud-enabled, mobile-ready, offline-storage, AngularJS powered HTML5 Markdown editor.

  • Type some Markdown on the left
  • See HTML in the right
  • Magic

You can also:

  • Import and save files from GitHub, Dropbox, Google Drive and One Drive
  • Drag and drop files into Dillinger
  • Export documents as Markdown, HTML and PDF

Markdown is a lightweight markup language based on the formatting conventions that people naturally use in email. As John Gruber writes on the Markdown site

The overriding design goal for Markdown's formatting syntax is to make it as readable as possible. The idea is that a Markdown-formatted document should be publishable as-is, as plain text, without looking like it's been marked up with tags or formatting instructions.

This text you see here is actually written in Markdown! To get a feel for Markdown's syntax, type some text into the left window and watch the results in the right.




Dillinger uses a number of open source projects to work properly:

And of course Dillinger itself is open source with a public repository on GitHub.


Dillinger requires Node.js v4+ to run.

Download and extract the latest pre-built release.

Install the dependencies and start the server.

$ cd dillinger
$ npm install --production
$ NODE_ENV=production node app


Dillinger is currently extended with the following plugins

  • Dropbox
  • Github
  • Google Drive
  • OneDrive

Readmes, how to use them in your own application can be found here:


Want to contribute? Great!

Dillinger uses Gulp + Webpack for fast developing. Make a change in your file and instantanously see your updates!

Open your favorite Terminal and run these commands.

First Tab:

$ node app

Second Tab:

$ gulp watch

(optional) Third:

$ karma start

Building for source

For production release:

$ gulp build --prod

Generating pre-built zip archives for distribution:

$ gulp build dist --prod


Dillinger is very easy to install and deploy in a Docker container.

By default, the Docker will expose port 80, so change this within the Dockerfile if necessary. When ready, simply use the Dockerfile to build the image.

cd dillinger
docker build -t <youruser>/dillinger:latest .

This will create the dillinger image and pull in the necessary dependencies. Once done, run the Docker and map the port to whatever you wish on your host. In this example, we simply map port 80 of the host to port 80 of the Docker (or whatever port was exposed in the Dockerfile):

docker run -d -p 80:8080 --restart="always" <youruser>/dillinger:latest

Verify the deployment by navigating to your server address in your preferred browser.

N|Solid and NGINX

More details coming soon.


Change the path for the nginx conf mounting path to your full path, not mine!


  • Write Tests
  • Rethink Github Save
  • Add Code Comments
  • Add Night Mode



Free Software, Hell Yeah!

Something went wrong with that request. Please try again.