ikiwiki/doc/todo/more_customisable_titlepage...

32 lines
1.9 KiB
Markdown

I understand the `IkiWiki::titlepage` function is used to generate filenames from titles. It would be nice if there were an easier way to override what it does. I suppose I could write an *external* plugin and call `inject`, but maybe this could instead be done via the configuration file?
I imagine two things: a lookup hash and a template.
Since `IkiWiki::titlepage` basically translates characters, it would be cool to be able to define a lookup hash in the configuration, which would be consulted before falling back to the generic `__xx__` `ord()` representation of a letter. For instance, in German, I might prefer to have 'ä' become 'ae' instead of something illegible.
Second, maybe a template could be honoured. The template could have a slot `%s` where the calculated title goes, and it could contain `strftime` symbols as well as variables, which get interpolated on use.
Another option would be a function I could define in the setup file, or an external script, though that would be pretty expensive.
-- [[madduck]]
I don't think that changing titlepage is a good idea, there are
compatability problems.
Instead, I think that in the specific case of the blogpost form, there
should be an interface to allow plugins to do arbitrary transformatiosn of
the page name.
So, add a hidden field to blogpost.tmpl, something like blogpost=1. Then in
`editpage`, if blogpost is set, call the blogpost hooks, which are passed
a page name and return a transformed version.
If the page name is changed by those, then the user's original title might
need to be preserved via a meta title directive. This could just be
inserted if any changes are made to the page name. Only problem with this
is that having the directive appear in the edit box for a new page could
confuse the user. The title could be passed on in a hidden field, and
prepended to the page when it's saved..
[[wishlist]]