diff options
Diffstat (limited to 'doc')
-rw-r--r-- | doc/plugins/calendar.mdwn | 76 | ||||
-rw-r--r-- | doc/todo/calendar_--_archive_browsing_via_a_calendar_frontend.mdwn | 4 | ||||
-rw-r--r-- | doc/todo/plugin_data_storage.mdwn | 8 |
3 files changed, 87 insertions, 1 deletions
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. diff --git a/doc/todo/calendar_--_archive_browsing_via_a_calendar_frontend.mdwn b/doc/todo/calendar_--_archive_browsing_via_a_calendar_frontend.mdwn index 6fd9fb1cf..caff54780 100644 --- a/doc/todo/calendar_--_archive_browsing_via_a_calendar_frontend.mdwn +++ b/doc/todo/calendar_--_archive_browsing_via_a_calendar_frontend.mdwn @@ -119,4 +119,6 @@ And that's all I've heard so far. Hoping I didn't miss another patch? >> I think I have solved the ""Need to look at all pages that match the spec"" issue; but the nightly rebuild to handle the current day changing still remain. I use cron. It is now, however, richly documented :) ---ManojSrivastava
\ No newline at end of file +--ManojSrivastava + +> Finally reviewed and applied this. [[done]]! --[[Joey]] diff --git a/doc/todo/plugin_data_storage.mdwn b/doc/todo/plugin_data_storage.mdwn index 44888327e..7078a6ed3 100644 --- a/doc/todo/plugin_data_storage.mdwn +++ b/doc/todo/plugin_data_storage.mdwn @@ -58,3 +58,11 @@ If I do this, I might as well also: * Change the link= link= stuff to just links=link+link etc. * Change the delimiter from space to comma; commas are rare in index files, so less ugly escaped delimiters to deal with. + +--- + +The [[plugins/calendar]] plugin could use plugin data storage to record +which pages have a calendar for the current time. Then ensure they are +rebuilt at least once a day. Currently, it needs a cron job to rebuild +the *whole* wiki every day; with this enhancement, the cron job would only +rebuild the few pages that really need it. |