As you may have seen from my benchmarking code I was not re-parsing the HTML, every time round, but only calling process with a pre-parsed tree.

You're in a fix here.

Parsing HTML to a DOM tree gives you the freedom to manipulate every branch and twig and content as you like, but at the cost of speed. If you cache the modified tree or parts of it, you give away that freedom, as if you hadn't had it in the first place.

If if you have fixed places where elements are altered - as with your example pages produced from spkg.pl, there is no difference to static pages with inline perl as with Mason or with my approach.

In the sub process of spkg.pl-generated pages the names are even static:

sub process { my ($tree, $c, $stash) = @_; use Data::Dumper; warn "PROCESS_TREE: ", $tree->as_HTML; # $tree->look_down(id => $_)->replace_content($stash->{$_}) # for qw(name date); $tree; }

To have freedom of which node has to be altered with which value, the key/value pairs should be taken from $stash. But then, again, caching is ineffective.

That's why I think HTML::Seamstress is ok for template generation but not actually for serving pages.

regards,
--shmem

_($_=" "x(1<<5)."?\n".q·/)Oo.  G°\        /
                              /\_¯/(q    /
----------------------------  \__(m.====·.(_("always off the crowd"))."·
");sub _{s./.($e="'Itrs `mnsgdq Gdbj O`qkdq")=~y/"-y/#-z/;$e.e && print}

In reply to Re^4: RFC: Templating without a System by shmem
in thread RFC: Templating without a System by shmem

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.