From 5ba4202c7b3d783fa846a66c3289cec9aece17fe Mon Sep 17 00:00:00 2001 From: "Alex A. Naanou" Date: Fri, 5 Aug 2022 18:21:18 +0300 Subject: [PATCH] refactored the module structure... Signed-off-by: Alex A. Naanou --- {filters => pwiki/filters}/base.js | 0 {filters => pwiki/filters}/markdown.js | 0 page.js => pwiki/page.js | 38 ++++++++++++++++++++++---- parser.js => pwiki/parser.js | 0 {lib => pwiki}/path.js | 0 {store => pwiki/store}/base.js | 2 +- {store => pwiki/store}/file.js | 4 +-- {store => pwiki/store}/localstorage.js | 4 +-- {store => pwiki/store}/pouchdb.js | 4 +-- pwiki2-test.js | 4 +-- pwiki2.js | 6 ++-- 11 files changed, 44 insertions(+), 18 deletions(-) rename {filters => pwiki/filters}/base.js (100%) rename {filters => pwiki/filters}/markdown.js (100%) rename page.js => pwiki/page.js (93%) rename parser.js => pwiki/parser.js (100%) rename {lib => pwiki}/path.js (100%) rename {store => pwiki/store}/base.js (96%) rename {store => pwiki/store}/file.js (96%) rename {store => pwiki/store}/localstorage.js (93%) rename {store => pwiki/store}/pouchdb.js (93%) diff --git a/filters/base.js b/pwiki/filters/base.js similarity index 100% rename from filters/base.js rename to pwiki/filters/base.js diff --git a/filters/markdown.js b/pwiki/filters/markdown.js similarity index 100% rename from filters/markdown.js rename to pwiki/filters/markdown.js diff --git a/page.js b/pwiki/page.js similarity index 93% rename from page.js rename to pwiki/page.js index 59e3017..613baf7 100755 --- a/page.js +++ b/pwiki/page.js @@ -12,7 +12,7 @@ var object = require('ig-object') var types = require('ig-types') -var pwpath = require('./lib/path') +var pwpath = require('./path') var parser = require('./parser') var filters = require('./filters/base') var markdown = require('./filters/markdown') @@ -519,7 +519,7 @@ object.Constructor('Page', BasePage, { QUOTING_MACROS: ['quote'], // templates used to render a page via .text - PAGE_TPL: '_text', + PAGE_TEMPLATE: '_text', // NOTE: comment this out to make the system fail when nothing is // resolved, not even the System/NotFound page... @@ -1053,12 +1053,12 @@ object.Constructor('Page', BasePage, { // expanded page text... // - // NOTE: this uses .PAGE_TPL to render the page. + // NOTE: this uses .PAGE_TEMPLATE to render the page. // NOTE: writing to .raw is the same as writing to .text... get text(){ return (async function(){ var path = pwpath.split(this.path) path.at(-1)[0] == '_' - || path.push(this.PAGE_TPL) + || path.push(this.PAGE_TEMPLATE) var tpl = pwpath.join(path) var tpl_name = path.pop() @@ -1076,7 +1076,7 @@ object.Constructor('Page', BasePage, { var path = pwpath.split(this.path) return [path.at(-1)[0] == '_' ? await this.parse() - : await this.get('./'+ this.PAGE_TPL).parse()] + : await this.get('./'+ this.PAGE_TEMPLATE).parse()] .flat() .join('\n') }).call(this) }, //*/ @@ -1094,21 +1094,47 @@ var System = module.System = { // base templates... // + // These are used to control how a page is rendered. + // + // pWiki has to have a template appended to any path, if one is not + // given then "_text" is used internally. + // + // A template is rendered in the context of the parent page, e.g. + // for /path/to/page, the actual rendered template is /path/to/page/_text + // and it is rendered from /path/to/page. + // + // A template is any page named starting with an underscore ("_") + // thus it is not recommended to use underscores to start page names. + // + // The actual default template is controlled via .PAGE_TEMPLATE + // + // Example: + // _list: { + // text: '- @source(.)' }, + // _text: { - //text: '@source(.)' }, text: '@include(.)' }, _raw: { text: '@quote(.)' }, + + // base system pages... + // + // NOTE: these are last resort pages, preferably overloaded in /Templates. RecursionError: { text: 'RECURSION ERROR: @quote(./path)' }, NotFoundError: { text: 'NOT FOUND ERROR: @quote(./path)' }, + + // page actions... + // + // XXX tests... test_list: function(){ return 'abcdef'.split('') }, + // metadata... // path: function(){ diff --git a/parser.js b/pwiki/parser.js similarity index 100% rename from parser.js rename to pwiki/parser.js diff --git a/lib/path.js b/pwiki/path.js similarity index 100% rename from lib/path.js rename to pwiki/path.js diff --git a/store/base.js b/pwiki/store/base.js similarity index 96% rename from store/base.js rename to pwiki/store/base.js index 1c6cd69..5c59dbb 100755 --- a/store/base.js +++ b/pwiki/store/base.js @@ -10,7 +10,7 @@ var object = require('ig-object') var types = require('ig-types') -var pwpath = require('../lib/path') +var pwpath = require('../path') //--------------------------------------------------------------------- diff --git a/store/file.js b/pwiki/store/file.js similarity index 96% rename from store/file.js rename to pwiki/store/file.js index e8ad4a8..fc182f3 100755 --- a/store/file.js +++ b/pwiki/store/file.js @@ -13,9 +13,9 @@ var glob = require('glob') var object = require('ig-object') var types = require('ig-types') -var pwpath = require('../lib/path') +var pwpath = require('../path') -var base = require('../store/base') +var base = require('./base') //--------------------------------------------------------------------- diff --git a/store/localstorage.js b/pwiki/store/localstorage.js similarity index 93% rename from store/localstorage.js rename to pwiki/store/localstorage.js index 65f06c6..22de735 100755 --- a/store/localstorage.js +++ b/pwiki/store/localstorage.js @@ -10,9 +10,9 @@ var object = require('ig-object') var types = require('ig-types') -var pwpath = require('../lib/path') +var pwpath = require('../path') -var base = require('../store/base') +var base = require('./base') //--------------------------------------------------------------------- diff --git a/store/pouchdb.js b/pwiki/store/pouchdb.js similarity index 93% rename from store/pouchdb.js rename to pwiki/store/pouchdb.js index dd3130c..9bbbf19 100755 --- a/store/pouchdb.js +++ b/pwiki/store/pouchdb.js @@ -10,8 +10,8 @@ var object = require('ig-object') var types = require('ig-types') -var pwpath = require('../lib/path') -var base = require('../store/base') +var pwpath = require('../path') +var base = require('./base') var PouchDB = require('pouchdb') diff --git a/pwiki2-test.js b/pwiki2-test.js index ed141db..f42e51c 100755 --- a/pwiki2-test.js +++ b/pwiki2-test.js @@ -10,9 +10,9 @@ var pwiki = require('./pwiki2') // XXX for some reason this does not run quietly in browser -var pouchdbstore = require('./store/pouchdb') +var pouchdbstore = require('./pwiki/store/pouchdb') // XXX need to prevent this from breaking in browser... -var filestore = require('./store/file') +var filestore = require('./pwiki/store/file') // XXX this fails silently in browser... var bootstrap = require('./bootstrap') diff --git a/pwiki2.js b/pwiki2.js index 581b9aa..24137c1 100755 --- a/pwiki2.js +++ b/pwiki2.js @@ -119,10 +119,10 @@ var object = require('ig-object') var types = require('ig-types') -var pwpath = require('./lib/path') -var page = require('./page') +var pwpath = require('./pwiki/path') +var page = require('./pwiki/page') -var basestore = require('./store/base') +var basestore = require('./pwiki/store/base') //var localstoragestore = require('./store/localstorage') // XXX for some reason this does not run quietly in browser