From 880bd4dae13f21027808ac087d85cc241983144c Mon Sep 17 00:00:00 2001 From: Forrest Oliphant Date: Wed, 16 Mar 2016 09:31:36 -0400 Subject: [PATCH 1/5] demo show block json --- demo/demo.js | 2 ++ demo/index.html | 2 ++ 2 files changed, 4 insertions(+) diff --git a/demo/demo.js b/demo/demo.js index 95e1d42..532999b 100644 --- a/demo/demo.js +++ b/demo/demo.js @@ -18,9 +18,11 @@ document.addEventListener('DOMContentLoaded', function () { window.addEventListener('message', function (message) { let iframe = document.getElementById('demo'); let preview = document.getElementById('preview'); + let block = document.getElementById('block'); switch (message.data.topic) { case 'changed': + block.textContent = JSON.stringify(message.data.payload, null, 2) preview.innerHTML = message.data.payload.html let previewLang = document.getElementById('preview_language') previewLang.innerHTML = message.data.payload.metadata.programmingLanguage diff --git a/demo/index.html b/demo/index.html index e9840be..36d3bcf 100644 --- a/demo/index.html +++ b/demo/index.html @@ -8,5 +8,7 @@

Editor

Results

+

Block

+

   
 

From 82608585ac8e3777b0b877359f7539b175855fd6 Mon Sep 17 00:00:00 2001
From: Forrest Oliphant 
Date: Wed, 16 Mar 2016 09:32:16 -0400
Subject: [PATCH 2/5] encodeXML; fixes #4

---
 demo/demo.js | 2 +-
 src/index.js | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/demo/demo.js b/demo/demo.js
index 532999b..625ff4a 100644
--- a/demo/demo.js
+++ b/demo/demo.js
@@ -10,7 +10,7 @@ document.addEventListener('DOMContentLoaded', function () {
           programmingLanguage: 'text/javascript'
         },
         id: 'd4be36b0-d18e-438c-8564-9ae79963b5e4',
-        html: '
let foo = \'bar\';\n<blink>Hello</blink>
' + html: '
let foo = \'bar\';\n<blink>Hello...</blink>
' } }, '*'); }); diff --git a/src/index.js b/src/index.js index 6814ba9..7836f73 100644 --- a/src/index.js +++ b/src/index.js @@ -1,5 +1,5 @@ import * as CodeMirror from 'codemirror' -import {encodeHTML,decodeHTML} from 'entities' +import {encodeXML, decodeHTML} from 'entities' import 'codemirror/lib/codemirror.css' import 'codemirror/theme/monokai.css' @@ -62,7 +62,7 @@ export default class CEd { } prepareHTML (code, mime) { - return '
' + encodeHTML(code) + '
' + return '
' + encodeXML(code) + '
' } set mode (mode) { From 09a364ae59926926e5d1094eabad75c47ad50bf9 Mon Sep 17 00:00:00 2001 From: Forrest Oliphant Date: Wed, 16 Mar 2016 10:18:20 -0400 Subject: [PATCH 3/5] switch to he #4 --- package.json | 2 +- src/index.js | 9 ++++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 7069a5d..01285b9 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ "license": "MIT", "dependencies": { "codemirror": "^5.10.0", - "entities": "^1.1.1" + "he": "^0.5.0" }, "devDependencies": { "babel-core": "^6.3.26", diff --git a/src/index.js b/src/index.js index 7836f73..b34666f 100644 --- a/src/index.js +++ b/src/index.js @@ -1,5 +1,7 @@ +import {encode, decode} from 'he' +encode.options.useNamedReferences = true + import * as CodeMirror from 'codemirror' -import {encodeXML, decodeHTML} from 'entities' import 'codemirror/lib/codemirror.css' import 'codemirror/theme/monokai.css' @@ -15,6 +17,7 @@ import 'codemirror/mode/shell/shell' import 'codemirror/mode/swift/swift' import 'codemirror/mode/yaml/yaml' + export default class CEd { constructor (options) { if (!options) options = {} @@ -62,7 +65,7 @@ export default class CEd { } prepareHTML (code, mime) { - return '
' + encodeXML(code) + '
' + return '
' + encode(code) + '
' } set mode (mode) { @@ -76,7 +79,7 @@ export default class CEd { this.id = block.id let el = document.createElement('div') el.innerHTML = this.block.html - this.editor.setValue(decodeHTML(el.textContent)) + this.editor.setValue(decode(el.textContent)) if (this.block.metadata && this.block.metadata.programmingLanguage) { this.mode = this.block.metadata.programmingLanguage if (this.selector) this.selector.value = this.block.metadata.programmingLanguage From 74257c7119e91df2bf2292e06e97fe4514fd04ae Mon Sep 17 00:00:00 2001 From: Forrest Oliphant Date: Wed, 16 Mar 2016 10:27:19 -0400 Subject: [PATCH 4/5] don't double-decode --- demo/demo.js | 2 +- src/index.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/demo/demo.js b/demo/demo.js index 625ff4a..0e6097b 100644 --- a/demo/demo.js +++ b/demo/demo.js @@ -10,7 +10,7 @@ document.addEventListener('DOMContentLoaded', function () { programmingLanguage: 'text/javascript' }, id: 'd4be36b0-d18e-438c-8564-9ae79963b5e4', - html: '
let foo = \'bar\';\n<blink>Hello...</blink>
' + html: '
&amp;\nlet foo = \'bar\';\n<blink>Hello...</blink>
' } }, '*'); }); diff --git a/src/index.js b/src/index.js index b34666f..5a91750 100644 --- a/src/index.js +++ b/src/index.js @@ -79,7 +79,7 @@ export default class CEd { this.id = block.id let el = document.createElement('div') el.innerHTML = this.block.html - this.editor.setValue(decode(el.textContent)) + this.editor.setValue(el.textContent) if (this.block.metadata && this.block.metadata.programmingLanguage) { this.mode = this.block.metadata.programmingLanguage if (this.selector) this.selector.value = this.block.metadata.programmingLanguage From 800d7f02c3862d5103abe4bdbc619ce50f89dbe5 Mon Sep 17 00:00:00 2001 From: Forrest Oliphant Date: Wed, 16 Mar 2016 10:39:42 -0400 Subject: [PATCH 5/5] don't need decode dummy el.textContent works --- src/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/index.js b/src/index.js index 45d6007..46bb5f1 100644 --- a/src/index.js +++ b/src/index.js @@ -1,4 +1,4 @@ -import {encode, decode} from 'he' +import {encode} from 'he' encode.options.useNamedReferences = true import * as CodeMirror from 'codemirror'