aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/WebCoso/Common.pm2
-rw-r--r--lib/WebCoso/Maker.pm41
-rw-r--r--lib/WebCoso/TT.pm6
3 files changed, 46 insertions, 3 deletions
diff --git a/lib/WebCoso/Common.pm b/lib/WebCoso/Common.pm
index cc61d50..0d291a8 100644
--- a/lib/WebCoso/Common.pm
+++ b/lib/WebCoso/Common.pm
@@ -212,6 +212,6 @@ sub keepEarliest {
our %docfiles=(
files=>sub{m{^document\.}},
- dirs=>sub{!m{^(tags|_webcoso|\.svn)$}});
+ dirs=>sub{!m{^(tags$|_|\.)}});
1;
diff --git a/lib/WebCoso/Maker.pm b/lib/WebCoso/Maker.pm
index 4bc6dbb..c4659be 100644
--- a/lib/WebCoso/Maker.pm
+++ b/lib/WebCoso/Maker.pm
@@ -107,6 +107,22 @@ my @passes=(
'=',
\&parseRST],
+ # feeds
+ ["$WebCoso::Common::SRCPATH/(**)/feed.(*).xml",
+ ':',
+ "$WebCoso::Common::SRCPATH/_webcoso/tags.yml",
+ "$WebCoso::Common::SRCPATH/_webcoso/changes.yml",
+ "$WebCoso::Common::SRCPATH/\$1/feed.\$2.tt",
+ '=',
+ $template->expandTT()],
+ ["$WebCoso::Common::SRCPATH/feed.(*).xml",
+ ':',
+ "$WebCoso::Common::SRCPATH/_webcoso/tags.yml",
+ "$WebCoso::Common::SRCPATH/_webcoso/changes.yml",
+ "$WebCoso::Common::SRCPATH/feed.\$1.tt",
+ '=',
+ $template->expandTT()],
+
# tags from normal documents (tag documents can't be tagged!)
["$WebCoso::Common::SRCPATH/_webcoso/tags.yml",
@@ -177,6 +193,18 @@ my @passes=(
"$WebCoso::Common::SRCPATH/document.\$2.du.xml",
'=',
$xslt->du2html()],
+
+ # feeds
+ ["$WebCoso::Common::DSTPATH/(**)/feed.(*).xml",
+ ':',
+ "$WebCoso::Common::SRCPATH/\$1/feed.\$2.xml",
+ '=',
+ $xslt->fillFeed()],
+ ["$WebCoso::Common::DSTPATH/feed.(*).xml",
+ ':',
+ "$WebCoso::Common::SRCPATH/feed.\$1.xml",
+ '=',
+ $xslt->fillFeed()],
],
%maker_opts,
}),
@@ -197,7 +225,18 @@ my @passes=(
=~s{^\Q$WebCoso::Common::SRCPATH\E/tags/}{$WebCoso::Common::DSTPATH/tags/};
return $file;
},
- })]},
+ }),
+ WebCoso::Common::fromTo("$WebCoso::Common::SRCPATH/",
+ {
+ files=>sub{m{^feed\.}},
+ dirs=>sub{!m{^[_.]}},
+ transform=>sub{
+ (my $file=$_[0]
+ =~s{^\Q$WebCoso::Common::SRCPATH\E/}{$WebCoso::Common::DSTPATH/};
+ return $file;
+ },
+ }),
+ ]},
);
sub make {
diff --git a/lib/WebCoso/TT.pm b/lib/WebCoso/TT.pm
index 8c4b216..b6962fd 100644
--- a/lib/WebCoso/TT.pm
+++ b/lib/WebCoso/TT.pm
@@ -42,9 +42,13 @@ sub new {
%{$self->{stash}},
};
if (@$deps>1) {
- INFO("tagging as $deps->[0]");
+ INFO("tags from $deps->[0]");
$vars->{tagged}=$self->{fc}->get($deps->[0]);
}
+ if (@$deps>2) {
+ INFO("changes from $deps->[1]");
+ $vars->{changed}=$self->{fc}->get($deps->[1]);
+ }
push @{$self->{template_provider}->include_path},
file($deps->[-1])->parent;
$self->{fc}->put($target,