From a27f4a47ba0435233ed272e2541feab4e0868b32 Mon Sep 17 00:00:00 2001 From: joey Date: Tue, 23 Oct 2007 00:02:53 +0000 Subject: * Add a calendar plugin, contributed by Manoj Srivastava. * Reformat calendar plugin to ikiwiki conventions. * The calendar plugin made *every* page depend on every other page, which seemed a wee tiny little bit overkill. Fixed the dependency calculations (I hope.) * Removed manual ctime statting code, and just have the calendar plugin use %pagectime. --- doc/plugins/calendar.mdwn | 76 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 doc/plugins/calendar.mdwn (limited to 'doc/plugins/calendar.mdwn') diff --git a/doc/plugins/calendar.mdwn b/doc/plugins/calendar.mdwn new file mode 100644 index 000000000..99e2ab126 --- /dev/null +++ b/doc/plugins/calendar.mdwn @@ -0,0 +1,76 @@ +[[template id=plugin name=calendar author="[[ManojSrivastava]]"]] +[[tag type/chrome]] + +This plugin displays a calendar, similar to the typical calendars shown on +some blogs. + +# examples + + \[[calendar ]] + + \[[calendar type="month" pages="blog/* and !*/Discussion"]] + + \[[calendar type="year" year="2005" pages="blog/* and !*/Discussion"]] + +This plugin is inspired by the calendar plugin for Blosxom, but +derives no code from it. This plugin is essentially a fancy front end +to archives of previous pages, usually used for blogs. It can produce +a calendar for a given month, or a list of months for a given year. + +The tricky part of this is that while calendar defaults to showing the +current day and month, ikiwiki is a wiki compiler, which only rebuilds +pages if they have changed. So to keep the calendar up-to-date, wikis that +include it need to be periodically rebuilt, typically by cron at midnight. + +The month format calendar simply links to any page posted on each +day of the month. The year format calendar links to archive pages, with +names like `archives/2007` (for all of 2007) and `archives/2007/01` +(for January, 2007). For this to work, you'll need to create these archive +pages. They typically use [[inline]] to display or list pages created in +the given time frame. + +## usage + +* `type` - Used to specify the type of calendar wanted. Can be one of + "month" or "year". The default is a month view calendar. +* `pages` - Specifies the [[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 + for the whole wiki by setting `archivebase` in ikiwiki's setup file. +* `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 + range 1..12. Used only for the month view calendar, and defaults to the + current month. +* `week_start_day` - A number, in the range 0..6, which represents the day + of the week that the month calendar starts with. 0 is Sunday, 1 is Monday, + and so on. Defaults to 0, which is Sunday. +* `months_per_row` - In the annual calendar, number of months to place in + each row. Defaults to 3. + +## CSS + +The output is liberally sprinkled with classes, for fine grained CSS +customization. + +* `month-calendar` - The month calendar as a whole. +* `month-calendar-head` - The head of the month calendar (ie,"March"). +* `month-calendar-day-head` - A column head in the month calendar (ie, a + day-of-week abbreviation). +* `month-calendar-day-noday`, `month-calendar-day-link`, + `month-calendar-day-nolink`, `month-calendar-day-future`, + `month-calendar-day-this-day` - The day squares on the month calendar, + for days that are not in the month (before or after the month itself), that + don't have links, that do have links, that are in the future, or are that + are the current day, respectively. +* `Sunday`, `Monday`, `Tuesday`, ... - Each day square is also given a class + matching its (localised) day of week, this can be used to highlight + weekends. +* `year-calendar` - The year calendar as a whole. +* `year-calendar-head` - The head of the year calendar (ie, "2007"). +* `year-calendar-subhead` - For example, "Months". +* `year-calendar-month-link`, `year-calendar-month-nolink`, + `year-calendar-month-future`, `year-calendar-this-month` - The month + squares on the year calendar, for months with stories, + without, in the future, and currently selected, respectively. -- cgit v1.2.3