dillinger.io Open in urlscan Pro
2a06:98c1:3120::3  Public Scan

Submitted URL: http://dillinger.io/
Effective URL: https://dillinger.io/
Submission: On December 06 via api from US — Scanned from NL

Form analysis 3 forms found in the DOM

POST

<form method="POST" id="downloader" class="ng-pristine ng-valid">
  <input type="hidden" name="name" autocomplete="off">
  <input type="hidden" name="unmd" autocomplete="off">
  <input type="hidden" name="formatting" autocomplete="off">
  <input type="hidden" name="preview" autocomplete="off">
</form>

<form class="ng-pristine ng-valid ng-valid-min">
  <span>Tab Size</span>
  <input type="number" ng-model="tabsize" min="1" ng-change="user.storeTabSize()" class="ng-pristine ng-untouched ng-valid ng-not-empty ng-valid-min">
</form>

<form class="ng-pristine ng-valid">
  <span>Keybindings</span>
  <select ng-model="keybindings" ng-change="user.storeKeybindings()" class="ng-pristine ng-untouched ng-valid ng-not-empty">
    <!-- ngRepeat: (key, value) in allKeybindings -->
    <option ng-repeat="(key, value) in allKeybindings" value="Ace" class="ng-binding ng-scope" selected="selected">Ace</option><!-- end ngRepeat: (key, value) in allKeybindings -->
    <option ng-repeat="(key, value) in allKeybindings" value="Vim" class="ng-binding ng-scope">Vim</option><!-- end ngRepeat: (key, value) in allKeybindings -->
    <option ng-repeat="(key, value) in allKeybindings" value="Emacs" class="ng-binding ng-scope">Emacs</option><!-- end ngRepeat: (key, value) in allKeybindings -->
  </select>
</form>

Text Content

 * Auto Save
 * Word Count
 * Character Count
 * Scroll Sync
 * Tab Size
 * Keybindings AceVimEmacs
 * Markdown Help
 * WTF is Dillinger?
 * Reset Profile

 * Services
   * Link with Dropbox
   * Link with Bitbucket
   * Link with Github
   * Link with Medium
   * Link with Google Drive
   * Link with One Drive
 * Save to
   * Dropbox
   * Github
   * Medium
   * Google Drive
   * One Drive
 * Import from
   * Dropbox
   * Bitbucket
   * Github
   * Google Drive
   * One Drive
   * Markdown File
   * HTML File
 * Documents
     
   * Untitled Document.md
     

New Document Save Session

 * Preview as
   * HTML
   * Styled HTML
   * Markdown
   * PDF
 * Export as
   * HTML
   * Styled HTML
   * Markdown
   * PDF
 * Save to
   * Dropbox
   * Github
   * Medium
   * Google Drive
   * One Drive
 * Import from
   * Dropbox
   * Bitbucket
   * Github
   * Google Drive
   * One Drive
   * Markdown File
   * HTML File
 * Preview
 * Settings




DOCUMENT NAME

Reading Time: 3 min read Words: 549

Characters: 3734


MARKDOWN

Toggle Zen Mode


PREVIEW

Toggle Mode
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193

# Dillinger
## _The Last Markdown Editor, Ever_

