@innovastudio/contentbuilder 1.3.81 → 1.3.83
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
@@ -15048,6 +15048,79 @@ class HtmlUtil {
|
|
15048
15048
|
block.getAttribute('data-settings', uniqueID);
|
15049
15049
|
}
|
15050
15050
|
});
|
15051
|
+
} //Make absolute (for Export/Download)
|
15052
|
+
|
15053
|
+
|
15054
|
+
if (this.builder.makeAbsolute) {
|
15055
|
+
const convertMediaUrl = imgUrl => {
|
15056
|
+
// make absolute
|
15057
|
+
let img = document.createElement('img');
|
15058
|
+
img.src = imgUrl;
|
15059
|
+
img.setAttribute('data-absoluteurl', img.src);
|
15060
|
+
imgUrl = img.getAttribute('data-absoluteurl');
|
15061
|
+
return imgUrl;
|
15062
|
+
};
|
15063
|
+
|
15064
|
+
const convertBgUrl = imgUrl => {
|
15065
|
+
// make absolute
|
15066
|
+
let img = document.createElement('img');
|
15067
|
+
img.src = imgUrl;
|
15068
|
+
img.setAttribute('data-absoluteurl', img.src);
|
15069
|
+
imgUrl = img.getAttribute('data-absoluteurl'); // Do not use imgUrl directly, change base to [%PATH%] instead
|
15070
|
+
// (to prevent auto converting back to relative path)
|
15071
|
+
|
15072
|
+
let urlBase = location.href.substring(0, location.href.lastIndexOf('/'));
|
15073
|
+
return imgUrl.replace(urlBase, '[%PATH%]'); // Example:
|
15074
|
+
// url = http://localhost:8080/uploads/image.jpg
|
15075
|
+
// urlBase = http://localhost:8080
|
15076
|
+
// become: [%PATH%]/uploads/image.jpg
|
15077
|
+
};
|
15078
|
+
|
15079
|
+
const convertMedia = (elm, attrName) => {
|
15080
|
+
if (elm.hasAttribute(attrName)) {
|
15081
|
+
if (!(elm.parentNode.tagName.toLowerCase() === 'video' || elm.parentNode.tagName.toLowerCase() === 'audio')) return;
|
15082
|
+
let imgUrl = elm.getAttribute(attrName);
|
15083
|
+
imgUrl = convertMediaUrl(imgUrl);
|
15084
|
+
elm.setAttribute(attrName, `${imgUrl}`);
|
15085
|
+
}
|
15086
|
+
};
|
15087
|
+
|
15088
|
+
let imgs = tmp.querySelectorAll('img');
|
15089
|
+
Array.prototype.forEach.call(imgs, img => {
|
15090
|
+
let src = img.src;
|
15091
|
+
img.setAttribute('src', src);
|
15092
|
+
});
|
15093
|
+
let elms = tmp.querySelectorAll('*');
|
15094
|
+
elms.forEach(elm => {
|
15095
|
+
if (elm.style.backgroundImage) {
|
15096
|
+
let s = elm.style.backgroundImage;
|
15097
|
+
|
15098
|
+
if (s.indexOf('url(') !== -1) {
|
15099
|
+
let imgUrl = s.slice(4, -1).replace(/["']/g, '');
|
15100
|
+
imgUrl = convertBgUrl(imgUrl);
|
15101
|
+
elm.style.backgroundImage = `url(${imgUrl})`;
|
15102
|
+
}
|
15103
|
+
}
|
15104
|
+
|
15105
|
+
convertMedia(elm, 'src');
|
15106
|
+
convertMedia(elm, 'data-default');
|
15107
|
+
convertMedia(elm, 'data-240');
|
15108
|
+
convertMedia(elm, 'data-360');
|
15109
|
+
convertMedia(elm, 'data-480');
|
15110
|
+
convertMedia(elm, 'data-540');
|
15111
|
+
convertMedia(elm, 'data-720');
|
15112
|
+
convertMedia(elm, 'data-1080');
|
15113
|
+
convertMedia(elm, 'data-1440');
|
15114
|
+
convertMedia(elm, 'data-2160');
|
15115
|
+
|
15116
|
+
if (elm.hasAttribute('href')) {
|
15117
|
+
if (elm.tagName.toLowerCase() === 'link') {
|
15118
|
+
let imgUrl = elm.getAttribute('href');
|
15119
|
+
imgUrl = convertMediaUrl(imgUrl);
|
15120
|
+
elm.setAttribute('href', `${imgUrl}`);
|
15121
|
+
}
|
15122
|
+
}
|
15123
|
+
});
|
15051
15124
|
} //Cleaning
|
15052
15125
|
|
15053
15126
|
|
@@ -15185,7 +15258,75 @@ class HtmlUtil {
|
|
15185
15258
|
elms = tmp.querySelectorAll('[data-scroll]');
|
15186
15259
|
dom$h.removeAttributes(elms, 'data-scroll');
|
15187
15260
|
elms = tmp.querySelectorAll('[data-scroll-once]');
|
15188
|
-
dom$h.removeAttributes(elms, 'data-scroll-once');
|
15261
|
+
dom$h.removeAttributes(elms, 'data-scroll-once');
|
15262
|
+
|
15263
|
+
if (this.builder.shortenOutput) {
|
15264
|
+
elms = tmp.querySelectorAll('[data-noedit]');
|
15265
|
+
dom$h.removeAttributes(elms, 'data-noedit');
|
15266
|
+
elms = tmp.querySelectorAll('[data-module]');
|
15267
|
+
dom$h.removeAttributes(elms, 'data-module');
|
15268
|
+
elms = tmp.querySelectorAll('[data-module-desc]');
|
15269
|
+
dom$h.removeAttributes(elms, 'data-module-desc');
|
15270
|
+
elms = tmp.querySelectorAll('[data-dialog-width]');
|
15271
|
+
dom$h.removeAttributes(elms, 'data-dialog-width');
|
15272
|
+
elms = tmp.querySelectorAll('[data-dialog-height]');
|
15273
|
+
dom$h.removeAttributes(elms, 'data-dialog-height');
|
15274
|
+
elms = tmp.querySelectorAll('[data-html]');
|
15275
|
+
dom$h.removeAttributes(elms, 'data-html');
|
15276
|
+
elms = tmp.querySelectorAll('[data-settings]');
|
15277
|
+
dom$h.removeAttributes(elms, 'data-settings');
|
15278
|
+
elms = tmp.querySelectorAll('[data-html-1]');
|
15279
|
+
dom$h.removeAttributes(elms, 'data-html-1');
|
15280
|
+
elms = tmp.querySelectorAll('[data-html-2]');
|
15281
|
+
dom$h.removeAttributes(elms, 'data-html-2');
|
15282
|
+
elms = tmp.querySelectorAll('[data-html-3]');
|
15283
|
+
dom$h.removeAttributes(elms, 'data-html-3');
|
15284
|
+
elms = tmp.querySelectorAll('[data-html-4]');
|
15285
|
+
dom$h.removeAttributes(elms, 'data-html-4');
|
15286
|
+
elms = tmp.querySelectorAll('[data-html-5]');
|
15287
|
+
dom$h.removeAttributes(elms, 'data-html-5');
|
15288
|
+
elms = tmp.querySelectorAll('[data-html-6]');
|
15289
|
+
dom$h.removeAttributes(elms, 'data-html-6');
|
15290
|
+
elms = tmp.querySelectorAll('[data-html-7]');
|
15291
|
+
dom$h.removeAttributes(elms, 'data-html-7');
|
15292
|
+
elms = tmp.querySelectorAll('[data-html-8]');
|
15293
|
+
dom$h.removeAttributes(elms, 'data-html-8');
|
15294
|
+
elms = tmp.querySelectorAll('[data-html-9]');
|
15295
|
+
dom$h.removeAttributes(elms, 'data-html-9');
|
15296
|
+
elms = tmp.querySelectorAll('[data-html-10]');
|
15297
|
+
dom$h.removeAttributes(elms, 'data-html-10');
|
15298
|
+
elms = tmp.querySelectorAll('[data-html-12]');
|
15299
|
+
dom$h.removeAttributes(elms, 'data-html-12');
|
15300
|
+
elms = tmp.querySelectorAll('[data-html-13]');
|
15301
|
+
dom$h.removeAttributes(elms, 'data-html-13');
|
15302
|
+
elms = tmp.querySelectorAll('[data-html-14]');
|
15303
|
+
dom$h.removeAttributes(elms, 'data-html-14');
|
15304
|
+
elms = tmp.querySelectorAll('[data-html-15]');
|
15305
|
+
dom$h.removeAttributes(elms, 'data-html-15');
|
15306
|
+
elms = tmp.querySelectorAll('[data-html-16]');
|
15307
|
+
dom$h.removeAttributes(elms, 'data-html-16');
|
15308
|
+
elms = tmp.querySelectorAll('[data-html-17]');
|
15309
|
+
dom$h.removeAttributes(elms, 'data-html-17');
|
15310
|
+
elms = tmp.querySelectorAll('[data-html-18]');
|
15311
|
+
dom$h.removeAttributes(elms, 'data-html-18');
|
15312
|
+
elms = tmp.querySelectorAll('[data-html-19]');
|
15313
|
+
dom$h.removeAttributes(elms, 'data-html-19');
|
15314
|
+
elms = tmp.querySelectorAll('[data-html-20]');
|
15315
|
+
dom$h.removeAttributes(elms, 'data-html-20');
|
15316
|
+
elms = tmp.querySelectorAll('[data-html-21]');
|
15317
|
+
dom$h.removeAttributes(elms, 'data-html-21');
|
15318
|
+
elms = tmp.querySelectorAll('[data-html-21]');
|
15319
|
+
dom$h.removeAttributes(elms, 'data-html-21');
|
15320
|
+
elms = tmp.querySelectorAll('[data-html-22]');
|
15321
|
+
dom$h.removeAttributes(elms, 'data-html-22');
|
15322
|
+
elms = tmp.querySelectorAll('[data-html-23]');
|
15323
|
+
dom$h.removeAttributes(elms, 'data-html-23');
|
15324
|
+
elms = tmp.querySelectorAll('[data-html-24]');
|
15325
|
+
dom$h.removeAttributes(elms, 'data-html-24');
|
15326
|
+
elms = tmp.querySelectorAll('[data-html-25]');
|
15327
|
+
dom$h.removeAttributes(elms, 'data-html-25');
|
15328
|
+
} // cleaning
|
15329
|
+
|
15189
15330
|
|
15190
15331
|
elms = tmp.querySelectorAll('[data-bottom-top],[data-center],[data-center-bottom],[data-100-top],[data-50-top],[data-top],[data-top-bottom],[data-center-top],[data--300-bottom],[data--150-bottom],[data--50-bottom],[data-bottom],[data-100-bottom],[data-150-bottom],[data-400-bottom],' + '[data--400-bottom],[data--200-bottom],[data--100-bottom],[data-50-bottom],[data-200-bottom],[data-300-bottom],' + '[data-in],[data-in-150],[data-in-300],' + '[data-cen--150],[data-cen],[data-cen-150],[data-out--300],[data-out--150],[data-out]' + '[data-t],[data-t-100],[data-t-200],[data-t-300],[data-t-400],' + '[data-t-500],[data-t-600],[data-t-700],[data-t-800],[data-t-900],[data-t-1000],' + '[data-t-1100],[data-t-1200],[data-t-1300],[data-t-1400],[data-t-1500],[data-t-1600],' + '[data-t-1700],[data-t-1800],[data-t-1900],[data-t-2000],[data-t-2100],[data-t-2200],' + '[data-t-2300],[data-t-2400],[data-t-2500],[data-t-2600],[data-t-2700],[data-t-2800]'); // elms = tmp.querySelectorAll('[data-bottom-top],[data-center],[data-center-bottom],[data-100-top],[data-50-top],[data-top],[data-top-bottom],[data-center-top],[data--300-bottom],[data--150-bottom],[data--50-bottom],[data-bottom],[data-100-bottom],[data-150-bottom],[data-400-bottom],' +
|
15191
15332
|
// '[data--400-bottom],[data--200-bottom],[data--100-bottom],[data-50-bottom],[data-200-bottom],[data-300-bottom],' +
|
@@ -15299,6 +15440,74 @@ class HtmlUtil {
|
|
15299
15440
|
Array.prototype.forEach.call(emptystyles, emptystyle => {
|
15300
15441
|
emptystyle.removeAttribute('style');
|
15301
15442
|
});
|
15443
|
+
|
15444
|
+
if (this.builder.shortenOutput) {
|
15445
|
+
elms = tmp.querySelectorAll('[data-noedit]');
|
15446
|
+
dom$h.removeAttributes(elms, 'data-noedit');
|
15447
|
+
elms = tmp.querySelectorAll('[data-module]');
|
15448
|
+
dom$h.removeAttributes(elms, 'data-module');
|
15449
|
+
elms = tmp.querySelectorAll('[data-module-desc]');
|
15450
|
+
dom$h.removeAttributes(elms, 'data-module-desc');
|
15451
|
+
elms = tmp.querySelectorAll('[data-dialog-width]');
|
15452
|
+
dom$h.removeAttributes(elms, 'data-dialog-width');
|
15453
|
+
elms = tmp.querySelectorAll('[data-dialog-height]');
|
15454
|
+
dom$h.removeAttributes(elms, 'data-dialog-height');
|
15455
|
+
elms = tmp.querySelectorAll('[data-html]');
|
15456
|
+
dom$h.removeAttributes(elms, 'data-html');
|
15457
|
+
elms = tmp.querySelectorAll('[data-settings]');
|
15458
|
+
dom$h.removeAttributes(elms, 'data-settings');
|
15459
|
+
elms = tmp.querySelectorAll('[data-html-1]');
|
15460
|
+
dom$h.removeAttributes(elms, 'data-html-1');
|
15461
|
+
elms = tmp.querySelectorAll('[data-html-2]');
|
15462
|
+
dom$h.removeAttributes(elms, 'data-html-2');
|
15463
|
+
elms = tmp.querySelectorAll('[data-html-3]');
|
15464
|
+
dom$h.removeAttributes(elms, 'data-html-3');
|
15465
|
+
elms = tmp.querySelectorAll('[data-html-4]');
|
15466
|
+
dom$h.removeAttributes(elms, 'data-html-4');
|
15467
|
+
elms = tmp.querySelectorAll('[data-html-5]');
|
15468
|
+
dom$h.removeAttributes(elms, 'data-html-5');
|
15469
|
+
elms = tmp.querySelectorAll('[data-html-6]');
|
15470
|
+
dom$h.removeAttributes(elms, 'data-html-6');
|
15471
|
+
elms = tmp.querySelectorAll('[data-html-7]');
|
15472
|
+
dom$h.removeAttributes(elms, 'data-html-7');
|
15473
|
+
elms = tmp.querySelectorAll('[data-html-8]');
|
15474
|
+
dom$h.removeAttributes(elms, 'data-html-8');
|
15475
|
+
elms = tmp.querySelectorAll('[data-html-9]');
|
15476
|
+
dom$h.removeAttributes(elms, 'data-html-9');
|
15477
|
+
elms = tmp.querySelectorAll('[data-html-10]');
|
15478
|
+
dom$h.removeAttributes(elms, 'data-html-10');
|
15479
|
+
elms = tmp.querySelectorAll('[data-html-12]');
|
15480
|
+
dom$h.removeAttributes(elms, 'data-html-12');
|
15481
|
+
elms = tmp.querySelectorAll('[data-html-13]');
|
15482
|
+
dom$h.removeAttributes(elms, 'data-html-13');
|
15483
|
+
elms = tmp.querySelectorAll('[data-html-14]');
|
15484
|
+
dom$h.removeAttributes(elms, 'data-html-14');
|
15485
|
+
elms = tmp.querySelectorAll('[data-html-15]');
|
15486
|
+
dom$h.removeAttributes(elms, 'data-html-15');
|
15487
|
+
elms = tmp.querySelectorAll('[data-html-16]');
|
15488
|
+
dom$h.removeAttributes(elms, 'data-html-16');
|
15489
|
+
elms = tmp.querySelectorAll('[data-html-17]');
|
15490
|
+
dom$h.removeAttributes(elms, 'data-html-17');
|
15491
|
+
elms = tmp.querySelectorAll('[data-html-18]');
|
15492
|
+
dom$h.removeAttributes(elms, 'data-html-18');
|
15493
|
+
elms = tmp.querySelectorAll('[data-html-19]');
|
15494
|
+
dom$h.removeAttributes(elms, 'data-html-19');
|
15495
|
+
elms = tmp.querySelectorAll('[data-html-20]');
|
15496
|
+
dom$h.removeAttributes(elms, 'data-html-20');
|
15497
|
+
elms = tmp.querySelectorAll('[data-html-21]');
|
15498
|
+
dom$h.removeAttributes(elms, 'data-html-21');
|
15499
|
+
elms = tmp.querySelectorAll('[data-html-21]');
|
15500
|
+
dom$h.removeAttributes(elms, 'data-html-21');
|
15501
|
+
elms = tmp.querySelectorAll('[data-html-22]');
|
15502
|
+
dom$h.removeAttributes(elms, 'data-html-22');
|
15503
|
+
elms = tmp.querySelectorAll('[data-html-23]');
|
15504
|
+
dom$h.removeAttributes(elms, 'data-html-23');
|
15505
|
+
elms = tmp.querySelectorAll('[data-html-24]');
|
15506
|
+
dom$h.removeAttributes(elms, 'data-html-24');
|
15507
|
+
elms = tmp.querySelectorAll('[data-html-25]');
|
15508
|
+
dom$h.removeAttributes(elms, 'data-html-25');
|
15509
|
+
}
|
15510
|
+
|
15302
15511
|
html = tmp.innerHTML.trim();
|
15303
15512
|
html = html.replace(/<font/g, '<span').replace(/<\/font/g, '</span');
|
15304
15513
|
} // elm = builderStuff.querySelector('#tmp_content');
|
@@ -15316,6 +15525,13 @@ class HtmlUtil {
|
|
15316
15525
|
return html;
|
15317
15526
|
}
|
15318
15527
|
|
15528
|
+
beautify(html) {
|
15529
|
+
let beautify = JsBeautify.html;
|
15530
|
+
html = beautify(html);
|
15531
|
+
html = html.replace(/(\r\n|\r|\n){3,}/g, '$1\n');
|
15532
|
+
return html;
|
15533
|
+
}
|
15534
|
+
|
15319
15535
|
}
|
15320
15536
|
|
15321
15537
|
class UndoRedo {
|
@@ -15866,6 +16082,14 @@ const prepareSvgIcons = builder => {
|
|
15866
16082
|
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
|
15867
16083
|
<path d="M9.88 9.878a3 3 0 1 0 4.243 4.242m.581 -3.42a3.012 3.012 0 0 0 -1.45 -1.426m-3.877 -3.913a9.469 9.469 0 0 1 2.623 -.361c4 0 7.333 2.333 10 7c-.778 1.362 -1.613 2.524 -2.504 3.489m-2.138 1.859c-1.629 1.101 -3.415 1.652 -5.358 1.652c-4 0 -7.333 -2.333 -10 -7c1.374 -2.404 2.924 -4.189 4.652 -5.354m-3.652 -3.646l18 18"></path>
|
15868
16084
|
</symbol>
|
16085
|
+
|
16086
|
+
<symbol id="icon-download" viewBox="0 0 24 24" stroke-width="1" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
16087
|
+
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
|
16088
|
+
<path d="M4 17v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2 -2v-2"></path>
|
16089
|
+
<path d="M7 11l5 5l5 -5"></path>
|
16090
|
+
<path d="M12 4l0 12"></path>
|
16091
|
+
</symbol>
|
16092
|
+
|
15869
16093
|
</defs>
|
15870
16094
|
</svg>`;
|
15871
16095
|
builder.dom.appendHtml(builder.builderStuff, html);
|
@@ -22903,7 +23127,7 @@ function getOffset(element) {
|
|
22903
23127
|
top: box.top + (window.pageYOffset - document.documentElement.clientTop)
|
22904
23128
|
};
|
22905
23129
|
}
|
22906
|
-
var location = WINDOW.location;
|
23130
|
+
var location$1 = WINDOW.location;
|
22907
23131
|
var REGEXP_ORIGINS = /^(\w+:)\/\/([^:/?#]*):?(\d*)/i;
|
22908
23132
|
/**
|
22909
23133
|
* Check if the given URL is a cross origin URL.
|
@@ -22913,7 +23137,7 @@ var REGEXP_ORIGINS = /^(\w+:)\/\/([^:/?#]*):?(\d*)/i;
|
|
22913
23137
|
|
22914
23138
|
function isCrossOriginURL(url) {
|
22915
23139
|
var parts = url.match(REGEXP_ORIGINS);
|
22916
|
-
return parts !== null && (parts[1] !== location.protocol || parts[2] !== location.hostname || parts[3] !== location.port);
|
23140
|
+
return parts !== null && (parts[1] !== location$1.protocol || parts[2] !== location$1.hostname || parts[3] !== location$1.port);
|
22917
23141
|
}
|
22918
23142
|
/**
|
22919
23143
|
* Add timestamp to the given URL.
|
@@ -53654,10 +53878,12 @@ class Code {
|
|
53654
53878
|
viewhtml = this.builderStuff.querySelector('.viewhtml');
|
53655
53879
|
}
|
53656
53880
|
|
53657
|
-
let textarea = viewhtml.querySelector('textarea'); //
|
53658
|
-
// let beautify = JsBeautify.html;
|
53659
|
-
// html = beautify(html);
|
53881
|
+
let textarea = viewhtml.querySelector('textarea'); // Prevent {id} get formatted.
|
53660
53882
|
|
53883
|
+
html = html.replaceAll('{id}', '__id__');
|
53884
|
+
let beautify = JsBeautify.html;
|
53885
|
+
html = beautify(html);
|
53886
|
+
html = html.replaceAll('__id__', '{id}');
|
53661
53887
|
textarea.value = html;
|
53662
53888
|
this.htmlUtil.view('code');
|
53663
53889
|
});
|
@@ -62519,7 +62745,7 @@ class ElementTextStyles {
|
|
62519
62745
|
var sTextAlign = elm.style.textAlign;
|
62520
62746
|
this.panelStuff.querySelector('#inpElmTextAlign').value = sTextAlign;
|
62521
62747
|
this.panelStuff.querySelector('#inpElmFontSize').value = '';
|
62522
|
-
var nFontSize =
|
62748
|
+
var nFontSize = parseFloat(elm.style.fontSize);
|
62523
62749
|
|
62524
62750
|
if (!isNaN(nFontSize)) {
|
62525
62751
|
this.panelStuff.querySelector('#inpElmFontSize').value = nFontSize;
|
@@ -62579,7 +62805,7 @@ class ElementTextStyles {
|
|
62579
62805
|
if (!isNaN(elm.style.lineHeight)) {
|
62580
62806
|
this.panelStuff.querySelector('#inpElmLineHeight').value = elm.style.lineHeight;
|
62581
62807
|
} else {
|
62582
|
-
var nLineHeight =
|
62808
|
+
var nLineHeight = parseFloat(elm.style.lineHeight);
|
62583
62809
|
|
62584
62810
|
if (!isNaN(nLineHeight)) {
|
62585
62811
|
this.panelStuff.querySelector('#inpElmLineHeight').value = nLineHeight;
|
@@ -62600,14 +62826,14 @@ class ElementTextStyles {
|
|
62600
62826
|
|
62601
62827
|
this.panelStuff.querySelector('#inpElmLineHeightUnit').value = sLineHeightUnit;
|
62602
62828
|
this.panelStuff.querySelector('#inpElmLetterSpacing').value = '';
|
62603
|
-
var nLetterSpacing =
|
62829
|
+
var nLetterSpacing = parseFloat(elm.style.letterSpacing);
|
62604
62830
|
|
62605
62831
|
if (!isNaN(nLetterSpacing)) {
|
62606
62832
|
this.panelStuff.querySelector('#inpElmLetterSpacing').value = nLetterSpacing;
|
62607
62833
|
}
|
62608
62834
|
|
62609
62835
|
this.panelStuff.querySelector('#inpElmWordSpacing').value = '';
|
62610
|
-
var nWordSpacing =
|
62836
|
+
var nWordSpacing = parseFloat(elm.style.wordSpacing);
|
62611
62837
|
|
62612
62838
|
if (!isNaN(nWordSpacing)) {
|
62613
62839
|
this.panelStuff.querySelector('#inpElmWordSpacing').value = nWordSpacing;
|
@@ -75241,6 +75467,39 @@ class ContentBuilder {
|
|
75241
75467
|
</div>
|
75242
75468
|
</div>
|
75243
75469
|
`,
|
75470
|
+
pageTemplate: `<!DOCTYPE html>
|
75471
|
+
<html lang="en">
|
75472
|
+
<head>
|
75473
|
+
<meta charset="utf-8">
|
75474
|
+
<title>Page</title>
|
75475
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
75476
|
+
<meta name="description" content="">
|
75477
|
+
<link rel="shortcut icon" href="#" />
|
75478
|
+
|
75479
|
+
<link href="[%PATH%]/assets/minimalist-blocks/content.css" rel="stylesheet" type="text/css" />
|
75480
|
+
|
75481
|
+
<link href="[%PATH%]/assets/scripts/glide/css/glide.core.css" rel="stylesheet" type="text/css" />
|
75482
|
+
<link href="[%PATH%]/assets/scripts/glide/css/glide.theme.css" rel="stylesheet" type="text/css" />
|
75483
|
+
<script src="[%PATH%]/assets/scripts/glide/glide.js" type="text/javascript"></script>
|
75484
|
+
|
75485
|
+
<style>
|
75486
|
+
.container {
|
75487
|
+
margin: 150px auto 0;
|
75488
|
+
max-width: 800px;
|
75489
|
+
width: 100%;
|
75490
|
+
padding: 0 20px;
|
75491
|
+
box-sizing: border-box;
|
75492
|
+
}
|
75493
|
+
</style>
|
75494
|
+
</head>
|
75495
|
+
<body>
|
75496
|
+
|
75497
|
+
<div class="container">
|
75498
|
+
[%CONTENT%]
|
75499
|
+
</div>
|
75500
|
+
|
75501
|
+
</body>
|
75502
|
+
</html>`,
|
75244
75503
|
|
75245
75504
|
/*
|
75246
75505
|
onZoomStart: () => {
|
@@ -76752,7 +77011,11 @@ class ContentBuilder {
|
|
76752
77011
|
|
76753
77012
|
const builders = this.doc.querySelectorAll(this.opts.container);
|
76754
77013
|
Array.prototype.forEach.call(builders, builder => {
|
76755
|
-
builder.innerHTML = htmlutil.readHtml(builder, true);
|
77014
|
+
// builder.innerHTML = htmlutil.readHtml(builder, true);
|
77015
|
+
let html = htmlutil.readHtml(builder, false);
|
77016
|
+
let range = this.doc.createRange();
|
77017
|
+
builder.innerHTML = '';
|
77018
|
+
builder.appendChild(range.createContextualFragment(html)); // Use createContextualFragment so that embedded javascript code (code block) will be executed
|
76756
77019
|
});
|
76757
77020
|
Array.prototype.forEach.call(builders, builder => {
|
76758
77021
|
builder.removeAttribute('data-sort');
|
@@ -77079,6 +77342,52 @@ class ContentBuilder {
|
|
77079
77342
|
|
77080
77343
|
saveForUndo(checkLater) {
|
77081
77344
|
this.uo.saveForUndo(checkLater);
|
77345
|
+
}
|
77346
|
+
|
77347
|
+
download(options = {}) {
|
77348
|
+
this.export(options, true);
|
77349
|
+
}
|
77350
|
+
|
77351
|
+
export(options = {}, shortenOutput = false) {
|
77352
|
+
let pageTemplate = this.pageTemplate;
|
77353
|
+
let output = ''; // [%CONTENT%]
|
77354
|
+
|
77355
|
+
this.makeAbsolute = true; //To make absolute (for Export/Download)
|
77356
|
+
|
77357
|
+
this.shortenOutput = shortenOutput;
|
77358
|
+
let html = this.html();
|
77359
|
+
this.makeAbsolute = false;
|
77360
|
+
output = pageTemplate.replace('[%CONTENT%]', html);
|
77361
|
+
this.shortenOutput = false; // Custom
|
77362
|
+
|
77363
|
+
if (options.replace) {
|
77364
|
+
options.replace.forEach(rule => {
|
77365
|
+
output = output.replaceAll(`${rule[0]}`, rule[1]);
|
77366
|
+
});
|
77367
|
+
} // [%PATH%]
|
77368
|
+
|
77369
|
+
|
77370
|
+
if (options.path) {
|
77371
|
+
output = output.replaceAll('[%PATH%]', options.path);
|
77372
|
+
} else {
|
77373
|
+
let urlBase;
|
77374
|
+
urlBase = location.href.substring(0, location.href.lastIndexOf('/'));
|
77375
|
+
output = output.replaceAll('[%PATH%]', urlBase);
|
77376
|
+
} // Beautify
|
77377
|
+
|
77378
|
+
|
77379
|
+
output = this.beautify(output);
|
77380
|
+
const a = document.createElement('a');
|
77381
|
+
a.href = window.URL.createObjectURL(new Blob([output], {
|
77382
|
+
type: 'text/plain'
|
77383
|
+
}));
|
77384
|
+
a.download = 'page.html';
|
77385
|
+
a.click();
|
77386
|
+
}
|
77387
|
+
|
77388
|
+
beautify(html) {
|
77389
|
+
const htmlutil = new HtmlUtil(this);
|
77390
|
+
return htmlutil.beautify(html);
|
77082
77391
|
} // Module related
|
77083
77392
|
|
77084
77393
|
|