From 3ebb012e3fbb456a322ff546b9ec222050d5cf49 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Mon, 14 Jul 2008 20:06:53 -0400 Subject: document aggregateinternal --- doc/ikiwiki-transition.mdwn | 5 +++++ doc/ikiwiki.setup | 7 +++++-- doc/plugins/aggregate.mdwn | 43 ++++++++++++++++++++++++++++++++++++++----- doc/roadmap.mdwn | 3 ++- 4 files changed, 50 insertions(+), 8 deletions(-) (limited to 'doc') diff --git a/doc/ikiwiki-transition.mdwn b/doc/ikiwiki-transition.mdwn index 693c1db83..624268d23 100644 --- a/doc/ikiwiki-transition.mdwn +++ b/doc/ikiwiki-transition.mdwn @@ -25,6 +25,11 @@ Note that if the page contains wiki links with spaces, which some older versions of ikiwiki accepted, the prefix_directives transition will treat these as preprocessor directives and convert them. +# aggregateinternal + +The `aggregateinternal` mode moves pages aggregated by the aggregate plugin +so that the `aggregateinternal` option can be endabled + # indexdb The `indexdb` mode handles converting a plain text `.ikiwiki/index` file to diff --git a/doc/ikiwiki.setup b/doc/ikiwiki.setup index 6d327fd98..140216c19 100644 --- a/doc/ikiwiki.setup +++ b/doc/ikiwiki.setup @@ -174,8 +174,11 @@ use IkiWiki::Setup::Standard { # pages anonymous users can edit #anonok_pagespec => "*", - # For use with the aggregate plugin, to allow aggregation to be - # triggered via the web. + # For use with the aggregate plugin. + # Enable aggregation to internal pages. Read aggregate plugin docs + # before enabling. + #aggregateinternal => 1, + # Allow aggregation to be triggered via the web. #aggregate_webtrigger => 1, # For use with the pinger plugin, how many seconds to wait before diff --git a/doc/plugins/aggregate.mdwn b/doc/plugins/aggregate.mdwn index 574c8b125..21a8105d0 100644 --- a/doc/plugins/aggregate.mdwn +++ b/doc/plugins/aggregate.mdwn @@ -2,9 +2,9 @@ [[tag type/useful]] This plugin allows content from other feeds to be aggregated into the wiki. -Aggregate a feed as follows +Aggregate a feed as follows: - \[[aggregate name="example blog" + \[[aggregate name="example blog" dir="example" feedurl="http://example.com/index.rss" url="http://example.com/" updateinterval="15"]] @@ -13,7 +13,9 @@ more frequently than once every 15 minutes, and puts a page per post under the example/ directory in the wiki. You can then use ikiwiki's [[ikiwiki/blog]] support to create a blog of one or -more aggregated feeds. +more aggregated feeds. For example: + + \[[inline pages="internal(example/*)"]] ## setup @@ -31,7 +33,7 @@ crontab entry: Alternatively, you can allow `ikiwiki.cgi` to trigger the aggregation. You should only need this if for some reason you cannot use cron, and instead want to use a service such as [WebCron](http://webcron.org). To enable -this, enable on `aggregate_webtrigger` in your setup file. The url to +this, turn on `aggregate_webtrigger` in your setup file. The url to visit is `http://whatever/ikiwiki.cgi?do=aggregate_webtrigger`. Anyone can visit the url to trigger an aggregation run, but it will only check each feed if its `updateinterval` has passed. @@ -59,9 +61,40 @@ directive: * `tag` - A tag to tag each post from the feed with. A good tag to use is the name of the feed. Can be repeated multiple times. The [[tag]] plugin must be enabled for this to work. -* `template` - Template to use for creating the html pages. Defaults to +* `template` - Template to use for creating the aggregated pages. Defaults to aggregatepost. Note that even if you are using subversion or another revision control system, pages created by aggregation will *not* be checked into revision control. + +## internal pages + +This plugin creates a page for each aggregated item. + +Currently, by default, these pages have the ".html" extension, and are +first-class wiki pages -- which allows them to be inlined into blogs +and even edited. + +That turns out to not be ideal for aggregated content, because publishing +files for each of those pages is a waste of disk space and CPU, and you probably +don't want to allow them to be edited. So, there is an alternate method +that can be used, turned on by the `aggregateinternal` option in the setup +file. + +If `aggregateinternal` is enabled, aggregated pages are stored in the source +directory with a "._aggregate" extension. These pages cannot be edited by +web users, and do not generate first-class wiki pages. They can only be +inlined into a blog. + +If you are already using aggregate and want to enable `aggregateinternal`, +you should follow this process: + +1. Update all [[PageSpecs|ikiwiki/PageSpec]] that refer to the aggregated + pages -- such as those in inlines. Put "internal()" around globs + in those PageSpecs. For example, if the PageSpec was "foo/*", it should + be changed to "internal(foo/*)". This has to be done because internal + pages are not matched by regular globs. +2. Use [[ikiwiki-transition]] to move all existing aggregated `.html` + files. The command to run is `ikiwiki-transition aggregateinternal $srcdir` +3. Turn on `aggregateinternal` in the setup file and rebuild the wiki. diff --git a/doc/roadmap.mdwn b/doc/roadmap.mdwn index af46e162b..32752715d 100644 --- a/doc/roadmap.mdwn +++ b/doc/roadmap.mdwn @@ -42,7 +42,8 @@ backwards compatability. Still in the early planning stages, version 3.0 will be an opportunity to make significant transitions. -* Default to using prefix_directives. +* Default to using `prefix_directives`. +* Default to using `aggregateinternal`. ---- -- cgit v1.2.3 From e18002c9e91ce8727ff4eefcf32581fb0903925c Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Mon, 14 Jul 2008 20:16:08 -0400 Subject: fix extension name --- doc/plugins/aggregate.mdwn | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'doc') diff --git a/doc/plugins/aggregate.mdwn b/doc/plugins/aggregate.mdwn index 21a8105d0..71d8b3680 100644 --- a/doc/plugins/aggregate.mdwn +++ b/doc/plugins/aggregate.mdwn @@ -83,8 +83,8 @@ that can be used, turned on by the `aggregateinternal` option in the setup file. If `aggregateinternal` is enabled, aggregated pages are stored in the source -directory with a "._aggregate" extension. These pages cannot be edited by -web users, and do not generate first-class wiki pages. They can only be +directory with a "._aggregated" extension. These pages cannot be edited by +web users, and do not generate first-class wiki pages. They can still be inlined into a blog. If you are already using aggregate and want to enable `aggregateinternal`, -- cgit v1.2.3 From 87754e306566da1d46c584b005ef687621f08323 Mon Sep 17 00:00:00 2001 From: Simon McVittie Date: Tue, 15 Jul 2008 01:49:44 +0100 Subject: Recommend aggregateinternal => 1 for new wikis, and set it in ikiwiki.setup. Also use [[!foo]] in aggregate.mdwn. --- doc/ikiwiki.setup | 7 ++++--- doc/plugins/aggregate.mdwn | 51 ++++++++++++++++++++++++++-------------------- 2 files changed, 33 insertions(+), 25 deletions(-) (limited to 'doc') diff --git a/doc/ikiwiki.setup b/doc/ikiwiki.setup index 140216c19..9ba850745 100644 --- a/doc/ikiwiki.setup +++ b/doc/ikiwiki.setup @@ -175,9 +175,10 @@ use IkiWiki::Setup::Standard { #anonok_pagespec => "*", # For use with the aggregate plugin. - # Enable aggregation to internal pages. Read aggregate plugin docs - # before enabling. - #aggregateinternal => 1, + # Enable aggregation to internal pages. New wikis should use this, + # but if you use aggregate already, read the aggregate plugin docs + # before enabling it. + aggregateinternal => 1, # Allow aggregation to be triggered via the web. #aggregate_webtrigger => 1, diff --git a/doc/plugins/aggregate.mdwn b/doc/plugins/aggregate.mdwn index 71d8b3680..61743a816 100644 --- a/doc/plugins/aggregate.mdwn +++ b/doc/plugins/aggregate.mdwn @@ -1,10 +1,10 @@ -[[template id=plugin name=aggregate author="[[Joey]]"]] -[[tag type/useful]] +[[!template id=plugin name=aggregate author="[[Joey]]"]] +[[!tag type/useful]] This plugin allows content from other feeds to be aggregated into the wiki. Aggregate a feed as follows: - \[[aggregate name="example blog" dir="example" + \[[!aggregate name="example blog" dir="example" feedurl="http://example.com/index.rss" url="http://example.com/" updateinterval="15"]] @@ -15,12 +15,15 @@ the example/ directory in the wiki. You can then use ikiwiki's [[ikiwiki/blog]] support to create a blog of one or more aggregated feeds. For example: - \[[inline pages="internal(example/*)"]] + \[[!inline pages="internal(example/*)"]] ## setup -Make sure that you have the [[html]] plugin enabled, as the created pages are -in html format. The [[meta]] and [[tag]] plugins are also recommended. The +New users of aggregate should enable the `aggregateinternal => 1` option in the +.setup file. If you don't do so, you will need to enable the [[html]] plugin +as well as aggregate itself, since feed entries will be stored as HTML. + +The [[meta]] and [[tag]] plugins are also recommended. The [[htmltidy]] plugin is suggested, since feeds can easily contain html problems, some of which tidy can fix. @@ -68,33 +71,37 @@ Note that even if you are using subversion or another revision control system, pages created by aggregation will *not* be checked into revision control. -## internal pages +## internal pages and `aggregateinternal` This plugin creates a page for each aggregated item. -Currently, by default, these pages have the ".html" extension, and are -first-class wiki pages -- which allows them to be inlined into blogs -and even edited. +If the `aggregateinternal` option is enabled in the setup file (which is +recommended), aggregated pages are stored in the source directory with a +"._aggregated" extension. These pages cannot be edited by web users, and +do not generate first-class wiki pages. They can still be inlined into a +blog, but you have to use `internal` in [[PageSpecs|IkiWiki/PageSpec]], +like `internal(blog/*)`. -That turns out to not be ideal for aggregated content, because publishing -files for each of those pages is a waste of disk space and CPU, and you probably -don't want to allow them to be edited. So, there is an alternate method -that can be used, turned on by the `aggregateinternal` option in the setup -file. +For backward compatibility, the default is that these pages have the +".html" extension, and are first-class wiki pages -- each one generates +a separate HTML page in the output, and they can even be edited. -If `aggregateinternal` is enabled, aggregated pages are stored in the source -directory with a "._aggregated" extension. These pages cannot be edited by -web users, and do not generate first-class wiki pages. They can still be -inlined into a blog. +That turns out to not be ideal for aggregated content, because publishing +files for each of those pages is a waste of disk space and CPU, and you +probably don't want to allow them to be edited. So, there is an alternative +method that can be used (and is recommended), turned on by the +`aggregateinternal` option in the setup file. If you are already using aggregate and want to enable `aggregateinternal`, you should follow this process: 1. Update all [[PageSpecs|ikiwiki/PageSpec]] that refer to the aggregated pages -- such as those in inlines. Put "internal()" around globs - in those PageSpecs. For example, if the PageSpec was "foo/*", it should - be changed to "internal(foo/*)". This has to be done because internal + in those PageSpecs. For example, if the PageSpec was `foo/*`, it should + be changed to `internal(foo/*)`. This has to be done because internal pages are not matched by regular globs. 2. Use [[ikiwiki-transition]] to move all existing aggregated `.html` - files. The command to run is `ikiwiki-transition aggregateinternal $srcdir` + files. The command to run is `ikiwiki-transition aggregateinternal $srcdir`, + or if you have changed the `htmlext` option to something other than "html", + `ikiwiki-transition aggregateinternal $srcdir $htmlext` 3. Turn on `aggregateinternal` in the setup file and rebuild the wiki. -- cgit v1.2.3 From ee16eae1662f6443898440468b5d1c39e5c3a09a Mon Sep 17 00:00:00 2001 From: Simon McVittie Date: Tue, 15 Jul 2008 02:01:37 +0100 Subject: Leave aggregateinternal switched off in the template ikiwiki.setup --- doc/ikiwiki.setup | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'doc') diff --git a/doc/ikiwiki.setup b/doc/ikiwiki.setup index 9ba850745..10cb3da1d 100644 --- a/doc/ikiwiki.setup +++ b/doc/ikiwiki.setup @@ -175,10 +175,10 @@ use IkiWiki::Setup::Standard { #anonok_pagespec => "*", # For use with the aggregate plugin. - # Enable aggregation to internal pages. New wikis should use this, + # Enable aggregation to internal pages. New wikis should set this to 1, # but if you use aggregate already, read the aggregate plugin docs # before enabling it. - aggregateinternal => 1, + #aggregateinternal => 1, # Allow aggregation to be triggered via the web. #aggregate_webtrigger => 1, -- cgit v1.2.3