diff --git a/pwiki/page.js b/pwiki/page.js
index 2f17cfb..d73b471 100755
--- a/pwiki/page.js
+++ b/pwiki/page.js
@@ -582,8 +582,15 @@ object.Constructor('BasePage', {
// .energetic
// .store.isEnergetic(..)
// .resolve(..) -> .store.resolve(..)
- each: function(path){
+ // XXX should this support strict mode???
+ each: function(path, strict){
var that = this
+ // XXX STRICT...
+ if(path === true || path === false){
+ strict = path
+ path = null }
+ strict = strict
+ ?? this.strict
// NOTE: we are trying to avoid resolving non-pattern paths unless
// we really have to...
path = path ?
@@ -608,7 +615,18 @@ object.Constructor('BasePage', {
return Promise.iter(
paths,
function(path){
+ // XXX STRICT...
+ return strict ?
+ Promise.awaitOrRun(
+ that.exists('/'+path),
+ function(exists){
+ return exists ?
+ that.get('/'+ path)
+ : [] })
+ : that.get('/'+ path) })
+ /*/ // XXX STRICT...
return that.get('/'+ path) })
+ //*/
.sync() },
/*/ // XXX ASYNC...
each: async function*(path){
@@ -1586,6 +1604,7 @@ object.Constructor('Page', BasePage, {
// @macro(src="./resolved-page" else="no" text="yes" strict)
// -> yes
// should be "no"
+ // ...this seems to effect non-pattern pages...
// XXX should macro:index be 0 or 1 (current) based???
// XXX SORT sorting not implemented yet...
macro: Macro(
@@ -1705,6 +1724,7 @@ object.Constructor('Page', BasePage, {
&& await base.parse(join, state)
//var match = this.get(await base.parse(src, state))
+ //var match = this.get(src, strict)
var match = this.get(src)
// NOTE: thie does not introduce a dependency on each
@@ -2493,6 +2513,9 @@ module.System = {
oninput="saveContent(\'@source(s ./path)/title\', this.innerText)">
@source(./title/quote)
+ @macro(src="." strict
+ text=""
+ else="*")