response
[ikiwiki.git] / doc / forum / Render_more_than_one_dest_page_from_same_source_page.mdwn
1 Is it possible to render more than one destination page from the same source page?
2 That is, same source, slightly different presentation at the other end, needing a different output file.
3
4 > It's possible to render more than one output _file_ from a given source
5 > page. See, for example, the inline plugin's generation of rss files.
6 > This is done by calling `will_render()` and using `writefile()` to
7 > generate the additional files. Probably in a format hook if you want
8 > to generate html files.
9
10 > It's not possible for one source file to represent multiple wiki pages.
11 > There is a 1:1 mapping between source filenames and page names. The
12 > difference between wiki pages and output files is that you can use
13 > wikilinks to link to wiki pages, etc. --[[Joey]] 
14
15 I have two problems that would be solved by being able to do this.
16
17 [[!toc startlevel=2]]
18
19 ##"full" and "print" versions of a page.
20
21 One has a page "foo", which is rendered into foo.html.
22 One also wants a foo-print.html page, which uses "page-print.tmpl" rather than "page.tmpl" as its template.
23
24 I want to do this for every page on the site, automatically, so it isn't feasible to do it by hand.
25
26 > Did you know that ikiwiki's `style.css` arranges for pages to display
27 > differently when printed out? Things like the Action bar are hidden in
28 > printouts (search for `@media print`). So I don't see a reason to need
29 > whole files for printing when you can use these style sheet tricks.
30 > --[[Joey]] 
31
32 ##"en" and "en-us" versions of a page.
33
34 My site is in non-US English.  However, I want US-English people to find my site when they search for it when they use US spelling on certain search terms (such as "optimise" versus "optimize").  This requires a (crude) US-English version of the site where the spellings are changed automatically, and the LANG is "en-us" rather than "en".  (No, don't tell me to use keywords; Google ignores keywords and has for a number of years).
35
36 So I want the page "foo" to render to "foo.en.html" and "foo.en-us.html" where the content is the same, just some automated word-substitution applied before foo.en-us.html is written.  And do this for every page on the site.
37
38 I can't do this with the "po" plugin, as it considers "en-us" not to be a valid language.  And the "po" plugin is probably overkill for what I want anyway.
39
40 But I'm not sure how to achieve the result I need.
41
42 -- [[KathrynAndersen]]
43
44 > Sounds like this could be considered a single page that generates two
45 > html files, so could be handled per above. --[[Joey]]