From 3c073b8470348284de7187e0e9609079773c2be6 Mon Sep 17 00:00:00 2001 From: dakkar Date: Sat, 27 Dec 2008 11:38:15 +0000 Subject: =?UTF-8?q?forse=20i=20feed=20funzionano=E2=80=A6=20non=20testato?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: svn://luxion/repos/WebCoso/trunk@394 fcb26f47-9200-0410-b104-b98ab5b095f3 --- lib/WebCoso/Common.pm | 3 +++ lib/WebCoso/Maker.pm | 10 +++++++--- lib/WebCoso/XSLT.pm | 29 ++++++++++++++++++++++++++++- 3 files changed, 38 insertions(+), 4 deletions(-) diff --git a/lib/WebCoso/Common.pm b/lib/WebCoso/Common.pm index 0d291a8..7b610f2 100644 --- a/lib/WebCoso/Common.pm +++ b/lib/WebCoso/Common.pm @@ -213,5 +213,8 @@ sub keepEarliest { our %docfiles=( files=>sub{m{^document\.}}, dirs=>sub{!m{^(tags$|_|\.)}}); +our %feedfiles=( + files=>sub{m{^feed\.[.]+\.tt$}}, + dirs=>sub{!m{^[^_.]}}); 1; diff --git a/lib/WebCoso/Maker.pm b/lib/WebCoso/Maker.pm index c4659be..e8943be 100644 --- a/lib/WebCoso/Maker.pm +++ b/lib/WebCoso/Maker.pm @@ -160,6 +160,11 @@ my @passes=( %WebCoso::Common::docfiles, transform=>sub{WebCoso::Common::typedAs($_[0],'du.xml')}, }), + WebCoso::Common::fromTo("$WebCoso::Common::SRCPATH/", + { + %WebCoso::Common::feedfiles, + transform=>sub{WebCoso::Common::typedAs($_[0],'.xml')}, + }), "$WebCoso::Common::SRCPATH/_webcoso/tags.yml", "$WebCoso::Common::SRCPATH/_webcoso/changes.yml", ]}, @@ -228,10 +233,9 @@ my @passes=( }), WebCoso::Common::fromTo("$WebCoso::Common::SRCPATH/", { - files=>sub{m{^feed\.}}, - dirs=>sub{!m{^[_.]}}, + %WebCoso::Common::feedfiles, transform=>sub{ - (my $file=$_[0] + (my $file=$_[0]) =~s{^\Q$WebCoso::Common::SRCPATH\E/}{$WebCoso::Common::DSTPATH/}; return $file; }, diff --git a/lib/WebCoso/XSLT.pm b/lib/WebCoso/XSLT.pm index 70efc62..c47377a 100644 --- a/lib/WebCoso/XSLT.pm +++ b/lib/WebCoso/XSLT.pm @@ -43,7 +43,29 @@ sub new { my $xslt=file($deps->[-1])->parent->file('du2html.xsl'); $xslt=$self->{fc}->get($xslt); if (@$deps>1) { - INFO("xml tagging as $deps->[0]"); + INFO("xml tag source from as $deps->[0]"); + $self->setXMLTagsSource($self->{fc}->get($deps->[0])); + } else { + $self->setXMLTagsSource(undef); + } + my $out=$xslt->transform($du, + XML::LibXSLT::xpath_to_string( + path => $matches->[0], + language => $matches->[1], + filename => $deps->[-1], + )); + $self->{fc}->put($target,$xslt->output_string($out)); + }; + + $self->{fillFeed}=sub { + my ($maker,$target,$deps,$matches)=@_; + DEBUG("fillFeed($maker,$target,(@$deps),(@$matches))"); + + my $du=$self->{fc}->get($deps->[-1]); + my $xslt=file($deps->[-1])->parent->file('fillFeed.xsl'); + $xslt=$self->{fc}->get($xslt); + if (@$deps>1) { + INFO("xml tag source from $deps->[0]"); $self->setXMLTagsSource($self->{fc}->get($deps->[0])); } else { $self->setXMLTagsSource(undef); @@ -65,6 +87,11 @@ sub du2html { return $self->{du2html}; } +sub fillFeed { + my ($self)=@_; + return $self->{fillFeed}; +} + sub setXMLTagsSource { my ($self,$source)=@_; $self->{tags_source}=$source; -- cgit v1.2.3