diff options
Diffstat (limited to 'stest.pl')
-rw-r--r-- | stest.pl | 29 |
1 files changed, 20 insertions, 9 deletions
@@ -17,18 +17,23 @@ use Getopt::Long; my $SRCPATH='src'; my $DSTPATH='dst'; my $DSTBASEURL='/'; +my @TMPLPATH=('common/'); { -my $res=GetOptions('src|s=s'=>$SRCPATH, - 'dst|d=s'=>$DSTPATH, - 'url|u=s'=>$DSTBASEURL, +my $res=GetOptions('src|s=s'=>\$SRCPATH, + 'dst|d=s'=>\$DSTPATH, + 'url|u=s'=>\$DSTBASEURL, + 'include|I=s'=>\@TMPLPATH, ); exit 1 unless $res; +$SRCPATH=~s{/+$}{}; +$DSTPATH=~s{/+$}{}; +$DSTBASEURL=~s{/*$}{/}; } my $stash={}; my $template_provider=Template::Provider->new({ - INCLUDE_PATH=> 'common/', + INCLUDE_PATH=> \@TMPLPATH, ABSOLUTE=>1, RELATIVE=>1, }); @@ -65,12 +70,15 @@ $fc->add_writer(qr{\.ya?ml$} => sub dstUriFor { my ($name)=@_; + warn "dstUriFor($name)\n"; + $name=~s{\.[^.]+\.[^.]+$}{.html}; $name=~s{^\Q$SRCPATH\E/}{$DSTBASEURL}; return $name; } sub isLang { my ($lang,$name)=@_; + warn "isLang($lang,$name)\n"; return 1 if $name=~m{/$}; # assume that MultiViews on the server will work return 1 if $name=~m{/document\.$lang(\.|$)}; return; @@ -82,12 +90,15 @@ $stash->{isLang}=\&isLang; sub expandTT { my ($maker,$target,$deps,$matches)=@_; + warn "expandTT($target,@$deps,@$matches)\n"; + my $tmpl=$fc->get($deps->[-1]); my $vars={ path=> $matches->[0], language => $matches->[1], %$stash, }; if (@$deps>1) { + warn "tagging as $deps->[0]\n"; $vars->{tagged}=$fc->get($deps->[0]); } push @{$template_provider->include_path}, @@ -206,6 +217,8 @@ my %docfiles=( my $maker=Slay::Maker->new({ rules => [ + ["$SRCPATH/tags/(**)/document.(*).rest.txt",':',"$SRCPATH/_webcoso/tags.yml",ifExists("$SRCPATH/tags/\$1/document.\$2.rest.tt"),'=',\&expandTT], + ["$SRCPATH/tags/(**)/document.(*).du.xml",':',"$SRCPATH/_webcoso/tags.yml",ifExists("$SRCPATH/tags/\$1/document.\$2.rest.txt"),'=',\&parseRST], ["$SRCPATH/(**)/document.(*).rest.txt",':',ifExists("$SRCPATH/\$1/document.\$2.rest.tt"),'=',\&expandTT], ["$SRCPATH/(**)/document.(*).du.xml",':',ifExists("$SRCPATH/\$1/document.\$2.rest.txt"),'=',\&parseRST], ["$SRCPATH/()document.(*).rest.txt",':',ifExists("$SRCPATH/document.\$2.rest.tt"),'=',\&expandTT], @@ -213,11 +226,9 @@ my $maker=Slay::Maker->new({ ["$SRCPATH/_webcoso/tags.yml",':',fromTo("$SRCPATH/",{%docfiles,transform=>sub{my $s=shift;$s=~s{\.[^.]+\.[^.]+$}{.du.xml};$s}}),'=',\&getTags], #["$SRCPATH/_webcoso/changes.xml",':',keepEarliest(fromTo("$SRCPATH/",{%docfiles})),'=',\&getChanges], - ["$SRCPATH/tags/(**)/document.(*).rest.txt",':',"$SRCPATH/_webcoso/tags.yml",ifExists("$SRCPATH/tags/\$1/document.\$2.rest.tt"),'=',\&expandTT], - ["$SRCPATH/tags/(**)/document.(*).du.xml",':',"$SRCPATH/_webcoso/tags.yml",ifExists("$SRCPATH/tags/\$1/document.\$2.rest.txt"),'=',\&parseRST], ["$DSTPATH/tags/(**)/document.(*).html",':',"$SRCPATH/_webcoso/tags.yml","$SRCPATH/tags/\$1/document.\$2.du.xml",'=',\&du2html], - ["$DESTPATH/(**)/document.(*).html",':',"$SRCPATH/_webcoso/tags.yml","$SRCPATH/\$1/document.\$2.du.xml",'=',\&du2html], - ["$DESTPATH/()document.(*).html",':',"$SRCPATH/_webcoso/tags.yml","$SRCPATH/document.\$2.du.xml",'=',\&du2html], + ["$DSTPATH/(**)/document.(*).html",':',"$SRCPATH/_webcoso/tags.yml","$SRCPATH/\$1/document.\$2.du.xml",'=',\&du2html], + ["$DSTPATH/()document.(*).html",':',"$SRCPATH/_webcoso/tags.yml","$SRCPATH/document.\$2.du.xml",'=',\&du2html], ], options => { auto_create_dirs => 1, @@ -239,7 +250,7 @@ my @targets=(fromTo("$SRCPATH/", }), fromTo("$SRCPATH/tags/", { - %tagfiles, + %docfiles, transform=>sub{ my $src=shift; $src=~s{\.[^.]+\.[^.]+$}{.html}; |