diff --git a/README.md b/README.md
index 7d3af29378..1539f3cb3c 100644
--- a/README.md
+++ b/README.md
@@ -29,7 +29,9 @@ Our [documentation pages](https://marked.js.org) are also rendered using marked
**In-browser:** `npm install marked --save`
-## Usage
+## Usage
+
+### Warning: 🚨 Marked does not [sanitize](https://marked.js.org/#/USING_ADVANCED.md#options) the output HTML by default 🚨
**CLI**
@@ -64,4 +66,3 @@ $ cat hello.html
## License
Copyright (c) 2011-2018, Christopher Jeffrey. (MIT License)
-
diff --git a/docs/README.md b/docs/README.md
index 6df149b860..f41160ce9f 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -39,6 +39,8 @@ These documentation pages are also rendered using marked 💯
Usage
+### Warning: 🚨 Marked does not [sanitize](https://marked.js.org/#/USING_ADVANCED.md#options) the output HTML by default 🚨
+
**CLI**
``` bash
diff --git a/docs/demo/demo.css b/docs/demo/demo.css
index 8e3e8fc5e8..e459d86870 100644
--- a/docs/demo/demo.css
+++ b/docs/demo/demo.css
@@ -53,3 +53,11 @@ header h1 {
flex-grow: 1;
flex-shrink: 1;
}
+
+#preview {
+ display: flex;
+}
+
+#preview iframe {
+ flex-grow: 1;
+}
diff --git a/docs/demo/demo.js b/docs/demo/demo.js
index 8db8e7146b..f12724596a 100644
--- a/docs/demo/demo.js
+++ b/docs/demo/demo.js
@@ -9,7 +9,7 @@ if (!window.fetch) {
var $inputElem = document.querySelector('#input');
var $outputTypeElem = document.querySelector('#outputType');
-var $previewElem = document.querySelector('#preview');
+var $previewIframe = document.querySelector('#preview iframe');
var $permalinkElem = document.querySelector('#permalink');
var $clearElem = document.querySelector('#clear');
var $htmlElem = document.querySelector('#html');
@@ -20,6 +20,13 @@ var $activeElem = null;
var changeTimeout = null;
var search = searchToObject();
+var iframeLoaded = false;
+$previewIframe.addEventListener('load', function () {
+ iframeLoaded = true;
+ inputDirty = true;
+ checkForChanges();
+})
+
if ('text' in search) {
$inputElem.value = search.text;
} else {
@@ -51,7 +58,7 @@ function handleChange() {
$panes[i].style.display = 'none';
}
$activeElem = document.querySelector('#' + $outputTypeElem.value);
- $activeElem.style.display = 'block';
+ $activeElem.style.display = '';
updateLink();
};
@@ -155,7 +162,9 @@ function checkForChanges() {
var parsed = marked.parser(lexed);
- $previewElem.innerHTML = (parsed);
+ if (iframeLoaded) {
+ $previewIframe.contentDocument.body.innerHTML = (parsed);
+ }
$htmlElem.value = (parsed);
$lexerElem.value = (lexedList.join('\n'));
diff --git a/docs/demo/index.html b/docs/demo/index.html
index cc2b378d65..57062e9ae1 100644
--- a/docs/demo/index.html
+++ b/docs/demo/index.html
@@ -42,6 +42,7 @@ Marked Demo
+
diff --git a/docs/demo/preview.html b/docs/demo/preview.html
new file mode 100644
index 0000000000..7e8c89fec5
--- /dev/null
+++ b/docs/demo/preview.html
@@ -0,0 +1,12 @@
+
+
+
+
+
+ marked.js preview
+
+
+
+
+
+