mirror of
https://github.com/flynx/pWiki.git
synced 2025-12-21 02:21:40 +00:00
fixed macro reuse...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
parent
f8e5b88a09
commit
561de44f54
@ -954,11 +954,7 @@ object.Constructor('Page', BasePage, {
|
|||||||
// XXX SORT sorting not implemented yet....
|
// XXX SORT sorting not implemented yet....
|
||||||
macro: Macro(
|
macro: Macro(
|
||||||
['name', 'src', 'sort', 'text', 'join', 'else', ['strict', 'nonstrict']],
|
['name', 'src', 'sort', 'text', 'join', 'else', ['strict', 'nonstrict']],
|
||||||
// XXX GENERATOR...
|
|
||||||
async function*(args, body, state){
|
async function*(args, body, state){
|
||||||
/*/
|
|
||||||
async function(args, body, state){
|
|
||||||
//*/
|
|
||||||
var that = this
|
var that = this
|
||||||
var name = args.name //?? args[0]
|
var name = args.name //?? args[0]
|
||||||
var src = args.src
|
var src = args.src
|
||||||
@ -976,6 +972,7 @@ object.Constructor('Page', BasePage, {
|
|||||||
: text
|
: text
|
||||||
var strict = args.strict
|
var strict = args.strict
|
||||||
&& !args.nonstrict
|
&& !args.nonstrict
|
||||||
|
var join
|
||||||
|
|
||||||
var _getBlock = function(name){
|
var _getBlock = function(name){
|
||||||
var block = args[name] ?
|
var block = args[name] ?
|
||||||
@ -1000,17 +997,21 @@ object.Constructor('Page', BasePage, {
|
|||||||
if(name){
|
if(name){
|
||||||
name = await base.parse(name, state)
|
name = await base.parse(name, state)
|
||||||
// define new named macro...
|
// define new named macro...
|
||||||
if(text){
|
if(text.length != 0){
|
||||||
;(state.macros = state.macros ?? {})[name] = text
|
// NOTE: we do not need to worry about saving
|
||||||
|
// stateful text here because it is only
|
||||||
|
// grouped and not expanded...
|
||||||
|
;(state.macros = state.macros ?? {})[name] = [text, _getBlock('join')]
|
||||||
// use existing macro...
|
// use existing macro...
|
||||||
} else if(state.macros
|
} else if(state.macros
|
||||||
&& name in state.macros){
|
&& name in state.macros){
|
||||||
text = state.macros[name] } }
|
[text, join] = state.macros[name] } }
|
||||||
|
|
||||||
if(src){
|
if(src){
|
||||||
src = await base.parse(src, state)
|
src = await base.parse(src, state)
|
||||||
|
|
||||||
var join = _getBlock('join')
|
join = _getBlock('join')
|
||||||
|
?? join
|
||||||
join = join
|
join = join
|
||||||
&& await base.parse(join, state)
|
&& await base.parse(join, state)
|
||||||
|
|
||||||
@ -1590,6 +1591,16 @@ module.Test = {
|
|||||||
<slot name="mixed-slot-content">
|
<slot name="mixed-slot-content">
|
||||||
<content/> Z
|
<content/> Z
|
||||||
</slot> ` },
|
</slot> ` },
|
||||||
|
macros: {
|
||||||
|
text: object.doc`
|
||||||
|
<macro name="list" join="<br>">
|
||||||
|
- @include(./path)
|
||||||
|
</macro>
|
||||||
|
|
||||||
|
<macro name="list" src="/Test/*"/>
|
||||||
|
<br><br>
|
||||||
|
<macro name="list" src="/Test/*" join=",<br>"/>
|
||||||
|
`},
|
||||||
}
|
}
|
||||||
|
|
||||||
var Settings =
|
var Settings =
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user