Skip to content

Commit feca26b

Browse files
authored
Merge pull request #859 from jwang1919/#815-external-starter-code
Insert popcode JS and CSS libraries on the top of the head tag
2 parents 791f9a0 + 4e4bde4 commit feca26b

1 file changed

Lines changed: 5 additions & 10 deletions

File tree

src/util/generatePreview.js

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
11
import castArray from 'lodash/castArray';
22
import pick from 'lodash/pick';
3-
import base64 from 'base64-js';
43
import loopBreaker from 'loop-breaker';
54
import libraries from '../config/libraries';
65
import previewFrameLibraries from '../config/previewFrameLibraries';
76

8-
const textEncoder = new TextEncoder('utf-8');
97
const parser = new DOMParser();
108

119
const sourceDelimiter = '/*__POPCODESTART__*/';
@@ -177,18 +175,15 @@ class PreviewGenerator {
177175
_attachCssLibrary(css) {
178176
const linkTag = this.previewDocument.createElement('link');
179177
linkTag.rel = 'stylesheet';
180-
181-
const base64encoded = base64.fromByteArray(textEncoder.encode(css));
182-
linkTag.href = `data:text/css;charset=utf-8;base64,${base64encoded}`;
183-
this._previewHead.appendChild(linkTag);
178+
linkTag.innerHTML = css;
179+
this._previewHead.insertBefore(linkTag, this._previewHead.firstChild);
184180
}
185181

186182
_attachJavascriptLibrary(javascript) {
187183
const scriptTag = this.previewDocument.createElement('script');
188-
const base64encoded = base64.fromByteArray(textEncoder.encode(javascript));
189-
scriptTag.src =
190-
`data:text/javascript;charset=utf-8;base64,${base64encoded}`;
191-
this.previewBody.appendChild(scriptTag);
184+
const javascriptText = String(javascript);
185+
scriptTag.innerHTML = javascriptText.replace(/<\/script>/g, '<\\/script>');
186+
this._previewHead.insertBefore(scriptTag, this._previewHead.firstChild);
192187
}
193188
}
194189

0 commit comments

Comments
 (0)