I've been thinking about this for a while now (actually over a year now I come to think of it) and I've finally decided to do something about it. For a long time I've wanted an easy way to add new pages to a web site without having to upload pages (a Newspro system but for articles if you like). In the last 8 months I've taught myself PHP and mySQL and as a result I'm able to put together custom scripts like this quickly for whatever site I may need them for.

However, I can't help but remember back to the time a year ago when I only had hosting that supported Perl scripts (without a database) and I was desperately interested in a script of this sort that was easy to isntall and could be used just like Newspro.

I've recently started learning Perl, and I'm finding it relatively easy thanks to my background with PHP. In my experience it's a great deal easier to learn a language if you have a real application to write using the language. As a result I'm finally resurrecting my idea for a Perl based articles script, and I intend to write it and (if it's good enough) distribute it for free on the internet.

Here's the specification I've worked out so far:
  • The script will be written in straight Perl, using flat text files to store information.
  • The script will include user management, with admin level users able to add and delete other users and set their permissions (similar to Newspro).
  • Users will be able to add, modify and delete articles
  • Each article will constitute a "Page" of the site. The article will be stored in two places - the data will be in a flat text file while the article will also be flat filed in HTML (built using a template) for quick access - this will be similar to how UBB stores and caches posts.
  • The information template for articles will be customisable. Standard fields will include author, date added, title etc but users will be able to add as many "custom" fields as they like (for example boy text, score, screenshot if you were running a review site).
  • Simple HTML templates will govern how the articles will appear. These will include replacement variables to show here content should go - for examples {TITLE} will be replaced by the title of the article.
That's everything I've got so far. It's pretty ambitious, but I've done things of a similar scale before in PHP. The difference was that when I coded in PHP I had a nice easy mySQL database to store information in - here I'm going to be working with flat text files which will make things a lot trickier. I'm really looking forward to the challenge though...

My question here is... what kind of features would you like to see in a script of this kind? I'm determined to get a proper specification together before I start work on the coding so any ideas would be most welcome. Please note that I'm not going to make any promises about whether or not I'll actually ever complete and distribute the script - this is mainly a learning excercise for me (I'm determined to learn Perl properly) and it's quite possible I'll dump the whole idea.