A lockfile is stuck; please send me e-mail to let me know.

Version 5.4

Wednesday, April 29th, 2009

Version 5 features W3C-compliant HTML, much cleaner organization of the Perl code, and more dynamic content features including the weblog system and dynamic navigation menu.

Version 5.4 fixed some RSS-related stuff, some localization cleanup, and minor improvements to the Plain theme (including fixing some broken HTML).

Version 5.3 introduced live searching for the blog, with a few code changes to support that.

Versions 5.1 and 5.2 undoubtedly improved something, but I failed to keep good notes and these versions were never released.

Version 5.07 had minor code cleanup and new welcome graphics in more languages.

Version 5.06 was mostly a minor cleanup of variable names and HTML.

Version 5.05 included improved weblog search features, and minor code cleanup all over. It also included some graphics that were missing from previous releases. A changelog is now included.

Note that this release is intended for Perl hackers. If you don't know Perl, you may not be able to get a working site set up, and if you somehow manage to get it working, you probably won't enjoy getting there. Documentation is pretty much nonexistant.


Download it here:

Download phroggy.com 5.4 (89 KiB)

Minimal Documentation

You'll need to edit the weblib/Paths.pm module with the locations of everything on your server, and edit every script's BEGIN block with the path to the weblib directory. Pay attention to the main .htaccess file, and set Allow-override all in Apache's httpd.conf. As far as I know, Apache is probably required; let me know if you can get another server to work.

The webdocs, webdata and weblib directories do not need to be accessible over the web, and may be moved elsewhere. I've put in .htaccess files containing Deny from all in case you choose to leave them where they are. The webdata directory must be writable by Apache; I've set it to be world-writable but you may chown it to the appropriate user and change the permissions.

You'll also want to make changes to weblib/Dynamic.pm (where dynamic content such as the welcome box on the home page and the navivigation menu comes from), and to weblib/Localize.pm if you need to change the localized text strings (mostly for use with dynamic content). For most content files, you can provide localized versions simply by adding an underscore and a language code to the filename, for example if example.page is your default US English version, you can add example_en-gb.page and example_es.page if you want to provide British English and Spanish localizations respectively. Note that several countries are treated as synonyms for Britain, so if a user wants Australian English they'll get the British English version.

To theoretically speed things up a bit, information about pages, themes and backgrounds is cached in the webdata directory. These cache files should be automatically rebuilt whenever you add or remove a page, theme or background, but generally not when you modify an existing one. So, when you make changes, you should point your browser to refreshcache.pl, which will rebuild the cache files; otherwise, you may get weird results.

That's it! No documentation on the file formats I invented, or how layouts work, or how to dynamically generate links with {LINKTO:filename}</a>, or anything. Ask me if you have specific questions, but look through the code first.