From b7760ae2d5d00386cb912a5aae50d9d13351d481 Mon Sep 17 00:00:00 2001 From: rawilk Date: Sun, 30 Aug 2020 21:20:31 -0500 Subject: [PATCH] wip --- docs-build/cleanup.js | 77 +++++++++++++++++++ docs-build/js/advanced/index.js | 2 +- docs-build/webpack.mix.js | 4 + docs/demos/advanced.md | 2 +- ...e-context-advanced-demos.1598840380789.js} | 2 +- 5 files changed, 84 insertions(+), 3 deletions(-) rename docs/scripts/{vue-context-advanced-demos.js => vue-context-advanced-demos.1598840380789.js} (99%) diff --git a/docs-build/cleanup.js b/docs-build/cleanup.js index 10a35ea..854f4d6 100755 --- a/docs-build/cleanup.js +++ b/docs-build/cleanup.js @@ -15,3 +15,80 @@ filesToDelete.forEach(file => { fs.rmdirSync(__dirname + '/dist', { recursive: true }); console.log('All extra files cleaned up!'); + +// Add "ids" to the files for cache busting, and also update the script references in the docs + +// const docFiles = [ +// __dirname + '/../docs/demos/basic.md', +// __dirname + '/../docs/demos/advanced.md', +// ]; + +const docFiles = { + advanced: __dirname + '/../docs/demos/advanced.md', +} + +const scripts = { + advanced: __dirname + '/../docs/scripts/vue-context-advanced-demos.js', +}; + +const renameFile = path => { + const id = Date.now(); + + const parts = path.split('/'); + const fileName = parts[parts.length - 1]; + + const fileNameParts = fileName.split('.'); + + const newName = `${fileNameParts[0]}.${id}.${fileNameParts[1]}`; + const newPath = __dirname + '/../docs/scripts/' + newName; + + fs.renameSync(path, newPath); + + return newName; +}; + +const updateScriptSrc = (markdownFile, newName) => { + const content = fs.readFileSync(markdownFile, 'utf-8'); + const lines = content.split("\n"); + const scriptLine = lines[lines.length - 2]; + + if (scriptLine.startsWith('`; + } + + fs.writeFileSync(markdownFile, lines.join("\n")); +}; + +Object.keys(scripts).forEach(key => { + const path = scripts[key]; + const newName = renameFile(path); + + updateScriptSrc(docFiles[key], newName); +}); + +return; + +fs.readdir(__dirname + '/../docs/scripts', (err, files) => { + if (err) { + return; + } + + files.forEach(file => { + const id = Date.now(); + + const oldPath = __dirname + '/../docs/scripts/' + file; + + const parts = file.split('.'); + + const newPath = __dirname + '/../docs/scripts/' + parts[0] + `.${id}.` + parts[1]; + + fs.renameSync(oldPath, newPath); + + docFiles.forEach(doc => { + const content = fs.readFileSync(doc, 'utf-8'); + const regex = new RegExp("[\s\S]*?<\/script>", 'gi'); + + console.log(content.replace(regex, '')); + }); + }); +}); diff --git a/docs-build/js/advanced/index.js b/docs-build/js/advanced/index.js index 72fb72e..6f5c8cc 100644 --- a/docs-build/js/advanced/index.js +++ b/docs-build/js/advanced/index.js @@ -20,4 +20,4 @@ new Vue({ components: { NestedMenus, }, -}).$mount('#nested-menus'); +}).$mount('#nested-app'); diff --git a/docs-build/webpack.mix.js b/docs-build/webpack.mix.js index 40f7a96..6f9518d 100644 --- a/docs-build/webpack.mix.js +++ b/docs-build/webpack.mix.js @@ -1,4 +1,8 @@ const mix = require('laravel-mix'); +const fs = require('fs'); + +// Cleanup the old scripts, since we'll be re-hashing them. +fs.rmdirSync(__dirname + '/../docs/scripts', { recursive: true }); mix .js('js/index.js', 'dist/vue-context-demos.js') diff --git a/docs/demos/advanced.md b/docs/demos/advanced.md index 419e866..adf25cb 100644 --- a/docs/demos/advanced.md +++ b/docs/demos/advanced.md @@ -304,4 +304,4 @@ export default { [Demo Source](https://github.com/rawilk/vue-context/blob/master/docs-build/js/advanced/nested-menus.vue) - + diff --git a/docs/scripts/vue-context-advanced-demos.js b/docs/scripts/vue-context-advanced-demos.1598840380789.js similarity index 99% rename from docs/scripts/vue-context-advanced-demos.js rename to docs/scripts/vue-context-advanced-demos.1598840380789.js index 2dbddf1..8ba9d47 100644 --- a/docs/scripts/vue-context-advanced-demos.js +++ b/docs/scripts/vue-context-advanced-demos.1598840380789.js @@ -275,7 +275,7 @@ new vue__WEBPACK_IMPORTED_MODULE_0___default.a({ components: { NestedMenus: _nested_menus__WEBPACK_IMPORTED_MODULE_3__["default"] } -}).$mount('#nested-menus'); +}).$mount('#nested-app'); /***/ }),