refactored the module structure...

Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
Alex A. Naanou 2022-08-05 18:21:18 +03:00
parent 8caadbfa11
commit 5ba4202c7b
11 changed files with 44 additions and 18 deletions

View File

@ -12,7 +12,7 @@
var object = require('ig-object') var object = require('ig-object')
var types = require('ig-types') var types = require('ig-types')
var pwpath = require('./lib/path') var pwpath = require('./path')
var parser = require('./parser') var parser = require('./parser')
var filters = require('./filters/base') var filters = require('./filters/base')
var markdown = require('./filters/markdown') var markdown = require('./filters/markdown')
@ -519,7 +519,7 @@ object.Constructor('Page', BasePage, {
QUOTING_MACROS: ['quote'], QUOTING_MACROS: ['quote'],
// templates used to render a page via .text // 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 // NOTE: comment this out to make the system fail when nothing is
// resolved, not even the System/NotFound page... // resolved, not even the System/NotFound page...
@ -1053,12 +1053,12 @@ object.Constructor('Page', BasePage, {
// expanded page text... // 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... // NOTE: writing to .raw is the same as writing to .text...
get text(){ return (async function(){ get text(){ return (async function(){
var path = pwpath.split(this.path) var path = pwpath.split(this.path)
path.at(-1)[0] == '_' path.at(-1)[0] == '_'
|| path.push(this.PAGE_TPL) || path.push(this.PAGE_TEMPLATE)
var tpl = pwpath.join(path) var tpl = pwpath.join(path)
var tpl_name = path.pop() var tpl_name = path.pop()
@ -1076,7 +1076,7 @@ object.Constructor('Page', BasePage, {
var path = pwpath.split(this.path) var path = pwpath.split(this.path)
return [path.at(-1)[0] == '_' ? return [path.at(-1)[0] == '_' ?
await this.parse() await this.parse()
: await this.get('./'+ this.PAGE_TPL).parse()] : await this.get('./'+ this.PAGE_TEMPLATE).parse()]
.flat() .flat()
.join('\n') }).call(this) }, .join('\n') }).call(this) },
//*/ //*/
@ -1094,21 +1094,47 @@ var System =
module.System = { module.System = {
// base templates... // 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>.PAGE_TEMPLATE
//
// Example:
// _list: {
// text: '<macro src="." join="\n">- @source(.)</macro>' },
//
_text: { _text: {
//text: '<macro src="." join="\n">@source(.)</macro>' },
text: '@include(.)' }, text: '@include(.)' },
_raw: { _raw: {
text: '@quote(.)' }, text: '@quote(.)' },
// base system pages...
//
// NOTE: these are last resort pages, preferably overloaded in /Templates.
RecursionError: { RecursionError: {
text: 'RECURSION ERROR: @quote(./path)' }, text: 'RECURSION ERROR: @quote(./path)' },
NotFoundError: { NotFoundError: {
text: 'NOT FOUND ERROR: @quote(./path)' }, text: 'NOT FOUND ERROR: @quote(./path)' },
// page actions...
//
// XXX tests... // XXX tests...
test_list: function(){ test_list: function(){
return 'abcdef'.split('') }, return 'abcdef'.split('') },
// metadata... // metadata...
// //
path: function(){ path: function(){

View File

@ -10,7 +10,7 @@
var object = require('ig-object') var object = require('ig-object')
var types = require('ig-types') var types = require('ig-types')
var pwpath = require('../lib/path') var pwpath = require('../path')
//--------------------------------------------------------------------- //---------------------------------------------------------------------

View File

@ -13,9 +13,9 @@ var glob = require('glob')
var object = require('ig-object') var object = require('ig-object')
var types = require('ig-types') var types = require('ig-types')
var pwpath = require('../lib/path') var pwpath = require('../path')
var base = require('../store/base') var base = require('./base')
//--------------------------------------------------------------------- //---------------------------------------------------------------------

View File

@ -10,9 +10,9 @@
var object = require('ig-object') var object = require('ig-object')
var types = require('ig-types') var types = require('ig-types')
var pwpath = require('../lib/path') var pwpath = require('../path')
var base = require('../store/base') var base = require('./base')
//--------------------------------------------------------------------- //---------------------------------------------------------------------

View File

@ -10,8 +10,8 @@
var object = require('ig-object') var object = require('ig-object')
var types = require('ig-types') var types = require('ig-types')
var pwpath = require('../lib/path') var pwpath = require('../path')
var base = require('../store/base') var base = require('./base')
var PouchDB = require('pouchdb') var PouchDB = require('pouchdb')

View File

@ -10,9 +10,9 @@
var pwiki = require('./pwiki2') var pwiki = require('./pwiki2')
// XXX for some reason this does not run quietly in browser // 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... // 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... // XXX this fails silently in browser...
var bootstrap = require('./bootstrap') var bootstrap = require('./bootstrap')

View File

@ -119,10 +119,10 @@
var object = require('ig-object') var object = require('ig-object')
var types = require('ig-types') var types = require('ig-types')
var pwpath = require('./lib/path') var pwpath = require('./pwiki/path')
var page = require('./page') var page = require('./pwiki/page')
var basestore = require('./store/base') var basestore = require('./pwiki/store/base')
//var localstoragestore = require('./store/localstorage') //var localstoragestore = require('./store/localstorage')
// XXX for some reason this does not run quietly in browser // XXX for some reason this does not run quietly in browser