From 4d66ff69342686429feec39169fd78e60c3da5ff Mon Sep 17 00:00:00 2001 From: David Soulayrol Date: Sat, 11 Nov 2023 23:25:38 +0100 Subject: [PATCH] =?UTF-8?q?Ajout=20de=20la=20carte=20de=20Vieux-March?= =?UTF-8?q?=C3=A9.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- content/mentions_legales.md | 21 ++++++++++++++++- layouts/with-map.njk | 13 ++++++++++ package-lock.json | 13 +++++++++- package.json | 3 ++- scripts/config.js | 2 +- scripts/metalsmith-copy.js | 47 +++++++++++++++++++++++++++++++++++++ scripts/metalsmith.js | 19 +++++++++++++++ 7 files changed, 114 insertions(+), 4 deletions(-) create mode 100644 layouts/with-map.njk create mode 100644 scripts/metalsmith-copy.js diff --git a/content/mentions_legales.md b/content/mentions_legales.md index 22a7c7f..4387354 100644 --- a/content/mentions_legales.md +++ b/content/mentions_legales.md @@ -1,4 +1,5 @@ --- +layout: with-map.njk permalink: false title: Mentions légales --- @@ -12,6 +13,24 @@ L'adresse électronique de contact de l'association est : contact @ ti-nuage.fr. Il est possible de nous rencontrer tous les premiers jeudi du mois à partir de 20 heures à [la Hutte](https://lahutte.ti-nuage.fr/), l'espace de travail partagé à Vieux Marché. +
+ + + ## Publication Directeur de publication : Nourdine Gernelle, président de l'association. @@ -23,7 +42,7 @@ Siège social : `Mairie, 11 places aux Chevaux, 22420 Le Vieux Marché - France` ## Données -Ce site n'exploite aucun *cookie*, ne procède à aucun pistage ni ne requiert une quelconque collecte de données. Il ne nécessite en outre pas l'usage de Javascript, sauf pour l'affichage du calendrier. +Ce site n'exploite aucun *cookie*, ne procède à aucun pistage ni ne requiert une quelconque collecte de données. Il ne nécessite en outre pas l'usage de Javascript, sauf pour l'affichage du calendrier et des cartes dynamiques. ## Propriété intellectuelle diff --git a/layouts/with-map.njk b/layouts/with-map.njk new file mode 100644 index 0000000..d10eded --- /dev/null +++ b/layouts/with-map.njk @@ -0,0 +1,13 @@ +{% extends "base.njk" %} + +{% block head %} + + +{% endblock %} + +{% block article %} +

{{ title }}

+ +{{ contents | safe }} + +{% endblock %} diff --git a/package-lock.json b/package-lock.json index 3a6ece7..41b94aa 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,7 +8,8 @@ "name": "ti-nuage.fr", "version": "2022.05.24", "dependencies": { - "ical": "^0.8.0" + "ical": "^0.8.0", + "leaflet": "^1.9.4" }, "devDependencies": { "@metalsmith/collections": "^1.2.1", @@ -5804,6 +5805,11 @@ "node": ">=8" } }, + "node_modules/leaflet": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/leaflet/-/leaflet-1.9.4.tgz", + "integrity": "sha512-nxS1ynzJOmOlHp+iL3FyWqK89GtNL8U8rvlMOsQdTTssxZwCXh8N2NB3GDQOL+YR3XnWyZAxwQixURb+FA74PA==" + }, "node_modules/levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", @@ -14967,6 +14973,11 @@ "package-json": "^6.3.0" } }, + "leaflet": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/leaflet/-/leaflet-1.9.4.tgz", + "integrity": "sha512-nxS1ynzJOmOlHp+iL3FyWqK89GtNL8U8rvlMOsQdTTssxZwCXh8N2NB3GDQOL+YR3XnWyZAxwQixURb+FA74PA==" + }, "levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", diff --git a/package.json b/package.json index 1e56bfa..37ed1fb 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,8 @@ }, "author": "Ti Nuage ", "dependencies": { - "ical": "^0.8.0" + "ical": "^0.8.0", + "leaflet": "^1.9.4" }, "devDependencies": { "@metalsmith/collections": "^1.2.1", diff --git a/scripts/config.js b/scripts/config.js index ce717ba..2601aad 100644 --- a/scripts/config.js +++ b/scripts/config.js @@ -10,7 +10,7 @@ module.exports = { paths: { projectRoot, /* Nodes */ - nodeModules: join(projectRoot, 'node_modules'), + leaflet: join(projectRoot, 'node_modules', 'leaflet', 'dist'), /* Metalsmith */ metalsmithSource: 'content', metalsmithDestination: distribution, diff --git a/scripts/metalsmith-copy.js b/scripts/metalsmith-copy.js new file mode 100644 index 0000000..2a04575 --- /dev/null +++ b/scripts/metalsmith-copy.js @@ -0,0 +1,47 @@ +const debug = require('debug')('metalsmith-copy') +const fs = require('fs') +const mode = require('stat-mode') +const path = require('path') + +module.exports = plugin + +function plugin (options) { + options = Object.assign({ destination: '.' }, options) + + return function (files, metalsmith, done) { + const dest = options.destination + const items = options.files.length + const promises = [] + + const addTask = function (promise) { + promises.push(promise) + if (items === promises.length) { + debug('Waiting for ' + items + 'copy operations.') + Promise.all(promises) + .then((data) => { + done() + }) + .catch((err) => { + done(err) + }) + } + } + + options.files.forEach((filename) => { + addTask(new Promise(function (resolve, reject) { + fs.stat(filename, function (err, stats) { + if (err) return reject(err) + fs.readFile(filename, function (err, buffer) { + if (err) return reject(err) + const file = { + contents: buffer, + mode: mode(stats).toOctal() + } + files[path.join(dest, path.basename(filename))] = file + resolve({}) + }) + }) + })) + }) + } +} diff --git a/scripts/metalsmith.js b/scripts/metalsmith.js index c413d1a..77064e8 100644 --- a/scripts/metalsmith.js +++ b/scripts/metalsmith.js @@ -5,6 +5,7 @@ const cleanCSS = require('metalsmith-clean-css') const chatons = require('./metalsmith-tinuage-chatons') const config = require('./config.js') const collections = require('@metalsmith/collections') +const copy = require('./metalsmith-copy') const excerpts = require('@metalsmith/excerpts') const groff = require('metalsmith-groff') const layouts = require('@metalsmith/layouts') @@ -72,6 +73,24 @@ module.exports = new Metalsmith(config.paths.projectRoot) source: './assets/' + (process.env.NODE_ENV || 'dev'), destination: './' })) + .use(copy({ + files: [join(config.paths.leaflet, 'leaflet.css')], + destination: './css' + })) + .use(copy({ + files: [ + join(config.paths.leaflet, 'images', 'marker-icon.png'), + join(config.paths.leaflet, 'images', 'marker-shadow.png') + ], + destination: './css/images' + })) + .use(copy({ + files: [ + join(config.paths.leaflet, 'leaflet.js'), + join(config.paths.leaflet, 'leaflet.js.map') + ], + destination: './js' + })) .use(groff({ macroPackages: ['mm', 'tinuage'], macroPaths: [join(config.paths.projectRoot, 'scripts/tmac')],