diff --git a/.DS_Store b/.DS_Store
index 137770bb2..2b0444030 100644
Binary files a/.DS_Store and b/.DS_Store differ
diff --git a/.editorconfig b/.editorconfig
index d41540467..844771fc3 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -1,7 +1,7 @@
root = true
[*]
-indent_style = space
+indent_style = tab
indent_size = 2
end_of_line = lf
insert_final_newline = true
diff --git a/.eleventy.js b/.eleventy.js
deleted file mode 100644
index e65a1734d..000000000
--- a/.eleventy.js
+++ /dev/null
@@ -1,169 +0,0 @@
-const { DateTime } = require("luxon");
-const fs = require("fs");
-const pluginRss = require("@11ty/eleventy-plugin-rss");
-const pluginSyntaxHighlight = require("@11ty/eleventy-plugin-syntaxhighlight");
-const pluginNavigation = require("@11ty/eleventy-navigation");
-const markdownIt = require("markdown-it");
-const markdown = require('markdown-it')({ html: true })
-
-module.exports = function(eleventyConfig) {
- eleventyConfig.addPlugin(pluginRss);
- eleventyConfig.addPlugin(pluginSyntaxHighlight);
- eleventyConfig.addPlugin(pluginNavigation);
-
- eleventyConfig.setDataDeepMerge(true);
-
- eleventyConfig.addLayoutAlias("post", "layouts/post.njk");
-
- eleventyConfig.addFilter('markdown', value => {
- return markdown.render(value);
- })
-
- eleventyConfig.addFilter("readableDate", dateObj => {
- return DateTime.fromJSDate(dateObj, {zone: 'Europe/Paris'}).setLocale("fr").toFormat("dd/LL/yyyy");
- });
-
- // https://html.spec.whatwg.org/multipage/common-microsyntaxes.html#valid-date-string
- eleventyConfig.addFilter('htmlDateString', (dateObj) => {
- return DateTime.fromJSDate(dateObj, {zone: 'Europe/Paris'}).setLocale("fr").toFormat('yyyy-LL-dd');
- });
-
- // Get the first `n` elements of a collection.
- eleventyConfig.addFilter("head", (array, n) => {
- if(!Array.isArray(array) || array.length === 0) {
- return [];
- }
- if( n < 0 ) {
- return array.slice(n);
- }
-
- return array.slice(0, n);
- });
-
- function findNavigationEntriesExtended(nodes = [], key = '') {
- let pages = [];
- for(let entry of nodes) {
- if(entry.data && entry.data.eleventyNavigation) {
- let nav = entry.data.eleventyNavigation;
- if(!key && !nav.parent || nav.parent === key) {
- pages.push(Object.assign({}, nav, {
- url: nav.url || entry.data.page.url,
- data: entry.data,
- pluginType: 'eleventy-navigation'
- }, key ? { parentKey: key } : {}));
- }
- }
- }
-
- return pages.sort(function(a, b) {
- return (a.order || 0) - (b.order || 0);
- }).map(function(entry) {
- if(!entry.title) {
- entry.title = entry.key;
- }
- if(entry.key) {
- entry.children = findNavigationEntriesExtended(nodes, entry.key);
- }
- return entry;
- });
- }
-
- eleventyConfig.addNunjucksFilter('eleventyNavigationExtended', findNavigationEntriesExtended);
-
- function findNavigationEntryByKeys(nodes = [], keys = []) {
- let pages = [];
-
- for (let key of keys) {
- for (let entry of nodes) {
- if (entry.data && entry.data.eleventyNavigation && entry.data.eleventyNavigation.key) {
- let entryKey = entry.data.eleventyNavigation.key;
-
- if (entryKey === key) {
- pages.push({
- title: entry.data.title,
- url: entry.url || entry.data.page.url,
- data: entry.data,
- pluginType: 'eleventy-navigation'
- });
-
- break;
- }
- }
- }
- }
-
- return pages;
- }
-
- eleventyConfig.addNunjucksFilter('eleventyNavigationByKeys', findNavigationEntryByKeys);
-
- eleventyConfig.addPassthroughCopy({
- 'api': 'api',
- 'img': 'img',
- 'css': 'css',
- 'js': 'js',
- 'docs': 'docs',
- 'fonts': 'fonts',
- 'favicons': 'favicons',
- 'CNAME': 'CNAME',
- '.well-known/pki-validation/01a55d39-ad7f-4bd3-badc-bbf5f725da7b.txt': '.well-known/pki-validation/01a55d39-ad7f-4bd3-badc-bbf5f725da7b.txt'
- });
-
- /* Markdown Overrides */
- let markdownLibrary = markdownIt({
- html: true,
- breaks: true,
- linkify: true,
- typographer: true,
- quotes: ['«\xA0', '\xA0»', '‹\xA0', '\xA0›']
- });
- eleventyConfig.setLibrary("md", markdownLibrary);
-
- // Browsersync Overrides
- eleventyConfig.setBrowserSyncConfig({
- callbacks: {
- ready: function(err, browserSync) {
- const content_404 = fs.readFileSync('_site/404.html');
-
- browserSync.addMiddleware("*", (req, res) => {
- // Provides the 404 content without redirect.
- res.write(content_404);
- res.end();
- });
- },
- },
- ui: false,
- ghostMode: false
- });
-
- return {
- templateFormats: [
- "md",
- "njk",
- "html",
- "liquid"
- ],
-
- // If your site lives in a different subdirectory, change this.
- // Leading or trailing slashes are all normalized away, so don’t worry about those.
-
- // If you don’t have a subdirectory, use "" or "/" (they do the same thing)
- // This is only used for link URLs (it does not affect your file structure)
- // Best paired with the `url` filter: https://www.11ty.dev/docs/filters/url/
-
- // You can also pass this in on the command line using `--pathprefix`
- // pathPrefix: "/",
-
- markdownTemplateEngine: "liquid",
- htmlTemplateEngine: "njk",
- dataTemplateEngine: "njk",
-
- // These are all optional, defaults are shown:
- dir: {
- input: ".",
- includes: "_includes",
- data: "_data",
- output: "_site"
- }
- };
-};
diff --git a/.eleventyignore b/.eleventyignore
deleted file mode 100644
index b43bf86b5..000000000
--- a/.eleventyignore
+++ /dev/null
@@ -1 +0,0 @@
-README.md
diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml
deleted file mode 100644
index 9c565678c..000000000
--- a/.github/FUNDING.yml
+++ /dev/null
@@ -1,2 +0,0 @@
-# These are supported funding model platforms
-open_collective: 11ty
diff --git a/.github/workflows/deploy-11ty.yml b/.github/workflows/deploy-11ty.yml
new file mode 100644
index 000000000..d3733f1dd
--- /dev/null
+++ b/.github/workflows/deploy-11ty.yml
@@ -0,0 +1,57 @@
+# Sample workflow for building and deploying an Eleventy site to GitHub Pages
+name: Deploy Eleventy with GitHub Pages dependencies preinstalled
+
+on:
+ # Runs on pushes targeting the default branch
+ push:
+ branches:
+ - main
+
+ # Allows you to run this workflow manually from the Actions tab
+ workflow_dispatch:
+
+# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
+permissions:
+ contents: read
+ pages: write
+ id-token: write
+
+# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
+# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
+concurrency:
+ group: "pages"
+ cancel-in-progress: false
+
+jobs:
+ # Build job
+ build:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+ with:
+ fetch-depth: 0
+ - name: Setup Pages
+ uses: actions/configure-pages@v4
+ - name: Build with Eleventy
+ run: |
+ npm install
+ npm run build-ghpages
+ - name: Index site for pagefind
+ run: npm run postbuild
+ - name: fr fallback homepage
+ run: "cp _site/fr/index.html _site/index.html"
+ - name: Upload artifact
+ uses: actions/upload-pages-artifact@v1
+
+ # Deployment job
+ deploy:
+ environment:
+ name: github-pages
+ url: ${{ steps.deployment.outputs.page_url }}
+ runs-on: ubuntu-latest
+ needs: build
+ steps:
+ - name: Deploy to GitHub Pages
+ id: deployment
+ uses: actions/deploy-pages@v2
diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml
deleted file mode 100644
index 1bdfae58a..000000000
--- a/.github/workflows/deploy.yml
+++ /dev/null
@@ -1,22 +0,0 @@
-name: Deploy
-
-on:
- push:
- branches:
- - main
-
-jobs:
- deploy:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v4
- - name: Build with Eleventy
- run: |
- npm install
- npm run build-ghpages
- - name: Deploy
- uses: peaceiris/actions-gh-pages@v4
- with:
- publish_dir: _site
- publish_branch: prod
- github_token: ${{ secrets.GITHUB_TOKEN }}
diff --git a/.github/workflows/ecowatt-api-mirroring.yml b/.github/workflows/ecowatt-api-mirroring.yml
deleted file mode 100644
index dac0633ea..000000000
--- a/.github/workflows/ecowatt-api-mirroring.yml
+++ /dev/null
@@ -1,24 +0,0 @@
-name: EcoWatt Api mirroring
-
-on:
- workflow_dispatch:
- schedule:
- - cron: '0 * * * *'
-
-jobs:
- build:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v3
- with:
- ref: main
- token: ${{ secrets.MYPAT }}
- - name: Download last RTE EcoWatt feed
- run: |
- RTE_OAUTH_RESULT=$(curl -sLS "https://digital.iservices.rte-france.com/token/oauth/" -H "Authorization: Basic ${{ secrets.RTE_CREDENTIAL }}")
- RTE_ACCESS_TOKEN=$(echo $RTE_OAUTH_RESULT | jq -j '.access_token')
- curl "https://digital.iservices.rte-france.com/open_api/ecowatt/v4/signals" -H "Authorization: Bearer $RTE_ACCESS_TOKEN" -o api/ecowatt/ecowatt.json
- - name: Commit and push changes
- run: |-
- git config user.name "EcowattApiMirroring"
- git add api/ecowatt/ecowatt.json && git diff --staged --quiet || git commit -m "Mise à jour des données EcoWatt" && git push
diff --git a/.gitignore b/.gitignore
index 70a6c12fc..e87ee29c0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,12 +1,2 @@
_site/
node_modules/
-package-lock.json
-a-propos/.DS_Store
-_includes/layouts/videoreferents.njk
-publications/videos-referents-2024/episode-15-deployer-strategie.md
-publications/videos-referents-2024/index.njk
-publications/videos-referents-2024/intro.md
-_includes/layouts/videoreferents.njk
-publications/videos-referents-2024/episode-15-deployer-strategie.md
-_includes/layouts/videoreferents.njk
-publications/.DS_Store
diff --git a/.nvmrc b/.nvmrc
deleted file mode 100644
index 48082f72f..000000000
--- a/.nvmrc
+++ /dev/null
@@ -1 +0,0 @@
-12
diff --git a/.well-known/pki-validation/01a55d39-ad7f-4bd3-badc-bbf5f725da7b.txt b/.well-known/pki-validation/01a55d39-ad7f-4bd3-badc-bbf5f725da7b.txt
deleted file mode 100644
index 4b1df34e7..000000000
--- a/.well-known/pki-validation/01a55d39-ad7f-4bd3-badc-bbf5f725da7b.txt
+++ /dev/null
@@ -1 +0,0 @@
-9erbegxc9nkamci56wwg
diff --git a/404.md b/404.md
deleted file mode 100644
index 93399553d..000000000
--- a/404.md
+++ /dev/null
@@ -1,7 +0,0 @@
----
-layout: layouts/home.njk
-permalink: 404.html
-eleventyExcludeFromCollections: true
----
-
-Oops, page non trouvée
diff --git a/CNAME b/CNAME
deleted file mode 100644
index 80bec30cc..000000000
--- a/CNAME
+++ /dev/null
@@ -1 +0,0 @@
-ecoresponsable.numerique.gouv.fr
\ No newline at end of file
diff --git a/LICENSE.md b/LICENSE.md
index a2405dbf5..a61c14138 100644
--- a/LICENSE.md
+++ b/LICENSE.md
@@ -1,6 +1,6 @@
MIT License
-Copyright (c) 2019-2021 DINSIC/Etalab
+Copyright (c) 2021-2023 DINUM/Etalab
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/LICENSES/LICENSE.Etalab-2.0.md b/LICENSES/LICENSE.Etalab-2.0.md
new file mode 100644
index 000000000..e067e18fb
--- /dev/null
+++ b/LICENSES/LICENSE.Etalab-2.0.md
@@ -0,0 +1,79 @@
+# LICENCE OUVERTE 2.0/OPEN LICENCE 2.0
+
+## Réutilisation de l’« Information » sous cette licence
+
+Le « Concédant » concède au « Réutilisateur » un droit non exclusif et gratuit de libre « Réutilisation » de l’« Information » objet de la présente licence, à des fins commerciales ou non, dans le monde entier et pour une durée illimitée, dans les conditions exprimées ci-dessous.
+
+**Le « Réutilisateur » est libre de réutiliser l’« Information » :**
+
+- de la communiquer, la reproduire, la copier ;
+- de l’adapter, la modifier, l’extraire et la transformer, notamment pour créer des « Informations dérivées » ;
+- de la diffuser, la redistribuer, la publier et la transmettre, de l’exploiter à titre commercial, par exemple en la combinant avec d’autres informations, ou en l’incluant dans votre propre produit ou application.
+
+**Sous réserve de :**
+
+- mentionner la paternité de l’«Information» : sa source (a minima le nom du « Concédant ») et la date de la dernière mise à jour de l’« Information » réutilisée.
+
+Le « Réutilisateur » peut notamment s’ acquitter de cette condition en indiquant l’adresse (URL) renvoyant vers « l’Information » et assurant une mention effective de sa paternité.
+
+**Par exemple :**
+
+Dans le cas d’une réutilisation de la base SIRENE de l’INSEE, mentionner l’URL du « Concédant » : www.insee.fr + la date de dernière mise à jour de l’Information réutilisée.
+
+Cette mention de paternité ne doit ni conférer un caractère officiel à la « Réutilisation » de l’« Information », ni suggérer une quelconque reconnaissance ou caution par le « Concédant », ou par toute autre entité publique, du « Réutilisateur » ou de sa « Réutilisation ».
+
+## Données à caractère personnel
+
+L’« Information » mise à disposition peut contenir des « Données à caractère personnel » pouvant faire l’objet d’une « Réutilisation ». Alors, le « Concédant » informe le « Réutilisateur » (par tous moyens) de leur présence, l’ « Information » peut être librement réutilisée, sans faire obstacle aux libertés accordées par la présente licence, à condition de respecter le cadre légal relatif à la protection des données à caractère personnel.
+
+## Droits de propriété intellectuelle
+
+Il est garanti au « Réutilisateur » que l’ « Information » ne contient pas de « Droits de propriété intellectuelle » appartenant à des tiers qui pourraient faire obstacle aux libertés qui lui sont accordées par la présente licence.
+
+Les éventuels « Droits de propriété intellectuelle » détenus par le « Concédant » sur l’ « Information » ne font pas obstacle aux libertés qui sont accordées par la présente licence. Lorsque le « Concédant » détient des « Droits de propriété intellectuelle » » sur l’ « Information », il les cède au « Réutilisateur » de façon non exclusive, à titre gracieux, pour le monde entier, pour toute la durée des « Droits de propriété intellectuelle », et le « Réutilisateur » peut en faire tout usage conformément aux libertés et aux conditions définies par la présente licence.
+
+## Responsabilité
+
+L’ «Information» est mise à disposition telle que produite ou reçue, sans autre garantie expresse ou tacite qui n’est pas prévue par la présente licence. L’absence de défauts ou d’erreurs éventuellement contenues dans l’ «Information», comme la fourniture continue de l’ « Information » n’est pas garantie par le «Concédant». Il ne peut être tenu pour responsable de toute perte, préjudice ou dommage de quelque sorte causé à des tiers du fait de la « Réutilisation ».
+
+Le « Réutilisateur » est seul responsable de la « Réutilisation » de l’« Information ».
+
+La « Réutilisation » ne doit pas induire en erreur des tiers quant au contenu de l’« Information », sa source et sa date de mise à jour.
+
+## Droit applicable
+
+La présente licence est régie par le droit français.
+
+### Compatibilité de la présente licence
+
+Elle a été conçue pour être compatible avec toute licence libre qui exige _a minima_ la mention de paternité. Elle est notamment compatible avec la version antérieure de la présente licence ainsi qu’avec les licences « Open Government Licence » (OGL) du Royaume-Uni, « Creative Commons Attribution » (CC-BY) de Creative Commons et « Open Data Commons Attribution » (ODC-BY) de l’Open Knowledge Foundation.
+
+## Définitions
+
+Sont considérés, au sens de la présente licence comme :
+
+- Le « **Concédant** » : toute personne concédant un droit de « Réutilisation » sur l’« Information » dans les libertés et les conditions prévues par la présente licence.
+- L’« **Information** » :
+ - toute information publique figurant dans des documents communiqués ou publiés par une administration mentionnée au premier alinéa de l’article L.300-2 du CRPA ;
+ - toute information mise à disposition par toute personne selon les termes et conditions de la présente licence.
+- La « **Réutilisation** » : l’utilisation de l’« Information » à d’autres fins que celles pour lesquelles elle a été produite ou reçue.
+- Le « **Réutilisateur** » : toute personne qui réutilise les « Informations » conformément aux conditions de la présente licence.
+- Des « **Données à caractère personnel** » : toute information se rapportant à une personne physique identifiée ou identifiable, pouvant être identifiée directement ou indirectement. Leur « Réutilisation » est subordonnée au respect du cadre juridique en vigueur.
+- Une « **Information dérivée** » : toute nouvelle donnée ou information créées directement à partir de l’« Information » ou à partir d’une combinaison de l’ « Information » et d’autres données ou informations non soumises à cette licence.
+- Les « **Droits de propriété intellectuelle** » : tous droits identifiés comme tels par le Code de la propriété intellectuelle (droit d’auteur, droits voisins au droit d’auteur, droit sui generis des producteurs de bases de données).
+
+## À propos de cette licence
+
+La présente licence a vocation à être utilisée par les administrations pour la réutilisation de leurs informations publiques. Elle peut également être utilisée par toute personne souhaitant mettre à disposition de l’« Information » dans les conditions définies par la présente licence
+
+La France est dotée d’un cadre juridique global visant à une diffusion spontanée par les administrations de leurs informations publiques afin d’en permettre la plus large réutilisation.
+
+Le droit de la « Réutilisation » de l’« Information » des administrations est régi par le code des relations entre le public et l’administration (CRPA) et, le cas échéant, le code du patrimoine (livre II relatif aux archives).
+
+Cette licence facilite la réutilisation libre et gratuite des informations publiques et figure parmi les licences qui peuvent être utilisées par l’administration en vertu du décret pris en application de l’article L.323-2 du CRPA.
+
+Etalab est la mission chargée, sous l’autorité du Premier ministre, d’ouvrir le plus grand nombre de données publiques des administrations de l’État et de ses établissements publics. Elle a réalisé la Licence Ouverte pour faciliter la réutilisation libre et gratuite de ces informations publiques, telles que définies par l’article L321-1 du CRPA.
+
+Cette licence est une version 2.0 de la Licence Ouverte.
+
+Etalab se réserve la faculté de proposer de nouvelles versions de la Licence Ouverte. Cependant, les « Réutilisateurs » pourront continuer à réutiliser les informations disponibles sous cette licence s’ils le souhaitent.
diff --git a/LICENSES/LICENSE.MIT.md b/LICENSES/LICENSE.MIT.md
new file mode 100644
index 000000000..a61c14138
--- /dev/null
+++ b/LICENSES/LICENSE.MIT.md
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2021-2023 DINUM/Etalab
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/README.md b/README.md
index f32981410..9c7769bb7 100644
--- a/README.md
+++ b/README.md
@@ -1,67 +1,135 @@
-# MiNumEco - Mission interministérielle numérique écoresponsable
+[![img](https://img.shields.io/badge/code.gouv.fr-publi%C3%A9-orange.svg)](https://code.gouv.fr/documentation/#/publier)
+![build](https://img.shields.io/github/actions/workflow/status/codegouvfr/eleventy-dsfr/11ty-gh-pages.yml?label=deployed%20to%20gh-pages)
+
+# eleventy-dsfr
+
+Un dépôt pour démarrer un site statique au [DSFR](https://www.systeme-de-design.gouv.fr/) avec le
+générateur [Eleventy](https://www.11ty.dev/), déployé pour démonstration sur [GitHub Pages](https://codegouvfr.github.io/eleventy-dsfr/fr/).
+Pour d'autres exemples de réutilisation, cf. [Démonstration et réutilisations](#démonstration-et-réutilisations).
+
+![Screenshot of the website front page.](eleventy-dsfr.png)
+
+## Fonctionnalités
+
+- **Style** :
+ - DSFR :
+ - Installation et mise à jour automatique via `npm`.
+ - [Voir les composants déjà implémentés](_includes/components)
+ - [Voir les mises en pages déjà implémentées](_includes/layouts)
+- **a11y et responsivity** : Respecte les recommandations du DSFR.
+- **i18n** : Prise en charge de l'internationalisation des textes et contenus via plusieurs filtres et le [système d'i18n d'Eleventy](https://www.11ty.dev/docs/i18n/).
+- **Navigation** : Utilise le [système de navigation d'Eleventy](https://www.11ty.dev/docs/plugins/navigation/) et gère la navigation de second niveau.
+- **Syntaxe markdown** : Améliorée via l'ajout de [conteneurs personnalisés](./markdown-custom-containers.js).
+- **Images** : Utilise l'[utilitaire d'image d'Eleventy](https://www.11ty.dev/docs/plugins/image/) pour traiter les images (par défaut pour certains composants, par exemple le composant [`card.njk`](_includes/components/card.njk)).
+- **Recherche** : Utilise [pagefind](https://pagefind.app/) pour la recherche.
+- **Pagination** : Utilise le [système de pagination d'Eleventy](https://www.11ty.dev/docs/pagination/) et gère la pagination de second niveau.
+- **Flux RSS** : Utilise le [plugin RSS d'Eleventy](https://www.11ty.dev/docs/plugins/rss/).
+- **Calendrier** : Utilise la bibliothèque [ics](https://www.npmjs.com/package/ics) pour générer un calendrier [`calendar.ics`](https://codegouvfr.github.io/eleventy-dsfr/calendar.ics) à la racine du site, ainsi que les événements `.ics` associés, à partir d'événements.
+- **Mesure d'audience** : Intègre la solution [matomo](public/js/matomo.js).
+- **Pages déjà générées** :
+ - Pages d'accueil, À propos, section Blog (en français et en anglais).
+ - Flux RSS pour Atom et JSON
+ - Plan du site et `sitemap.xml`
+ - Page non trouvée (404)
+ - Les pages obligatoires liées aux obligations légales : “accessibilité : non/partiellement/totalement conforme”, mentions légales, données personnelles et gestion des cookies.
+
+## Prise en main
+### Installation
+
+**Cloner le dépôt** :
+
+```bash
+git clone https://github.com/codegouvfr/eleventy-dsfr.git my-site-name
+```
-Code du site web https://ecoresponsable.numerique.gouv.fr/
+**Naviguer dans le dossier** :
-![MiNumEco - Mission interministérielle numérique écoresponsable](https://raw.githubusercontent.com/DISIC/MiNumEco/main/img/logo.png)
+```bash
+cd my-site-name
+```
-## Installation
+**Installer les dépendances** :
-```
+```bash
npm install
```
-## Run
+**Exécuter Eleventy** :
-```
-npx eleventy
-```
+Construire un livrable, indexé avec pagefind pour la recherche :
-Or build and host locally for local development
-```
-npx eleventy --serve
+```bash
+npm run build
```
-Or build automatically when a template changes:
-```
-npx eleventy --watch
-```
+L'exécuter sur le serveur de développement local :
-Or in debug mode:
-```
-DEBUG=* npx eleventy
+```bash
+npm start
```
-## Déploiement
+Ou exécuter un [mode de débogage](https://www.11ty.dev/docs/debugging/).
-Déploiement des fichiers statiques de la branche `prod` automatiquement avec les "actions Github" dès commit sur la branche `main`. [Voir le workflow de déploiement](https://github.com/DISIC/greentech/blob/main/.github/workflows/deploy.yml)
+### Réutilisation
-## Gestion des contenus
+- Modifier les fichiers [`_data/metadata.js`](_data/metadata.js) et [`_data/data.js`](_data/data.js) pour renseigner les informations du site.
+- Modifier le fichier [`package.json`](package.json) pour modifier les informations du dépôt.
+- Compléter les pages obligatoires : [`content/fr/accessibility`](content/fr/accessibility/index.md), [`content/fr/personal-data`](content/fr/personal-data/index.md), [`content/fr/legal`](content/fr/legal/index.md).
-Il n'y a pas d'outil dédié pour la gestion du contenu. La mise à jour se fait via Github ou plus confortablement, en local en clonant le dépôt et en installant le site sur son poste.
+### Développement
+
+- Modifier le fichier [`eleventy.config.js`](eleventy.config.js) pour configurer les paramètres d'Eleventy différemment.
+- Ajouter des composants du DSFR dans le dossier [`_includes/components`](_includes/components) et des [mises en page](https://www.11ty.dev/docs/layouts/) dans le
+ dossier [`_includes/layouts`](_includes/layouts).
+ - Ajouter de nouveaux conteneurs markdown dans le fichier [`markdown-custom-containers.js`](markdown-custom-containers.js).
+
+_[Voir aussi la documentation des composants](https://codegouvfr.github.io/eleventy-dsfr/fr/blog/tags/composant/)_
+
+- Ajouter des chaînes de caractères localisées dans le dossier `_data/i18n/[lang]/index.js`.
+ - Pour ajouter une nouvelle traduction, ajouter un dossier `[lang]` dans [`content`](content), un nouveau fichier `_data/i18n/[lang]/index.js` et l'inclure dans [`_data/i18n/index.js`](_data/i18n/index.js).
+- Ajouter des styles personnalisés et des images dans le dossier [`public`](public).
+ - Celui-ci sera copié tel quel dans le dossier de sortie. Cela signifie que `./public/css/*` persistera dans `./_site/css/*` après la construction du livrable.
+- Compléter le [README](README.md) et la [documentation](content/fr/blog/posts). 😀
+
+### Ajout de contenu
+
+_[Voir la documentation des fonctionnalités et du Markdown](https://codegouvfr.github.io/eleventy-dsfr/fr/blog/tags/contenu/)_
+
+### Déploiement
+
+- Voir un [exemple de worklow de déploiement sur GitHub Pages](https://github.com/codegouvfr/eleventy-dsfr/blob/gh-pages/.github/workflows/11ty-gh-pages.yml) sur la branche `gh-pages`.
+
+En cas d'erreur lors du build :
+```bash
+Error: Get Pages site failed
+Error: HttpError: Not Found
+```
+Essayer [cette configuration](https://stackoverflow.com/a/73967433).
+- _[OPTIONNEL]_ [Configurer la redirection](https://www.11ty.dev/docs/i18n/#distinct-urls-using-implied-default-language)
+ de toutes les URLs des pages dont la langue est celle par défaut.
-Par exemple pour ajouter une actualité, créer un fichier `mon-actu.md` dans le répertoire [posts](posts) avec le contenu suivant, ce sont les entêtes qui seront utilisées par Eleventy pour générer la page HTML :
+## Documentation
- ---
- title: Top 5 de bonnes pratiques numérique responsable
- description: "Par quoi commencer, pour réduire ou limiter les impacts environnementaux du numérique à l'échelle d'une organisation ?"
- image: /img/posts/top-5-bonnes-pratiques-numerique-responsable.png
- type: news
- date: 2022-03-21
- ---
- Contenu de mon actu en markdown
+La suite de la documentation (composants, fonctionnalités) est disponible dans [`content/fr/blog/posts`](content/fr/blog/posts) ou directement sur le [site de démonstration](https://codegouvfr.github.io/eleventy-dsfr/fr/blog).
-## Particularités
+## Démonstration et réutilisations
-### Référentiel général d'écoconception de service numérique (RGESN)
+Pour une démonstration, voir la [GitHub Pages](https://codegouvfr.github.io/eleventy-dsfr/fr/) correspondante.
-Les pages du RGESN sont générées à partir de [referentiel-ecoconception.json](/DISIC/MiNumEco/blob/main/_data/referentiel-ecoconception.json).
+- [Site de la mission logiciels libres de la DINUM](https://code.gouv.fr) (code source : https://github.com/codegouvfr/codegouvfr-website).
+- [Site du cadre de cohérence technique du MI](https://dnum-mi.github.io/cct-mi/) (code source : https://github.com/dnum-mi/cct-mi)
+- [Site de documentation pour cartes.gouv.fr](https://ignf.github.io/cartes.gouv.fr-documentation/) (code source : https://github.com/IGNF/cartes.gouv.fr-documentation)
+- [Partie blog du site de DiaLog](https://dialog.beta.gouv.fr/blog/fr/) (code source : https://github.com/MTES-MCT/dialog/tree/main/blog)
+- [Site de la start-up Médiation Logement](https://mediationlogement.beta.gouv.fr/) (code source : https://github.com/betagouv/mediation-logement)
+- [Portail du BARRI du CISIRH](https://cisirh.github.io/portail-barri/fr/) (code source : https://github.com/CISIRH/portail-barri)
## Licence
-Les codes sources de ce dépôt sont placés sous licence MIT.
+Le dépôt est publié sous licence MIT pour le code et sous licence
+Etalab 2.0 pour les autres contenus.
-Les contenus humainement lisibles sont placés sous [licence Ouverte 2.0](https://www.etalab.gouv.fr/licence-ouverte-open-licence).
+Il est maintenu par la [mission logiciels libres](https://code.gouv.fr/) de la DINUM.
-## Analytics
+### Crédits images
-[Suivi des statistiques de fréquentation, sur Matomo](https://stats.data.gouv.fr/index.php?module=CoreHome&action=index&idSite=281&period=day&date=yesterday#?period=day&date=yesterday&category=Dashboard_Dashboard&subcategory=1&idSite=281).
+- [1F3DB.svg](public/icons/1F3DB.svg) par [Martin Wehl](https://openmoji.org/library/#author=Martin%20Wehl) sous licence [CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0>).
diff --git a/_data/.DS_Store b/_data/.DS_Store
index 5008ddfcf..8d37f666d 100644
Binary files a/_data/.DS_Store and b/_data/.DS_Store differ
diff --git a/_data/data.js b/_data/data.js
new file mode 100644
index 000000000..a4047ef3e
--- /dev/null
+++ b/_data/data.js
@@ -0,0 +1,3 @@
+module.exports = {
+ footer_content_description: `Mission interministérielle numérique écoresponsable pilotée par la direction interministérielle du numérique et le Ministère de la Transition écologique.`
+}
diff --git a/_data/i18n/en/index.js b/_data/i18n/en/index.js
new file mode 100644
index 000000000..0d92fc99c
--- /dev/null
+++ b/_data/i18n/en/index.js
@@ -0,0 +1,48 @@
+module.exports = {
+ about: "About",
+ accessibility: "Accessibility",
+ add_to_calendar: "Add to calendar",
+ back_to_top: "Back to Top",
+ blog: "Blog",
+ close: "Close",
+ copy: "Copy",
+ copied: "Copied!",
+ dark_theme: "Dark Theme",
+ display_params: "Display Parameters",
+ edit_this_page: "Edit this page",
+ filter_by_tag: "Filter by Tag:",
+ filtered_by: "Filtered by",
+ first_page: "First page",
+ follow_us_description: "Follow Us",
+ fully_compliant: "Fully compliant",
+ home: "Home",
+ lang_name: "English",
+ last_page: "Last page",
+ legal: "Legal",
+ light_theme: "Light Theme",
+ main_menu: "Main Menu",
+ menu: "Menu",
+ new_window: "New window",
+ next_page: "Next page",
+ not_compliant: "Not compliant",
+ partially_compliant: "Partially compliant",
+ personal_data: "Personal Data",
+ pick_theme: "Pick a Theme.",
+ previous_page: "Previous page",
+ published_on: "Published on",
+ read_also: "Read Also",
+ results: "results",
+ see_breadcrumb: "See Breadcrumb",
+ see_more: "See More",
+ select_lang: "Select Language",
+ share: "Share",
+ share_by_email: "Share by Email",
+ share_link_on: "Share link on",
+ sitemap: "Sitemap",
+ subscribe: "Subscribe",
+ subscribe_newsletter: "Subscribe",
+ system: "System",
+ tags: "Topics",
+ use_system_params: "Use System Parameters.",
+ you_are_here: "You are here",
+};
diff --git a/_data/i18n/fr/index.js b/_data/i18n/fr/index.js
new file mode 100644
index 000000000..2ccf95c7e
--- /dev/null
+++ b/_data/i18n/fr/index.js
@@ -0,0 +1,49 @@
+module.exports = {
+ about: "À propos",
+ accessibility: "Accessibilité",
+ add_to_calendar: "Ajouter au calendrier",
+ back_to_top: "Haut de page",
+ blog: "Blog",
+ close: "Fermer",
+ copy: "Copier dans le presse-papier",
+ copied: "Copié !",
+ dark_theme: "Thème sombre",
+ display_params: "Paramètres d'affichage",
+ ecodesign: "Écoconception",
+ edit_this_page: "Modifier cette page",
+ filter_by_tag: "Filtrer par catégorie :",
+ filtered_by: "Filtré par",
+ first_page: "Première page",
+ follow_us_description: "Suivez-nous
sur nos réseaux",
+ fully_compliant: "Totalement conforme",
+ home: "Accueil",
+ lang_name: "Français",
+ last_page: "Dernière page",
+ legal: "Mentions légales",
+ light_theme: "Thème clair",
+ main_menu: "Menu principal",
+ menu: "Menu",
+ new_window: "Nouvelle fenêtre",
+ next_page: "Page suivante",
+ not_compliant: "Non conforme",
+ partially_compliant: "Partiellement conforme",
+ personal_data: "Données personnelles",
+ pick_theme: "Choisissez un thème pour personnaliser l’apparence du site.",
+ previous_page: "Page précédente",
+ published_on: "Publié le",
+ read_also: "À lire aussi",
+ results: "résultats",
+ see_breadcrumb: "Voir le fil d’Ariane",
+ see_more: "En savoir plus",
+ select_lang: "Sélectionner une langue",
+ share: "Partager",
+ share_by_email: "Partager par email",
+ share_link_on: "Partage d'un lien sur",
+ sitemap: "Plan du site",
+ subscribe: "S'abonner",
+ subscribe_newsletter: "Abonnez-vous à notre lettre d’information",
+ system: "Système",
+ tags: "Catégories",
+ use_system_params: "Utilise les paramètres système.",
+ you_are_here: "Vous êtes ici",
+};
diff --git a/_data/i18n/index.js b/_data/i18n/index.js
new file mode 100644
index 000000000..fa820a0bd
--- /dev/null
+++ b/_data/i18n/index.js
@@ -0,0 +1,24 @@
+const {readdirSync} = require('fs');
+
+const langDirectories = readdirSync(__dirname, {withFileTypes: true})
+ .filter(dirent => dirent.isDirectory())
+ .map(dirent => dirent.name);
+
+const buildTranslations = () => {
+ const translations = {};
+ langDirectories.forEach(lang => {
+ const langTranslations = require(`./${lang}`);
+ for (const key in langTranslations) {
+ if (!(key in translations)) {
+ translations[key] = {};
+ }
+ translations[key][lang] = langTranslations[key];
+ }
+ });
+ return translations;
+}
+
+module.exports = {
+ availableLang: langDirectories,
+ translations: buildTranslations()
+};
diff --git a/_data/metadata.js b/_data/metadata.js
new file mode 100644
index 000000000..9154d9657
--- /dev/null
+++ b/_data/metadata.js
@@ -0,0 +1,78 @@
+module.exports = {
+ title: "Mission interministérielle",
+ url: "https://ecoresponsable.numerique.gouv.fr/",
+ repository_url: "https://github.com/codegouvfr/eleventy-dsfr",
+ language: "fr",
+ description: "MiNumEco, la mission interministérielle numérique écoresponsable pilotée par la DINUM et le Ministère de la Transition écologique pour réduire les impacts environnementaux du numérique",
+ subtitle: "Numérique écoresponsable",
+ author: {
+ name: "Nom du service",
+ email: "contact@nom.du.service.gouv.fr",
+ url: "https://url_du_service.gouv.fr/"
+ },
+ service: "Nom de l’entité (ministère, secrétariat d‘état, gouvernement)",
+ newsletter: {
+ url: "https://www.linkedin.com/newsletters/7242864226900279296/?displayConfirmation=true",
+ },
+ // Réseaux sociaux
+ linkedin_url:"https://www.linkedin.com/company/mission-interministerielle-numerique-ecoresponsable",
+ // twitter_url:"https://twitter.com/Mi_NumEco_Gouv",
+ // facebook_url:"",
+ // mastodon_url:"",
+ // instagram_url:"https://www.instagram.com/minumecogouv/",
+ // youtube_url:"",
+ // peertube_url:"",
+ guideAchats: {
+ version: "beta",
+ versionTitle: "bêta",
+ updatedAt: "2021-04-29",
+ dataGouvUrl: "https://www.data.gouv.fr/fr/datasets/guide-pratique-pour-des-achats-numeriques-responsables/"
+ },
+ guideBonnesPratiques: {
+ version: "v1",
+ versionTitle: "1",
+ title: "Guide de bonnes pratiques numérique responsable pour les organisations",
+ description: "Guide proposé par la DINUM, le Ministère de la Transition Écologique et l’Institut du Numérique Responsable",
+ updatedAt: "2023-06-01",
+ documentUrl: "/docs/2023/guide-de-bonnes-pratiques-numerique-responsable-version-1.pdf",
+ documentWeightInMo: "3,6",
+ consultationUrl: "https://purpoz.com/project/consultation-pour-etablir-un-guide-des-bonnes-pratiques-numerique-responsable/consultation/votez-pour-valider-les-criteres-et-ajoutez-vos-propositions",
+ dataGouvUrl: "https://www.data.gouv.fr/fr/datasets/guide-de-bonnes-pratiques-numerique-responsable-pour-les-organisations/"
+ },
+ referentielEcoconception: {
+ version: "v2",
+ versionTitle: "2",
+ title: "Référentiel général d'écoconception de services numériques",
+ description: "Référentiel piloté par l'Arcep et l'Arcom, en lien avec l'ADEME, la CNIL, la DINUM, le Ministère de la Transition Écologique, la MiNumEco",
+ updatedAt: "2024-05-28",
+ thematique: {
+ strategie: {
+ description: "La stratégie permet de déterminer et de suivre la pertinence, les enjeux et le pilotage de la conception du service numérique."
+ },
+ specifications: {
+ description: "Cette partie regroupe les éléments de cadrage projet, les objectifs et contraintes du projet sur toute la durée de vie du service numérique."
+ },
+ architecture: {
+ description: "Cette partie porte sur la stratégie de conception et l'articulation des composants applicatifs entre le frontend et le backend."
+ },
+ uxui: {
+ description: "Cette partie présente les étapes et méthodes de conception des services numériques pour définir les meilleures solutions d'interactions destinées aux utilisateurs."
+ },
+ contenus: {
+ description: "La partie \"contenus\" concerne les documents et médias informatifs ajoutés au service numérique par des personnes contributrices et disponibles pour l'utilisateur final."
+ },
+ frontend: {
+ description: "Le frontend est l'ensemble des composants en opération sur un terminal utilisateur pour permettre l'utilisation d'un service numérique."
+ },
+ backend: {
+ description: "La partie s'intéresse à l'ensemble des composants en opération côté serveur pour permettre le fonctionnement d'un service numérique."
+ },
+ hebergement: {
+ description: "Il s'agit des moyens mis en œuvre côté hébergement pour permettre la conception/développement, l'utilisation, et si applicable, l'entrainement d'un service numérique. Toute la chaîne d'hébergement mobilisée pour les fonctionnalités critiques du service (centres de données, Content Delivery Network, etc.) doit être prise en compte pour valider les critères de cette partie."
+ },
+ algorithmie: {
+ description: "Cette partie concerne les services numériques reposant sur une intelligence artificielle (IA). Elle vise la mise en place de princies d'écoconception et de frugalité quant à l'entraînement et l'inférence des modèles algorithmiques utilisés pour l'IA. La phase d'apprentissage désigne le processsus par lequel un système réalise, à partir de données et via des modèles algorithmiques, des calculs afin de proposer des fonctionnalités. Elle est suivie par une phase d'inférence, de mise en oeuvre des modèles entraînés."
+ }
+ }
+ }
+}
diff --git a/_data/metadata.json b/_data/metadata.json
deleted file mode 100644
index 94366c8d2..000000000
--- a/_data/metadata.json
+++ /dev/null
@@ -1,73 +0,0 @@
-{
- "title": "Numérique écoresponsable",
- "url": "https://ecoresponsable.numerique.gouv.fr/",
- "description": "MiNumEco, la mission interministérielle numérique écoresponsable pilotée par la DINUM et le Ministère de la Transition écologique pour réduire les impacts environnementaux du numérique",
- "feed": {
- "subtitle": "MiNumEco, la mission interministérielle numérique écoresponsable pilotée par la DINUM et le Ministère de la Transition écologique pour réduire les impacts environnementaux du numérique",
- "filename": "feed.xml",
- "path": "/feed/feed.xml",
- "id": "https://ecoresponsable.numerique.gouv.fr/"
- },
- "jsonfeed": {
- "path": "/feed/feed.json",
- "url": "https://ecoresponsable.numerique.gouv.fr/feed/feed.json"
- },
- "author": {
- "name": "MiNumEco, la mission interministérielle numérique écoresponsable",
- "email": "numerique-responsable.dinum@modernisation.gouv.fr",
- "url": "https://ecoresponsable.numerique.gouv.fr/a-propos/"
- },
- "guideAchats": {
- "version": "beta",
- "versionTitle": "bêta",
- "updatedAt": "2021-04-29",
- "dataGouvUrl": "https://www.data.gouv.fr/fr/datasets/guide-pratique-pour-des-achats-numeriques-responsables/"
- },
- "guideBonnesPratiques": {
- "version": "v1",
- "versionTitle": "1",
- "title": "Guide de bonnes pratiques numérique responsable pour les organisations",
- "description": "Guide proposé par la DINUM, le Ministère de la Transition Écologique et l’Institut du Numérique Responsable",
- "updatedAt": "2023-06-01",
- "documentUrl": "/docs/2023/guide-de-bonnes-pratiques-numerique-responsable-version-1.pdf",
- "documentWeightInMo": "3,6",
- "consultationUrl": "https://purpoz.com/project/consultation-pour-etablir-un-guide-des-bonnes-pratiques-numerique-responsable/consultation/votez-pour-valider-les-criteres-et-ajoutez-vos-propositions",
- "dataGouvUrl": "https://www.data.gouv.fr/fr/datasets/guide-de-bonnes-pratiques-numerique-responsable-pour-les-organisations/"
- },
- "referentielEcoconception": {
- "version": "v2",
- "versionTitle": "2",
- "title": "Référentiel général d'écoconception de services numériques",
- "description": "Référentiel piloté par l'Arcep et l'Arcom, en lien avec l'ADEME, la CNIL, la DINUM, le Ministère de la Transition Écologique, la MiNumEco",
- "updatedAt": "2024-05-28",
- "thematique": {
- "strategie": {
- "description": "La stratégie permet de déterminer et de suivre la pertinence, les enjeux et le pilotage de la conception du service numérique."
- },
- "specifications": {
- "description": "Cette partie regroupe les éléments de cadrage projet, les objectifs et contraintes du projet sur toute la durée de vie du service numérique."
- },
- "architecture": {
- "description": "Cette partie porte sur la stratégie de conception et l'articulation des composants applicatifs entre le frontend et le backend."
- },
- "uxui": {
- "description": "Cette partie présente les étapes et méthodes de conception des services numériques pour définir les meilleures solutions d'interactions destinées aux utilisateurs."
- },
- "contenus": {
- "description": "La partie \"contenus\" concerne les documents et médias informatifs ajoutés au service numérique par des personnes contributrices et disponibles pour l'utilisateur final."
- },
- "frontend": {
- "description": "Le frontend est l'ensemble des composants en opération sur un terminal utilisateur pour permettre l'utilisation d'un service numérique."
- },
- "backend": {
- "description": "La partie s'intéresse à l'ensemble des composants en opération côté serveur pour permettre le fonctionnement d'un service numérique."
- },
- "hebergement": {
- "description": "Il s'agit des moyens mis en œuvre côté hébergement pour permettre la conception/développement, l'utilisation, et si applicable, l'entrainement d'un service numérique. Toute la chaîne d'hébergement mobilisée pour les fonctionnalités critiques du service (centres de données, Content Delivery Network, etc.) doit être prise en compte pour valider les critères de cette partie."
- },
- "algorithmie": {
- "description": "Cette partie concerne les services numériques reposant sur une intelligence artificielle (IA). Elle vise la mise en place de princies d'écoconception et de frugalité quant à l'entraînement et l'inférence des modèles algorithmiques utilisés pour l'IA. La phase d'apprentissage désigne le processsus par lequel un système réalise, à partir de données et via des modèles algorithmiques, des calculs afin de proposer des fonctionnalités. Elle est suivie par une phase d'inférence, de mise en oeuvre des modèles entraînés."
- }
- }
- }
-}
diff --git a/_includes/.DS_Store b/_includes/.DS_Store
deleted file mode 100644
index dec875630..000000000
Binary files a/_includes/.DS_Store and /dev/null differ
diff --git a/_includes/breadcrumb.njk b/_includes/breadcrumb.njk
deleted file mode 100644
index fd1af763d..000000000
--- a/_includes/breadcrumb.njk
+++ /dev/null
@@ -1,37 +0,0 @@
-
diff --git a/_includes/components/accordionsgroup.njk b/_includes/components/accordionsgroup.njk
new file mode 100644
index 000000000..b502a0488
--- /dev/null
+++ b/_includes/components/accordionsgroup.njk
@@ -0,0 +1,18 @@
+{% if not accordionItems %}{% set accordionItems = params.items %}{% endif %}
+
+{% set groupId = nanoid() %}
+
+
+ {{ callout.description }} +
+ {% if callout.link %} + + {{ callout.link.title }} + + {% endif %} +{{ card.description }}
+{{ card.detail }}
+ {% endif %} +{{ card.detailEnd }}
+{{ badge }}
{{ download.description }}
+ {% endif %} +{{ download.detail }}
++ + {{ download.title }} {{ download.detail }} + +
+{% endif %} \ No newline at end of file diff --git a/_includes/components/quote.njk b/_includes/components/quote.njk new file mode 100644 index 000000000..b50606c53 --- /dev/null +++ b/_includes/components/quote.njk @@ -0,0 +1,15 @@ +{% if not quote %}{% set quote = params %}{% endif %} + \ No newline at end of file diff --git a/_includes/components/table.njk b/_includes/components/table.njk new file mode 100644 index 000000000..af43dadf2 --- /dev/null +++ b/_includes/components/table.njk @@ -0,0 +1,22 @@ +{% if not table %}{% set table = params %}{% endif %} +{{ header }} | + {% endfor %} +
---|
{{ col }} | + {% endfor %} +
{{ tile.description }}
+Date : {{ dateLabel }}
diff --git a/_includes/layouts/base.njk b/_includes/layouts/base.njk index 5ad5a4c92..8894aac9b 100644 --- a/_includes/layouts/base.njk +++ b/_includes/layouts/base.njk @@ -1,306 +1,73 @@ - - - - -
- République
-
Française
-
Mission interministérielle
- -Numérique écoresponsable
-+ {{ description }} +
+ {% endif %} ++ {{ "published_on" | i18n }} + +
+ +Dernière mise à jour le
- {% endif %} - - {{ content | safe }} + {% if image %} + {% imageContent image.path, image.alt %} + {% endif %} - {%- if link %} -{{ post.data.description }} @@ -85,7 +85,7 @@ layout: layouts/base.njk
{{ post.data.description }} @@ -126,9 +126,9 @@ layout: layouts/base.njk