[![N|Solid](https://cldup.com/dTxpPi9lDf.thumb.png)](https://nodesource.com/products/nsolid)

[![Build
Status](https://travis-ci.org/joemccann/dillinger.svg?branch=master)](https://travis-ci.org/joe
mccann/dillinger)

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

- Type some Markdown on the left
- See HTML in the right
- ✨Magic ✨

## Features

- Import a HTML file and watch it magically convert to Markdown
- Drag and drop images (requires your Dropbox account be linked)
- 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][df1]

> 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.

## Tech

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

- [AngularJS] - HTML enhanced for web apps!
- [Ace Editor] - awesome web-based text editor
- [markdown-it] - Markdown parser done right. Fast and easy to extend.
- [Twitter Bootstrap] - great UI boilerplate for modern web apps
- [node.js] - evented I/O for the backend
- [Express] - fast node.js network app framework [@tjholowaychuk]
- [Gulp] - the streaming build system
- [Breakdance](https://breakdance.github.io/breakdance/) - HTML
to Markdown converter
- [jQuery] - duh

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

## Installation

Dillinger requires [Node.js](https://nodejs.org/) v10+ to run.

Install the dependencies and devDependencies and start the server.

```sh
cd dillinger
npm i
node app
```

For production environments...

```sh
npm install --production
NODE_ENV=production node app
```

## Plugins

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

| Plugin | README |
| ------ | ------ |
| Dropbox | [plugins/dropbox/README.md][PlDb] |
| GitHub | [plugins/github/README.md][PlGh] |
| Google Drive | [plugins/googledrive/README.md][PlGd] |
| OneDrive | [plugins/onedrive/README.md][PlOd] |
| Medium | [plugins/medium/README.md][PlMe] |
| Google Analytics | [plugins/googleanalytics/README.md][PlGa] |

## Development

Want to contribute? Great!

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

Open your favorite Terminal and run these commands.

First Tab:

```sh
node app
```

Second Tab:

```sh
gulp watch
```

(optional) Third:

```sh
karma test
```

#### Building for source

For production release:

```sh
gulp build --prod
```

Generating pre-built zip archives for distribution:

```sh
gulp build dist --prod
```

## Docker

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.

```sh
cd dillinger
docker build -t <youruser>/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):

```sh
docker run -d -p 8000:8080 --restart=always --cap-add=SYS_ADMIN --name=dillinger
<youruser>/dillinger:${package.json.version}
```

> Note: `--capt-add=SYS-ADMIN` is required for PDF rendering.

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

```sh
127.0.0.1:8000
```

## License

MIT

**Free Software, Hell Yeah!**

[//]: # (These are reference links used in the body of this note and get
stripped out when the markdown
processor does its job. There is no need to format nicely because it shouldn't
be seen. Thanks SO -
http://stackoverflow.com/questions/4823468/store-comments-in-markdown-syntax)

[dill]: <https://github.com/joemccann/dillinger>
[git-repo-url]: <https://github.com/joemccann/dillinger.git>
[john gruber]: <http://daringfireball.net>
[df1]: <http://daringfireball.net/projects/markdown/>
[markdown-it]: <https://github.com/markdown-it/markdown-it>
[Ace Editor]: <http://ace.ajax.org>
[node.js]: <http://nodejs.org>
[Twitter Bootstrap]: <http://twitter.github.com/bootstrap/>
[jQuery]: <http://jquery.com>
[@tjholowaychuk]: <http://twitter.com/tjholowaychuk>
[express]: <http://expressjs.com>
[AngularJS]: <http://angularjs.org>
[Gulp]: <http://gulpjs.com>

[PlDb]:
<https://github.com/joemccann/dillinger/tree/master/plugins/dropbox/README.md>
[PlGh]:
<https://github.com/joemccann/dillinger/tree/master/plugins/github/README.md>
[PlGd]:
<https://github.com/joemccann/dillinger/tree/master/plugins/googledrive/README.md>
[PlOd]:
<https://github.com/joemccann/dillinger/tree/master/plugins/onedrive/README.md>
[PlMe]:
<https://github.com/joemccann/dillinger/tree/master/plugins/medium/README.md>
[PlGa]:
<https://github.com/RahulHP/dillinger/blob/master/plugins/googleanalytics/README.md>





XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX


DILLINGER


THE LAST MARKDOWN EDITOR, EVER





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

 * Type some Markdown on the left
 * See HTML in the right
 * ✨Magic ✨


FEATURES

 * Import a HTML file and watch it magically convert to Markdown
 * Drag and drop images (requires your Dropbox account be linked)
 * 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.


TECH

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

 * AngularJS - HTML enhanced for web apps!
 * Ace Editor - awesome web-based text editor
 * markdown-it - Markdown parser done right. Fast and easy to extend.
 * Twitter Bootstrap - great UI boilerplate for modern web apps
 * node.js - evented I/O for the backend
 * Express - fast node.js network app framework @tjholowaychuk
 * Gulp - the streaming build system
 * Breakdance - HTML
   to Markdown converter
 * jQuery - duh

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


INSTALLATION

Dillinger requires Node.js v10+ to run.

Install the dependencies and devDependencies and start the server.

cd dillinger
npm i
node app


For production environments…

npm install --production
NODE_ENV=production node app



PLUGINS

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

Plugin README Dropbox plugins/dropbox/README.md GitHub plugins/github/README.md
Google Drive plugins/googledrive/README.md OneDrive plugins/onedrive/README.md
Medium plugins/medium/README.md Google Analytics
plugins/googleanalytics/README.md


DEVELOPMENT

Want to contribute? Great!

Dillinger uses Gulp + Webpack for fast developing.
Make a change in your file and instantaneously 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



DOCKER

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 <youruser>/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 --cap-add=SYS_ADMIN --name=dillinger <youruser>/dillinger:${package.json.version}


> Note: --capt-add=SYS-ADMIN is required for PDF rendering.

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

127.0.0.1:8000



LICENSE

MIT

Free Software, Hell Yeah!