ikiwiki/doc/todo/A_page_that_inlines_pages__...

81 lines
2.8 KiB
Markdown

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.
>
> At best, this is a [[wishlist]] optimisation item -- it would be nice if inline could
> somehow know that since it's only displaying N pages, a change to the
> N+1th page that its PageSpec matches is a no-op.
> --[[Joey]]
[[!tag done]]
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.