mirror of
https://github.com/flynx/pWiki.git
synced 2025-11-01 03:20:08 +00:00
...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
parent
f7002e20cd
commit
1057768821
73
pwiki2.js
73
pwiki2.js
@ -301,6 +301,39 @@ module.page = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
|
||||||
|
var object = require('ig-object')
|
||||||
|
|
||||||
|
var Page = object.Constructor('Page', {
|
||||||
|
store: undefined,
|
||||||
|
|
||||||
|
path: undefined,
|
||||||
|
referrer: undefined,
|
||||||
|
|
||||||
|
// store api...
|
||||||
|
// XXX
|
||||||
|
|
||||||
|
exists: relProxy('exists'),
|
||||||
|
match: relProxy('match'),
|
||||||
|
// XXX should this return page objects???
|
||||||
|
get: relProxy('get'),
|
||||||
|
update: function(path='.', data, mode){
|
||||||
|
if(arguments.length == 1){
|
||||||
|
data = path
|
||||||
|
path = '.' }
|
||||||
|
return this.store.update(module.path.relative(this.path, path), data, mode) },
|
||||||
|
delete: relProxy('delete'),
|
||||||
|
|
||||||
|
// render api...
|
||||||
|
// XXX
|
||||||
|
|
||||||
|
__init__: function(path, referrer){
|
||||||
|
this.path = path
|
||||||
|
this.referrer = referrer },
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------
|
//---------------------------------------------------------------------
|
||||||
|
|
||||||
@ -452,7 +485,7 @@ function*(str){
|
|||||||
// type: 'inline'
|
// type: 'inline'
|
||||||
// | 'element'
|
// | 'element'
|
||||||
// | 'block',
|
// | 'block',
|
||||||
// block: [
|
// body: [
|
||||||
// <item>,
|
// <item>,
|
||||||
// ...
|
// ...
|
||||||
// ],
|
// ],
|
||||||
@ -508,24 +541,33 @@ function*(str){
|
|||||||
yield* group(lex(str)) }
|
yield* group(lex(str)) }
|
||||||
|
|
||||||
|
|
||||||
|
// XXX need context -- page/store...
|
||||||
|
// XXX blocks are not handled correctly...
|
||||||
// XXX closure: macros
|
// XXX closure: macros
|
||||||
var expand =
|
var expand =
|
||||||
module.expand =
|
module.expand =
|
||||||
function(str){
|
function*(ast){
|
||||||
var parser = parse(str)
|
// XXX
|
||||||
|
var page
|
||||||
while(true){
|
while(true){
|
||||||
var {elem, done} = parse.next()
|
var {value, done} = ast.next()
|
||||||
if(done){
|
if(done){
|
||||||
return }
|
return }
|
||||||
// text block...
|
// text block...
|
||||||
if(typeof(elem) == 'string'){
|
if(typeof(value) == 'string'){
|
||||||
yield elem }
|
yield value
|
||||||
|
continue }
|
||||||
// macro...
|
// macro...
|
||||||
var {name, args, block} = elem
|
var {name, args, body, match} = value
|
||||||
// XXX need context...
|
var res =
|
||||||
yield* macros[name](args, block)
|
macros[name](page, args, body, match)
|
||||||
}
|
?? ''
|
||||||
}
|
// XXX test if iterable...
|
||||||
|
if(res instanceof Array){
|
||||||
|
// XXX recursively expand this...
|
||||||
|
yield* res
|
||||||
|
} else {
|
||||||
|
yield res } } }
|
||||||
|
|
||||||
|
|
||||||
// XXX
|
// XXX
|
||||||
@ -552,7 +594,14 @@ var WIKIWORD_PATTERN =
|
|||||||
var filters = {
|
var filters = {
|
||||||
}
|
}
|
||||||
var macros = {
|
var macros = {
|
||||||
now: function(){},
|
// XXX remove this...
|
||||||
|
test: function(page, args, block, match){
|
||||||
|
console.log('test:', ...arguments)
|
||||||
|
return 'TEST' },
|
||||||
|
|
||||||
|
// XXX STUB
|
||||||
|
now: function(){
|
||||||
|
return [''+ Date.now()] },
|
||||||
filter: function(){},
|
filter: function(){},
|
||||||
include: function(){},
|
include: function(){},
|
||||||
source: function(){},
|
source: function(){},
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user