Markup::Calendar
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.