Markup::Calendar

Raku package with Markup (HTML, Markdown) calendar functions for displaying monthly, yearly, and custom calendars.

Markup::Calendar

Raku package with Markup (HTML, Markdown) calendar functions for displaying monthly, yearly, and custom calendars.

Motivation

The package "Text::Calendar", [AAp1], provides the core functions for making the calendars in this package. The packages "Data::Translators", [AAp2], and "Pretty::Table", [ULp1], provide additional formatting functionalities.

I want to keep "Text::Calendar" lightweight, without any dependencies. Hence I made this separate package, "Markup::Calendar", that has more involved dependencies and use-cases.

An "involved use case" is calendar in which some of the days have tooltips and hyperlinks.

Installation

From Zef ecosystem:

zef install Markup::Calendar

From GitHub:

zef install https://github.com/antononcube/Raku-Markup-Calendar.git

Examples

Basic HTML calendar

use Markup::Calendar;
use Text::Calendar;

calendar-year(format=>'html')

HTML calendar with highlights

Here is an HTML calendar that weekend days are highlighted and with larger font

calendar-year(
    format => 'html',
    per-row => 4,
    highlight => (Date.new(2024,1,1)...Date.new(2024,12,31)).grep({ $_.day-of-week ā‰„ 6 }),
    highlight-style => 'color:orange; font-size:14pt'
)

Standalone calendar file

Here we make a standalone calendar file:

spurt('example.html', calendar-year(year => 2024, highlight => [3=>3, 5=>24, 9=>9], highlight-style=>'color:red', format=>'html'))
# True

TODO

  • TODO Features

    • DONE Full HTML calendar

    • TODO Partial HTML calendar (e.g. equivalent of cal -3)

    • TODO Full Markdown calendar

    • TODO Partial Markdown calendar

    • DONE Highlighted days

    • TODO Tooltips for days

    • TODO Hyperlinks for days

  • Unit tests

  • Documentation

    • DONE Basic README

    • TODO Diagrams

    • TODO Comparisons

References

[AAp1] Anton Antonov, Text::Calendar Raku package, (2024), GitHub/antononcube.

[AAp2] Anton Antonov, Data::Translators Raku package, (2023), GitHub/antononcube.

[LUp1] Luis F. Uceta, Pretty::Table Raku package, (2020), GitLab/uzluisf.

Markup::Calendar v0.1.0

Raku package with Markup (HTML, Markdown) calendar functions for displaying monthly, yearly, and custom calendars.

Authors

  • Anton Antonov

License

Artistic-2.0

Dependencies

Text::Calendar:ver<0.1.3>Data::Translators:ver<0.1.4>

Test Dependencies

Provides

  • Markup::Calendar

The Camelia image is copyright 2009 by Larry Wall. "Raku" is trademark of the Yet Another Society. All rights reserved.