]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blobdiff - doc/ikiwiki/directive/inline.mdwn
updated branch; this is ready for review for inclusion in IkIWiki
[git.ikiwiki.info.git] / doc / ikiwiki / directive / inline.mdwn
index 4bf0de13dcc5241623942a3be5d5ed24d8cf7e25..da759fc198be685eaa452cb6f4df46a1e24e3bf5 100644 (file)
-The `inline` directive is supplied by the [[!iki plugins/inline]] plugin.
+The `inline` directive is supplied by the [[!iki plugins/inline desc=inline]] plugin.
 
-This is a [[ikiwiki/directive]] that allows including one wiki page
-inside another. For example:
+This is a directive that allows including one wiki page inside another.
+The most common use of inlining is generating blogs and RSS or Atom feeds.
 
-       \[[!inline pages="blog/*"]]
+Example:
 
-The most common use of inlining is generating blogs and RSS or Atom feeds.
-See [[ikiwiki/blog]] for details.
+       \[[!inline pages="blog/* and !*/Discussion" limit="10" rootpage="blog"]]
+
+Any pages that match the specified [[PageSpec]] (in the example, any
+[[SubPage]] of "blog") will be part of the blog, and the newest 10
+of them will appear in the page. Note that if files that are not pages
+match the [[PageSpec]], they will be included in the feed using RSS
+enclosures, which is useful for simple [[!iki podcast desc=podcasting]];
+for fuller-featured podcast feeds, enclose media files in blog posts
+using [[meta]].
+
+The optional `rootpage` parameter tells the wiki that new posts to this
+blog should default to being [[SubPages|SubPage]] of "blog", and enables a
+form at the top of the blog that can be used to add new items.
+
+If you want your blog to have an archive page listing every post ever made
+to it, you can accomplish that like this:
+
+       \[[!inline pages="blog/* and !*/Discussion" archive="yes"]]
+
+You can even create an automatically generated list of all the pages on the
+wiki, with the most recently added at the top, like this:
+
+       \[[!inline pages="* and !*/Discussion" archive="yes"]]
+
+If you want to be able to add pages to a given blog feed by tagging them,
+you can do that too. To tag a page, just make it link to a page or pages 
+that represent its tags. Then use the special `link()` [[PageSpec]] to match
+all pages that have a given tag:
+
+       \[[!inline pages="link(life)"]]
+
+Or include some tags and exclude others:
+
+       \[[!inline pages="link(debian) and !link(social)"]]
+
+## usage
+
+There are many parameters you can use with the `inline`
+directive. These are the commonly used ones:
+
+* `pages` - A [[PageSpec]] of the pages to inline.
+* `limit` - Specify the maximum number of matching pages to inline.
+  Default is 10, unless archiving, when the default is to show all.
+  Set to 0 to show all matching pages.
+  In older versions of IkiWiki this parameter was called `show`, which
+  also still works.
+* `archive` - If set to "yes", only list page titles and some metadata, not
+  full contents.
+* `title` - Sets the title of the rss feed if one is generated.
+  Defaults to the name of the page.
+* `description` - Sets the description of the rss feed if one is generated.
+  Defaults to the name of the wiki.
+* `skip` - Specify a number of pages to skip displaying. Can be useful
+  to produce a feed that only shows archived pages.
+* `postform` - Set to "yes" to enable a form to post new pages to a
+  blog.
+* `postformtext` - Set to specify text that is displayed in a postform.
+* `rootpage` - Enables the postform, and allows controling where
+  newly posted pages should go, by specifiying the page that
+  they should be a [[SubPage]] of.
+
+Here are some less often needed parameters:
 
+* `actions` - If set to "yes" add links to the bottom of the inlined pages 
+  for editing and discussion (if they would be shown at the top of the page
+  itself).
+* `rss` - controls generation of an rss feed. If the wiki is configured to
+  generate rss feeds by default, set to "no" to disable. If the wiki is
+  configured to `allowrss`, set to "yes" to enable.
+* `atom` - controls generation of an atom feed. If the wiki is configured to
+  generate atom feeds by default, set to "no" to disable. If the wiki is
+  configured to `allowatom`, set to "yes" to enable.
+* `feeds` - controls generation of all types of feeds. Set to "no" to
+  disable generating any feeds.
+* `emptyfeeds` - Set to "no" to disable generation of empty feeds.
+  Has no effect if `rootpage` or `postform` is set.
+* `id` - Set to specify the value of the HTML `id` attribute for the
+ feed links or the post form. Useful if you have multiple forms in the
+ same page.
+* `template` - Specifies the template to fill out to display each inlined
+  page. By default the `inlinepage` template is used, while
+  the `archivepage` template is used for archives. Set this parameter to
+  use some other, custom template, such as the `titlepage` template that
+  only shows post titles or the `microblog` template, optimised for
+  microblogging. Note that you should still set `archive=yes` if
+  your custom template does not include the page content.
+* `raw` - Rather than the default behavior of creating a blog,
+  if raw is set to "yes", the page will be included raw, without additional
+  markup around it, as if it were a literal part of the source of the 
+  inlining page.
+* `sort` - Controls how inlined pages are [[sorted|pagespec/sorting]].
+  The default is to sort the newest created pages first, and if pages
+  were created in the same commit, sort them by the name of the page
+  (equivalent to `sort="age title"`).
+* `reverse` - If set to "yes", causes the sort order to be reversed.
+* `feedlimit` - Specify the maximum number of matching pages to include in
+  the rss/atom feeds. The default is the same as the `limit` value above.
+  In older versions of IkiWiki this parameter was called `feedshow`, which
+  also still works.
+* `feedonly` - Only generate the feed, do not display the pages inline on
+  the page.
+* `quick` - Build archives in quick mode, without reading page contents for
+  metadata. This also turns off generation of any feeds.
+* `timeformat` - Use this to specify how to display the time or date for pages
+  in the blog. The format string is passed to the strftime(3) function.
+* `feedpages` - A [[PageSpec]] of inlined pages to include in the rss/atom
+  feeds. The default is the same as the `pages` value above, and only pages
+  matched by that value are included, but some of those can be excluded by
+  specifying a tighter [[PageSpec]] here.
+* `guid` - If a URI is given here (perhaps a UUID prefixed with `urn:uuid:`),
+  the Atom feed will have this as its `<id>`. The default is to use the URL
+  of the page containing the `inline` directive.
+* `feedfile` - Can be used to change the name of the file generated for the
+  feed. This is particularly useful if a page contains multiple feeds.
+  For example, set "feedfile=feed" to cause it to generate `page/feed.atom`
+  and/or `page/feed.rss`. This option is not supported if the wiki is
+  configured not to use `usedirs`.
+* `pagenames` - If given instead of `pages`, this is interpreted as a
+  space-separated list of absolute page names ([[SubPage/LinkingRules]] are
+  not taken into account), and they are inlined in exactly the order given:
+  the `sort` and `pages` parameters cannot be used in conjunction with
+  this one.
+* `trail` - If set to "yes" and the [[!iki plugins/trail desc=trail]] plugin
+  is enabled, turn the inlined pages into a trail with next/previous links,
+  by passing the same options to [[ikiwiki/directive/trailitems]]. The `skip`
+  and `limit` options are ignored by the trail, so the next/previous links
+  traverse through all matching pages.
 
 [[!meta robots="noindex, follow"]]