calendar: Add archive_pagespec, which is used by ikiwiki-calendar to specify which...
authorJoey Hess <joey@gnu.kitenet.net>
Thu, 15 Apr 2010 17:40:53 +0000 (13:40 -0400)
committerJoey Hess <joey@gnu.kitenet.net>
Thu, 15 Apr 2010 17:40:53 +0000 (13:40 -0400)
IkiWiki/Plugin/calendar.pm
debian/changelog
doc/ikiwiki-calendar.mdwn
doc/ikiwiki/directive/calendar.mdwn
ikiwiki-calendar.in

index ff84bc4409cd1f397980d4eb14b6d478a08cd70d..0f0e9518adf27b0ca3f912622d89b71ea13f5aa6 100644 (file)
@@ -47,6 +47,14 @@ sub getsetup () {
                        safe => 1,
                        rebuild => 1,
                },
+               archive_pagespec => {
+                       type => "pagespec",
+                       example => "posts/* and !*/Discussion",
+                       description => "PageSpec of pages to include in the archives; used by ikiwiki-calendar command",
+                       link => 'ikiwiki/PageSpec',
+                       safe => 1,
+                       rebuild => 0,
+               },
 }
 
 sub is_leap_year (@) {
index 26b00a07c527dba49ba787a6a6b3b5ca364ea74a..7c607b2a55c4104783724b77102606d08a16227d 100644 (file)
@@ -27,6 +27,10 @@ ikiwiki (3.20100410) UNRELEASED; urgency=low
     for master language.
   * po: Configuring the same language as master and slave confuses processing;
     so filter out such a misconfiguration.
+  * calendar: Add archive_pagespec, which is used by ikiwiki-calendar to
+    specify which pages to include on the calendar archive pages.
+    (The pagespec can still also be specified on the ikiwiki-calendar command
+    line.)
 
  -- Joey Hess <joeyh@debian.org>  Sun, 04 Apr 2010 12:17:11 -0400
 
index 982892fca25a21ec62458b11f3e98602ec5602b6..c1f4d72670c92cc0bc79aafb40ec4dcb3aa76089 100644 (file)
@@ -16,9 +16,11 @@ You must specify the setup file for your wiki. The pages will
 be created inside its `srcdir`, beneath the `archivebase`
 directory used by the calendar plugin (default "archives").
 
-You will probably want to specify a [[ikiwiki/PageSpec]]
-to control which pages are included on the calendars. The
-default is all pages. To limit it to only posts in a blog,
+To control which pages are included on the calendars,
+a [[ikiwiki/PageSpec]] can be specified. The default is
+all pages, or the pages specified by the `comments_pagespec`
+setting in the config file. A pagespec can also be specified
+on the command line. To limit it to only posts in a blog,
 use something like "posts/* and !*/Discussion".
 
 It defaults to creating calendar pages for the current
index b2ac75b11694eed8cc67178cf2508814ee30f96d..8a08081eedf374e952d4772ac33e96d957b271ba 100644 (file)
@@ -40,9 +40,12 @@ An example crontab:
   "month" or "year". The default is a month view calendar.
 * `pages` - Specifies the [[ikiwiki/PageSpec]] of pages to link to from the
   month calendar. Defaults to "*".
-* `archivebase` - Configures the base of the archives hierarchy. The
-  default is "archives". Note that this default can also be overridden
+* `archivebase` - Configures the base of the archives hierarchy. 
+  The default is "archives". Note that this default can also be overridden
   for the whole wiki by setting `archivebase` in ikiwiki's setup file.
+  Calendars link to pages under here, with names like "2010/04" and
+  "2010". These pages can be automatically created using the
+  [[ikiwiki-calendar]] tool. 
 * `year` - The year for which the calendar is requested. Defaults to the
   current year.
 * `month` - The numeric month for which the calendar is requested, in the
index 9738ea5f7195cef46bf6480fc5c515fd89438cbe..6b6f693b3ec838b0a52aa402198880a02e9ebfc9 100755 (executable)
@@ -15,7 +15,7 @@ GetOptions(
        "force" => \$force,
 ) || usage();
 my $setup=shift                || usage();
-my $pagespec=shift     || "*";
+my $pagespec=shift;
 my $startyear=shift    || 1900+(localtime(time))[5];
 my $endyear=shift      || $startyear;
 
@@ -27,6 +27,10 @@ IkiWiki::checkconfig();
 my $archivebase = 'archives';
 $archivebase = $config{archivebase} if defined $config{archivebase};
 
+if (! defined $pagespec) {
+       $pagespec=$config{archive_pagespec} || "*";
+}
+
 sub writearchive ($$;$) {
        my $template=template(shift);
        my $year=shift;