diff options
author | dakkar <dakkar@luxion> | 2007-09-09 11:18:59 +0000 |
---|---|---|
committer | dakkar <dakkar@luxion> | 2007-09-09 11:18:59 +0000 |
commit | 9deff2ac08868dcc097d4335b6919632f1c5d0d2 (patch) | |
tree | 2886ab7bf0c438ac19e0c585ed68c08c399f34bb | |
parent | parser call on putting scalar (diff) | |
download | WebCoso-9deff2ac08868dcc097d4335b6919632f1c5d0d2.tar.gz WebCoso-9deff2ac08868dcc097d4335b6919632f1c5d0d2.tar.bz2 WebCoso-9deff2ac08868dcc097d4335b6919632f1c5d0d2.zip |
first test (preparation)
git-svn-id: svn://luxion/repos/WebCoso/trunk@286 fcb26f47-9200-0410-b104-b98ab5b095f3
28 files changed, 592 insertions, 17 deletions
@@ -11,6 +11,7 @@ use Text::Restructured; use Text::Restructured::Writer::LibXML; use XML::LibXML; use XML::LibXSLT; +use YAML::Syck; my $stash={}; my $template=Template->new(); @@ -18,7 +19,7 @@ my $rest=Text::Restructured->new({},'WebCoso'); my $xml_parser=XML::LibXML->new(); my $xslt_proc=XML::LibXSLT->new(); -my $fc=File::Cache::Parsed->new(); +my $fc=File::Cache::Parsed->new(follow=>1); $fc->add_parser(qr{\.tt2?$} => sub { $template->context->template($_[0]); @@ -36,35 +37,65 @@ $fc->add_parser(qr{\.xslt?$} => ($xml_parser->parse_string($_[1],$_[0])) }); $fc->add_writer(qr{\.xml$} => sub { $_[1]->toFile($_[0]) }); +$fc->add_parser(qr{\.ya?ml$} => + sub { Load($_[1]) }); +$fc->add_writer(qr{\.ya?ml$} => + sub { DumpFile($_[0],$_[1]) }); + sub expandTT { my ($maker,$target,$deps,$matches)=@_; - print "TT: $target <- @$deps, @$matches\n"; - open my $fh,'>',$target; + my $tmpl=$fc->get($deps->[-1]); + my $vars={ path=> $matches->[0], + language => $matches->[1], + %$stash, + }; + if (@$deps>1) { + $vars->{tagged}=$fc->get($deps->[0]); + } + $fc->put($target, + $template->context->process($tmpl, + $vars)); } sub parseRST { my ($maker,$target,$deps,$matches)=@_; - print "RST: $target <- @$deps, @$matches\n"; - open my $fh,'>',$target; + $fc->put($target,$fc->get($deps->[0])); } sub du2html { my ($maker,$target,$deps,$matches)=@_; - print "HTML: $target <- @$deps, @$matches\n"; - open my $fh,'>',$target; + my $du=$fc->get($deps->[-1]); + my $xslt=file($deps->[-1])->parent->file('du2html.xsl'); + $xslt=$fc->get($xslt); + my $out=$xslt->transform($du, + XML::LibXSLT::xpath_to_string( + path => $matches->[0], + language => $matches->[1], + )); + $fc->put($target,$xslt->output_string($out)); } +{my $xpath=XML::LibXML::XPathContext->new(); +$xpath->registerNs('x', 'http://www.w3.org/1999/xhtml'); sub getTags { my ($maker,$target,$deps,$matches)=@_; - print "tags: $target <- @$deps, @$matches\n"; - open my $fh,'>',$target; + my %tagged; + for my $doc_name (@$deps) { + my $doc=$fc->get($doc_name); + my @tags=map {$_->textContext} + $xpath->find( + q{/document/docinfo/field[field_name='tags']/field_body/*/list_item}, + $doc); + push @{$tagged{$_}},$doc_name for @tags; + } + $fc->put($target,\%tagged); +} } - sub getChanges { my ($maker,$target,$deps,$matches)=@_; @@ -133,11 +164,14 @@ my %files=(files=>sub{m{^document\.}}); my $maker=Slay::Maker->new({ rules => [ - ['src/(**)/document.rest.txt',':',ifExists('src/$1/document.rest.tt'),'=',\&expandTT], - ['src/(**)/document.du.xml',':',ifExists('src/$1/document.rest.txt'),'=',\&parseRST], - ['deps/tags.xml',':',fromTo('src/',{%files,transform=>sub{my $s=shift;$s=~s{\..*$}{.du.xml};$s}}),'=',\&getTags], - ['deps/changes.xml',':',keepEarliest(fromTo('src/',{%files})),'=',\&getChanges], - ['dst/(**)/document.xhtml',':','deps/tags.xml','deps/changes.xml',ifExists('src/$1/document.du.xml'),'=',\&du2html], + ['src/(**)/document.(*).rest.txt',':',ifExists('src/$1/document.$2.rest.tt'),'=',\&expandTT], + ['src/(**)/document.(*).du.xml',':',ifExists('src/$1/document.$2.rest.txt'),'=',\&parseRST], + ['deps/tags.xml',':',fromTo('src/',{%files,transform=>sub{my $s=shift;$s=~s{\.[^.]+\.[^.]+$}{.du.xml};$s}}),'=',\&getTags], + #['deps/changes.xml',':',keepEarliest(fromTo('src/',{%files})),'=',\&getChanges], + + ['tags/(**)/document.(*).rest.txt',':','deps/tags.yml',ifExists('tags/$1/document.$2.rest.tt'),'=',\&expandTT], + ['tags/(**)/document.(*).du.xml',':','deps/tags.yml',ifExists('tags/$1/document.$2.rest.txt'),'=',\&parseRST], + ['dst/(**)/document.(*).xhtml',':','deps/tags.yml','deps/changes.xml',ifExists('src/$1/document.$2.du.xml'),ifExists('tags/$1/document.$2.du.xml'),'=',\&du2html], ], options => { auto_create_dirs => 1, @@ -152,11 +186,21 @@ my @targets=fromTo('src/', %files, transform=>sub{ my $src=shift; - $src=~s{\..*$}{.xhtml}; + $src=~s{\.[^.]+\.[^.]+$}{.xhtml}; $src=~s{^src/}{dst/}; return $src; }, - }); + }), + fromTo('tags/', + { + %files, + transform=>sub{ + my $src=shift; + $src=~s{\.[^.]+\.[^.]+$}{.xhtml}; + $src=~s{^tags/}{dst/}; + return $src; + }, + }); print "targets: @targets\n"; $maker->make(@targets); diff --git a/t/test-site/common/document-listing.tt b/t/test-site/common/document-listing.tt new file mode 100644 index 0000000..5210458 --- /dev/null +++ b/t/test-site/common/document-listing.tt @@ -0,0 +1,3 @@ +[% FOR doc IN tagged.$current_cat %] +* `<[% doc %]>`_ +[% END %] diff --git a/t/test-site/common/du2html.xsl b/t/test-site/common/du2html.xsl new file mode 100644 index 0000000..d7a9b62 --- /dev/null +++ b/t/test-site/common/du2html.xsl @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="utf-8"?> +<x:stylesheet xmlns:x="http://www.w3.org/1999/XSL/Transform" + xmlns="http://www.w3.org/1999/xhtml" + version="1.0" + > + + <x:import href="reST.xsl"/> + + <x:param name="language" select="'en'"/> + + <x:output method="html" encoding="utf-8" + doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN" + indent="yes"/> + + <x:template match="/document"> + <html xml:lang="{$language}" lang="{$language}"> + <head> + <title><x:apply-templates select="title/node()"/></title> + </head> + <body> + <h1><x:apply-templates select="title/node()"/></h1> + <x:apply-templates/> + </body> + </html> + </x:template> + +</x:stylesheet>
\ No newline at end of file diff --git a/t/test-site/common/reST.xsl b/t/test-site/common/reST.xsl new file mode 100644 index 0000000..7db5de2 --- /dev/null +++ b/t/test-site/common/reST.xsl @@ -0,0 +1,393 @@ +<!-- + Copyright (c) 2006, Michael Alyn Miller <malyn@strangeGizmo.com>. + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + 1. Redistributions of source code must retain the above copyright + notice unmodified, this list of conditions, and the following + disclaimer. + 2. Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + 3. Neither the name of Michael Alyn Miller nor the names of the + contributors to this software may be used to endorse or promote + products derived from this software without specific prior + written permission. + + THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + SUCH DAMAGE. +--> + +<xsl:stylesheet + version="1.0" + xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns="http://www.w3.org/1999/xhtml"> + + + +<!-- Suppress the reST document title, information, and topic name. + These values should be pulled in by the main XSL template. --> +<xsl:template match="/document/title" /> +<xsl:template match="/document/docinfo" /> +<xsl:template match="/document/topic" /> + +<!-- Suppress all field lists. These are only used for 'special + features' implemented by the author of the site-specific reST + content. --> +<xsl:template match="field_list" /> +<xsl:template match="comment" /> + + +<!-- =================================================================== + Inline elements. + --> + +<xsl:template match="emphasis"> + <em><xsl:apply-templates /></em> +</xsl:template> + +<xsl:template match="literal"> + <tt><xsl:apply-templates /></tt> +</xsl:template> + +<xsl:template match="reference"> + <xsl:element name="a"> + <xsl:attribute name="href"> + <xsl:choose> + <xsl:when test="@refid"> + <xsl:value-of select="concat('#', @refid)" /> + </xsl:when> + <xsl:when test="@refuri"> + <xsl:value-of select="@refuri" /> + </xsl:when> + </xsl:choose> + </xsl:attribute> + + <xsl:apply-templates /> + </xsl:element> +</xsl:template> + +<xsl:template match="strong"> + <strong><xsl:apply-templates /></strong> +</xsl:template> + + + +<!-- =================================================================== + Body elements. + --> + + +<!-- Generic body elements. --> +<xsl:template match="image"> + <xsl:element name="img"> + <xsl:attribute name="src"> + <xsl:value-of select="@uri" /> + </xsl:attribute> + <xsl:attribute name="alt"> + <xsl:value-of select="@alt" /> + </xsl:attribute> + <xsl:attribute name="width"> + <xsl:value-of select="@width" /> + </xsl:attribute> + <xsl:attribute name="height"> + <xsl:value-of select="@height" /> + </xsl:attribute> + </xsl:element> +</xsl:template> + + +<xsl:template match="line_block"> + <div class="line-block"> + <xsl:apply-templates /> + </div> +</xsl:template> + +<xsl:template match="line_block/line"> + <xsl:apply-templates /><br /> +</xsl:template> + + +<xsl:template match="literal_block"> + <div class="literal-block"><xsl:apply-templates /></div> +</xsl:template> + +<xsl:template match="literal_block/br"> + <br /> +</xsl:template> + + +<xsl:template match="paragraph"> + <p><xsl:apply-templates /></p> +</xsl:template> + +<xsl:template match="substitution_definition" /> + + + +<!-- reST block quotes get prepended with a paragraph that reads + "ATTRIBUTION wrote:" where ATTRIBUTION is the contents of the + reStructuredText attribution (the information after the + double-hyphens). --> +<xsl:template match="block_quote"> + <blockquote> + <xsl:apply-templates/> + </blockquote> + + <xsl:if test="./attribution"> + <div class="cite"> + <span class="cite_label">Source: </span> + <cite><xsl:apply-templates select="attribution/*|attribution/text()" /></cite> + </div> + </xsl:if> +</xsl:template> + +<!-- Suppress block_quote/attribution elements since we grab the text of + the attribution from the block_quote template. --> +<xsl:template match="block_quote/attribution" /> + + +<!-- Footnote references are wrapped in brackets ([..]) and enclosed in + an anchor tag with the class "footnoteref". --> +<xsl:template match="footnote_reference"> + <xsl:element name="a"> + <xsl:attribute name="class">footnoteref</xsl:attribute> + <xsl:attribute name="id"> + <xsl:text>footnote-backref-</xsl:text> + <xsl:value-of select="@ids" /> + </xsl:attribute> + <xsl:attribute name="href"> + <xsl:text>#footnote-</xsl:text> + <xsl:value-of select="@refid" /> + </xsl:attribute> + + <xsl:text>[</xsl:text> + <xsl:apply-templates /> + <xsl:text>]</xsl:text> + </xsl:element> +</xsl:template> + +<!-- The footnote itself is wrapped in a div tag with a class of + "footnote". The footnote begins with an anchor tag (class name + "footnotereturn") that links back to the part of the document where + the footnote appeared. --> +<xsl:template match="footnote"> + <xsl:element name="div"> + <xsl:attribute name="class">footnote</xsl:attribute> + <xsl:attribute name="id"> + <xsl:text>footnote-</xsl:text> + <xsl:value-of select="@ids" /> + </xsl:attribute> + + <xsl:element name="a"> + <xsl:attribute name="class">footnotereturn</xsl:attribute> + <xsl:attribute name="href"> + <xsl:text>#footnote-backref-</xsl:text> + <xsl:value-of select="@backrefs" /> + </xsl:attribute> + <xsl:attribute name="title"> + <xsl:text>return to content</xsl:text> + </xsl:attribute> + + <xsl:text>#</xsl:text> + <xsl:value-of select="label" /> + <xsl:text>: </xsl:text> + </xsl:element> + + <xsl:apply-templates /> + </xsl:element> +</xsl:template> +<xsl:template match="footnote/label" /> + + +<!-- Basic lists. --> +<xsl:template match="bullet_list"> + <ul><xsl:apply-templates /></ul> +</xsl:template> + +<xsl:template match="enumerated_list"> + <ol><xsl:apply-templates /></ol> +</xsl:template> + +<!-- Basic list items. --> +<xsl:template match="list_item"> + <li><xsl:apply-templates /></li> +</xsl:template> + +<!-- TODO Lists are currently stripped of their paragraph wrapping. + This may or may not be what you want. You could use a match value + of "list_item/paragraph[count(child::*) = 0]" to detect simple vs. + complex paragraphs, although this would also catch inline elements. + A stunningly-complex match value should probably be created to + detect the list type (simple or complex) and then put all of the + items into the same wrapper (either a p tag or a bare list item). --> +<xsl:template match="list_item/paragraph"> +<xsl:apply-templates /> +</xsl:template> + + +<!-- Definition lists. --> +<xsl:template match="definition_list"> + <dl><xsl:apply-templates /></dl> +</xsl:template> + +<xsl:template match="definition_list_item/term"> + <dt><xsl:apply-templates /></dt> +</xsl:template> + +<xsl:template match="definition_list_item/definition"> + <dd><xsl:apply-templates /></dd> +</xsl:template> + + +<!-- Option lists. --> +<xsl:template match="option_list"> + <table class="option-list" cellpadding="0" cellspacing="0"> + <tr> + <th>Option</th> + <th>Description</th> + </tr> + + <xsl:apply-templates /> + </table> +</xsl:template> + +<xsl:template match="option_list_item"> + <tr><xsl:apply-templates /></tr> +</xsl:template> + +<xsl:template match="option_group"> + <td> + <xsl:for-each select="option"> + <xsl:apply-templates select="." /><br /> + </xsl:for-each> + </td> +</xsl:template> + +<xsl:template match="option_group/option"> + <span class="option-string"><xsl:value-of select="option_string" /></span> + <xsl:if test="option_argument"> + <span class="option-delimiter"><xsl:value-of select="option_argument/@delimiter" /></span> + <span class="option-argument"><xsl:value-of select="option_argument" /></span> + </xsl:if> +</xsl:template> + +<xsl:template match="option_list_item/description"> + <td><xsl:apply-templates /></td> +</xsl:template> + + +<!-- Raw HTML elements are passed straight through. Note that this + assumes that the output document is an XHTML document. --> +<xsl:template match="raw[@format='html']"> + <xsl:value-of select="." disable-output-escaping="yes" /> +</xsl:template> + + +<!-- Section titles are wrapped in a heading tag. The heading level + (h1, h2, h3, etc.) is set by counting the number of parent sections + that this section is enclosed in. --> +<xsl:template match="section/title"> + <xsl:element name="{concat('h', format-number(count(ancestor::section), '#'))}"> + <xsl:attribute name="id"> + <xsl:value-of select="parent::section/@ids" /> + </xsl:attribute> + + <xsl:apply-templates /> + </xsl:element> +</xsl:template> + + +<!-- Tables. + + These are pretty much handled as you would expect. The only custom + feature is a pair of special fields that can be used to control the + horizontal and vertical alignment of the table cells. + + If you want to set a custom horizontal alignment, include the field + ":table-cell-halign:" directly before the table. Each of the cells + (td elements) will include an "align" attribute with the specified + value. + + A similar field exists for specifying the valign value. This field + is called ":table-cell-valign:". --> +<xsl:template match="table"> + <table cellpadding="0" cellspacing="0"><xsl:apply-templates /></table> +</xsl:template> + +<xsl:template match="thead"> + <thead><xsl:apply-templates /></thead> +</xsl:template> + +<xsl:template match="thead/row"> + <tr><xsl:apply-templates /></tr> +</xsl:template> + +<xsl:template match="thead/row/entry"> + <xsl:element name="th"> + <xsl:if test="@morecols"> + <xsl:attribute name="colspan"> + <xsl:value-of select="format-number(1 + @morecols, '#')" /> + </xsl:attribute> + </xsl:if> + <xsl:if test="@morerows"> + <xsl:attribute name="rowspan"> + <xsl:value-of select="format-number(1 + @morerows, '#')" /> + </xsl:attribute> + </xsl:if> + + <xsl:apply-templates /> + </xsl:element> +</xsl:template> + +<xsl:template match="tbody"> + <tbody><xsl:apply-templates /></tbody> +</xsl:template> + +<xsl:template match="tbody/row"> + <tr><xsl:apply-templates /></tr> +</xsl:template> + +<xsl:template match="tbody/row/entry"> + <xsl:element name="td"> + <xsl:if test="@morecols"> + <xsl:attribute name="colspan"> + <xsl:value-of select="format-number(1 + @morecols, '#')" /> + </xsl:attribute> + </xsl:if> + <xsl:if test="@morerows"> + <xsl:attribute name="rowspan"> + <xsl:value-of select="format-number(1 + @morerows, '#')" /> + </xsl:attribute> + </xsl:if> + <xsl:if test="ancestor::table/preceding-sibling::*[1]/field/field_name[text()='table-cell-halign']"> + <xsl:attribute name="align"> + <xsl:value-of select="ancestor::table/preceding-sibling::*[1]/field/field_name[text()='table-cell-halign']/../field_body/paragraph" /> + </xsl:attribute> + </xsl:if> + <xsl:if test="ancestor::table/preceding-sibling::*[1]/field/field_name[text()='table-cell-valign']"> + <xsl:attribute name="valign"> + <xsl:value-of select="ancestor::table/preceding-sibling::*[1]/field/field_name[text()='table-cell-valign']/../field_body/paragraph" /> + </xsl:attribute> + </xsl:if> + + <xsl:apply-templates /> + </xsl:element> +</xsl:template> + + +</xsl:stylesheet> diff --git a/t/test-site/src/bar/baz/document.en.rest.txt b/t/test-site/src/bar/baz/document.en.rest.txt new file mode 100644 index 0000000..40a4841 --- /dev/null +++ b/t/test-site/src/bar/baz/document.en.rest.txt @@ -0,0 +1,7 @@ +================= + bar-baz english +================= +:tags: * one + * three/bis + +sticaz diff --git a/t/test-site/src/bar/baz/document.it.rest.txt b/t/test-site/src/bar/baz/document.it.rest.txt new file mode 100644 index 0000000..8d15da2 --- /dev/null +++ b/t/test-site/src/bar/baz/document.it.rest.txt @@ -0,0 +1,7 @@ +================== + bar-baz italiano +================== +:tags: * one + * three/bis + +sticaz diff --git a/t/test-site/src/bar/baz/du2html.xsl b/t/test-site/src/bar/baz/du2html.xsl new file mode 120000 index 0000000..b6e8ebc --- /dev/null +++ b/t/test-site/src/bar/baz/du2html.xsl @@ -0,0 +1 @@ +../../../common/du2html.xsl
\ No newline at end of file diff --git a/t/test-site/src/bar/document.en.rest.tt b/t/test-site/src/bar/document.en.rest.tt new file mode 100644 index 0000000..0d1e3f2 --- /dev/null +++ b/t/test-site/src/bar/document.en.rest.tt @@ -0,0 +1,5 @@ +===================== + bar (from template) +===================== + +[% PROCESS list %] diff --git a/t/test-site/src/bar/document.it.rest.tt b/t/test-site/src/bar/document.it.rest.tt new file mode 100644 index 0000000..d6f5509 --- /dev/null +++ b/t/test-site/src/bar/document.it.rest.tt @@ -0,0 +1,5 @@ +================ + bar (generato) +================ + +[% PROCESS list %] diff --git a/t/test-site/src/bar/du2html.xsl b/t/test-site/src/bar/du2html.xsl new file mode 120000 index 0000000..6737f0e --- /dev/null +++ b/t/test-site/src/bar/du2html.xsl @@ -0,0 +1 @@ +../../common/du2html.xsl
\ No newline at end of file diff --git a/t/test-site/src/bar/list.tt b/t/test-site/src/bar/list.tt new file mode 100644 index 0000000..567b32b --- /dev/null +++ b/t/test-site/src/bar/list.tt @@ -0,0 +1,5 @@ +:tags: two + +[% FOR i IN [1,2,3] %] +* line [% i %] +[% END %] diff --git a/t/test-site/src/document.en.rest.txt b/t/test-site/src/document.en.rest.txt new file mode 100644 index 0000000..15045d2 --- /dev/null +++ b/t/test-site/src/document.en.rest.txt @@ -0,0 +1,9 @@ +=========== + Main page +=========== + +* `<foo/>`_ +* `bar! <bar/>`_ +* `baz`_ + +.. _`baz`: baz/ diff --git a/t/test-site/src/document.it.rest.txt b/t/test-site/src/document.it.rest.txt new file mode 100644 index 0000000..f29a12b --- /dev/null +++ b/t/test-site/src/document.it.rest.txt @@ -0,0 +1,9 @@ +=================== + Pagina principale +=================== + +* `<foo/>`_ +* `bar! <bar/>`_ +* `baz`_ + +.. _`baz`: baz/ diff --git a/t/test-site/src/foo/document.en.rest.txt b/t/test-site/src/foo/document.en.rest.txt new file mode 100644 index 0000000..4380082 --- /dev/null +++ b/t/test-site/src/foo/document.en.rest.txt @@ -0,0 +1,7 @@ +========== + foo page +========== +:tags: * one + * two + +foo diff --git a/t/test-site/src/foo/document.it.rest.txt b/t/test-site/src/foo/document.it.rest.txt new file mode 100644 index 0000000..e4d7333 --- /dev/null +++ b/t/test-site/src/foo/document.it.rest.txt @@ -0,0 +1,7 @@ +============ + Pagina foo +============ +:tags: * one + * two + +foo diff --git a/t/test-site/src/foo/du2html.xsl b/t/test-site/src/foo/du2html.xsl new file mode 120000 index 0000000..6737f0e --- /dev/null +++ b/t/test-site/src/foo/du2html.xsl @@ -0,0 +1 @@ +../../common/du2html.xsl
\ No newline at end of file diff --git a/t/test-site/tags/one/document-listing.tt b/t/test-site/tags/one/document-listing.tt new file mode 120000 index 0000000..9444be1 --- /dev/null +++ b/t/test-site/tags/one/document-listing.tt @@ -0,0 +1 @@ +../../common/document-listing.tt
\ No newline at end of file diff --git a/t/test-site/tags/one/document.en.rest.tt b/t/test-site/tags/one/document.en.rest.tt new file mode 100644 index 0000000..76734b9 --- /dev/null +++ b/t/test-site/tags/one/document.en.rest.tt @@ -0,0 +1,5 @@ +================ + Category 'one' +================ + +[% PROCESS document-listing %] diff --git a/t/test-site/tags/one/document.it.rest.tt b/t/test-site/tags/one/document.it.rest.tt new file mode 100644 index 0000000..30033c8 --- /dev/null +++ b/t/test-site/tags/one/document.it.rest.tt @@ -0,0 +1,5 @@ +================= + Categoria 'uno' +================= + +[% PROCESS document-listing %] diff --git a/t/test-site/tags/three/bis/document-listing.tt b/t/test-site/tags/three/bis/document-listing.tt new file mode 120000 index 0000000..b2b2ee2 --- /dev/null +++ b/t/test-site/tags/three/bis/document-listing.tt @@ -0,0 +1 @@ +../../../common/document-listing.tt
\ No newline at end of file diff --git a/t/test-site/tags/three/bis/document.en.rest.tt b/t/test-site/tags/three/bis/document.en.rest.tt new file mode 100644 index 0000000..18b7ac0 --- /dev/null +++ b/t/test-site/tags/three/bis/document.en.rest.tt @@ -0,0 +1,5 @@ +================ + Category 'three/bis' +================ + +[% PROCESS document-listing %] diff --git a/t/test-site/tags/three/bis/document.it.rest.tt b/t/test-site/tags/three/bis/document.it.rest.tt new file mode 100644 index 0000000..0f1414d --- /dev/null +++ b/t/test-site/tags/three/bis/document.it.rest.tt @@ -0,0 +1,5 @@ +================= + Categoria 'three/bis' +================= + +[% PROCESS document-listing %] diff --git a/t/test-site/tags/three/document-listing.tt b/t/test-site/tags/three/document-listing.tt new file mode 120000 index 0000000..9444be1 --- /dev/null +++ b/t/test-site/tags/three/document-listing.tt @@ -0,0 +1 @@ +../../common/document-listing.tt
\ No newline at end of file diff --git a/t/test-site/tags/three/document.en.rest.tt b/t/test-site/tags/three/document.en.rest.tt new file mode 100644 index 0000000..3848f3c --- /dev/null +++ b/t/test-site/tags/three/document.en.rest.tt @@ -0,0 +1,5 @@ +================ + Category 'three' +================ + +[% PROCESS document-listing %] diff --git a/t/test-site/tags/three/document.it.rest.tt b/t/test-site/tags/three/document.it.rest.tt new file mode 100644 index 0000000..0c1a4a4 --- /dev/null +++ b/t/test-site/tags/three/document.it.rest.tt @@ -0,0 +1,5 @@ +================= + Categoria 'three' +================= + +[% PROCESS document-listing %] diff --git a/t/test-site/tags/two/document-listing.tt b/t/test-site/tags/two/document-listing.tt new file mode 120000 index 0000000..9444be1 --- /dev/null +++ b/t/test-site/tags/two/document-listing.tt @@ -0,0 +1 @@ +../../common/document-listing.tt
\ No newline at end of file diff --git a/t/test-site/tags/two/document.en.rest.tt b/t/test-site/tags/two/document.en.rest.tt new file mode 100644 index 0000000..861ee70 --- /dev/null +++ b/t/test-site/tags/two/document.en.rest.tt @@ -0,0 +1,5 @@ +================ + Category 'two' +================ + +[% PROCESS document-listing %] diff --git a/t/test-site/tags/two/document.it.rest.tt b/t/test-site/tags/two/document.it.rest.tt new file mode 100644 index 0000000..71c4dc0 --- /dev/null +++ b/t/test-site/tags/two/document.it.rest.tt @@ -0,0 +1,5 @@ +================= + Categoria 'two' +================= + +[% PROCESS document-listing %] |