diff --git a/pwiki2.js b/pwiki2.js index c2d3efa..57740c1 100755 --- a/pwiki2.js +++ b/pwiki2.js @@ -1012,8 +1012,6 @@ object.Constructor('BasePage', { // // NOTE: all pages that are created via a read-only page are also // read-only. - // - // XXX test .ro().virtual() combinations... // XXX EXPERIMENTAL... ro: function(data={}){ return Object.assign({ @@ -1030,9 +1028,7 @@ object.Constructor('BasePage', { // // NOTE: .get(..) / .clone(..) will return normal non-virtual pages // unless the target path is the same as the virtual page .path... - // - // XXX test .ro().virtual() combinations... - // XXX should we be able to change path/location here??? + // NOTE: changing .path/.location is not supported. // XXX EXPERIMENTAL... virtual: function(data={}){ var that = this @@ -1586,7 +1582,8 @@ function(spec, func){ module.PAGE_NOT_FOUND = '404: PAGE NOT FOUND: $PATH' // XXX PATH_VARS need to handle path variables... -// XXX macros and filters should be features for simpler plugin handlng (???) +// XXX filters (and macros?) should be features for simpler plugin handlng (???) +// XXX STUB filters... var Page = module.Page = object.Constructor('Page', BasePage, { @@ -2073,12 +2070,15 @@ object.Constructor('Page', BasePage, { return this.__parser__.parse(this, text, state) }.bind(this)) } return this.__parser__.parse(this, text, state) }, - // XXX not sure about the semantics here... - // XXX this feels a bit overcomplicated... - // ...can we merge pattern and array pages into one??? + // true if page has an array value but is not a pattern page... + // + // XXX the split into pattern and array pages feels a bit overcomplicated... + // ...can we merge the two and simplify things??? // XXX EXPERIMENTAL get isArray(){ return !this.isPattern + // NOTE: we can't only use .data here as it can be a function + // that will return an array... && this.raw instanceof Array }, // raw page text... @@ -2125,7 +2125,7 @@ object.Constructor('Page', BasePage, { get text(){ var tpl = '/'+ this.find('./'+ this.PAGE_TPL) return [this.parse( - tpl.endsWith(this.PAGE_TPL) ? + tpl.endsWith(this.PAGE_TPL.split(/[\\\/]/).pop()) ? [this.get(tpl).raw] : [] )] .flat() @@ -2172,8 +2172,13 @@ module.store = var System = { - // XXX EXPERIMENTAL... - _text: {text: '@source(.)'}, + // base templates... + // + _text: { + text: '@source(.)' }, + NotFound: { + text: module.PAGE_NOT_FOUND + .replace('$PATH', '@source(./path)') }, // XXX tests... test_list: function(){