JavaScript CSS HTML Shell
Clone or download
Latest commit 18a9c0f Jun 25, 2018
Failed to load latest commit information.
bin updated k8s Feb 9, 2018
configs gitkeep Apr 8, 2017
gulp fixed #616 with angular abstraction fuckery Apr 7, 2017
nginx nginx now serves content Dec 1, 2015
plugins BUGFIX Dropbox issue #674 Apr 29, 2018
public latest build Jun 25, 2018
routes client side code and css added Mar 14, 2017
views fixed js bug in production Jun 25, 2018
.dockerignore removed config Jun 25, 2018
.editorconfig add editorconfig Oct 1, 2014
.gitignore add docker .env file Jul 19, 2016
.jshintrc add jshintrc Oct 29, 2014
.travis.yml Build the snap after success, using the tested node version Nov 4, 2016
Dockerfile copying everything; install dev deps Jun 25, 2018 revert 3.22.5 Sep 23, 2017
LICENSE Update LICENSE Sep 5, 2017
Procfile Add Procfile. Apr 16, 2014 Fixed the links in the plugins table Jan 29, 2018
app.js formatting Jun 25, 2018
config.js updated readme with breakdance, updated site description Feb 12, 2017
dillinger.k8s.production.yml 3.24.1 Feb 9, 2018
dillinger.service Captured deployment in ansible play. Created systemd file to manage c… Sep 13, 2015
docker-compose.yml updated k8s Feb 9, 2018
gulpfile.js Fixed missing dependency Jan 23, 2016
karma.conf.js updated karma modules to fix broken test env Dec 23, 2016
package-lock.json latest build Jun 25, 2018
package.json latest build Jun 25, 2018
snapcraft.yaml use the latest node lts version to build the snap May 15, 2017
webpack.config.js updated uglify-js; removed deprecation warnings in webpack build Oct 22, 2016



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

New Features!

  • Import a HTML file and watch it magically convert to Markdown
  • Drag and drop images (requires your Dropbox account be linked)

You can also:

  • Import and save files from GitHub, Dropbox, Google Drive and One Drive
  • Drag and drop markdown and HTML 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.

Install the dependencies and devDependencies and start the server.

$ cd dillinger
$ npm install -d
$ node app

For production environments...

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


Dillinger is currently extended with the following plugins. Instructions on how to use them in your own application are linked below.

Dropbox plugins/dropbox/
Github plugins/github/
Google Drive plugins/googledrive/
OneDrive plugins/onedrive/
Medium plugins/medium/
Google Analytics plugins/googleanalytics/


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 test

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 8080, so change this within the Dockerfile if necessary. When ready, simply use the Dockerfile to build the image.

cd dillinger
docker build -t joemccann/dillinger:${package.json.version}

This will create the dillinger image and pull in the necessary dependencies. Be sure to swap out ${package.json.version} with the actual version of Dillinger.

Once done, run the Docker image and map the port to whatever you wish on your host. In this example, we simply map port 8000 of the host to port 8080 of the Docker (or whatever port was exposed in the Dockerfile):

docker run -d -p 8000:8080 --restart="always" <youruser>/dillinger:${package.json.version}

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

Kubernetes + Google Cloud



  • Write MORE Tests
  • Add Night Mode



Free Software, Hell Yeah!