@@ -11,6 +11,9 @@ var assign = Object.assign || function(d, s) {
11
11
function cleanCodePenData ( data ) {
12
12
if ( docObject . codepen ) {
13
13
docObject . codepen . forEach ( function ( replacement ) {
14
+ if ( data . html ) {
15
+ data . html = data . html . split ( replacement [ 0 ] ) . join ( replacement [ 1 ] ) ;
16
+ }
14
17
if ( data . js ) {
15
18
data . js = data . js . split ( replacement [ 0 ] ) . join ( replacement [ 1 ] ) ;
16
19
}
@@ -19,20 +22,8 @@ function cleanCodePenData(data) {
19
22
}
20
23
21
24
function createCodePen ( data ) {
22
- if ( data . html ) {
23
- // HTML needs to be escaped because put this in the page
24
- data = assign ( { } , data ) ;
25
- data . html = data . html . replace ( / & / g, "&" )
26
- . replace ( / < / g, "<" )
27
- . replace ( / > / g, ">" ) ;
28
- }
29
-
30
- var JSONstring =
31
- JSON . stringify ( data )
32
- // Quotes will screw up the JSON
33
- . replace ( / " / g, """ )
34
- . replace ( / ' / g, "'" ) ;
35
25
26
+ var JSONstring = JSON . stringify ( data ) ;
36
27
37
28
var form = '<form action="https://codepen.io/pen/define" method="POST" target="_blank">' +
38
29
'<input type="hidden" name="data">' +
@@ -128,6 +119,12 @@ module.exports = function() {
128
119
if ( data . html ) {
129
120
data . html = data . html . trim ( ) ;
130
121
}
122
+ if ( data . js && data . js . indexOf ( 'import' ) > - 1 ) {
123
+ var jsAsModule = "<script type=\"module\">\n" + data . js + "\n</script>" ;
124
+ data . html = data . html ? data . html + "\n\n" + jsAsModule : jsAsModule ;
125
+ data . js = "" ;
126
+ data . editors = "1001" ; // HTML, Result, & Console
127
+ }
131
128
if ( data ) {
132
129
cleanCodePenData ( data ) ;
133
130
if ( window . CREATE_CODE_PEN ) {
@@ -146,6 +143,10 @@ module.exports = function() {
146
143
147
144
var jsCode = el . querySelector ( "[data-for=js] code" ) ;
148
145
var jsText = jsCode ? jsCode . textContent . trim ( ) : "" ;
146
+ if ( jsText ) {
147
+ htmlText += "\n<script type=\"module\">\n" + jsText + "\n</script>" ;
148
+ jsText = "" ;
149
+ }
149
150
150
151
var cssText = getStylesFromIframe ( el . querySelector ( "iframe" ) ) ;
151
152
0 commit comments