diff --git a/scripts/build.js b/scripts/build.js
index 2f7e92c41..071e99c01 100644
--- a/scripts/build.js
+++ b/scripts/build.js
@@ -63,8 +63,7 @@ if (
data.slice(data.lastIndexOf('```js'), data.lastIndexOf('```')) +
data.slice(data.lastIndexOf('```'))
);
- output +=
- data + '\n
' + misc.link('⬆ Back to top', misc.anchor('Table of Contents')) + '\n\n';
+ output += `${data}\n
${misc.link('⬆ Back to top', misc.anchor('Table of Contents'))}\n\n`
}
// Write to the README file of the archive
diff --git a/scripts/module.js b/scripts/module.js
index 002e6662e..f9d1f5c8f 100644
--- a/scripts/module.js
+++ b/scripts/module.js
@@ -57,9 +57,9 @@ try {
// Store the data to be written
const toWrite = isNodeSnippet
? `${code
- .replace(`const ${snippetName}`, `export const ${snippetName}`)
- // Prevents errors from being thrown in browser environment
- .replace('require(', 'typeof require !== "undefined" && require(')}`
+ .replace(`const ${snippetName}`, `export const ${snippetName}`)
+ // Prevents errors from being thrown in browser environment
+ .replace('require(', 'typeof require !== "undefined" && require(')}`
: `export ${code}`;
// Write data to the proper file
fs.writeFileSync(`${TEMP_PATH}/${snippetName}.js`, toWrite);
diff --git a/scripts/web.js b/scripts/web.js
index 01afc6e99..78d143569 100644
--- a/scripts/web.js
+++ b/scripts/web.js
@@ -19,7 +19,7 @@ const unescapeHTML = str =>
'&': '&',
'<': '<',
'>': '>',
- ''': "'",
+ ''': '\'',
'"': '"'
}[tag] || tag)
);
@@ -58,50 +58,21 @@ const snippetsPath = './snippets',
archivedSnippetsPath = './snippets_archive',
glossarySnippetsPath = './glossary',
staticPartsPath = './static-parts',
- docsPath = './docs';
+ docsPath = './docs',
+ staticFiles = ['about.html', 'contributing.html', 'array.html'];
// Set variables for script
let snippets = {},
archivedSnippets = {},
- beginnerSnippetNames = [
- 'allEqual',
- 'everyNth',
- 'filterNonUnique',
- 'last',
- 'maxN',
- 'minN',
- 'nthElement',
- 'offset',
- 'sample',
- 'similarity',
- 'tail',
- 'currentURL',
- 'hasClass',
- 'getMeridiemSuffixOfInteger',
- 'factorial',
- 'fibonacci',
- 'gcd',
- 'isDivisible',
- 'isEven',
- 'isPrime',
- 'lcm',
- 'randomIntegerInRange',
- 'sum',
- 'reverseString',
- 'truncateString'
- ],
+ glossarySnippets = {},
startPart = '',
endPart = '',
output = '',
- beginnerStartPart = '',
- beginnerEndPart = '',
- beginnerOutput = '',
archivedStartPart = '',
archivedEndPart = '',
archivedOutput = '',
glossaryStartPart = '',
glossaryEndPart = '',
glossaryOutput = '',
- indexStaticFile = '',
pagesOutput = [],
tagDbData = {};
// Start the timer of the script
@@ -167,7 +138,7 @@ try {
output += md
.render(
`[${taggedSnippet[0]}](./${
- tag == 'array' ? 'index' : tag
+ tag === 'array' ? 'index' : tag
}#${taggedSnippet[0].toLowerCase()})\n`
)
.replace(/
/g, '')
@@ -191,7 +162,7 @@ try {
let localOutput = output
.replace(/\$tag/g, util.capitalize(tag))
.replace(new RegExp(`./${tag}#`, 'g'), '#');
- if (tag === 'array') localOutput = localOutput.replace(new RegExp(`./index#`, 'g'), '#');
+ if (tag === 'array') localOutput = localOutput.replace(new RegExp('./index#', 'g'), '#');
localOutput += md
.render(`## ${util.capitalize(tag, true)}\n`)
.replace(/
/g, '');
@@ -271,11 +242,11 @@ try {
trimCustomFragments: true
});
fs.writeFileSync(
- path.join(docsPath, (page.tag == 'array' ? 'index' : page.tag) + '.html'),
+ path.join(docsPath, (page.tag === 'array' ? 'index' : page.tag) + '.html'),
page.content
);
console.log(
- `${chalk.green('SUCCESS!')} ${page.tag == 'array' ? 'index' : page.tag}.html file generated!`
+ `${chalk.green('SUCCESS!')} ${page.tag === 'array' ? 'index' : page.tag}.html file generated!`
);
});
} catch (err) {
@@ -284,95 +255,10 @@ try {
process.exit(1);
}
-/*
-// Create the output for the beginner.html file
-try {
- // Add the static part
- beginnerOutput += `${beginnerStartPart + '\n'}`;
-
- // Filter begginer snippets
- const filteredBeginnerSnippets = Object.keys(snippets)
- .filter(key => beginnerSnippetNames.map(name => name + '.md').includes(key))
- .reduce((obj, key) => {
- obj[key] = snippets[key];
- return obj;
- }, {});
-
- for (let snippet of Object.entries(filteredBeginnerSnippets))
- beginnerOutput +=
- '' +
- '
' +
- '
' +
- md
- .render(`\n${snippets[snippet[0]]}`)
- .replace(/
/g,
- `${snippet[1].includes('advanced') ? 'advanced' : ''}
`
- )
- .replace(/<\/h3>/g, '
')
- .replace(
- /
([^\0]*?)<\/code><\/pre>/gm,
- (match, p1) =>
- `${Prism.highlight(
- unescapeHTML(p1),
- Prism.languages.javascript
- )}`
- )
- .replace(/<\/pre>\s+📋 Copy to clipboard' +
- '
';
-
- // Optimize punctuation nodes
- beginnerOutput = util.optimizeNodes(
- beginnerOutput,
- /([^\0<]*?)<\/span>([\n\r\s]*)([^\0]*?)<\/span>/gm,
- (match, p1, p2, p3) => `${p1}${p2}${p3}`
- );
- // Optimize operator nodes
- beginnerOutput = util.optimizeNodes(
- beginnerOutput,
- /([^\0<]*?)<\/span>([\n\r\s]*)([^\0]*?)<\/span>/gm,
- (match, p1, p2, p3) => `${p1}${p2}${p3}`
- );
- // Optimize keyword nodes
- beginnerOutput = util.optimizeNodes(
- beginnerOutput,
- /([^\0<]*?)<\/span>([\n\r\s]*)([^\0]*?)<\/span>/gm,
- (match, p1, p2, p3) => `${p1}${p2}${p3}`
- );
-
- beginnerOutput += `${beginnerEndPart}`;
-
- // Generate and minify 'beginner.html' file
- const minifiedBeginnerOutput = minify(beginnerOutput, {
- collapseBooleanAttributes: true,
- collapseWhitespace: true,
- decodeEntities: false,
- minifyCSS: true,
- minifyJS: true,
- keepClosingSlash: true,
- processConditionalComments: true,
- removeAttributeQuotes: false,
- removeComments: true,
- removeEmptyAttributes: false,
- removeOptionalTags: false,
- removeScriptTypeAttributes: false,
- removeStyleLinkTypeAttributes: false,
- trimCustomFragments: true
- });
- fs.writeFileSync(path.join(docsPath, 'beginner.html'), minifiedBeginnerOutput);
- console.log(`${chalk.green('SUCCESS!')} beginner.html file generated!`);
-} catch (err) {
- console.log(`${chalk.red('ERROR!')} During beginner.html generation: ${err}`);
- process.exit(1);
-}
-*/
-
// Create the output for the archive.html file
try {
// Add the static part
- archivedOutput += `${archivedStartPart + '\n'}`;
+ archivedOutput += `${archivedStartPart}\n`;
// Filter README.md from folder
const excludeFiles = ['README.md'];
@@ -460,7 +346,7 @@ try {
// Create the output for the glossary.html file
try {
// Add the static part
- glossaryOutput += `${glossaryStartPart + '\n'}`;
+ glossaryOutput += `${glossaryStartPart}\n`;
// Filter README.md from folder
const excludeFiles = ['README.md'];
@@ -509,33 +395,16 @@ try {
process.exit(1);
}
-// Copy about.html
-try {
- fs.copyFileSync(path.join(staticPartsPath, 'about.html'), path.join(docsPath, 'about.html'));
- console.log(`${chalk.green('SUCCESS!')} about.html file copied!`);
-} catch (err) {
- console.log(`${chalk.red('ERROR!')} During about.html copying: ${err}`);
- process.exit(1);
-}
-// Copy array.html
-try {
- fs.copyFileSync(path.join(staticPartsPath, 'array.html'), path.join(docsPath, 'array.html'));
- console.log(`${chalk.green('SUCCESS!')} array.html file copied!`);
-} catch (err) {
- console.log(`${chalk.red('ERROR!')} During array.html copying: ${err}`);
- process.exit(1);
-}
-// Copy contributing.html
-try {
- fs.copyFileSync(
- path.join(staticPartsPath, 'contributing.html'),
- path.join(docsPath, 'contributing.html')
- );
- console.log(`${chalk.green('SUCCESS!')} contributing.html file copied!`);
-} catch (err) {
- console.log(`${chalk.red('ERROR!')} During contributing.html copying: ${err}`);
- process.exit(1);
-}
+// Copy static files
+staticFiles.forEach(f => {
+ try {
+ fs.copyFileSync(path.join(staticPartsPath, f), path.join(docsPath, f));
+ console.log(`${chalk.green('SUCCESS!')} ${f} file copied!`);
+ } catch (err) {
+ console.log(`${chalk.red('ERROR!')} During ${f} copying: ${err}`);
+ process.exit(1);
+ }
+});
// Log the time taken
console.timeEnd('Webber');