Raku package with Markup (HTML, Markdown) calendar functions for displaying monthly, yearly, and custom calendars.
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.
From Zef ecosystem :
zef install Markup::Calendar
From GitHub:
zef install https://github.com/antononcube/Raku-Markup-Calendar.git
use Markup::Calendar;
use Text::Calendar;
calendar(): html
<style>td { vertical-align: top;a}</style>Mo Tu We Th Fr Sa Su 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Mo Tu We Th Fr Sa Su 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
Mo Tu We Th Fr Sa Su 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
HTML yearly calendar with highlights
Here is an HTML calendar that weekend days are highlighted and with larger font:
calendar-year(
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'
): html
<style>td { vertical-align: top;a}</style>Mo Tu We Th Fr Sa Su 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Mo Tu We Th Fr Sa Su 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
Mo Tu We Th Fr Sa Su 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Mo Tu We Th Fr Sa Su 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
Mo Tu We Th Fr Sa Su 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Mo Tu We Th Fr Sa Su 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
Mo Tu We Th Fr Sa Su 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Mo Tu We Th Fr Sa Su 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Mo Tu We Th Fr Sa Su 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
Mo Tu We Th Fr Sa Su 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Mo Tu We Th Fr Sa Su 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
Mo Tu We Th Fr Sa Su 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
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' ))
[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 .