summaryrefslogtreecommitdiff
path: root/doc/todo/A_page_that_inlines_pages__61____34____42____34___results_in_unnecessary_feed_generation.mdwn
diff options
context:
space:
mode:
Diffstat (limited to 'doc/todo/A_page_that_inlines_pages__61____34____42____34___results_in_unnecessary_feed_generation.mdwn')
-rw-r--r--doc/todo/A_page_that_inlines_pages__61____34____42____34___results_in_unnecessary_feed_generation.mdwn78
1 files changed, 78 insertions, 0 deletions
diff --git a/doc/todo/A_page_that_inlines_pages__61____34____42____34___results_in_unnecessary_feed_generation.mdwn b/doc/todo/A_page_that_inlines_pages__61____34____42____34___results_in_unnecessary_feed_generation.mdwn
new file mode 100644
index 000000000..3c892906c
--- /dev/null
+++ b/doc/todo/A_page_that_inlines_pages__61____34____42____34___results_in_unnecessary_feed_generation.mdwn
@@ -0,0 +1,78 @@
+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]]
+
+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.