@@ -11,6 +11,9 @@ var assign = Object.assign || function(d, s) {
1111function cleanCodePenData ( data ) {
1212 if ( docObject . codepen ) {
1313 docObject . codepen . forEach ( function ( replacement ) {
14+ if ( data . html ) {
15+ data . html = data . html . split ( replacement [ 0 ] ) . join ( replacement [ 1 ] ) ;
16+ }
1417 if ( data . js ) {
1518 data . js = data . js . split ( replacement [ 0 ] ) . join ( replacement [ 1 ] ) ;
1619 }
@@ -19,20 +22,8 @@ function cleanCodePenData(data) {
1922}
2023
2124function 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, "'" ) ;
3525
26+ var JSONstring = JSON . stringify ( data ) ;
3627
3728 var form = '<form action="https://codepen.io/pen/define" method="POST" target="_blank">' +
3829 '<input type="hidden" name="data">' +
@@ -128,6 +119,12 @@ module.exports = function() {
128119 if ( data . html ) {
129120 data . html = data . html . trim ( ) ;
130121 }
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+ }
131128 if ( data ) {
132129 cleanCodePenData ( data ) ;
133130 if ( window . CREATE_CODE_PEN ) {
@@ -146,6 +143,10 @@ module.exports = function() {
146143
147144 var jsCode = el . querySelector ( "[data-for=js] code" ) ;
148145 var jsText = jsCode ? jsCode . textContent . trim ( ) : "" ;
146+ if ( jsText ) {
147+ htmlText += "\n<script type=\"module\">\n" + jsText + "\n</script>" ;
148+ jsText = "" ;
149+ }
149150
150151 var cssText = getStylesFromIframe ( el . querySelector ( "iframe" ) ) ;
151152
0 commit comments