ANNOUNCE: BBCode::Parser

Do you have a question? Post it now! No Registration Necessary.  Now with pictures!

Howdy, all.  Long-time CPAN user, first-time CPAN publisher.

I'm working on a recursive parser for BBCode markup.  Unlike
HTML::BBCode, it parses to syntax trees and is meant to have enough
goodies for new hooks besides simple BBCode=>HTML conversion.  Version
0.20 has been uploaded to CPAN and should be hitting the module list

The feature rundown:
  * Object Oriented (ooh, shiny!)

  * New Build.PL installer (requires Module::Build)

  * Lots of test cases (recently topped 100) for solid regression testing

  * Solid start at perldoc documentation, goal is 100% coverage at 1.00

  * "BBCode::Parser->parse($code)->toHTML()" is all you need to get going
    for simple things

  * Can re-emit syntax-checked BBCode using "$tag->toBBCode()"

  * Planned support for "$tag->toText()" and "$tag->toPOD()"

  * Possibly future support for multiple HTML standards
    (Currently designed around XHTML 1.0 Strict)

  * HTML "rel='nofollow'" attribute on <A> is the default, for
    Google-friendly prevention of link spam out-of-the-box

  * Rather configurable knobs for setting policy, e.g.:
      # Disable [FONT], [SIZE], [COLOR]
      # Allow raw HTML inside [HTML]...[/HTML]
      # Disable images
      # Disable all types of external links ([URL], [IMG], [EMAIL])
      # TODO: Ban [LIST BULLET=url] where [IMG=url] is forbidden
      $parser->set(allow_image_bullets => 0);
      # Allow a trusted user to post [URL=url FOLLOW=1] trusted links
      $parser->set(follow_override => 1);
      # Allow a trusted user to post trusted links by default
      $parser->set(follow_links => 1);

  * Generally intended to be secure by default

I'm writing it for a planned mod_perl2-based blog, but I thought I might
as well polish it up for general consumption.

It's still under rather heavy development, so Subversion is the best way
to keep up-to-date.  I try to keep the trunk fairly stable by running
the test suite before checkins.  Development should stabilize within the
next month or so.

Development Trunk:

Development trunk install process:
  svn co svn:// \
  cd BBCode-Parser
  perl Build.PL
  ./Build test
  sudo ./Build install

However, if you're content waiting for them, the packages published on
CPAN are PGP signed.  My PGP public key is available at and
all the usual mirrors.

pub   1024D/FB3F8F3F 2005-06-21 [expires: 2010-06-20]
Key fingerprint = F1D2 5349 7D7D 3DB7 1932  442C B48F B3E8 FB3F 8F3F
sub   2048g/14FC1DE1 2005-06-21 [expires: 2010-06-20]

*mumbles something about Thunderbird and GPG plugins*

Donald King /

Site Timeline