FILE: doc/test1/.htyattrc
IN:
use YATT::ArgMacro test1 => in => [qw(pair)], out => [qw(x y)];
use YATT::LRXML::Node;
test1->define(handle => sub {
(my test1 $macro, my ($trans, $scope, $node)) = @_;
my ($x, $y) = split /,/, node_body($macro->{cf_pair});
$node->add_attribute(x => $x);
$node->add_attribute(y => $y);
$node;
});
TITLE: hello pair => x, y
FILE: doc/test1/index.html
IN:
world!
Hello
&perl:x; x &perl:y; =
OUT:
Hello world!
3 x 8 = 24
TITLE: hello => real => x, y
FILE: doc/test1/t%d.html
IN:
&perl:x; x &perl:y; =
OUT:
3 x 8 = 24
# eol.
TITLE: hello => real => x, y
FILE: doc/test1/t%d.html
IN:
&perl:x; x &perl:y; =
OUT:
3 x 8 = 24
# eol.
TITLE: hello => optional argmacro
FILE: doc/test1/t%d.html
IN:
Hello &yatt:arg;
OUT:
Hello world
# eol.
FILE: doc/test2/.htyattrc
IN:
use YATT::ArgMacro range => out => ['list=list'], in => [qw(from to)];
use YATT::LRXML::Node;
range->define(handle => sub {
(my range $macro, my ($trans, $scope, $node)) = @_;
$macro->accept($trans, $scope, $node);
$node->add_node($macro->{out_list}) if $macro->{out_list};
$node;
});
range->define(accept => sub {
(my range $macro, my ($trans, $scope, $node)) = @_;
$macro->{out_list} = $node->create_attribute($macro->output_name('list') =>
node_body($macro->{cf_from}), '..', node_body($macro->{cf_to}));
});
TITLE: %range;
FILE: doc/test2/t%d.html
IN:
&yatt:list:expand();
OUT:
345678
# eol.
TITLE: %range; - output overriding
FILE: doc/test2/t%d.html
IN:
&yatt:list:expand();
OUT:
234
# eol.
TITLE: %range; input and output overriding
FILE: doc/test2/t%d.html
IN:
&yatt:to;
OUT:
8
# eol.
TITLE: %range(num=from);
FILE: doc/test2/t%d.html
IN:
&yatt:num:expand();
OUT:
345
# eol.
TITLE: %range(num=from); overriding
FILE: doc/test2/t%d.html
IN:
&yatt:num:expand();
OUT:
23
# eol.
TITLE: %range(row=from); %range(col=from);
FILE: doc/test2/t%d.html
IN:
&yatt:row:expand(); &yatt:col:expand();
OUT:
234 678
# eol.
TITLE: %range(row=from); %range(col=from); overriding
FILE: doc/test2/t%d.html
IN:
&yatt:row:expand(); &yatt:col:expand();
OUT:
23 78
# eol.