err..?
[ikiwiki.git] / doc / bugs / A_page_that_inlines_pages__61____34____42____34___results_in_unnecessary_feed_generation.mdwn
1 I noticed when generating my wiki that all of my RSS feeds were
2 getting regenerated even when I edited only a page that did not affect
3 any feed.
4
5 I found that the problem only occurs in the presence of a file that
6 contains \[[inline pages="*"]].
7
8 > How is this unexpected? By inlining _every_ page in the wiki, you're
9 > making that page depend on every other page; any change to any page in
10 > the wiki will result in the inlining page and its rss feed needing to be
11 > updated to include the changed page.
12 > --[[Joey]]
13
14 Here's a short script for replicating the bug. Just cut and paste this
15 to a shell, (it will only muck in a new /tmp/ikiwiki-test directory
16 that it will create):
17
18         cd /tmp
19         mkdir ikiwiki-test; cd ikiwiki-test; mkdir src
20         echo '\[[inline pages="blog/*"]]' > src/myblog.mdwn
21         mkdir src/blog; echo "A blog entry" > src/blog/entry.mdwn
22         echo 'use IkiWiki::Setup::Standard {
23                 srcdir => "src",
24                 destdir => "output",
25                 url => "http://example.com",
26                 templatedir => "/dev/null",
27                 underlaydir => "/dev/null",
28                 rss => 1,
29                 wrappers => [],
30                 verbose => 1,
31                 refresh => 1
32         }' > setup
33         ikiwiki --setup setup
34         ls -l --time-style=full-iso output/myblog/index.rss
35         echo "not a blog entry" > src/not-a-blog.mdwn
36         ikiwiki --setup setup
37         ls -l --time-style=full-iso output/myblog/index.rss
38         echo '\[[inline pages="*"]]' > src/archives.mdwn
39         ikiwiki --setup setup
40         ls -l --time-style=full-iso output/myblog/index.rss
41         echo "still not blogging" >> src/not-a-blog.mdwn
42         ikiwiki --setup setup
43         ls -l --time-style=full-iso output/myblog/index.rss
44
45 Here's the tail of the output that I see for this command:
46
47         $ echo "not a blog entry" > src/not-a-blog.mdwn
48         $ ikiwiki --setup setup
49         refreshing wiki..
50         scanning not-a-blog.mdwn
51         rendering not-a-blog.mdwn
52         done
53         $ ls -l --time-style=full-iso output/myblog/index.rss
54         -rw-r--r-- 1 cworth cworth 459 2007-06-01 06:34:36.000000000 -0700 output/myblog/index.rss
55         $ echo '\[[inline pages="*"]]' > src/archives.mdwn
56         $ ikiwiki --setup setup
57         refreshing wiki..
58         scanning archives.mdwn
59         rendering archives.mdwn
60         done
61         $ ls -l --time-style=full-iso output/myblog/index.rss
62         -rw-r--r-- 1 cworth cworth 459 2007-06-01 06:34:37.000000000 -0700 output/myblog/index.rss
63         $ echo "still not blogging" >> src/not-a-blog.mdwn
64         $ ikiwiki --setup setup
65         refreshing wiki..
66         scanning not-a-blog.mdwn
67         rendering not-a-blog.mdwn
68         rendering archives.mdwn, which depends on not-a-blog
69         done
70         $ ls -l --time-style=full-iso output/myblog/index.rss
71         -rw-r--r-- 1 cworth cworth 459 2007-06-01 06:34:38.000000000 -0700 output/myblog/index.rss
72
73 It looks like the rendering of archives.mdwn is also silently
74 generating myblog/index.rss.