Simon Wilcox wrote:
> I've written a Plugin which provides an easy means to work with a sitemap 
> described by an xml file. 

Me too.  Several times, each time slightly different :-)

> It seems useful to me and it might be useful to others although I'm not 
> exactly sure what the performance hit is yet. Before unleashing it on the 
> world, I wanted to check the policy on naming. Looking at CPAN it looks 
> like I could just go ahead and call it Template::Plugin::XML::Sitemap. 
> Anyone see any issues with that ? 

Can you post the code and/or a description of the API first?  I've got
two different modules of similar names (Template::Plugin::Sitemap and
Template::Sitemap::XML), both of which do similar things (but not quite),
and neither of which does all that it should.  

I'm happy to throw these away in favour of your module (yay - one less for 
me to maintain!), but it would be good to get a common API agreed first.
Apart from anything else, I've got lots of my own web pages that rely on my
sitemap implementation and I've just written a chapter of a book around it.

As for the name, I've previously inclined towards having sitemap modules
separate from the plugin architecture.

   Template::Plugin::Sitemap      # a plugin module interfacing to one of...

   Template::Sitemap              # base sitemap
   Template::Sitemap::XML         # sitemap with xml storage
   Template::Sitemap::DBI         # sitemap with dbi storage
   Template::Sitemap::PaperTape   # sitemap with paper tape storage
   Template::Sitemap::SillyPutty  # ok, now we're getting very silly

In the case of a sitemap, it's quite likely that you'll want to use
it outside of TT.  In that case, it's usually better to implement the
guts in a non-plugin module (say, Template::Sitemap::*) and have the
plugin be a simple TT-centric wrapper around it.  It's also conceivable
that other sitemap tools/modules may appear and Template::Sitemap is 
then a better place for them to grow into than Template::Plugin::Sitemap.

My most recent half-assed implementation (attached) doesn't both with 
this abstraction and uses a quick XML::Simple hack in an all-in-one 
plugin to do the job.  But it's not very good and really should be 
better.  Perhaps that's why I never sent it to CPAN - because I always 
thought I'd improve on it one day (or better yet, someone would beat me 
to it - long live Simon the Sitemap Pumpkin!).  Feel free to rip out and 
reuse any bits you want.  

A

Attachment: Sitemap.pm
Description: Perl program

Reply via email to