<aside> <img src="/icons/info-alternate_red.svg" alt="/icons/info-alternate_red.svg" width="40px" /> Configurer la police de la page (menu ... de la page) en Fixe (🇨🇵) ou Mono (🇬🇧) pour obtenir un affichage aligné correctement
</aside>
<aside> <img src="/icons/info-alternate_lightgray.svg" alt="/icons/info-alternate_lightgray.svg" width="40px" /> Basé sur Calendrier
</aside>
<aside> <img src="/icons/help-alternate_green.svg" alt="/icons/help-alternate_green.svg" width="40px" /> Le jour et la semaine courante sont en rose, les jours passés en gris, les dates d'événements sans particularité en bleu, les dates d'événements notées comme étant un jour remarcable sont en jaune. Les jours en bleu ou jaune comportent le lien vers la page d'origine. Une date peut être une date simple: JJ-MM-AAAA, ou une période: JJ-MM-AAAA → JJ-MM-AAAA.
</aside>
Essayer les deux types de vues (Table et Galerie):
Anniversaires et dates remarquables
lets(
/* Paramêtres de couleur */
aujourdhuiColor, ["pink","b"],
anniversaireColor, "blue_background",
remarquableColor, "yellow_background",
oldColor, "grey",
weekColor, "orange",
/* Variables générales */
mois, prop("Date").dateStart().month(),
semNow, now().formatDate("WW").toNumber(),
today, now().formatDate("YYYY-MM-DD").parseDate(),
premierJour, prop("Date").dateStart().dateSubtract(
prop("Date").dateStart().day() - 1,
"days"
),
/* Obtention des dates à faire figurer sur le calendrier */
anniversaires, prop("Anniversaires").filter(
current.prop("Date de naissance").dateStart() == current.prop("Date de naissance").dateEnd()
)
.sort(
current.prop("Date de naissance")
)
.map(
/* date unique */
lets(
nom, current.prop("Nom").replaceAll("\\s", "-"),
dr, current.prop("Date remarquable"),
id, current.id(),
dd, current.prop("Date de naissance").dateStart(),
df, current.prop("Date de naissance").dateEnd(),
[
dd.date(),
nom,
dr,
id
]
)
)
.concat(
/* date étendue */
prop("Anniversaires").filter(
current.prop("Date de naissance").dateStart() != current.prop("Date de naissance").dateEnd()
)
.sort(
current.prop("Date de naissance")
)
.map(
lets(
nom, current.prop("Nom").replaceAll("\\s", "-"),
dr, current.prop("Date remarquable"),
id, current.id(),
dd, if(
current.prop("Date de naissance").dateStart().month() != mois,
prop("Date").dateStart(),
current.prop("Date de naissance").dateStart()
),
df, if(
current.prop("Date de naissance").dateEnd().month() != mois,
prop("Date").dateEnd(),
current.prop("Date de naissance").dateEnd()
),
/* date étendue */
"x".repeat(
dateBetween(
df, dd,
"days"
)
)
.split("x")
.map(
[
dd.dateAdd(
index,
"days"
)
.date(),
nom,
dr,
id
]
)
)
)
.flat()
)
.sort(current.first()),
/* Préparation du calendrier */
entête, ["W".style(weekColor),"L","M","M","J","V","S","D"].map(current.style("b")),
/* Création des n° de semaine */
semaines, "x".repeat(
let(
w, prop("Date").dateEnd().formatDate("WW").toNumber(),
if(w == 1 and mois == 12, 53, w)
) -
let(
w, prop("Date").dateStart().formatDate("WW").toNumber(),
if(w <= 53 and w > 51 and mois == 1, 0, w)
) + 1
)
.split("")
.map(
prop("Date").dateStart().dateAdd(index * 7, "days").formatDate("WW").toNumber()
),
/* Création des semaines du mois */
weeks, semaines.map(
[ /* n° semaine */
(if(current < 10, "0", "") + current)
.style(
ifs(
current == semNow, aujourdhuiColor,
current < semNow, oldColor,
""
)
),
/* jours de la semaine */
lets(
start, premierJour.dateAdd(index * 7, "days"),
sem, [1,2,3,4,5,6,7],
sem.map(
lets(
sti, start.dateAdd(index, "days"),
notMonth, sti.month() != mois,
anniv, anniversaires.findIndex(
current.first() == sti.date()
),
j, if(
notMonth, " ",
sti.formatDate("DD").style(
ifs(
sti == today, aujourdhuiColor,
sti < today, oldColor,
""
)
)
),
if(
!notMonth and anniv != -1,
j.link(
"<https://notion.so/>" +
anniversaires.at(anniv).at(1) + "-" +
anniversaires.at(anniv).last()
)
.style(
if(
anniversaires.at(anniv).at(2),
remarquableColor,
anniversaireColor
)
),
j
)
)
)
).flat()
]
),
/* Affichage des résultats */
entête.join(" ") +
"\\n" +
weeks.map(
current.first() + " " +
current.last().join(" ")
)
.join("\\n")
)