From 90c2a3e6fbb6cc9ea55fc7222ec748918a67d7ee Mon Sep 17 00:00:00 2001 From: hjonin Date: Tue, 29 Aug 2023 15:29:43 +0200 Subject: [PATCH] calendar fixes and enhancements * fix when event with empty duration * fix when duplicate event title * add "add to calendar" button component --- _data/i18n/en/index.js | 1 + _data/i18n/fr/index.js | 1 + _includes/components/add_to_calendar.njk | 3 +++ content/calendar/calendar.njk | 2 +- content/calendar/event.njk | 4 ++-- content/fr/blog/posts/evenement.md | 6 ++++-- "content/fr/blog/posts/fonctionnalit\303\251s.md" | 2 ++ 7 files changed, 14 insertions(+), 5 deletions(-) create mode 100644 _includes/components/add_to_calendar.njk diff --git a/_data/i18n/en/index.js b/_data/i18n/en/index.js index f64e861..e29739b 100644 --- a/_data/i18n/en/index.js +++ b/_data/i18n/en/index.js @@ -1,6 +1,7 @@ module.exports = { about: "About", accessibility: "Accessibility", + add_to_calendar: "Add to calendar", back_to_top: "Back to Top", blog: "Blog", close: "Close", diff --git a/_data/i18n/fr/index.js b/_data/i18n/fr/index.js index 8a5c829..98fc350 100644 --- a/_data/i18n/fr/index.js +++ b/_data/i18n/fr/index.js @@ -1,6 +1,7 @@ module.exports = { about: "À propos", accessibility: "Accessibilité", + add_to_calendar: "Ajouter au calendrier", back_to_top: "Haut de page", blog: "Blog", close: "Fermer", diff --git a/_includes/components/add_to_calendar.njk b/_includes/components/add_to_calendar.njk new file mode 100644 index 0000000..a568d4f --- /dev/null +++ b/_includes/components/add_to_calendar.njk @@ -0,0 +1,3 @@ + + {{ "add_to_calendar" | i18n }} + \ No newline at end of file diff --git a/content/calendar/calendar.njk b/content/calendar/calendar.njk index 9ae2b9b..98f58fa 100644 --- a/content/calendar/calendar.njk +++ b/content/calendar/calendar.njk @@ -13,7 +13,7 @@ permalink: /calendar.ics "start": [ {{ year }}, {{ month }}, {{ day }}, {{ hour }}, {{ minute }} ], - "duration": { "minutes": {{ event.data.duration }} }, + "duration": { "minutes": {{ event.data.duration or 0 }} }, "title": "{{ event.data.title }}", "description": "{{ event.data.description }}", "location": "{{ event.data.location }}", diff --git a/content/calendar/event.njk b/content/calendar/event.njk index 2e81d7a..ce3d8a3 100644 --- a/content/calendar/event.njk +++ b/content/calendar/event.njk @@ -2,7 +2,7 @@ pagination: data: collections.event size: 1 -permalink: "calendar/{{ pagination.items[0].data.title | slugify }}.ics" +permalink: "calendar/{{ pagination.items[0].data.title | slugify }}-{{ pagination.items[0].data.date | htmlDateString }}.ics" --- {% set event %} {% set currentEvent = pagination.items[0] %} @@ -15,7 +15,7 @@ permalink: "calendar/{{ pagination.items[0].data.title | slugify }}.ics" "start": [ {{ year }}, {{ month }}, {{ day }}, {{ hour }}, {{ minute }} ], - "duration": { "minutes": {{ currentEvent.data.duration }} }, + "duration": { "minutes": {{ currentEvent.data.duration or 0 }} }, "title": "{{ currentEvent.data.title }}", "description": "{{ currentEvent.data.description }}", "location": "{{ currentEvent.data.location }}", diff --git a/content/fr/blog/posts/evenement.md b/content/fr/blog/posts/evenement.md index 02499ff..78cafaf 100644 --- a/content/fr/blog/posts/evenement.md +++ b/content/fr/blog/posts/evenement.md @@ -7,8 +7,10 @@ location: online tags: - event --- -Voici un exemple d'événement qui sera ajouté au calendrier global accessible à l'adresse [/calendar.ics](/calendar.ics), et dont on peut télécharger l'événement de calendrier correspondant à l'adresse [/calendar/evenement-exemple.ics](/calendar/evenement-exemple.ics). +Voici un exemple d'événement qui sera ajouté au calendrier global accessible à l'adresse [/calendar.ics](/calendar.ics), et dont on peut télécharger l'événement de calendrier correspondant à l'adresse [/calendar/evenement-exemple-2023-09-10.ics](/calendar/evenement-exemple-2023-09-10.ics). -[Ajouter au calendrier](/calendar/evenement-exemple.ics){.fr-btn} +

+ {% include "components/add_to_calendar.njk" %} +

[Voir la section sur la fonctionnalité de calendrier](/fr/blog/fonctionnalités/#calendrier){.fr-link .fr-fi-arrow-right-line .fr-link--icon-right} diff --git "a/content/fr/blog/posts/fonctionnalit\303\251s.md" "b/content/fr/blog/posts/fonctionnalit\303\251s.md" index 799f510..7a480c9 100644 --- "a/content/fr/blog/posts/fonctionnalit\303\251s.md" +++ "b/content/fr/blog/posts/fonctionnalit\303\251s.md" @@ -88,4 +88,6 @@ La présence des fichiers de template dans [`content/calendar`](https://github.c Les articles libellés avec `event` y sont automatiquement ajoutés, et leurs fichiers d'événement de calendrier correspondant `.ics` sont automatiquement créés. +Il existe le composant bouton [`add_to_calendar`](https://github.com/codegouvfr/eleventy-dsfr/tree/main/_includes/components/add_to_calendar.njk) qui contient le lien vers le téléchargement du fichier d'événement. + [Voir un exemple d'événement](/fr/blog/evenement/){.fr-link .fr-fi-arrow-right-line .fr-link--icon-right} \ No newline at end of file