Revision history for Posy
=========================
0.10 Mon 03 January 2005
------------------------
* (3 Jan 2005) another little tweak
* (3 Jan 2005) some tweaking
For some reason I can't fathom, it started reindexing every
time it ran, and I really noticed the slowdown because I'm trying
to set up my own site, and I'd converted over enough files that it
was feeling the pinch (I have a large site).
So I've reduced the number of checks in index_entries; the
fallout will be that manual indexing will be required more often,
but that's a lot better than it erroniously reindexing every time.
* (3 Jan 2005) code tweaking
Now index_entries sets $self->{reindex}.
* (3 Jan 2005) fix to Posy::Plugin::BinFile
Needed better guestimate of some file types.
* (3 Jan 2005) Posy::Plugin::LocalDepth
* (3 Jan 2005) tweaking depth on breadcrumbs
* (3 Jan 2005) fix problem with entry titles
Needed to change EntryTitles and NearLinks for situations where
the HTML file has an empty title. Though the obvious answer is to say
Thou Shalt Not Have Entries Without Titles, the files in question were
automatically generated ones where I had no control over the titles.
* (2 Jan 2005) various fixes
- directories starting with dots should be "other" files, not categories
- turned on the num_entries limitation
- other tweaks
* (1 Jan 2005) Posy::Plugin::LinkExtra and friends
LinkExtra is a plugin to add extra info to a link, mainly
the size of the file linked to. Added Posy::Plugin::FileStats to
support this, and altered BinFile to use the FileStats plugin.
Also did some more taint stuff and minor fixes.
* (30 Dec 2004) Posy::Plugin::ThisFlavour
Plugin to change relative links to the current flavour.
* (30 Dec 2004) Text::Template and taint checking
Turned on taint checking in the CGI script. And had to
fix problems engendered by same. Not sure if it won't complain
with the default interpolation, but it works okay with TextTemplate
now.
And while I was altering Text::Template, I made the entry
delimiters different to the template ones.
* (30 Dec 2004) Posy::Plugin::BinFile
Renders binary files from the data directory.
Needs File::MMagic module to determine the MIME type of the file.
* (29 Dec 2004) minor fixes
* (29 Dec 2004) fixed bug in Posy::Plugin::Dump
It was depending on some CGI module stuff that didn't exist
in CGI::Minimal.
* (29 Dec 2004) Posy::Plugin::RandQuote
Now I have the funky random quotes back!
* (29 Dec 2004) Posy::Plugin::Canonical
This basically corrects non-standard URLs, but it gets confused if it's
been redirected to.
* (29 Dec 2004) documentation tweaks
* (28 Dec 2004) Posy::Plugin::CgiCarp
To help with debugging when one can't look at the logs.
* (28 Dec 2004) workarounds
Because I couldn't get Zeus rewrite rules to work, I put in stuff
to enable posy.cgi to be used as an ErrorDocument 404 (so that all missing
file requests would be processed by Posy). This entailed checking for
an undefined PATH_INFO and using other environment variables instead.
Not sure if it will work with Zeus yet, but I did get it to work with
Apache after checking REDIRECT_QUERY_STRING also.
Also, put in code into posy_all.cgi so it calculates the directories
from DOCUMENT_ROOT.
0.05 Fri 24 December 2004
-------------------------
* (24 Dec 2004) fix in Posy::Plugin::Dump
For backwards compatibility with earlier versions of Data::Dumper,
this now uses the "Dumper()" call, not the extended call. This should
be okay, because the dumping is for debugging purposes, not for reading
things back in. And it's been failing for someone trying to install
the system.
0.04 Wed 22 December 2004
-------------------------
* (22 Dec 2004) a better fix of indexing entries
Silly, I should have used File::Spec->abs2rel before. Am using it now.
* (22 Dec 2004) corrected error in Changes file
0.03 Wed 22 December 2004
-------------------------
* (22 Dec 2004) bug fix in indexing entries
Got error on CPAN from Win machine in _wanted; not sure exactly
if this will fix the problem, but the section in question is now less
unix-centric.
0.02 Mon 20 December 2004
-------------------------
* (20 Dec 2004) support stuff
Forgot to add module names to a config file
* (16 Dec 2004) action changes
Changed the processing of actions (and entry_actions
and entries) so that it's possible to alter the list while
actions are running. Not really sure why this is a good thing,
but it doesn't seem to hurt to be flexible in this regard.
* (16 Dec 2004) Posy::Plugin::EntryTitles + Posy::Plugin::NearLinks
The NearLinks plugin depends on the EntryTitles plugin.
I decided to make the EntryTitles a separate plugin because (a)
it could be nicely used by other plugins such as a Headlines plugin
(b) it isn't really core functionality.
Because EntryTitles has a 'get_title' method, that should
make it easier for new-file-type plugins to add their own extra
stuff to get titles if they want.
* (15 Dec 2004) speed freakage
After much profiling, rearranging, adding and deleting,
I have made Posy faster. I moved out the 'dump' method into a separate
plugin, so that Data::Dumper isn't loaded all the time. I changed
from using CGI to CGI::Minimal. This entailed stealing functionality
from CG::Simple to generate $self->{url} but it seems to work.
I removed 'use warnings' -- I'll put it back in when debugging, but
otherwise it's faster without.
* (15 Dec 2004) Posy::Plugin::Categories
Because I am Prime, I altered Posy::Core to make this easier;
adding to the categories cache the category basename and the entry-count.
I'm not doing a cumulative entry-count because (a) I don't want it for
myself and (b) it's more work.
* (15 Dec 2004) Toc bugfix
Problem if the header had attributes; wasn't done properly.
* (15 Dec 2004) fix to LinkList
It wasn't including the $url in the link, which could mess
up some people.
* (14 Dec 2004) speed tweaks
Various tweaks to make the code more efficient. As I suspected,
Posy::Plugin::Toc was very bad, so I removed the cleverness. This
means that one has to make sure that headers in HTML files that
are going to be indexed by Toc DO NOT have anchors in them,
because this no longer checks for that.
Also added another option to ShortBody so that it can
replace $entry_body -- this makes things faster when one is
generating category/chrono indexes which only show the short body,
since things like Toc won't wastefully process them.
I found out that the anchor-in-header thing messed up
ShortBody's processing of the first header too.
* (13 Dec 2004) Posy::Plugin::Toc
Based on the blosxom 'toc' plugin, but it actually checks
for existing anchors. This probably slows it down; oh well.
* (13 Dec 2004) fix reindex bug
This now checks the $self->{path} to see if the current
request (which would have been found by parse_path or it wouldn't
have gotten this far) is in the files hash, and if it isn't, then
it will now reindex (where it didn't before). Stupid to have to
manually reindex every time one adds a file when such a thing is
easily detected.
* (13 Dec 2004) Posy::Plugin::LinkList
This provides a method only; no actions, no replacements.
Can be called from within flavour files if using Posy::Plugin::TextTemplate.
0.01 Sun 12 December 2004
-------------------------
* (12 Dec 2004) posy_one
Generate one file (not inside the data dir) using Posy.
It's a hack, and probably needs to be done as a proper overriding
plugin, but it sort of works.
* (12 Dec 2004) posy_static and Posy::Plugin::GenStatic
Posy::Plugin::GenStatic replaces the "run" method, and
then runs around in a lot of loops.
* (12 Dec 2004) changes to posy.cgi
Moved posy.cgi out of the scripts directory, since it shouldn't
be installed like a script. Also made two versions of it; a vanilla
version (posy.cgi) which has no plugins, and a full version (posy_all.cgi)
which has all the plugins, and has debugging enabled.
* (12 Dec 2004) Posy::Plugin::FlavourMenu
* (11 Dec 2004) Posy::Plugin::DynamicCss
* (11 Dec 2004) Posy::Plugin::ThemeCss
This sets variables in $flow_state which can then be used
in flavour templates.
* (11 Dec 2004) removing redundancies
Changed some comments and removed unneeded methods
* (11 Dec 2004) split append_entry
Split the append_entry method into two parts, so that
future plugins (such as this_flavour) could alter the entry
after it had been rendered, but before it had been added to the page data.
* (11 Dec 2004) Posy::Plugin::YamlConfig
This was an easy way of enabling configuration values to be hashes,
which is needed for things like ThemeCss and FlavourMenu.
The downside is that it requires one to install YAML, but I'd rather
have that than have to reinvent the wheel. And besides, if one uses
Module::Build one has probably installed YAML anyway.
* (11 Dec 2004) tweaking documentation
* (11 Dec 2004) optional testing of dist + plugins
Since certain plugins use extra modules (for example, Text::Template
is used by Posy::Plugin::TextTemplate) then both the Test::Distribution
test and the plugins tests would fail if those modules weren't installed.
Therefore these tests now check if those modules are installed, and
skip themselves if they aren't.
This is good because the whole idea of putting certain functionality
into "standard" plugins is so that the plugins can be optional, and thus
their dependencies can be optional.
* (11 Dec 2004) added Posy::Plugin::ShortBody
* (11 Dec 2004) improved flavour template search
Now it looks for an alternative path-type before it looks
for a template with no path-type. Alternative path-types are:
top_entry -> entry, top -> category.
* (11 Dec 2004) improved reindexing
index_entries was always reading the cache even when reindex was
forced. Which seemed a bit silly to me.
* (11 Dec 2004) fix CGI param problem
It wasn't reading CGI parameters properly because I'd given
it keywords and that was all it found. Probably some subtlety with
when the "use CGI" command was done. No matter. I didn't really
need those keywords anyway.
* (11 Dec 2004) added Posy::Plugin::TextToHTML
Which uses HTML::TextToHTML module.
* (10 Dec 2004) a few more tweaks
- make select_by_path include anything below the path
- made actions and entry_actions explicit in posy.cgi
- removed dump from the default actions
* (10 Dec 2004) added TODO to manifest
* (10 Dec 2004) more tweaking
* (10 Dec 2004) tweaking to get tests right
* (10 Dec 2004) testing TextTemplate plugin
Wrote proper tests for TextTemplate plugin.
Also added some extra stuff to path parsing.
* (10 Dec 2004) first plugin TextTemplate
Had to split Posy into Posy and Posy::Core to get the plugins
to work; this was because I wasn't really paying attention to the
plugin implementation of Module::Starter and why Module::Starter itself
only implemented the "import" method.
* (9 Dec 2004) fixing up flavours
Now the only default flavour is the error flavour. The problem
with how it was before, it meant that one couldn't override the default
'html' flavour with a flavour file. Much simpler to just have a default
error flavour; and it isn't really a problem for the user because
it isn't as if the distro isn't providing a default 'html' flavour,
it just isn't providing it inside the Posy module itself, it's in
the flavours directory.
Also slightly altered the way the page body data is built up.
* (9 Dec 2004) getting posy.cgi to work
This involved first actually writing posy.cgi, then fixing
a number of problems, such as with "use lib" and with "content_type"
and with not finding files, and with various warnings.
* (9 Dec 2004) changing debug_level from param to init
The debug_level is now set at run/new, not while parsing params;
this is because it is less messy this way, and if you're debugging,
you would be altering code anyway, so you might as well alter the init code.
* (9 Dec 2004) updating todo
* (8 Dec 2004) fix url var
Use the CGI url() by default, to pass to templates.
* (8 Dec 2004) improved config stuff
* (8 Dec 2004) initial checkin
This is a website content manager (and blog) inspired by blosxom.
I decided to roll my own because there were certain fundamental problems
with blosxom, and different fundamental problems with Blosxom3.
This is written for my needs, but others may find it useful.