Browse Source

moved code into util

Former-commit-id: ca962396dffbfec2c93d042fc2c73a433e39ad9c
Gildas 6 years ago
parent
commit
f2d6372850
2 changed files with 14 additions and 10 deletions
  1. 1 10
      lib/single-file/single-file-core.js
  2. 13 0
      lib/single-file/single-file-util.js

+ 1 - 10
lib/single-file/single-file-core.js

@@ -470,16 +470,7 @@ this.singlefile.lib.core = this.singlefile.lib.core || (() => {
 			}
 			let filename = await ProcessorHelper.evalTemplate(this.options.filenameTemplate, this.options, content) || "";
 			const replacementCharacter = this.options.filenameReplacementCharacter;
-			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);
+			filename = util.getValidFilename(filename, replacementCharacter);
 			if (!this.options.backgroundSave) {
 				filename = filename.replace(/\//g, replacementCharacter);
 			}

+ 13 - 0
lib/single-file/single-file-util.js

@@ -70,6 +70,19 @@ this.singlefile.lib.util = this.singlefile.lib.util || (() => {
 				resolveURL(resourceURL, baseURI) {
 					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) {
 					const doc = (new DOMParser()).parseFromString(content, "text/html");
 					if (!doc.head) {