summaryrefslogtreecommitdiff
path: root/doc/todo/conditional_underlay_files.mdwn
blob: 03381943f084e7a3e7bc0216f791f17b94eee8f8 (plain)

I'd like to see some way to include certain files from the underlay only when the wiki has certain plugins enabled. For example:

  • Only include smileys.mdwn and the smileys subdirectory if you enable the [[plugins/smiley]] plugin.
  • Only include openid.mdwn if you enable the [[plugins/openid]] plugin.
  • Include shortcuts.mdwn only if you enable the [[plugins/shortcut]] plugin.
  • Include blog.mdwn only if you don't disable the [[plugins/inline]] plugin.
  • Include favicon.ico only if you enable the [[plugins/favicon]] plugin.
  • Include wikiicons/diff.png (and the wikiicons directory) only if you enable the CGI.
  • Include a hypothetical restructuredtexthelp.rst or similar for other formats only with those formats enabled.

I can see two good ways to implement this. Ideally, with [[conditional_text_based_on_ikiwiki_features]] available, ikiwiki could parse a page like conditionalpages.mdwn, which could contain a set of conditional-wrapped page names; that seems like the most elegant and ikiwiki-like approach. Alternatively, [[/ikiwiki.setup]] could contain a Perl-generated exclude option by default; that would work, but it seems hackish.

Another way might be to have a third directory of source files where plugins could drop in pages, and only build the files from there if their plugins were enabled.

Using the conditionals in a page to control what other pages get built feels complex to me, --[[Joey]]