ikiwiki/doc/todo/multiple_template_directori...

74 lines
3.1 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

It would be nice to be able to override a single template without keeping a
private copy of the entire template directory.
a setup option like
templatedirs => [ "my/dir", "/usr/share/ikiwiki/templates" ]
ought to do the trick.
> Now that I look at the source, I see that ikiwiki already falls back to the
> global dir when it cannot find a template. For me, this is good enough.
> And it is even documented in the man page. Sigh. I guess this could be
> considered [[done]].
I have a use case for this, a site composed of blogs and wikis, templates divided in three categories: common, blog and wiki. The only solution I found is maintaining hard links, being able to have multiple template dirs would obviously be better. -- Changaco
> [[plugins/underlay]] used to allow adding extra templatedirs, but Joey
> removed that functionality when he made templates search the wiki's
> own `templates` directory.
>
> You can get a 3-level hierarchy like this:
>
> * instance-specific overrides: $srcdir/templates
> * common to the entire site: a directory that is the value of all
> instances' `templatedir` parameters
> * common to every ikiwiki in the world: /usr/share/ikiwiki/templates
> (implicitly searched)
>
> (by "instance" I mean an instance of ikiwiki - a .setup file, basically.)
>
> For a more complex hierarchy you'd need the old [[plugins/underlay]]
> functionality, i.e. you'd need to (ask Joey to) revert the patch that
> removed it. For instance, if anyone has a hierarchy like this, then
> they need the old functionality back in order to split the template
> search path for the things marked `(???)`:
>
> every ikiwiki in the world (/usr/share/ikiwiki/templates)
> \--- your site (???)
> \--- your blogs (???)
> \--- travel blog ($srcdir/templates)
> \--- code blog ($srcdir/templates)
> \--- your wikis (???)
> \--- travel wiki ($srcdir/templates)
> \--- code wiki ($srcdir/templates)
>
> This looks pretty hypothetical to me, though...
> --[[smcv]]
>> The reason I removed it is because the same functionality of having
>> multiple template directories is still present. Just put them in
>> the templates/ subdirectory of multiple underlay directories instead.
>> --[[Joey]]
>>>Thanks, I didn't realize this was possible. Problem solved. -- Changaco
>>>> We can consider this [[done]], then. For reference, the solution
>>>> to the hierarchy I mentioned above would be:
>>>>
>>>> all your sites have $your_underlay as an underlay
>>>>
>>>> the blogs and wikis all have $blog_underlay or $wiki_underlay
>>>> (as appropriate) as a higher priority underlay
>>>>
>>>> every ikiwiki in the world (/usr/share/ikiwiki/templates)
>>>> \--- your site ($your_underlay/templates, or templatedir)
>>>> \--- your blogs ($blog_underlay/templates)
>>>> \--- travel blog ($srcdir/templates)
>>>> \--- code blog ($srcdir/templates)
>>>> \--- your wikis ($wiki_underlay/templates)
>>>> \--- travel wiki ($srcdir/templates)
>>>> \--- code wiki ($srcdir/templates)
>>>>
>>>> --[[smcv]]