|
@@ -70,6 +70,19 @@ this.singlefile.lib.util = this.singlefile.lib.util || (() => {
|
|
|
resolveURL(resourceURL, baseURI) {
|
|
resolveURL(resourceURL, baseURI) {
|
|
|
return this.parseURL(resourceURL, baseURI).href;
|
|
return this.parseURL(resourceURL, baseURI).href;
|
|
|
},
|
|
},
|
|
|
|
|
+ getValidFilename(filename, replacementCharacter) {
|
|
|
|
|
+ filename = filename
|
|
|
|
|
+ .replace(/[~\\?%*:|"<>\x00-\x1f\x7F]+/g, replacementCharacter); // eslint-disable-line no-control-regex
|
|
|
|
|
+ filename = filename
|
|
|
|
|
+ .replace(/\.\.\//g, "")
|
|
|
|
|
+ .replace(/^\/+/, "")
|
|
|
|
|
+ .replace(/\/+/g, "/")
|
|
|
|
|
+ .replace(/\/$/, "")
|
|
|
|
|
+ .replace(/\.$/, "")
|
|
|
|
|
+ .replace(/\.\//g, "." + replacementCharacter)
|
|
|
|
|
+ .replace(/\/\./g, "/" + replacementCharacter);
|
|
|
|
|
+ return filename;
|
|
|
|
|
+ },
|
|
|
parseDocContent(content, baseURI) {
|
|
parseDocContent(content, baseURI) {
|
|
|
const doc = (new DOMParser()).parseFromString(content, "text/html");
|
|
const doc = (new DOMParser()).parseFromString(content, "text/html");
|
|
|
if (!doc.head) {
|
|
if (!doc.head) {
|