ikiwiki/ plugins/ contrib/ monthcalendar (third party plugin)

Plugin: monthcalendar
Author: Louis
Included in ikiwiki: no
Enabled by default: no
Included in goodstuff: no
Currently enabled: yes

# Monthcalendar

This plugin displays a calendar, containing in each of its day the list of links of pages published on this day. It can be used, for example, to display archives of blog posts, or to announce events.

The difference between this plugin and the calendar plugin is that the calendar displayed by this plugin is a big one, containing the full title of every page indexed in it.

## Usage

### Directive

    [[!monthcalendar  type="month" year="2012" month="06" pages="events/*"]]

### Automation

By using the following line in template `calendarmonth.tmpl`, you can have `ikiwiki-calendar` using this plugin to display monthly archives.

    [[!monthcalendar  type="month" year="<TMPL_VAR YEAR>" month="<TMPL_VAR MONTH>" pages="<TMPL_VAR PAGESPEC>"]]

## CSS

Here is an example of CSS properly rendering the calendar produced by this plugin. CSS

    /* Calendar */
    .monthcalendar
    {
        color:#aaa;
        /* font-size:18pt; */
        margin-top:1em;
        margin-bottom:1em;
            width: 100%;
    }

    .monthcalendar table,
    .monthcalendar td,
    .monthcalendar th
    {
        border: 1px solid #ccc;
    }

    #content .monthcalendar td
    {
        padding: 0;
        position: relative;
    }

    .monthcalendar td div
    {
        min-height: 10ex;
        height: 100%;
        position: relative;
    }

    .monthcalendar th
    {
        vertical-align: middle;
    }

    .monthcalendar td ul
    {
        padding-left: 0.5em;
        list-style: dot;
        list-style-position: inside;
        text-align: left;
        font-size: 8pt;
        position: relative;
        z-index: 10;
        font-weight: bold;
    }

    table.monthcalendar
    {
        table-layout: fixed;
    }

    .monthcalendar .selflink
    {
        color:#444444;
    }

    .monthcalendar-day-head {
        text-transform:capitalize;
    }

    .monthcalendar-head {
        text-transform:capitalize;
    }

    .monthcalendar-daynumber
    {
        float: left;
        position: absolute;
        display: block;
        font-size: 7ex;
        color: #ccc;
        line-height: 100%;
        z-index: 5;
        padding-top: 0.3ex;
        text-align: right;
        width: 1.8em;
    }

    /* List of pages */

    .monthcalendar-pagelist {
      display: flex;
      flex-direction: column;
    }

    .monthcalendar-item {
      opacity: 0;
      height: 0;
    }

    .monthcalendar-item:target {
      opacity: 1;
      height: initial;
    }

## Code

Code and documentation can be found here : https://spalax.frama.io/gresille-ikiwiki/monthcalendar.