summaryrefslogtreecommitdiff
path: root/doc/bugs/A_page_that_inlines_pages__61____34____42____34___results_in_unnecessary_feed_generation.mdwn
blob: 0f623828a6c29a835bf5d008e1bea69d49f43a24 (plain)

I noticed when generating my wiki that all of my RSS feeds were getting regenerated even when I edited only a page that did not affect any feed.

I found that the problem only occurs in the presence of a file that contains [[inline pages="*"]].

How is this unexpected? By inlining every page in the wiki, you're making that page depend on every other page; any change to any page in the wiki will result in the inlining page and its rss feed needing to be updated to include the changed page. --[[Joey]]

Here's a short script for replicating the bug. Just cut and paste this to a shell, (it will only muck in a new /tmp/ikiwiki-test directory that it will create):

cd /tmp
mkdir ikiwiki-test; cd ikiwiki-test; mkdir src
echo '\[[inline pages="blog/*"]]' > src/myblog.mdwn
mkdir src/blog; echo "A blog entry" > src/blog/entry.mdwn
echo 'use IkiWiki::Setup::Standard {
	srcdir => "src",
	destdir => "output",
	url => "http://example.com",
	templatedir => "/dev/null",
	underlaydir => "/dev/null",
	rss => 1,
	wrappers => [],
	verbose => 1,
	refresh => 1
}' > setup
ikiwiki --setup setup
ls -l --time-style=full-iso output/myblog/index.rss
echo "not a blog entry" > src/not-a-blog.mdwn
ikiwiki --setup setup
ls -l --time-style=full-iso output/myblog/index.rss
echo '\[[inline pages="*"]]' > src/archives.mdwn
ikiwiki --setup setup
ls -l --time-style=full-iso output/myblog/index.rss
echo "still not blogging" >> src/not-a-blog.mdwn
ikiwiki --setup setup
ls -l --time-style=full-iso output/myblog/index.rss

Here's the tail of the output that I see for this command:

$ echo "not a blog entry" > src/not-a-blog.mdwn
$ ikiwiki --setup setup
refreshing wiki..
scanning not-a-blog.mdwn
rendering not-a-blog.mdwn
done
$ ls -l --time-style=full-iso output/myblog/index.rss
-rw-r--r-- 1 cworth cworth 459 2007-06-01 06:34:36.000000000 -0700 output/myblog/index.rss
$ echo '\[[inline pages="*"]]' > src/archives.mdwn
$ ikiwiki --setup setup
refreshing wiki..
scanning archives.mdwn
rendering archives.mdwn
done
$ ls -l --time-style=full-iso output/myblog/index.rss
-rw-r--r-- 1 cworth cworth 459 2007-06-01 06:34:37.000000000 -0700 output/myblog/index.rss
$ echo "still not blogging" >> src/not-a-blog.mdwn
$ ikiwiki --setup setup
refreshing wiki..
scanning not-a-blog.mdwn
rendering not-a-blog.mdwn
rendering archives.mdwn, which depends on not-a-blog
done
$ ls -l --time-style=full-iso output/myblog/index.rss
-rw-r--r-- 1 cworth cworth 459 2007-06-01 06:34:38.000000000 -0700 output/myblog/index.rss

It looks like the rendering of archives.mdwn is also silently generating myblog/index.rss.