From b7b6cb1f6aa77907a8639df64bb4d9d3d1ea71f0 Mon Sep 17 00:00:00 2001 From: Nullivex <bryan@nullivex.com> Date: Fri, 17 Apr 2020 16:22:28 -0600 Subject: [PATCH 1/2] Upgrade to latest application structure. --- app.js | 8 +- lib/Main.js | 137 +++++++++++++++ lib/VersionSwitch.js | 2 +- main/route/index.js | 161 ------------------ {main/public => public}/css/style.css | 0 {main/public => public}/favicon.ico | Bin {main/public => public}/kado-favicon-128.png | Bin {main/public => public}/robots.txt | 0 {main/views => view}/api.html | 0 .../article/3/fall-update-2019.html | 0 .../article/3/introduction-to-kado.html | 0 .../article/3/kado-6-months-in.html | 0 .../article/3/may-update-2019.html | 0 .../article/3/upgrading-from-kado-3.html | 0 .../article/4/fall-update-2019.html | 0 .../article/4/introduction-to-kado.html | 0 .../article/4/kado-4-released.html | 0 .../article/4/kado-6-months-in.html | 0 .../article/4/may-update-2019.html | 0 {main/views => view}/article/4/thesis.html | 0 .../article/4/upgrading-from-kado-3.html | 0 {main/views => view}/doc.html | 0 {main/views => view}/doc/3/api.html | 0 .../doc/3/command-line-interface.html | 0 {main/views => view}/doc/3/configuration.html | 0 {main/views => view}/doc/3/database.html | 0 {main/views => view}/doc/3/interfaces.html | 0 {main/views => view}/doc/3/module.html | 0 {main/views => view}/doc/3/reference.html | 0 {main/views => view}/doc/3/templates.html | 0 {main/views => view}/doc/4/application.html | 0 {main/views => view}/doc/4/assert.html | 0 {main/views => view}/doc/4/asset.html | 0 {main/views => view}/doc/4/child-process.html | 0 {main/views => view}/doc/4/cluster.html | 0 .../views => view}/doc/4/command-server.html | 0 {main/views => view}/doc/4/command.html | 0 .../views => view}/doc/4/connect-engine.html | 0 {main/views => view}/doc/4/connect.html | 0 {main/views => view}/doc/4/contributing.html | 0 {main/views => view}/doc/4/cron.html | 0 {main/views => view}/doc/4/database.html | 0 {main/views => view}/doc/4/email.html | 0 {main/views => view}/doc/4/etag.html | 0 {main/views => view}/doc/4/event.html | 0 {main/views => view}/doc/4/file-system.html | 0 {main/views => view}/doc/4/format.html | 0 {main/views => view}/doc/4/get-opt.html | 0 {main/views => view}/doc/4/history.html | 0 {main/views => view}/doc/4/hyper-text.html | 0 {main/views => view}/doc/4/language.html | 0 {main/views => view}/doc/4/library.html | 0 {main/views => view}/doc/4/license.html | 0 {main/views => view}/doc/4/lifecycle.html | 0 {main/views => view}/doc/4/log.html | 0 {main/views => view}/doc/4/mapper.html | 0 {main/views => view}/doc/4/message.html | 0 {main/views => view}/doc/4/mime.html | 0 {main/views => view}/doc/4/module.html | 0 {main/views => view}/doc/4/navigation.html | 0 {main/views => view}/doc/4/parser.html | 0 {main/views => view}/doc/4/path-exp.html | 0 {main/views => view}/doc/4/permission.html | 0 {main/views => view}/doc/4/profiler.html | 0 {main/views => view}/doc/4/router.html | 0 {main/views => view}/doc/4/search.html | 0 {main/views => view}/doc/4/session.html | 0 {main/views => view}/doc/4/test-runner.html | 0 {main/views => view}/doc/4/util.html | 0 {main/views => view}/doc/4/validate.html | 0 {main/views => view}/doc/4/view.html | 0 {main/views => view}/error.html | 0 {main/views => view}/footer.html | 0 {main/views => view}/guide/3/developer.html | 0 .../guide/3/getting-started.html | 0 .../guide/3/install-the-demo.html | 0 .../views => view}/guide/3/installation.html | 0 .../guide/3/website-cheat-sheet.html | 0 .../guide/4/advanced-techniques.html | 0 .../guide/4/build-admin-panel.html | 0 .../guide/4/database-work-flow.html | 0 {main/views => view}/guide/4/download.html | 0 .../guide/4/getting-started.html | 0 {main/views => view}/guide/4/hello-world.html | 0 .../guide/4/make-simple-website.html | 0 {main/views => view}/guide/4/quick-start.html | 0 .../guide/4/views-rendering.html | 0 {main/views => view}/guide/4/why-kado.html | 0 .../guide/4/working-with-email.html | 0 .../views => view}/guide/4/writing-tests.html | 0 {main/views => view}/header.html | 0 {main/views => view}/info.json | 0 .../views => view}/info/3/release-cycle.html | 0 {main/views => view}/info/3/themes.html | 0 {main/views => view}/info/4/about-us.html | 0 {main/views => view}/info/4/changelog.html | 0 {main/views => view}/info/4/contributing.html | 0 {main/views => view}/info/4/download.html | 0 {main/views => view}/info/4/home.html | 0 {main/views => view}/info/4/introduction.html | 0 {main/views => view}/info/4/license.html | 0 {main/views => view}/info/4/why-kado.html | 0 {main/views => view}/sidebar.html | 0 103 files changed, 142 insertions(+), 166 deletions(-) create mode 100644 lib/Main.js delete mode 100644 main/route/index.js rename {main/public => public}/css/style.css (100%) rename {main/public => public}/favicon.ico (100%) rename {main/public => public}/kado-favicon-128.png (100%) rename {main/public => public}/robots.txt (100%) rename {main/views => view}/api.html (100%) rename {main/views => view}/article/3/fall-update-2019.html (100%) rename {main/views => view}/article/3/introduction-to-kado.html (100%) rename {main/views => view}/article/3/kado-6-months-in.html (100%) rename {main/views => view}/article/3/may-update-2019.html (100%) rename {main/views => view}/article/3/upgrading-from-kado-3.html (100%) rename {main/views => view}/article/4/fall-update-2019.html (100%) rename {main/views => view}/article/4/introduction-to-kado.html (100%) rename {main/views => view}/article/4/kado-4-released.html (100%) rename {main/views => view}/article/4/kado-6-months-in.html (100%) rename {main/views => view}/article/4/may-update-2019.html (100%) rename {main/views => view}/article/4/thesis.html (100%) rename {main/views => view}/article/4/upgrading-from-kado-3.html (100%) rename {main/views => view}/doc.html (100%) rename {main/views => view}/doc/3/api.html (100%) rename {main/views => view}/doc/3/command-line-interface.html (100%) rename {main/views => view}/doc/3/configuration.html (100%) rename {main/views => view}/doc/3/database.html (100%) rename {main/views => view}/doc/3/interfaces.html (100%) rename {main/views => view}/doc/3/module.html (100%) rename {main/views => view}/doc/3/reference.html (100%) rename {main/views => view}/doc/3/templates.html (100%) rename {main/views => view}/doc/4/application.html (100%) rename {main/views => view}/doc/4/assert.html (100%) rename {main/views => view}/doc/4/asset.html (100%) rename {main/views => view}/doc/4/child-process.html (100%) rename {main/views => view}/doc/4/cluster.html (100%) rename {main/views => view}/doc/4/command-server.html (100%) rename {main/views => view}/doc/4/command.html (100%) rename {main/views => view}/doc/4/connect-engine.html (100%) rename {main/views => view}/doc/4/connect.html (100%) rename {main/views => view}/doc/4/contributing.html (100%) rename {main/views => view}/doc/4/cron.html (100%) rename {main/views => view}/doc/4/database.html (100%) rename {main/views => view}/doc/4/email.html (100%) rename {main/views => view}/doc/4/etag.html (100%) rename {main/views => view}/doc/4/event.html (100%) rename {main/views => view}/doc/4/file-system.html (100%) rename {main/views => view}/doc/4/format.html (100%) rename {main/views => view}/doc/4/get-opt.html (100%) rename {main/views => view}/doc/4/history.html (100%) rename {main/views => view}/doc/4/hyper-text.html (100%) rename {main/views => view}/doc/4/language.html (100%) rename {main/views => view}/doc/4/library.html (100%) rename {main/views => view}/doc/4/license.html (100%) rename {main/views => view}/doc/4/lifecycle.html (100%) rename {main/views => view}/doc/4/log.html (100%) rename {main/views => view}/doc/4/mapper.html (100%) rename {main/views => view}/doc/4/message.html (100%) rename {main/views => view}/doc/4/mime.html (100%) rename {main/views => view}/doc/4/module.html (100%) rename {main/views => view}/doc/4/navigation.html (100%) rename {main/views => view}/doc/4/parser.html (100%) rename {main/views => view}/doc/4/path-exp.html (100%) rename {main/views => view}/doc/4/permission.html (100%) rename {main/views => view}/doc/4/profiler.html (100%) rename {main/views => view}/doc/4/router.html (100%) rename {main/views => view}/doc/4/search.html (100%) rename {main/views => view}/doc/4/session.html (100%) rename {main/views => view}/doc/4/test-runner.html (100%) rename {main/views => view}/doc/4/util.html (100%) rename {main/views => view}/doc/4/validate.html (100%) rename {main/views => view}/doc/4/view.html (100%) rename {main/views => view}/error.html (100%) rename {main/views => view}/footer.html (100%) rename {main/views => view}/guide/3/developer.html (100%) rename {main/views => view}/guide/3/getting-started.html (100%) rename {main/views => view}/guide/3/install-the-demo.html (100%) rename {main/views => view}/guide/3/installation.html (100%) rename {main/views => view}/guide/3/website-cheat-sheet.html (100%) rename {main/views => view}/guide/4/advanced-techniques.html (100%) rename {main/views => view}/guide/4/build-admin-panel.html (100%) rename {main/views => view}/guide/4/database-work-flow.html (100%) rename {main/views => view}/guide/4/download.html (100%) rename {main/views => view}/guide/4/getting-started.html (100%) rename {main/views => view}/guide/4/hello-world.html (100%) rename {main/views => view}/guide/4/make-simple-website.html (100%) rename {main/views => view}/guide/4/quick-start.html (100%) rename {main/views => view}/guide/4/views-rendering.html (100%) rename {main/views => view}/guide/4/why-kado.html (100%) rename {main/views => view}/guide/4/working-with-email.html (100%) rename {main/views => view}/guide/4/writing-tests.html (100%) rename {main/views => view}/header.html (100%) rename {main/views => view}/info.json (100%) rename {main/views => view}/info/3/release-cycle.html (100%) rename {main/views => view}/info/3/themes.html (100%) rename {main/views => view}/info/4/about-us.html (100%) rename {main/views => view}/info/4/changelog.html (100%) rename {main/views => view}/info/4/contributing.html (100%) rename {main/views => view}/info/4/download.html (100%) rename {main/views => view}/info/4/home.html (100%) rename {main/views => view}/info/4/introduction.html (100%) rename {main/views => view}/info/4/license.html (100%) rename {main/views => view}/info/4/why-kado.html (100%) rename {main/views => view}/sidebar.html (100%) diff --git a/app.js b/app.js index d18d772..95f0e22 100644 --- a/app.js +++ b/app.js @@ -33,6 +33,7 @@ if (process.env.command !== 'session' && cluster.isMaster()) { // declare our application const Application = require('kado/lib/Application') const HyperText = require('kado/lib/HyperText') + const Main = require('./lib/Main') const Parser = require('kado/lib/Parser') const Session = require('kado/lib/Session') const VersionSwitch = require('./lib/VersionSwitch') @@ -46,11 +47,11 @@ if (process.env.command !== 'session' && cluster.isMaster()) { http.setHost(cfg.main.host) app.http.addEngine('http', http.createServer(app.router)) // add a view engine - const viewFolder = fs.path.join(__dirname, 'main/views') + const viewFolder = fs.path.join(__dirname, 'view') app.view.addEngine('mustache', new ViewMustache(viewFolder)) app.view.activateEngine('mustache') // add a static server - const staticRoot = fs.path.join(__dirname, 'main/public') + const staticRoot = fs.path.join(__dirname, 'public') app.use(HyperText.StaticServer.getMiddleware(staticRoot)) app.use((req) => { req.locals._appTitle = cfg.appTitle @@ -68,8 +69,7 @@ if (process.env.command !== 'session' && cluster.isMaster()) { // set the version to session if its in the query string and then redirect app.use(VersionSwitch.getMiddleware(cfg.main.versionList)) // install routes - const route = require('./main/route') - route.register(app) + Main.register(app) // initiate communications with the master and startup Cluster.child( http.getEngine(), diff --git a/lib/Main.js b/lib/Main.js new file mode 100644 index 0000000..e7774e5 --- /dev/null +++ b/lib/Main.js @@ -0,0 +1,137 @@ +'use strict' +const Assert = require('kado/lib/Assert') +const fs = require('kado/lib/FileSystem') +const info = require('../view/info.json') +const Validate = require('kado/lib/Validate') +class Main { + static register (app) { + const route = new Main( + fs.path.join(__dirname, '../view'), + info.latestVersion + ) + const redirectPath = (type) => { + return (req, res) => { + if (!type || !req.params.doc) return false + res.statusCode = 302 + let uri = `/${type}/` + if (req.params.version) uri += `${req.params.version}/` + uri += `${req.params.doc}/` + res.redirect(uri) + } + } + app.get('/', route.index.bind(route)) + app.get('/:type/:version/:doc/:link.md', route.linkTo.bind(route)) + app.get('/:type/:doc/:link.md', route.linkTo.bind(route)) + app.get('/article/:version/:doc/', route.article.bind(route)) + app.get('/article/:link.md', route.linkTo.bind(route)) + app.get('/article/:doc/', route.article.bind(route)) + app.get('/doc/:link.md', route.linkTo.bind(route)) + app.get('/doc/:version/:doc/', route.doc.bind(route)) + app.get('/doc/:doc/', route.doc.bind(route)) + app.get('/download/', route.download.bind(route)) + app.get('/guide/:version/:link.md', route.linkTo.bind(route)) + app.get('/guide/:link.md', route.linkTo.bind(route)) + app.get('/guide/:doc/', route.guide.bind(route)) + app.get('/info/:version/:link.md', route.linkTo.bind(route)) + app.get('/info/:link.md', route.linkTo.bind(route)) + app.get('/info/:doc/', route.info.bind(route)) + app.get('/license/', route.license.bind(route)) + app.get('/article/:doc', redirectPath('article')) + app.get('/doc/:version/:doc', redirectPath('doc')) + app.get('/guide/:version/:doc', redirectPath('guide')) + app.get('/doc/:doc', redirectPath('doc')) + app.get('/guide/:doc', redirectPath('guide')) + } + + static titleCaseToUri (input) { + let rv = '' + for (let i = 0; i < input.length; i++) { + if (input[i] === input[i].toUpperCase() || input[i].match(/\d+/)) { + if (rv !== '' && rv !== '-') rv += '-' + rv += input[i].toLowerCase() + } else { rv += input[i] } + } + return rv + } + + constructor (viewFolder, version) { + Assert.isType('string', viewFolder) + this.version = version + this.viewFolder = viewFolder + } + + article (req, res) { + this.renderDoc(req.params.doc, res, req.params.version) + } + + doc (req, res) { + this.renderDoc(req.params.doc, res, req.params.version) + } + + download (req, res) { this.renderDoc('download', res) } + + guide (req, res) { this.renderDoc(req.params.doc, res) } + + info (req, res) { this.renderDoc(req.params.doc, res) } + + index (req, res) { this.renderDoc('home', res) } + + license (req, res) { res.redirect('/info/license/') } + + linkTo (req, res) { + if (!req.params.link) { + res.statusCode = 500 + return res.end(`Invalid link type: ${req.url}`) + } + const [majorVersion = '0'] = ( + '' + (req.params.version || this.version) + ).split('.') + const docInfo = info['v' + majorVersion] + let doc = null + const link = Route.titleCaseToUri(req.params.link) + if (docInfo.docMap[link]) doc = docInfo.docMap[link] + if (Validate.isType('string', doc)) doc = { url: doc } + if (!doc) { + res.statusCode = 500 + return res.end(`No document found to link to: ${req.url} from ${link}`) + } + let url = '/' + if (doc.type) url += `${doc.type}/` + if (req.params.version) url += `${docInfo.docVersion}/` + url += `${doc.name}/` + res.statusCode = 302 + res.setHeader('Location', url) + return res.end() + } + + renderDoc (name = '', res = {}, version = info.latestVersion) { + const vString = `v${version.split('.')[0]}` + Assert.isType('string', name) + Assert.isOk( + name !== 'undefined' && name.length >= 1, + 'Document name must not be empty' + ) + Assert.isType('Object', info[vString].docMap) + Assert.isType('Object', info[vString].docMap[name]) + const doc = info[vString].docMap[name] + let viewPath = doc.filePath + if (!fs.exists(viewPath)) { + viewPath = info[vString].docMap[name].basePath + } + viewPath = fs.path.join(this.viewFolder, viewPath) + fs.readFile(viewPath) + .then((result) => { + Assert.isType('Buffer', result) + const html = result.toString('utf8') + Assert.isType('string', html) + const params = { content: html } + if (name !== 'home') params._pageTitle = doc.title + res.render('doc', params) + }) + .catch((e) => { + res.statusCode = 500 + if (e instanceof Error) res.render('error', { message: e.message }) + }) + } +} +module.exports = Main diff --git a/lib/VersionSwitch.js b/lib/VersionSwitch.js index f37085f..43d267a 100644 --- a/lib/VersionSwitch.js +++ b/lib/VersionSwitch.js @@ -1,5 +1,5 @@ 'use strict' -const info = require('../main/views/info.json') +const info = require('../view/info.json') class VersionSwitch { static generateVersion (versionName) { const [major = '0', minor = '0', security = '0'] = versionName.split('.') diff --git a/main/route/index.js b/main/route/index.js deleted file mode 100644 index 03e7ccb..0000000 --- a/main/route/index.js +++ /dev/null @@ -1,161 +0,0 @@ -'use strict' -const Assert = require('kado/lib/Assert') -const fs = require('kado/lib/FileSystem') -const info = require('../views/info.json') -const Validate = require('kado/lib/Validate') -class Route { - static titleCaseToUri (input) { - let rv = '' - for (let i = 0; i < input.length; i++) { - if (input[i] === input[i].toUpperCase() || input[i].match(/\d+/)) { - if (rv !== '' && rv !== '-') rv += '-' - rv += input[i].toLowerCase() - } else { rv += input[i] } - } - return rv - } - - constructor (viewFolder, version) { - Assert.isType('string', viewFolder) - this.version = version - this.viewFolder = viewFolder - } - - renderDoc (name = '', res = {}, version = info.latestVersion) { - const vString = `v${version.split('.')[0]}` - Assert.isType('string', name) - Assert.isOk( - name !== 'undefined' && name.length >= 1, - 'Document name must not be empty' - ) - Assert.isType('Object', info[vString].docMap) - Assert.isType('Object', info[vString].docMap[name]) - const doc = info[vString].docMap[name] - let viewPath = doc.filePath - if (!fs.exists(viewPath)) { - viewPath = info[vString].docMap[name].basePath - } - viewPath = fs.path.join(this.viewFolder, viewPath) - fs.readFile(viewPath) - .then((result) => { - Assert.isType('Buffer', result) - const html = result.toString('utf8') - Assert.isType('string', html) - const params = { content: html } - if (name !== 'home') params._pageTitle = doc.title - res.render('doc', params) - }) - .catch((e) => { - res.statusCode = 500 - if (e instanceof Error) res.render('error', { message: e.message }) - }) - } - - article () { - return (req, res) => { - this.renderDoc(req.params.doc, res, req.params.version) - } - } - - doc () { - return (req, res) => { - this.renderDoc(req.params.doc, res, req.params.version) - } - } - - download () { - return (req, res) => { this.renderDoc('download', res) } - } - - guide () { - return (req, res) => { - this.renderDoc(req.params.doc, res) - } - } - - info () { - return (req, res) => { - this.renderDoc(req.params.doc, res) - } - } - - index () { - return (req, res) => { this.renderDoc('home', res) } - } - - license () { - return (req, res) => { - res.statusCode = 301 - res.setHeader('Location', '/info/license/') - return res.end() - } - } - - linkDoc () { - return (req, res) => { - if (!req.params.link) { - res.statusCode = 500 - return res.end(`Invalid link type: ${req.url}`) - } - const [majorVersion = '0'] = ( - '' + (req.params.version || this.version) - ).split('.') - const docInfo = info['v' + majorVersion] - let doc = null - const link = Route.titleCaseToUri(req.params.link) - if (docInfo.docMap[link]) doc = docInfo.docMap[link] - if (Validate.isType('string', doc)) doc = { url: doc } - if (!doc) { - res.statusCode = 500 - return res.end(`No document found to link to: ${req.url} from ${link}`) - } - let url = '/' - if (doc.type) url += `${doc.type}/` - if (req.params.version) url += `${docInfo.docVersion}/` - url += `${doc.name}/` - res.statusCode = 302 - res.setHeader('Location', url) - return res.end() - } - } -} -Route.register = (app) => { - const route = new Route( - fs.path.join(__dirname, '../views'), - info.latestVersion - ) - const redirectPath = (type) => { - return (req, res) => { - if (!type || !req.params.doc) return false - res.statusCode = 302 - let uri = `/${type}/` - if (req.params.version) uri += `${req.params.version}/` - uri += `${req.params.doc}/` - res.setHeader('Location', uri) - res.end() - } - } - app.get('/', route.index()) - app.get('/:type/:version/:doc/:link.md', route.linkDoc()) - app.get('/:type/:doc/:link.md', route.linkDoc()) - app.get('/article/:version/:doc/', route.article()) - app.get('/article/:link.md', route.linkDoc()) - app.get('/article/:doc/', route.article()) - app.get('/doc/:link.md', route.linkDoc()) - app.get('/doc/:version/:doc/', route.doc()) - app.get('/doc/:doc/', route.doc()) - app.get('/download/', route.download()) - app.get('/guide/:version/:link.md', route.linkDoc()) - app.get('/guide/:link.md', route.linkDoc()) - app.get('/guide/:doc/', route.guide()) - app.get('/info/:version/:link.md', route.linkDoc()) - app.get('/info/:link.md', route.linkDoc()) - app.get('/info/:doc/', route.info()) - app.get('/license/', route.license()) - app.get('/article/:doc', redirectPath('article')) - app.get('/doc/:version/:doc', redirectPath('doc')) - app.get('/guide/:version/:doc', redirectPath('guide')) - app.get('/doc/:doc', redirectPath('doc')) - app.get('/guide/:doc', redirectPath('guide')) -} -module.exports = Route diff --git a/main/public/css/style.css b/public/css/style.css similarity index 100% rename from main/public/css/style.css rename to public/css/style.css diff --git a/main/public/favicon.ico b/public/favicon.ico similarity index 100% rename from main/public/favicon.ico rename to public/favicon.ico diff --git a/main/public/kado-favicon-128.png b/public/kado-favicon-128.png similarity index 100% rename from main/public/kado-favicon-128.png rename to public/kado-favicon-128.png diff --git a/main/public/robots.txt b/public/robots.txt similarity index 100% rename from main/public/robots.txt rename to public/robots.txt diff --git a/main/views/api.html b/view/api.html similarity index 100% rename from main/views/api.html rename to view/api.html diff --git a/main/views/article/3/fall-update-2019.html b/view/article/3/fall-update-2019.html similarity index 100% rename from main/views/article/3/fall-update-2019.html rename to view/article/3/fall-update-2019.html diff --git a/main/views/article/3/introduction-to-kado.html b/view/article/3/introduction-to-kado.html similarity index 100% rename from main/views/article/3/introduction-to-kado.html rename to view/article/3/introduction-to-kado.html diff --git a/main/views/article/3/kado-6-months-in.html b/view/article/3/kado-6-months-in.html similarity index 100% rename from main/views/article/3/kado-6-months-in.html rename to view/article/3/kado-6-months-in.html diff --git a/main/views/article/3/may-update-2019.html b/view/article/3/may-update-2019.html similarity index 100% rename from main/views/article/3/may-update-2019.html rename to view/article/3/may-update-2019.html diff --git a/main/views/article/3/upgrading-from-kado-3.html b/view/article/3/upgrading-from-kado-3.html similarity index 100% rename from main/views/article/3/upgrading-from-kado-3.html rename to view/article/3/upgrading-from-kado-3.html diff --git a/main/views/article/4/fall-update-2019.html b/view/article/4/fall-update-2019.html similarity index 100% rename from main/views/article/4/fall-update-2019.html rename to view/article/4/fall-update-2019.html diff --git a/main/views/article/4/introduction-to-kado.html b/view/article/4/introduction-to-kado.html similarity index 100% rename from main/views/article/4/introduction-to-kado.html rename to view/article/4/introduction-to-kado.html diff --git a/main/views/article/4/kado-4-released.html b/view/article/4/kado-4-released.html similarity index 100% rename from main/views/article/4/kado-4-released.html rename to view/article/4/kado-4-released.html diff --git a/main/views/article/4/kado-6-months-in.html b/view/article/4/kado-6-months-in.html similarity index 100% rename from main/views/article/4/kado-6-months-in.html rename to view/article/4/kado-6-months-in.html diff --git a/main/views/article/4/may-update-2019.html b/view/article/4/may-update-2019.html similarity index 100% rename from main/views/article/4/may-update-2019.html rename to view/article/4/may-update-2019.html diff --git a/main/views/article/4/thesis.html b/view/article/4/thesis.html similarity index 100% rename from main/views/article/4/thesis.html rename to view/article/4/thesis.html diff --git a/main/views/article/4/upgrading-from-kado-3.html b/view/article/4/upgrading-from-kado-3.html similarity index 100% rename from main/views/article/4/upgrading-from-kado-3.html rename to view/article/4/upgrading-from-kado-3.html diff --git a/main/views/doc.html b/view/doc.html similarity index 100% rename from main/views/doc.html rename to view/doc.html diff --git a/main/views/doc/3/api.html b/view/doc/3/api.html similarity index 100% rename from main/views/doc/3/api.html rename to view/doc/3/api.html diff --git a/main/views/doc/3/command-line-interface.html b/view/doc/3/command-line-interface.html similarity index 100% rename from main/views/doc/3/command-line-interface.html rename to view/doc/3/command-line-interface.html diff --git a/main/views/doc/3/configuration.html b/view/doc/3/configuration.html similarity index 100% rename from main/views/doc/3/configuration.html rename to view/doc/3/configuration.html diff --git a/main/views/doc/3/database.html b/view/doc/3/database.html similarity index 100% rename from main/views/doc/3/database.html rename to view/doc/3/database.html diff --git a/main/views/doc/3/interfaces.html b/view/doc/3/interfaces.html similarity index 100% rename from main/views/doc/3/interfaces.html rename to view/doc/3/interfaces.html diff --git a/main/views/doc/3/module.html b/view/doc/3/module.html similarity index 100% rename from main/views/doc/3/module.html rename to view/doc/3/module.html diff --git a/main/views/doc/3/reference.html b/view/doc/3/reference.html similarity index 100% rename from main/views/doc/3/reference.html rename to view/doc/3/reference.html diff --git a/main/views/doc/3/templates.html b/view/doc/3/templates.html similarity index 100% rename from main/views/doc/3/templates.html rename to view/doc/3/templates.html diff --git a/main/views/doc/4/application.html b/view/doc/4/application.html similarity index 100% rename from main/views/doc/4/application.html rename to view/doc/4/application.html diff --git a/main/views/doc/4/assert.html b/view/doc/4/assert.html similarity index 100% rename from main/views/doc/4/assert.html rename to view/doc/4/assert.html diff --git a/main/views/doc/4/asset.html b/view/doc/4/asset.html similarity index 100% rename from main/views/doc/4/asset.html rename to view/doc/4/asset.html diff --git a/main/views/doc/4/child-process.html b/view/doc/4/child-process.html similarity index 100% rename from main/views/doc/4/child-process.html rename to view/doc/4/child-process.html diff --git a/main/views/doc/4/cluster.html b/view/doc/4/cluster.html similarity index 100% rename from main/views/doc/4/cluster.html rename to view/doc/4/cluster.html diff --git a/main/views/doc/4/command-server.html b/view/doc/4/command-server.html similarity index 100% rename from main/views/doc/4/command-server.html rename to view/doc/4/command-server.html diff --git a/main/views/doc/4/command.html b/view/doc/4/command.html similarity index 100% rename from main/views/doc/4/command.html rename to view/doc/4/command.html diff --git a/main/views/doc/4/connect-engine.html b/view/doc/4/connect-engine.html similarity index 100% rename from main/views/doc/4/connect-engine.html rename to view/doc/4/connect-engine.html diff --git a/main/views/doc/4/connect.html b/view/doc/4/connect.html similarity index 100% rename from main/views/doc/4/connect.html rename to view/doc/4/connect.html diff --git a/main/views/doc/4/contributing.html b/view/doc/4/contributing.html similarity index 100% rename from main/views/doc/4/contributing.html rename to view/doc/4/contributing.html diff --git a/main/views/doc/4/cron.html b/view/doc/4/cron.html similarity index 100% rename from main/views/doc/4/cron.html rename to view/doc/4/cron.html diff --git a/main/views/doc/4/database.html b/view/doc/4/database.html similarity index 100% rename from main/views/doc/4/database.html rename to view/doc/4/database.html diff --git a/main/views/doc/4/email.html b/view/doc/4/email.html similarity index 100% rename from main/views/doc/4/email.html rename to view/doc/4/email.html diff --git a/main/views/doc/4/etag.html b/view/doc/4/etag.html similarity index 100% rename from main/views/doc/4/etag.html rename to view/doc/4/etag.html diff --git a/main/views/doc/4/event.html b/view/doc/4/event.html similarity index 100% rename from main/views/doc/4/event.html rename to view/doc/4/event.html diff --git a/main/views/doc/4/file-system.html b/view/doc/4/file-system.html similarity index 100% rename from main/views/doc/4/file-system.html rename to view/doc/4/file-system.html diff --git a/main/views/doc/4/format.html b/view/doc/4/format.html similarity index 100% rename from main/views/doc/4/format.html rename to view/doc/4/format.html diff --git a/main/views/doc/4/get-opt.html b/view/doc/4/get-opt.html similarity index 100% rename from main/views/doc/4/get-opt.html rename to view/doc/4/get-opt.html diff --git a/main/views/doc/4/history.html b/view/doc/4/history.html similarity index 100% rename from main/views/doc/4/history.html rename to view/doc/4/history.html diff --git a/main/views/doc/4/hyper-text.html b/view/doc/4/hyper-text.html similarity index 100% rename from main/views/doc/4/hyper-text.html rename to view/doc/4/hyper-text.html diff --git a/main/views/doc/4/language.html b/view/doc/4/language.html similarity index 100% rename from main/views/doc/4/language.html rename to view/doc/4/language.html diff --git a/main/views/doc/4/library.html b/view/doc/4/library.html similarity index 100% rename from main/views/doc/4/library.html rename to view/doc/4/library.html diff --git a/main/views/doc/4/license.html b/view/doc/4/license.html similarity index 100% rename from main/views/doc/4/license.html rename to view/doc/4/license.html diff --git a/main/views/doc/4/lifecycle.html b/view/doc/4/lifecycle.html similarity index 100% rename from main/views/doc/4/lifecycle.html rename to view/doc/4/lifecycle.html diff --git a/main/views/doc/4/log.html b/view/doc/4/log.html similarity index 100% rename from main/views/doc/4/log.html rename to view/doc/4/log.html diff --git a/main/views/doc/4/mapper.html b/view/doc/4/mapper.html similarity index 100% rename from main/views/doc/4/mapper.html rename to view/doc/4/mapper.html diff --git a/main/views/doc/4/message.html b/view/doc/4/message.html similarity index 100% rename from main/views/doc/4/message.html rename to view/doc/4/message.html diff --git a/main/views/doc/4/mime.html b/view/doc/4/mime.html similarity index 100% rename from main/views/doc/4/mime.html rename to view/doc/4/mime.html diff --git a/main/views/doc/4/module.html b/view/doc/4/module.html similarity index 100% rename from main/views/doc/4/module.html rename to view/doc/4/module.html diff --git a/main/views/doc/4/navigation.html b/view/doc/4/navigation.html similarity index 100% rename from main/views/doc/4/navigation.html rename to view/doc/4/navigation.html diff --git a/main/views/doc/4/parser.html b/view/doc/4/parser.html similarity index 100% rename from main/views/doc/4/parser.html rename to view/doc/4/parser.html diff --git a/main/views/doc/4/path-exp.html b/view/doc/4/path-exp.html similarity index 100% rename from main/views/doc/4/path-exp.html rename to view/doc/4/path-exp.html diff --git a/main/views/doc/4/permission.html b/view/doc/4/permission.html similarity index 100% rename from main/views/doc/4/permission.html rename to view/doc/4/permission.html diff --git a/main/views/doc/4/profiler.html b/view/doc/4/profiler.html similarity index 100% rename from main/views/doc/4/profiler.html rename to view/doc/4/profiler.html diff --git a/main/views/doc/4/router.html b/view/doc/4/router.html similarity index 100% rename from main/views/doc/4/router.html rename to view/doc/4/router.html diff --git a/main/views/doc/4/search.html b/view/doc/4/search.html similarity index 100% rename from main/views/doc/4/search.html rename to view/doc/4/search.html diff --git a/main/views/doc/4/session.html b/view/doc/4/session.html similarity index 100% rename from main/views/doc/4/session.html rename to view/doc/4/session.html diff --git a/main/views/doc/4/test-runner.html b/view/doc/4/test-runner.html similarity index 100% rename from main/views/doc/4/test-runner.html rename to view/doc/4/test-runner.html diff --git a/main/views/doc/4/util.html b/view/doc/4/util.html similarity index 100% rename from main/views/doc/4/util.html rename to view/doc/4/util.html diff --git a/main/views/doc/4/validate.html b/view/doc/4/validate.html similarity index 100% rename from main/views/doc/4/validate.html rename to view/doc/4/validate.html diff --git a/main/views/doc/4/view.html b/view/doc/4/view.html similarity index 100% rename from main/views/doc/4/view.html rename to view/doc/4/view.html diff --git a/main/views/error.html b/view/error.html similarity index 100% rename from main/views/error.html rename to view/error.html diff --git a/main/views/footer.html b/view/footer.html similarity index 100% rename from main/views/footer.html rename to view/footer.html diff --git a/main/views/guide/3/developer.html b/view/guide/3/developer.html similarity index 100% rename from main/views/guide/3/developer.html rename to view/guide/3/developer.html diff --git a/main/views/guide/3/getting-started.html b/view/guide/3/getting-started.html similarity index 100% rename from main/views/guide/3/getting-started.html rename to view/guide/3/getting-started.html diff --git a/main/views/guide/3/install-the-demo.html b/view/guide/3/install-the-demo.html similarity index 100% rename from main/views/guide/3/install-the-demo.html rename to view/guide/3/install-the-demo.html diff --git a/main/views/guide/3/installation.html b/view/guide/3/installation.html similarity index 100% rename from main/views/guide/3/installation.html rename to view/guide/3/installation.html diff --git a/main/views/guide/3/website-cheat-sheet.html b/view/guide/3/website-cheat-sheet.html similarity index 100% rename from main/views/guide/3/website-cheat-sheet.html rename to view/guide/3/website-cheat-sheet.html diff --git a/main/views/guide/4/advanced-techniques.html b/view/guide/4/advanced-techniques.html similarity index 100% rename from main/views/guide/4/advanced-techniques.html rename to view/guide/4/advanced-techniques.html diff --git a/main/views/guide/4/build-admin-panel.html b/view/guide/4/build-admin-panel.html similarity index 100% rename from main/views/guide/4/build-admin-panel.html rename to view/guide/4/build-admin-panel.html diff --git a/main/views/guide/4/database-work-flow.html b/view/guide/4/database-work-flow.html similarity index 100% rename from main/views/guide/4/database-work-flow.html rename to view/guide/4/database-work-flow.html diff --git a/main/views/guide/4/download.html b/view/guide/4/download.html similarity index 100% rename from main/views/guide/4/download.html rename to view/guide/4/download.html diff --git a/main/views/guide/4/getting-started.html b/view/guide/4/getting-started.html similarity index 100% rename from main/views/guide/4/getting-started.html rename to view/guide/4/getting-started.html diff --git a/main/views/guide/4/hello-world.html b/view/guide/4/hello-world.html similarity index 100% rename from main/views/guide/4/hello-world.html rename to view/guide/4/hello-world.html diff --git a/main/views/guide/4/make-simple-website.html b/view/guide/4/make-simple-website.html similarity index 100% rename from main/views/guide/4/make-simple-website.html rename to view/guide/4/make-simple-website.html diff --git a/main/views/guide/4/quick-start.html b/view/guide/4/quick-start.html similarity index 100% rename from main/views/guide/4/quick-start.html rename to view/guide/4/quick-start.html diff --git a/main/views/guide/4/views-rendering.html b/view/guide/4/views-rendering.html similarity index 100% rename from main/views/guide/4/views-rendering.html rename to view/guide/4/views-rendering.html diff --git a/main/views/guide/4/why-kado.html b/view/guide/4/why-kado.html similarity index 100% rename from main/views/guide/4/why-kado.html rename to view/guide/4/why-kado.html diff --git a/main/views/guide/4/working-with-email.html b/view/guide/4/working-with-email.html similarity index 100% rename from main/views/guide/4/working-with-email.html rename to view/guide/4/working-with-email.html diff --git a/main/views/guide/4/writing-tests.html b/view/guide/4/writing-tests.html similarity index 100% rename from main/views/guide/4/writing-tests.html rename to view/guide/4/writing-tests.html diff --git a/main/views/header.html b/view/header.html similarity index 100% rename from main/views/header.html rename to view/header.html diff --git a/main/views/info.json b/view/info.json similarity index 100% rename from main/views/info.json rename to view/info.json diff --git a/main/views/info/3/release-cycle.html b/view/info/3/release-cycle.html similarity index 100% rename from main/views/info/3/release-cycle.html rename to view/info/3/release-cycle.html diff --git a/main/views/info/3/themes.html b/view/info/3/themes.html similarity index 100% rename from main/views/info/3/themes.html rename to view/info/3/themes.html diff --git a/main/views/info/4/about-us.html b/view/info/4/about-us.html similarity index 100% rename from main/views/info/4/about-us.html rename to view/info/4/about-us.html diff --git a/main/views/info/4/changelog.html b/view/info/4/changelog.html similarity index 100% rename from main/views/info/4/changelog.html rename to view/info/4/changelog.html diff --git a/main/views/info/4/contributing.html b/view/info/4/contributing.html similarity index 100% rename from main/views/info/4/contributing.html rename to view/info/4/contributing.html diff --git a/main/views/info/4/download.html b/view/info/4/download.html similarity index 100% rename from main/views/info/4/download.html rename to view/info/4/download.html diff --git a/main/views/info/4/home.html b/view/info/4/home.html similarity index 100% rename from main/views/info/4/home.html rename to view/info/4/home.html diff --git a/main/views/info/4/introduction.html b/view/info/4/introduction.html similarity index 100% rename from main/views/info/4/introduction.html rename to view/info/4/introduction.html diff --git a/main/views/info/4/license.html b/view/info/4/license.html similarity index 100% rename from main/views/info/4/license.html rename to view/info/4/license.html diff --git a/main/views/info/4/why-kado.html b/view/info/4/why-kado.html similarity index 100% rename from main/views/info/4/why-kado.html rename to view/info/4/why-kado.html diff --git a/main/views/sidebar.html b/view/sidebar.html similarity index 100% rename from main/views/sidebar.html rename to view/sidebar.html -- GitLab From a66d277d053cd4ac61fd688a4f80ca0f73fe982c Mon Sep 17 00:00:00 2001 From: Nullivex <bryan@nullivex.com> Date: Fri, 17 Apr 2020 16:37:26 -0600 Subject: [PATCH 2/2] Update build.js to point to the new view location. --- build.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.js b/build.js index 3ff9142..cc7ca51 100644 --- a/build.js +++ b/build.js @@ -89,7 +89,7 @@ const converterOpts = { const sha1Exp = /^[0-9a-f]{40}$/ const opt = GetOpt.getInstance(process.argv) const op = opt.opts() -const docRoot = fs.path.join(__dirname, 'main/views') +const docRoot = fs.path.join(__dirname, 'view') const subs = ['article', 'doc', 'guide', 'info'] let foldersCreated = 0 const startTime = new Date() -- GitLab