diff --git a/.eleventy.js b/.eleventy.js
new file mode 100644
index 0000000..4d717dd
--- /dev/null
+++ b/.eleventy.js
@@ -0,0 +1,63 @@
+const i18n = require('eleventy-plugin-i18n');
+const translations = require('./src/_data/i18n');
+
+module.exports = function (eleventyConfig) {
+ // Plugins
+ eleventyConfig.addPlugin(i18n, {
+ defaultLanguage: 'de',
+ localesDirectory: 'src',
+ // optional: customize the URL structure
+ urlPrefix: locale => (locale === 'de' ? '' : `/${locale}`),
+ translations,
+ fallbackLocales: {
+ '*': 'de'
+ }
+ });
+
+ // TEMP demo of what could be an i18n-aware plural package?
+ eleventyConfig.addFilter('pluralize', function (term, count = 1) {
+ // Poorman's pluralize for now...
+ return count === 1 ? term : `${term}s`;
+ });
+
+ eleventyConfig.addFilter('localizedPermalink', (slug, locale) => {
+ const newPath = locale === 'de' ? `${slug.slice(3)}.html` : `${slug}.html`;
+ return `${newPath}`;
+ });
+
+ // these folders will be copied into webroot
+ // e.g. /image => /_site/image
+ eleventyConfig.addPassthroughCopy('image');
+ eleventyConfig.addPassthroughCopy('css');
+ eleventyConfig.addPassthroughCopy('font');
+
+ // contents of public folder will be copied into webroot
+ // e.g. /public/something.html => /_site/something.html
+ eleventyConfig.addPassthroughCopy({ "public": "." });
+
+ // Browsersync
+ // Redirect from root to default language root during --serve
+ // Can also be handled by netlify.toml?
+ eleventyConfig.setBrowserSyncConfig({
+ callbacks: {
+ ready: function (err, bs) {
+ bs.addMiddleware('*', (req, res) => {
+ if (req.url === '/') {
+ res.writeHead(302, {
+ location: '/en/'
+ });
+ res.end();
+ }
+ });
+ }
+ }
+ });
+
+ // Configuration
+ return {
+ dir: {
+ input: 'src'
+ },
+ markdownTemplateEngine: 'njk'
+ };
+};
diff --git a/.gitignore b/.gitignore
index dc31c1c..d8345c0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -22,6 +22,9 @@ Icon
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent
+.netlify
+_site
+node_modules
# Directories potentially created on remote AFP share
.AppleDB
diff --git a/.prettierignore b/.prettierignore
new file mode 100644
index 0000000..5a87346
--- /dev/null
+++ b/.prettierignore
@@ -0,0 +1,2 @@
+node_modules
+_site
\ No newline at end of file
diff --git a/.prettierrc b/.prettierrc
new file mode 100644
index 0000000..6968205
--- /dev/null
+++ b/.prettierrc
@@ -0,0 +1,14 @@
+{
+ "singleQuote": true,
+ "trailingComma": "none",
+ "arrowParens": "avoid",
+ "overrides": [
+ {
+ "files": "*.css",
+ "options": {
+ "printWidth": 140,
+ "singleQuote": false
+ }
+ }
+ ]
+}
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..9fffce3
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2025 Chaostreff Tübingen e. V.
+
+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
new file mode 100644
index 0000000..c9706a6
--- /dev/null
+++ b/README.md
@@ -0,0 +1,16 @@
+# TDF Eleventy
+
+Based on the demo site [`eleventy-plugin-i18n-demo`](https://github.com/adamduncan/eleventy-plugin-i18n-demo).
+
+
+# Setup
+Install
+
+`npm install`
+
+Run local webserver
+
+`npx @11ty/eleventy --serve`
+
+Note:
+the index.js containing translations won't automatically be updated, you may need to restart the webserver for it to reflect the changes
diff --git a/THIRD_PARTY_LICENSES.md b/THIRD_PARTY_LICENSES.md
new file mode 100644
index 0000000..051ef93
--- /dev/null
+++ b/THIRD_PARTY_LICENSES.md
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2020 Adam Duncan
+
+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/styles-4.7.css b/css/styles-4.7.css
similarity index 100%
rename from styles-4.7.css
rename to css/styles-4.7.css
diff --git a/en/imprint.html b/en/imprint.html
deleted file mode 100644
index 73899d2..0000000
--- a/en/imprint.html
+++ /dev/null
@@ -1,55 +0,0 @@
-
-
-
-
-
-
-
- Impressum
-
-
-
-
-
-
-
-
-
-
-
-
Legal Notice
-
- Address
-
-
- Chaostreff Tübingen e.V.
- Bei den Pferdeställen 8
- 72072 Tübingen
-
-
- Online: https://cttue.de
-
-
- Contact
-
-
- For general inquiries, we recommend sending an email to mail(at)cttue.de
-
-
- Chaostreff Tübingen e.V. is registered in the association register of the Stuttgart District Court under
- association number VR 726042.
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/en/index.html b/en/index.html
deleted file mode 100644
index 5ea6313..0000000
--- a/en/index.html
+++ /dev/null
@@ -1,222 +0,0 @@
-
-
-
-
-
-
-
-
- 4. Tübingen Days of Digital Freedom
-
-
-
-
-
-
-
-
-
-
-
-
-
-
July 26/27, 2025
-
The Tübingen Days of Digital Freedom are an open Chaos community event. The event is not only aimed
- at
- nerds, but also at everyone interested in a life of freedom and
- self-determination. To this end, we want to give you the tools for self-empowerment in the form of
- workshops and presentations. But you are also welcome to come just to hang-out, have conversations
- with others, and take a look at the blinky things.
-
-
All Creatures Welcome!
-
-
-
-
-
Schedule
-
-
-
Saturday, July 26, 2025
-
- 09:00: Entry for Assembly Area
- 11:00: Entry for everyone
- 12:00: Introduction Herald and TV Elves
- 13:00: Opening
- 14:00 – 23:00: Program
- 23:00 – 9:00: Nightshift
-
-
-
-
Sunday, July 27, 2025
-
- 09:00: Entry and breakfast
- 10:00: Introduction Herald and TV Elves
- 11:00 – 17:00: Program
- from 17:00: Dismantling
-
-
-
-
-
-
-
Program
-
Please note: Most talks and workshops will be held in German.
-
You can expect approx. 50 lectures and workshops in 4 halls covering the following topics:
-
-
-
- Creativity & Beauty
- Ethics, Politics & Society
-
-
-
-
- Hardware & Code
- Digitality & Competence
-
-
-
-
- Diversity & Mindfulness
- Sustainability & Climate
-
-
-
-
- Science & Technology
- Networking & Actions
-
-
-
-
-
-
-
-
Participate!
-
The Day of Digital Freedom is made possible through your participation. There are many ways you can
- contribute to the success of the event. On the following page, you can learn more about it:
-
-
-
-
-
Register
-
You can register for the Tübingen Days of Digital Freedom to help us with planning and to stay up to
- date. Registration is voluntary and free of charge. However, you can make a donation to support the
- event.
-
-
-
-
-
Location
-
The Day of Digital Freedom will take place at the Westspitze Tübingen.
-
Eisenbahnstraße 1, 72072 Tübingen
-
The building is accessible by foot from the city center in about 15 minutes, from the main train
- station in about 10 minutes, or from the bus stops "Blaue Brücke" and "Landestheater".
-
We will meet in the rooms and areas of the ground floor and the 2nd, 6th and 7th floors.
-
-
View
- Larger Map
-
-
-
-
Organizers
-
The Tübingen Day of Digital Freedom is initiated and organized by the ChaosTreff Tübingen e.V. (CTT).
- The
- ChaosTreff is a non-profit association and is closely related to the Chaos Computer Club e.V.
- The members regularly meet to exchange ideas and work together on technical, digital, cultural, and
- social
- issues.
-
More information and dates at cttue.de .
-
-
-
-
-
-
Previous Events
-
The Day of Digital Freedom has been held annually since 2022. Here are the pages
- for the previous events.
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/en/participate.html b/en/participate.html
deleted file mode 100644
index 6a97970..0000000
--- a/en/participate.html
+++ /dev/null
@@ -1,156 +0,0 @@
-
-
-
-
-
-
-
-
- 4. Tübinger Days of Digital Freedom
-
-
-
-
-
-
-
-
-
-
-
-
-
The Event
-
The Day of Digital Freedom is an event organized by the Chaos community and takes place for the
- fourth time in a row in Tübingen.
-
At the event, freaks, artists, utopians, and simply curious people come together to learn from and
- with each other. What connects us all is the open exchange about creativity, beauty, our society,
- technology, and its impact on us and the rapidly advancing climate crisis.
-
The Chaostreff Tübingen is still relatively young and is in the process of building and maintaining a
- community. Their shared values are to create a space together and non-commercially where one can
- learn from each other, unfold, and organize. This should also serve as a forum for the exchange of
- related groups and individuals.
-
The Day of Digital Freedom is there to realize this utopia. If you share our values and ethics and want to help, you are cordially invited.
-
-
-
-
-
Dates
-
-
Preparation
-
- Regular meetings of the organizing team (usually on Thursdays). More information at tdf@cttue.de
- Sunday, March 30, 2025, at 3:00 PM - "Strategy Meeting" – a gathering for everyone who wants to
- get involved.
-
-
-
Event
-
- Friday, July 25, 2025 - Setup starting at 4:00 PM
- Saturday, July 26, 2025 - TDF Day 1
- Sunday, July 27, 2025 - TDF Day 2, followed by teardown.
-
-
-
-
-
Presentations & Workshops
-
The Call for Participation is closed. If you still want to submit an important contribution,
- you can send an email to tdf@cttue.de .
-
-
-
-
-
-
-
Assemblies
-
Come with your group, your association, or bring your project along and experience the unique charm
- that arises when people work together on projects! Those who have already visited CCC events know
- exactly what we're talking about. We provide free and suitable spaces so that you can organize your
- assembly on site.
-
What is an assembly? The term has many meanings like "construction", but also "gathering". It can be
- an oversized interactive art object, or a creative invention that fits in your pocket. But it can
- also be a group of people meeting on site and pursuing their passion.
-
If you would like to organize an assembly, please contact us at assemblies@cttue.de .
-
-
-
-
Elves
-
In addition to the content, the event also lives on the help of nice and helpful elves.
-
Some helping hands are needed behind the scenes as well as in front of the stage.
-
The tasks are divided into 2-hour shifts, and all helpers receive free mineral water and
- snacks in the Elf Grove.
-
The Elf System can be found at elfen.cttue.de .
- There you can register as an elf and sign up for shifts.
-
-
-
You can help the orga team with the following tasks in a low-threshold way:
-
-
-
-
Setup
-
- Shuttle Service
- Decoration
- Furniture
- Signage
-
-
Presentations
-
- "Herald" / Moderation
- Recording
-
-
-
-
Catering
-
- Beverage Sales (Tschunk in the evening)
- WOC (Waffle Operation Center)
- Breakfast
- Elf Catering
-
-
Dismantling
-
- Shuttle Service
- Furniture
- Cleaning
-
-
-
-
-
-
Accommodation
-
For those coming from further away, we want to offer the opportunity to stay overnight on Friday and Saturday nights on camp beds & sofas. Please be sure to register in advance at
- tdf@cttue.de .
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/en/site-plan.html b/en/site-plan.html
deleted file mode 100644
index 353dd8b..0000000
--- a/en/site-plan.html
+++ /dev/null
@@ -1,153 +0,0 @@
-
-
-
-
-
-
-
-
- 4. Tübingen Days of Digital Freedom - Site Plan
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/imprint.html b/imprint.html
deleted file mode 100644
index bda814e..0000000
--- a/imprint.html
+++ /dev/null
@@ -1,55 +0,0 @@
-
-
-
-
-
-
-
- Impressum
-
-
-
-
-
-
-
-
-
-
-
-
Impressum
-
- Anschrift
-
-
- Chaostreff Tübingen e.V.
- Bei den Pferdeställen 8
- 72072 Tübingen
-
-
- Im Web: https://cttue.de
-
-
- Kontakt
-
-
- Für allgemeinen Kontakt empfehlen wir eine E-Mail an mail(at)cttue.de
-
-
- Chaostreff Tübingen e.V. ist im Vereinsregister des Amtsgericht Stuttgart unter der Vereinsnummer VR
- 726042 eingetragen.
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/index.html b/index.html
deleted file mode 100644
index 44ae488..0000000
--- a/index.html
+++ /dev/null
@@ -1,221 +0,0 @@
-
-
-
-
-
-
-
-
- 4. Tübinger Tage der digitalen Freiheit
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
26./27. Juli 2025
-
Die Tübinger Tage der digitalen Freiheit sind ein offenes Chaos-Community-Event.
- Das Event richtet sich bei weitem nicht nur an Nerds, sondern an alle, die an einem Leben in
- Freiheit und Selbstbestimmung interessiert sind. Dazu möchten wir mit Werkzeugen zur
- Selbstbefähigung in Form von Workshops und Vorträgen anreizen. Man darf aber auch gerne zum Chillen,
- Gespräche und Blinkereien genießen vorbeikommen.
-
-
All Creatures Welcome!
-
-
-
-
-
Zeitplan
-
-
-
Samstag, 26. Juli 2025
-
- 09:00 Uhr: Einlass für Assembly-Area
- 11:00 Uhr: Einlass für alle
- 12:00 Uhr: Einführung Herald und TV-Elfen
- 13:00: Eröffnung
- 14:00 – 23:00 Uhr: Programm
- 23:00 – 9:00 Uhr: Nightshift
-
-
-
-
Sonntag, 27. Juli 2025
-
- 09:00 Uhr: Einlass und Frühstück
- 10:00 Uhr: Einführung Herald und TV-Elfen
- 11:00 – 17:00 Uhr: Programm
- ab 17:00 Uhr: Abbau
-
-
-
-
-
-
-
-
Programm
-
Es erwarten euch ca. 50 Vorträge und Workshops in 4 Sälen aus folgenden Themenbereichen:
-
-
-
- Kreativität & Schönheit
- Ethik, Politik & Gesellschaft
-
-
-
-
- Hardware & Code
- Digitalität & Mündigkeit
-
-
-
-
- Vielfalt & Achtsamkeit
- Nachhaltigkeit & Klima
-
-
-
-
- Science & Technology
- Vernetzung & Aktionen
-
-
-
-
-
-
-
-
macht mit!
-
Der Tag der digitalen Freiheit wird möglich durch deine Mitarbeit. Es gibt viele Möglichkeiten, wie
- du zum Gelingen der Veranstaltung beitragen kannst. Auf der folgenden Seite kannst du mehr darüber
- erfahren:
-
-
-
-
-
Anmelden
-
Du kannst dich für die Tübinger Tage der digitalen Freiheit anmelden, um uns bei der Planung zu
- helfen und um auf dem Laufenden zu bleiben. Die Anmeldung ist freiwillig und kostenlos. Du kannst
- aber eine Spende geben, um die Veranstaltung zu unterstützen.
-
-
-
-
-
-
Ort
-
Der Tag der digitalen Freiheit findet in der Westspitze Tübingen statt.
-
Eisenbahnstraße 1, 72072 Tübingen
-
Das Gebäude ist zu Fuß aus der Innenstadt in ca. 15 Minuten, vom Hauptbahnhof in ca. 10 Minuten, oder
- von den
- Bushaltestellen „Blaue Brücke" und „Landestheater" zu erreichen.
-
Wir treffen uns in den Räumen und auf den Flächen des Erdgeschoss und der Etagen 2, 6 und 7.
-
-
Größere
- Karte
- anzeigen
-
-
-
-
Veranstalter*innen
-
Der Tübinger Tag der digitalen Freiheit wird vom Chaostreff Tübingen e.V. (CTT) initiiert und
- veranstaltet. Der Chaostreff ist ein gemeinnütziger Verein und steht inhaltlich dem Chaos Computer
- Club e. V. nahe. Die Mitglieder treffen sich regelmäßig zum Austausch und gemeinsamen Arbeiten an
- technischen, digitalen, kulturellen und gesellschaflichen Themen.
-
Mehr Informationen und Termine unter cttue.de .
-
-
-
-
-
-
Vorherige Events
-
Der Tag der digitalen Freiheit findet seit 2022 jährlich statt. Hier geht es zu den Seiten
- der vorhergenden Events.
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/netlify.toml b/netlify.toml
new file mode 100644
index 0000000..dc538e5
--- /dev/null
+++ b/netlify.toml
@@ -0,0 +1,4 @@
+[[redirects]]
+ from = "/"
+ to = "/en"
+ status = 301
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 0000000..c5ef9f7
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,1877 @@
+{
+ "name": "eleventy-plugin-i18n-demo",
+ "version": "0.1.0",
+ "lockfileVersion": 3,
+ "requires": true,
+ "packages": {
+ "": {
+ "name": "eleventy-plugin-i18n-demo",
+ "version": "0.1.0",
+ "license": "MIT",
+ "dependencies": {
+ "eleventy-plugin-i18n": "^0.1.3"
+ },
+ "devDependencies": {
+ "@11ty/eleventy": "^3.1.2",
+ "cross-env": "^7.0.2",
+ "lodash.get": "^4.4.2",
+ "prettier": "^2.0.5",
+ "templite": "^1.1.0"
+ }
+ },
+ "node_modules/@11ty/dependency-tree": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@11ty/dependency-tree/-/dependency-tree-4.0.0.tgz",
+ "integrity": "sha512-PTOnwM8Xt+GdJmwRKg4pZ8EKAgGoK7pedZBfNSOChXu8MYk2FdEsxdJYecX4t62owpGw3xK60q9TQv/5JI59jw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@11ty/eleventy-utils": "^2.0.1"
+ }
+ },
+ "node_modules/@11ty/dependency-tree-esm": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@11ty/dependency-tree-esm/-/dependency-tree-esm-2.0.0.tgz",
+ "integrity": "sha512-+4ySOON4aEAiyAGuH6XQJtxpGSpo6nibfG01krgix00sqjhman2+UaDUopq6Ksv8/jBB3hqkhsHe3fDE4z8rbA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@11ty/eleventy-utils": "^2.0.1",
+ "acorn": "^8.14.0",
+ "dependency-graph": "^1.0.0",
+ "normalize-path": "^3.0.0"
+ }
+ },
+ "node_modules/@11ty/eleventy": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/@11ty/eleventy/-/eleventy-3.1.2.tgz",
+ "integrity": "sha512-IcsDlbXnBf8cHzbM1YBv3JcTyLB35EK88QexmVyFdVJVgUU6bh9g687rpxryJirHzo06PuwnYaEEdVZQfIgRGg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@11ty/dependency-tree": "^4.0.0",
+ "@11ty/dependency-tree-esm": "^2.0.0",
+ "@11ty/eleventy-dev-server": "^2.0.8",
+ "@11ty/eleventy-plugin-bundle": "^3.0.6",
+ "@11ty/eleventy-utils": "^2.0.7",
+ "@11ty/lodash-custom": "^4.17.21",
+ "@11ty/posthtml-urls": "^1.0.1",
+ "@11ty/recursive-copy": "^4.0.2",
+ "@sindresorhus/slugify": "^2.2.1",
+ "bcp-47-normalize": "^2.3.0",
+ "chokidar": "^3.6.0",
+ "debug": "^4.4.1",
+ "dependency-graph": "^1.0.0",
+ "entities": "^6.0.1",
+ "filesize": "^10.1.6",
+ "gray-matter": "^4.0.3",
+ "iso-639-1": "^3.1.5",
+ "js-yaml": "^4.1.0",
+ "kleur": "^4.1.5",
+ "liquidjs": "^10.21.1",
+ "luxon": "^3.6.1",
+ "markdown-it": "^14.1.0",
+ "minimist": "^1.2.8",
+ "moo": "^0.5.2",
+ "node-retrieve-globals": "^6.0.1",
+ "nunjucks": "^3.2.4",
+ "picomatch": "^4.0.2",
+ "please-upgrade-node": "^3.2.0",
+ "posthtml": "^0.16.6",
+ "posthtml-match-helper": "^2.0.3",
+ "semver": "^7.7.2",
+ "slugify": "^1.6.6",
+ "tinyglobby": "^0.2.14"
+ },
+ "bin": {
+ "eleventy": "cmd.cjs"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/11ty"
+ }
+ },
+ "node_modules/@11ty/eleventy-dev-server": {
+ "version": "2.0.8",
+ "resolved": "https://registry.npmjs.org/@11ty/eleventy-dev-server/-/eleventy-dev-server-2.0.8.tgz",
+ "integrity": "sha512-15oC5M1DQlCaOMUq4limKRYmWiGecDaGwryr7fTE/oM9Ix8siqMvWi+I8VjsfrGr+iViDvWcH/TVI6D12d93mA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@11ty/eleventy-utils": "^2.0.1",
+ "chokidar": "^3.6.0",
+ "debug": "^4.4.0",
+ "finalhandler": "^1.3.1",
+ "mime": "^3.0.0",
+ "minimist": "^1.2.8",
+ "morphdom": "^2.7.4",
+ "please-upgrade-node": "^3.2.0",
+ "send": "^1.1.0",
+ "ssri": "^11.0.0",
+ "urlpattern-polyfill": "^10.0.0",
+ "ws": "^8.18.1"
+ },
+ "bin": {
+ "eleventy-dev-server": "cmd.js"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/11ty"
+ }
+ },
+ "node_modules/@11ty/eleventy-plugin-bundle": {
+ "version": "3.0.7",
+ "resolved": "https://registry.npmjs.org/@11ty/eleventy-plugin-bundle/-/eleventy-plugin-bundle-3.0.7.tgz",
+ "integrity": "sha512-QK1tRFBhQdZASnYU8GMzpTdsMMFLVAkuU0gVVILqNyp09xJJZb81kAS3AFrNrwBCsgLxTdWHJ8N64+OTTsoKkA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@11ty/eleventy-utils": "^2.0.2",
+ "debug": "^4.4.0",
+ "posthtml-match-helper": "^2.0.3"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/11ty"
+ }
+ },
+ "node_modules/@11ty/eleventy-utils": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@11ty/eleventy-utils/-/eleventy-utils-2.0.7.tgz",
+ "integrity": "sha512-6QE+duqSQ0GY9rENXYb4iPR4AYGdrFpqnmi59tFp9VrleOl0QSh8VlBr2yd6dlhkdtj7904poZW5PvGr9cMiJQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/11ty"
+ }
+ },
+ "node_modules/@11ty/eleventy/node_modules/picomatch": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
+ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/@11ty/lodash-custom": {
+ "version": "4.17.21",
+ "resolved": "https://registry.npmjs.org/@11ty/lodash-custom/-/lodash-custom-4.17.21.tgz",
+ "integrity": "sha512-Mqt6im1xpb1Ykn3nbcCovWXK3ggywRJa+IXIdoz4wIIK+cvozADH63lexcuPpGS/gJ6/m2JxyyXDyupkMr5DHw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/11ty"
+ }
+ },
+ "node_modules/@11ty/posthtml-urls": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@11ty/posthtml-urls/-/posthtml-urls-1.0.1.tgz",
+ "integrity": "sha512-6EFN/yYSxC/OzYXpq4gXDyDMlX/W+2MgCvvoxf11X1z76bqkqFJ8eep5RiBWfGT5j0323a1pwpelcJJdR46MCw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "evaluate-value": "^2.0.0",
+ "http-equiv-refresh": "^2.0.1",
+ "list-to-array": "^1.1.0",
+ "parse-srcset": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/@11ty/recursive-copy": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/@11ty/recursive-copy/-/recursive-copy-4.0.2.tgz",
+ "integrity": "sha512-174nFXxL/6KcYbLYpra+q3nDbfKxLxRTNVY1atq2M1pYYiPfHse++3IFNl8mjPFsd7y2qQjxLORzIjHMjL3NDQ==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "errno": "^1.0.0",
+ "junk": "^3.1.0",
+ "maximatch": "^0.1.0",
+ "slash": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@sindresorhus/slugify": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/@sindresorhus/slugify/-/slugify-2.2.1.tgz",
+ "integrity": "sha512-MkngSCRZ8JdSOCHRaYd+D01XhvU3Hjy6MGl06zhOk614hp9EOAp5gIkBeQg7wtmxpitU6eAL4kdiRMcJa2dlrw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@sindresorhus/transliterate": "^1.0.0",
+ "escape-string-regexp": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@sindresorhus/transliterate": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/@sindresorhus/transliterate/-/transliterate-1.6.0.tgz",
+ "integrity": "sha512-doH1gimEu3A46VX6aVxpHTeHrytJAG6HgdxntYnCFiIFHEM/ZGpG8KiZGBChchjQmG0XFIBL552kBTjVcMZXwQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "escape-string-regexp": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/a-sync-waterfall": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/a-sync-waterfall/-/a-sync-waterfall-1.0.1.tgz",
+ "integrity": "sha512-RYTOHHdWipFUliRFMCS4X2Yn2X8M87V/OpSqWzKKOGhzqyUxzyVmhHDH9sAvG+ZuQf/TAOFsLCpMw09I1ufUnA==",
+ "dev": true
+ },
+ "node_modules/acorn": {
+ "version": "8.15.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz",
+ "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "acorn": "bin/acorn"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/acorn-walk": {
+ "version": "8.3.4",
+ "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz",
+ "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "acorn": "^8.11.0"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/anymatch": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/argparse": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+ "dev": true,
+ "license": "Python-2.0"
+ },
+ "node_modules/array-differ": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz",
+ "integrity": "sha512-LeZY+DZDRnvP7eMuQ6LHfCzUGxAAIViUBliK24P3hWXL6y4SortgR6Nim6xrkfSLlmH0+k+9NYNwVC2s53ZrYQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/array-union": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
+ "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "array-uniq": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/array-uniq": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
+ "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/arrify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
+ "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/asap": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
+ "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=",
+ "dev": true
+ },
+ "node_modules/balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/bcp-47": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/bcp-47/-/bcp-47-2.1.0.tgz",
+ "integrity": "sha512-9IIS3UPrvIa1Ej+lVDdDwO7zLehjqsaByECw0bu2RRGP73jALm6FYbzI5gWbgHLvNdkvfXB5YrSbocZdOS0c0w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-alphabetical": "^2.0.0",
+ "is-alphanumerical": "^2.0.0",
+ "is-decimal": "^2.0.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/bcp-47-match": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/bcp-47-match/-/bcp-47-match-2.0.3.tgz",
+ "integrity": "sha512-JtTezzbAibu8G0R9op9zb3vcWZd9JF6M0xOYGPn0fNCd7wOpRB1mU2mH9T8gaBGbAAyIIVgB2G7xG0GP98zMAQ==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/bcp-47-normalize": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/bcp-47-normalize/-/bcp-47-normalize-2.3.0.tgz",
+ "integrity": "sha512-8I/wfzqQvttUFz7HVJgIZ7+dj3vUaIyIxYXaTRP1YWoSDfzt6TUmxaKZeuXR62qBmYr+nvuWINFRl6pZ5DlN4Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "bcp-47": "^2.0.0",
+ "bcp-47-match": "^2.0.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/binary-extensions": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz",
+ "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/brace-expansion": {
+ "version": "1.1.12",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
+ "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/braces": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
+ "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "fill-range": "^7.1.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/chokidar": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
+ "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "anymatch": "~3.1.2",
+ "braces": "~3.0.2",
+ "glob-parent": "~5.1.2",
+ "is-binary-path": "~2.1.0",
+ "is-glob": "~4.0.1",
+ "normalize-path": "~3.0.0",
+ "readdirp": "~3.6.0"
+ },
+ "engines": {
+ "node": ">= 8.10.0"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.2"
+ }
+ },
+ "node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
+ },
+ "node_modules/commander": {
+ "version": "10.0.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz",
+ "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/cross-env": {
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.2.tgz",
+ "integrity": "sha512-KZP/bMEOJEDCkDQAyRhu3RL2ZO/SUVrxQVI0G3YEQ+OLbRA3c6zgixe8Mq8a/z7+HKlNEjo8oiLUs8iRijY2Rw==",
+ "dev": true,
+ "dependencies": {
+ "cross-spawn": "^7.0.1"
+ },
+ "bin": {
+ "cross-env": "src/bin/cross-env.js",
+ "cross-env-shell": "src/bin/cross-env-shell.js"
+ },
+ "engines": {
+ "node": ">=10.14",
+ "npm": ">=6",
+ "yarn": ">=1"
+ }
+ },
+ "node_modules/cross-spawn": {
+ "version": "7.0.6",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
+ "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/debug": {
+ "version": "4.4.3",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
+ "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ms": "^2.1.3"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/depd": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
+ "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/dependency-graph": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-1.0.0.tgz",
+ "integrity": "sha512-cW3gggJ28HZ/LExwxP2B++aiKxhJXMSIt9K48FOXQkm+vuG5gyatXnLsONRJdzO/7VfjDIiaOOa/bs4l464Lwg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/dom-serializer": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz",
+ "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "domelementtype": "^2.0.1",
+ "domhandler": "^4.2.0",
+ "entities": "^2.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1"
+ }
+ },
+ "node_modules/dom-serializer/node_modules/entities": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz",
+ "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "funding": {
+ "url": "https://github.com/fb55/entities?sponsor=1"
+ }
+ },
+ "node_modules/domelementtype": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
+ "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/fb55"
+ }
+ ],
+ "license": "BSD-2-Clause"
+ },
+ "node_modules/domhandler": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz",
+ "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "domelementtype": "^2.2.0"
+ },
+ "engines": {
+ "node": ">= 4"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/domhandler?sponsor=1"
+ }
+ },
+ "node_modules/domutils": {
+ "version": "2.8.0",
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz",
+ "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "dom-serializer": "^1.0.1",
+ "domelementtype": "^2.2.0",
+ "domhandler": "^4.2.0"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/domutils?sponsor=1"
+ }
+ },
+ "node_modules/ee-first": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
+ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/eleventy-plugin-i18n": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/eleventy-plugin-i18n/-/eleventy-plugin-i18n-0.1.3.tgz",
+ "integrity": "sha512-O4FtB4t7g0T3ujH3ciFGCyJ/r1CHzp33WYrDqgnX6s6KZ4R63CkN/RndRKU36ahWWUmF0BrLjQ+IDwj2ntsicw==",
+ "license": "MIT",
+ "dependencies": {
+ "chalk": "^4.1.1",
+ "lodash.get": "^4.4.2",
+ "templite": "^1.1.0"
+ }
+ },
+ "node_modules/eleventy-plugin-i18n/node_modules/chalk": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz",
+ "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==",
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/encodeurl": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz",
+ "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/entities": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz",
+ "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=0.12"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/entities?sponsor=1"
+ }
+ },
+ "node_modules/errno": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/errno/-/errno-1.0.0.tgz",
+ "integrity": "sha512-3zV5mFS1E8/1bPxt/B0xxzI1snsg3uSCIh6Zo1qKg6iMw93hzPANk9oBFzSFBFrwuVoQuE3rLoouAUfwOAj1wQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "prr": "~1.0.1"
+ },
+ "bin": {
+ "errno": "cli.js"
+ }
+ },
+ "node_modules/escape-html": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
+ "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/escape-string-regexp": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz",
+ "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/esm-import-transformer": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/esm-import-transformer/-/esm-import-transformer-3.0.5.tgz",
+ "integrity": "sha512-1GKLvfuMnnpI75l8c6sHoz0L3Z872xL5akGuBudgqTDPv4Vy6f2Ec7jEMKTxlqWl/3kSvNbHELeimJtnqgYniw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "acorn": "^8.15.0"
+ }
+ },
+ "node_modules/esprima": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "bin": {
+ "esparse": "bin/esparse.js",
+ "esvalidate": "bin/esvalidate.js"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/etag": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
+ "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/evaluate-value": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/evaluate-value/-/evaluate-value-2.0.0.tgz",
+ "integrity": "sha512-VonfiuDJc0z4sOO7W0Pd130VLsXN6vmBWZlrog1mCb/o7o/Nl5Lr25+Kj/nkCCAhG+zqeeGjxhkK9oHpkgTHhQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-extendable": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/filesize": {
+ "version": "10.1.6",
+ "resolved": "https://registry.npmjs.org/filesize/-/filesize-10.1.6.tgz",
+ "integrity": "sha512-sJslQKU2uM33qH5nqewAwVB2QgR6w1aMNsYUp3aN5rMRyXEwJGmZvaWzeJFNTOXWlHQyBFCWrdj3fV/fsTOX8w==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">= 10.4.0"
+ }
+ },
+ "node_modules/fill-range": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
+ "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "to-regex-range": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/finalhandler": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz",
+ "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "debug": "2.6.9",
+ "encodeurl": "~2.0.0",
+ "escape-html": "~1.0.3",
+ "on-finished": "2.4.1",
+ "parseurl": "~1.3.3",
+ "statuses": "2.0.1",
+ "unpipe": "~1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/finalhandler/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/finalhandler/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/fresh": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz",
+ "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/fsevents": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
+ "dev": true,
+ "hasInstallScript": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ }
+ },
+ "node_modules/glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dev": true,
+ "dependencies": {
+ "is-glob": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/gray-matter": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz",
+ "integrity": "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "js-yaml": "^3.13.1",
+ "kind-of": "^6.0.2",
+ "section-matter": "^1.0.0",
+ "strip-bom-string": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=6.0"
+ }
+ },
+ "node_modules/gray-matter/node_modules/argparse": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "sprintf-js": "~1.0.2"
+ }
+ },
+ "node_modules/gray-matter/node_modules/js-yaml": {
+ "version": "3.14.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
+ "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "argparse": "^1.0.7",
+ "esprima": "^4.0.0"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
+ }
+ },
+ "node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/htmlparser2": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-7.2.0.tgz",
+ "integrity": "sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==",
+ "dev": true,
+ "funding": [
+ "https://github.com/fb55/htmlparser2?sponsor=1",
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/fb55"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "domelementtype": "^2.0.1",
+ "domhandler": "^4.2.2",
+ "domutils": "^2.8.0",
+ "entities": "^3.0.1"
+ }
+ },
+ "node_modules/htmlparser2/node_modules/entities": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz",
+ "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=0.12"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/entities?sponsor=1"
+ }
+ },
+ "node_modules/http-equiv-refresh": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/http-equiv-refresh/-/http-equiv-refresh-2.0.1.tgz",
+ "integrity": "sha512-XJpDL/MLkV3dKwLzHwr2dY05dYNfBNlyPu4STQ8WvKCFdc6vC5tPXuq28of663+gHVg03C+16pHHs/+FmmDjcw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/http-errors": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
+ "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "depd": "2.0.0",
+ "inherits": "2.0.4",
+ "setprototypeof": "1.2.0",
+ "statuses": "2.0.1",
+ "toidentifier": "1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/is-alphabetical": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz",
+ "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/is-alphanumerical": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz",
+ "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-alphabetical": "^2.0.0",
+ "is-decimal": "^2.0.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/is-binary-path": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
+ "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
+ "dev": true,
+ "dependencies": {
+ "binary-extensions": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-decimal": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz",
+ "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-glob": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
+ "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
+ "dev": true,
+ "dependencies": {
+ "is-extglob": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-json": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-json/-/is-json-2.0.1.tgz",
+ "integrity": "sha512-6BEnpVn1rcf3ngfmViLM6vjUjGErbdrL4rwlv+u1NO1XO8kqT4YGL8+19Q+Z/bas8tY90BTWMk2+fW1g6hQjbA==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.12.0"
+ }
+ },
+ "node_modules/isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
+ "dev": true
+ },
+ "node_modules/iso-639-1": {
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/iso-639-1/-/iso-639-1-3.1.5.tgz",
+ "integrity": "sha512-gXkz5+KN7HrG0Q5UGqSMO2qB9AsbEeyLP54kF1YrMsIxmu+g4BdB7rflReZTSTZGpfj8wywu6pfPBCylPIzGQA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.0"
+ }
+ },
+ "node_modules/js-yaml": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
+ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "argparse": "^2.0.1"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
+ }
+ },
+ "node_modules/junk": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/junk/-/junk-3.1.0.tgz",
+ "integrity": "sha512-pBxcB3LFc8QVgdggvZWyeys+hnrNWg4OcZIU/1X59k5jQdLBlCsYGRQaz234SqoRLTCgMH00fY0xRJH+F9METQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/kind-of": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/kleur": {
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz",
+ "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/linkify-it": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz",
+ "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "uc.micro": "^2.0.0"
+ }
+ },
+ "node_modules/liquidjs": {
+ "version": "10.21.1",
+ "resolved": "https://registry.npmjs.org/liquidjs/-/liquidjs-10.21.1.tgz",
+ "integrity": "sha512-NZXmCwv3RG5nire3fmIn9HsOyJX3vo+ptp0yaXUHAMzSNBhx74Hm+dAGJvscUA6lNqbLuYfXgNavRQ9UbUJhQQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "commander": "^10.0.0"
+ },
+ "bin": {
+ "liquid": "bin/liquid.js",
+ "liquidjs": "bin/liquid.js"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/liquidjs"
+ }
+ },
+ "node_modules/list-to-array": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/list-to-array/-/list-to-array-1.1.0.tgz",
+ "integrity": "sha512-+dAZZ2mM+/m+vY9ezfoueVvrgnHIGi5FvgSymbIgJOFwiznWyA59mav95L+Mc6xPtL3s9gm5eNTlNtxJLbNM1g==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/lodash.get": {
+ "version": "4.4.2",
+ "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
+ "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=",
+ "deprecated": "This package is deprecated. Use the optional chaining (?.) operator instead."
+ },
+ "node_modules/luxon": {
+ "version": "3.7.2",
+ "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.7.2.tgz",
+ "integrity": "sha512-vtEhXh/gNjI9Yg1u4jX/0YVPMvxzHuGgCm6tC5kZyb08yjGWGnqAjGJvcXbqQR2P3MyMEFnRbpcdFS6PBcLqew==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/markdown-it": {
+ "version": "14.1.0",
+ "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz",
+ "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "argparse": "^2.0.1",
+ "entities": "^4.4.0",
+ "linkify-it": "^5.0.0",
+ "mdurl": "^2.0.0",
+ "punycode.js": "^2.3.1",
+ "uc.micro": "^2.1.0"
+ },
+ "bin": {
+ "markdown-it": "bin/markdown-it.mjs"
+ }
+ },
+ "node_modules/markdown-it/node_modules/entities": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
+ "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=0.12"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/entities?sponsor=1"
+ }
+ },
+ "node_modules/maximatch": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/maximatch/-/maximatch-0.1.0.tgz",
+ "integrity": "sha512-9ORVtDUFk4u/NFfo0vG/ND/z7UQCVZBL539YW0+U1I7H1BkZwizcPx5foFv7LCPcBnm2U6RjFnQOsIvN4/Vm2A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "array-differ": "^1.0.0",
+ "array-union": "^1.0.1",
+ "arrify": "^1.0.0",
+ "minimatch": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/mdurl": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz",
+ "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/mime": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz",
+ "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "mime": "cli.js"
+ },
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
+ "node_modules/mime-db": {
+ "version": "1.54.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz",
+ "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/mime-types": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.1.tgz",
+ "integrity": "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "mime-db": "^1.54.0"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/minimist": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
+ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/minipass": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
+ "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ }
+ },
+ "node_modules/moo": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/moo/-/moo-0.5.2.tgz",
+ "integrity": "sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==",
+ "dev": true,
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/morphdom": {
+ "version": "2.7.7",
+ "resolved": "https://registry.npmjs.org/morphdom/-/morphdom-2.7.7.tgz",
+ "integrity": "sha512-04GmsiBcalrSCNmzfo+UjU8tt3PhZJKzcOy+r1FlGA7/zri8wre3I1WkYN9PT3sIeIKfW9bpyElA+VzOg2E24g==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/node-retrieve-globals": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/node-retrieve-globals/-/node-retrieve-globals-6.0.1.tgz",
+ "integrity": "sha512-j0DeFuZ/Wg3VlklfbxUgZF/mdHMTEiEipBb3q0SpMMbHaV3AVfoUQF8UGxh1s/yjqO0TgRZd4Pi/x2yRqoQ4Eg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "acorn": "^8.14.1",
+ "acorn-walk": "^8.3.4",
+ "esm-import-transformer": "^3.0.3"
+ }
+ },
+ "node_modules/normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/nunjucks": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/nunjucks/-/nunjucks-3.2.4.tgz",
+ "integrity": "sha512-26XRV6BhkgK0VOxfbU5cQI+ICFUtMLixv1noZn1tGU38kQH5A5nmmbk/O45xdyBhD1esk47nKrY0mvQpZIhRjQ==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "a-sync-waterfall": "^1.0.0",
+ "asap": "^2.0.3",
+ "commander": "^5.1.0"
+ },
+ "bin": {
+ "nunjucks-precompile": "bin/precompile"
+ },
+ "engines": {
+ "node": ">= 6.9.0"
+ },
+ "peerDependencies": {
+ "chokidar": "^3.3.0"
+ },
+ "peerDependenciesMeta": {
+ "chokidar": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/nunjucks/node_modules/commander": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz",
+ "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/on-finished": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
+ "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ee-first": "1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/parse-srcset": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/parse-srcset/-/parse-srcset-1.0.2.tgz",
+ "integrity": "sha512-/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/parseurl": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
+ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/path-key": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/please-upgrade-node": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz",
+ "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==",
+ "dev": true,
+ "dependencies": {
+ "semver-compare": "^1.0.0"
+ }
+ },
+ "node_modules/posthtml": {
+ "version": "0.16.6",
+ "resolved": "https://registry.npmjs.org/posthtml/-/posthtml-0.16.6.tgz",
+ "integrity": "sha512-JcEmHlyLK/o0uGAlj65vgg+7LIms0xKXe60lcDOTU7oVX/3LuEuLwrQpW3VJ7de5TaFKiW4kWkaIpJL42FEgxQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "posthtml-parser": "^0.11.0",
+ "posthtml-render": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ }
+ },
+ "node_modules/posthtml-match-helper": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/posthtml-match-helper/-/posthtml-match-helper-2.0.3.tgz",
+ "integrity": "sha512-p9oJgTdMF2dyd7WE54QI1LvpBIkNkbSiiECKezNnDVYhGhD1AaOnAkw0Uh0y5TW+OHO8iBdSqnd8Wkpb6iUqmw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "posthtml": "^0.16.6"
+ }
+ },
+ "node_modules/posthtml-parser": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.11.0.tgz",
+ "integrity": "sha512-QecJtfLekJbWVo/dMAA+OSwY79wpRmbqS5TeXvXSX+f0c6pW4/SE6inzZ2qkU7oAMCPqIDkZDvd/bQsSFUnKyw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "htmlparser2": "^7.1.1"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/posthtml-render": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/posthtml-render/-/posthtml-render-3.0.0.tgz",
+ "integrity": "sha512-z+16RoxK3fUPgwaIgH9NGnK1HKY9XIDpydky5eQGgAFVXTCSezalv9U2jQuNV+Z9qV1fDWNzldcw4eK0SSbqKA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-json": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/prettier": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.0.5.tgz",
+ "integrity": "sha512-7PtVymN48hGcO4fGjybyBSIWDsLU4H4XlvOHfq91pz9kkGlonzwTfYkaIEwiRg/dAJF9YlbsduBAgtYLi+8cFg==",
+ "dev": true,
+ "bin": {
+ "prettier": "bin-prettier.js"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/prr": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz",
+ "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/punycode.js": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz",
+ "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/range-parser": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
+ "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/readdirp": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "picomatch": "^2.2.1"
+ },
+ "engines": {
+ "node": ">=8.10.0"
+ }
+ },
+ "node_modules/section-matter": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz",
+ "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "extend-shallow": "^2.0.1",
+ "kind-of": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/semver": {
+ "version": "7.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
+ "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/semver-compare": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz",
+ "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=",
+ "dev": true
+ },
+ "node_modules/send": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/send/-/send-1.2.0.tgz",
+ "integrity": "sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "debug": "^4.3.5",
+ "encodeurl": "^2.0.0",
+ "escape-html": "^1.0.3",
+ "etag": "^1.8.1",
+ "fresh": "^2.0.0",
+ "http-errors": "^2.0.0",
+ "mime-types": "^3.0.1",
+ "ms": "^2.1.3",
+ "on-finished": "^2.4.1",
+ "range-parser": "^1.2.1",
+ "statuses": "^2.0.1"
+ },
+ "engines": {
+ "node": ">= 18"
+ }
+ },
+ "node_modules/setprototypeof": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
+ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/shebang-command": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+ "dev": true,
+ "dependencies": {
+ "shebang-regex": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/shebang-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/slugify": {
+ "version": "1.6.6",
+ "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.6.tgz",
+ "integrity": "sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
+ "dev": true,
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/ssri": {
+ "version": "11.0.0",
+ "resolved": "https://registry.npmjs.org/ssri/-/ssri-11.0.0.tgz",
+ "integrity": "sha512-aZpUoMN/Jj2MqA4vMCeiKGnc/8SuSyHbGSBdgFbZxP8OJGF/lFkIuElzPxsN0q8TQQ+prw3P4EDfB3TBHHgfXw==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "minipass": "^7.0.3"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
+ }
+ },
+ "node_modules/statuses": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
+ "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/strip-bom-string": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz",
+ "integrity": "sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/templite": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/templite/-/templite-1.1.0.tgz",
+ "integrity": "sha512-DtXicIurbnJS5/eu3nMLLspt4bZ8F/811IpcI7DgSE63UhES6ld3CxoTcLXBuGhliYx2wMVmyNzHf3c7mqwIIA=="
+ },
+ "node_modules/tinyglobby": {
+ "version": "0.2.15",
+ "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz",
+ "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "fdir": "^6.5.0",
+ "picomatch": "^4.0.3"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/SuperchupuDev"
+ }
+ },
+ "node_modules/tinyglobby/node_modules/fdir": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz",
+ "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "peerDependencies": {
+ "picomatch": "^3 || ^4"
+ },
+ "peerDependenciesMeta": {
+ "picomatch": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/tinyglobby/node_modules/picomatch": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
+ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-number": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=8.0"
+ }
+ },
+ "node_modules/toidentifier": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
+ "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.6"
+ }
+ },
+ "node_modules/uc.micro": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz",
+ "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/unpipe": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
+ "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/urlpattern-polyfill": {
+ "version": "10.1.0",
+ "resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-10.1.0.tgz",
+ "integrity": "sha512-IGjKp/o0NL3Bso1PymYURCJxMPNAf/ILOpendP9f5B6e1rTJgdgiOvgfoT8VxCAdY+Wisb9uhGaJJf3yZ2V9nw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/which": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "dev": true,
+ "dependencies": {
+ "isexe": "^2.0.0"
+ },
+ "bin": {
+ "node-which": "bin/node-which"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/ws": {
+ "version": "8.18.3",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz",
+ "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10.0.0"
+ },
+ "peerDependencies": {
+ "bufferutil": "^4.0.1",
+ "utf-8-validate": ">=5.0.2"
+ },
+ "peerDependenciesMeta": {
+ "bufferutil": {
+ "optional": true
+ },
+ "utf-8-validate": {
+ "optional": true
+ }
+ }
+ }
+ }
+}
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..1779dbe
--- /dev/null
+++ b/package.json
@@ -0,0 +1,33 @@
+{
+ "name": "eleventy-plugin-i18n-demo",
+ "version": "0.1.0",
+ "description": "Demo site for eleventy-plugin-i18n",
+ "main": "index.js",
+ "scripts": {
+ "start": "npm run serve",
+ "serve": "cross-env ELEVENTY_ENV=development npx eleventy --serve",
+ "build": "cross-env ELEVENTY_ENV=production npx eleventy",
+ "debug": "cross-env DEBUG=* npx eleventy"
+ },
+ "keywords": [],
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/adamduncan/eleventy-plugin-i18n-demo.git"
+ },
+ "author": "Adam Duncan (https://adamduncandesigns.com)",
+ "bugs": {
+ "url": "https://github.com/adamduncan/eleventy-plugin-i18n-demo/issues"
+ },
+ "homepage": "https://github.com/adamduncan/eleventy-plugin-i18n-demo#readme",
+ "license": "MIT",
+ "devDependencies": {
+ "@11ty/eleventy": "^3.1.2",
+ "cross-env": "^7.0.2",
+ "lodash.get": "^4.4.2",
+ "prettier": "^2.0.5",
+ "templite": "^1.1.0"
+ },
+ "dependencies": {
+ "eleventy-plugin-i18n": "^0.1.3"
+ }
+}
diff --git a/style/bg.png b/public/style/bg.png
similarity index 100%
rename from style/bg.png
rename to public/style/bg.png
diff --git a/style/logo.png b/public/style/logo.png
similarity index 100%
rename from style/logo.png
rename to public/style/logo.png
diff --git a/style/reset.css b/public/style/reset.css
similarity index 100%
rename from style/reset.css
rename to public/style/reset.css
diff --git a/style/style.css b/public/style/style.css
similarity index 100%
rename from style/style.css
rename to public/style/style.css
diff --git a/style/ufo.png b/public/style/ufo.png
similarity index 100%
rename from style/ufo.png
rename to public/style/ufo.png
diff --git a/tdf1/index.html b/public/tdf1/index.html
similarity index 100%
rename from tdf1/index.html
rename to public/tdf1/index.html
diff --git a/tdf1/index_files/11317(1).png b/public/tdf1/index_files/11317(1).png
similarity index 100%
rename from tdf1/index_files/11317(1).png
rename to public/tdf1/index_files/11317(1).png
diff --git a/tdf1/index_files/11317(2).png b/public/tdf1/index_files/11317(2).png
similarity index 100%
rename from tdf1/index_files/11317(2).png
rename to public/tdf1/index_files/11317(2).png
diff --git a/tdf1/index_files/11317(3).png b/public/tdf1/index_files/11317(3).png
similarity index 100%
rename from tdf1/index_files/11317(3).png
rename to public/tdf1/index_files/11317(3).png
diff --git a/tdf1/index_files/11317(4).png b/public/tdf1/index_files/11317(4).png
similarity index 100%
rename from tdf1/index_files/11317(4).png
rename to public/tdf1/index_files/11317(4).png
diff --git a/tdf1/index_files/11317(5).png b/public/tdf1/index_files/11317(5).png
similarity index 100%
rename from tdf1/index_files/11317(5).png
rename to public/tdf1/index_files/11317(5).png
diff --git a/tdf1/index_files/11317.png b/public/tdf1/index_files/11317.png
similarity index 100%
rename from tdf1/index_files/11317.png
rename to public/tdf1/index_files/11317.png
diff --git a/tdf1/index_files/11318(1).png b/public/tdf1/index_files/11318(1).png
similarity index 100%
rename from tdf1/index_files/11318(1).png
rename to public/tdf1/index_files/11318(1).png
diff --git a/tdf1/index_files/11318(2).png b/public/tdf1/index_files/11318(2).png
similarity index 100%
rename from tdf1/index_files/11318(2).png
rename to public/tdf1/index_files/11318(2).png
diff --git a/tdf1/index_files/11318(3).png b/public/tdf1/index_files/11318(3).png
similarity index 100%
rename from tdf1/index_files/11318(3).png
rename to public/tdf1/index_files/11318(3).png
diff --git a/tdf1/index_files/11318(4).png b/public/tdf1/index_files/11318(4).png
similarity index 100%
rename from tdf1/index_files/11318(4).png
rename to public/tdf1/index_files/11318(4).png
diff --git a/tdf1/index_files/11318(5).png b/public/tdf1/index_files/11318(5).png
similarity index 100%
rename from tdf1/index_files/11318(5).png
rename to public/tdf1/index_files/11318(5).png
diff --git a/tdf1/index_files/11318.png b/public/tdf1/index_files/11318.png
similarity index 100%
rename from tdf1/index_files/11318.png
rename to public/tdf1/index_files/11318.png
diff --git a/tdf1/index_files/11319(1).png b/public/tdf1/index_files/11319(1).png
similarity index 100%
rename from tdf1/index_files/11319(1).png
rename to public/tdf1/index_files/11319(1).png
diff --git a/tdf1/index_files/11319(2).png b/public/tdf1/index_files/11319(2).png
similarity index 100%
rename from tdf1/index_files/11319(2).png
rename to public/tdf1/index_files/11319(2).png
diff --git a/tdf1/index_files/11319(3).png b/public/tdf1/index_files/11319(3).png
similarity index 100%
rename from tdf1/index_files/11319(3).png
rename to public/tdf1/index_files/11319(3).png
diff --git a/tdf1/index_files/11319(4).png b/public/tdf1/index_files/11319(4).png
similarity index 100%
rename from tdf1/index_files/11319(4).png
rename to public/tdf1/index_files/11319(4).png
diff --git a/tdf1/index_files/11319(5).png b/public/tdf1/index_files/11319(5).png
similarity index 100%
rename from tdf1/index_files/11319(5).png
rename to public/tdf1/index_files/11319(5).png
diff --git a/tdf1/index_files/11319.png b/public/tdf1/index_files/11319.png
similarity index 100%
rename from tdf1/index_files/11319.png
rename to public/tdf1/index_files/11319.png
diff --git a/tdf1/index_files/BMBF_de.png b/public/tdf1/index_files/BMBF_de.png
similarity index 100%
rename from tdf1/index_files/BMBF_de.png
rename to public/tdf1/index_files/BMBF_de.png
diff --git a/tdf1/index_files/CCTLogo.webp b/public/tdf1/index_files/CCTLogo.webp
similarity index 100%
rename from tdf1/index_files/CCTLogo.webp
rename to public/tdf1/index_files/CCTLogo.webp
diff --git a/tdf1/index_files/amnesty.webp b/public/tdf1/index_files/amnesty.webp
similarity index 100%
rename from tdf1/index_files/amnesty.webp
rename to public/tdf1/index_files/amnesty.webp
diff --git a/tdf1/index_files/app.css b/public/tdf1/index_files/app.css
similarity index 100%
rename from tdf1/index_files/app.css
rename to public/tdf1/index_files/app.css
diff --git a/tdf1/index_files/app.js b/public/tdf1/index_files/app.js
similarity index 100%
rename from tdf1/index_files/app.js
rename to public/tdf1/index_files/app.js
diff --git a/tdf1/index_files/crypto.png b/public/tdf1/index_files/crypto.png
similarity index 100%
rename from tdf1/index_files/crypto.png
rename to public/tdf1/index_files/crypto.png
diff --git a/tdf1/index_files/daasi.webp b/public/tdf1/index_files/daasi.webp
similarity index 100%
rename from tdf1/index_files/daasi.webp
rename to public/tdf1/index_files/daasi.webp
diff --git a/tdf1/index_files/embed-31abec0e3f0382e4d60ae9f3056d454f04784e6907e8229bf615fb3dc2c74374.css b/public/tdf1/index_files/embed-31abec0e3f0382e4d60ae9f3056d454f04784e6907e8229bf615fb3dc2c74374.css
similarity index 100%
rename from tdf1/index_files/embed-31abec0e3f0382e4d60ae9f3056d454f04784e6907e8229bf615fb3dc2c74374.css
rename to public/tdf1/index_files/embed-31abec0e3f0382e4d60ae9f3056d454f04784e6907e8229bf615fb3dc2c74374.css
diff --git a/tdf1/index_files/embed-5878c36753678fb0ad8598a649abf089144996f7a60c6992a16ebf41349273f8.js b/public/tdf1/index_files/embed-5878c36753678fb0ad8598a649abf089144996f7a60c6992a16ebf41349273f8.js
similarity index 100%
rename from tdf1/index_files/embed-5878c36753678fb0ad8598a649abf089144996f7a60c6992a16ebf41349273f8.js
rename to public/tdf1/index_files/embed-5878c36753678fb0ad8598a649abf089144996f7a60c6992a16ebf41349273f8.js
diff --git a/tdf1/index_files/embed.html b/public/tdf1/index_files/embed.html
similarity index 100%
rename from tdf1/index_files/embed.html
rename to public/tdf1/index_files/embed.html
diff --git a/tdf1/index_files/fablab.webp b/public/tdf1/index_files/fablab.webp
similarity index 100%
rename from tdf1/index_files/fablab.webp
rename to public/tdf1/index_files/fablab.webp
diff --git a/tdf1/index_files/franz.webp b/public/tdf1/index_files/franz.webp
similarity index 100%
rename from tdf1/index_files/franz.webp
rename to public/tdf1/index_files/franz.webp
diff --git a/tdf1/index_files/glassroom.svg b/public/tdf1/index_files/glassroom.svg
similarity index 100%
rename from tdf1/index_files/glassroom.svg
rename to public/tdf1/index_files/glassroom.svg
diff --git a/tdf1/index_files/iconet.webp b/public/tdf1/index_files/iconet.webp
similarity index 100%
rename from tdf1/index_files/iconet.webp
rename to public/tdf1/index_files/iconet.webp
diff --git a/tdf1/index_files/kimaker.webp b/public/tdf1/index_files/kimaker.webp
similarity index 100%
rename from tdf1/index_files/kimaker.webp
rename to public/tdf1/index_files/kimaker.webp
diff --git a/tdf1/index_files/logo.png b/public/tdf1/index_files/logo.png
similarity index 100%
rename from tdf1/index_files/logo.png
rename to public/tdf1/index_files/logo.png
diff --git a/tdf1/index_files/marker-icon-3d253116ec4ba0e1f22a01cdf1ff7f120fa4d89a6cd0933d68f12951d19809b4.png b/public/tdf1/index_files/marker-icon-3d253116ec4ba0e1f22a01cdf1ff7f120fa4d89a6cd0933d68f12951d19809b4.png
similarity index 100%
rename from tdf1/index_files/marker-icon-3d253116ec4ba0e1f22a01cdf1ff7f120fa4d89a6cd0933d68f12951d19809b4.png
rename to public/tdf1/index_files/marker-icon-3d253116ec4ba0e1f22a01cdf1ff7f120fa4d89a6cd0933d68f12951d19809b4.png
diff --git a/tdf1/index_files/marker-shadow-a2d94406ba198f61f68a71ed8f9f9c701122c0c33b775d990edceae4aece567f.png b/public/tdf1/index_files/marker-shadow-a2d94406ba198f61f68a71ed8f9f9c701122c0c33b775d990edceae4aece567f.png
similarity index 100%
rename from tdf1/index_files/marker-shadow-a2d94406ba198f61f68a71ed8f9f9c701122c0c33b775d990edceae4aece567f.png
rename to public/tdf1/index_files/marker-shadow-a2d94406ba198f61f68a71ed8f9f9c701122c0c33b775d990edceae4aece567f.png
diff --git a/tdf1/index_files/matomo.php b/public/tdf1/index_files/matomo.php
similarity index 100%
rename from tdf1/index_files/matomo.php
rename to public/tdf1/index_files/matomo.php
diff --git a/tdf1/index_files/oikos.jpg b/public/tdf1/index_files/oikos.jpg
similarity index 100%
rename from tdf1/index_files/oikos.jpg
rename to public/tdf1/index_files/oikos.jpg
diff --git a/tdf1/index_files/piraten.webp b/public/tdf1/index_files/piraten.webp
similarity index 100%
rename from tdf1/index_files/piraten.webp
rename to public/tdf1/index_files/piraten.webp
diff --git a/tdf1/index_files/prototype-fund.svg b/public/tdf1/index_files/prototype-fund.svg
similarity index 100%
rename from tdf1/index_files/prototype-fund.svg
rename to public/tdf1/index_files/prototype-fund.svg
diff --git a/tdf1/index_files/shedhalle.png b/public/tdf1/index_files/shedhalle.png
similarity index 100%
rename from tdf1/index_files/shedhalle.png
rename to public/tdf1/index_files/shedhalle.png
diff --git a/tdf1/index_files/tddf.webp b/public/tdf1/index_files/tddf.webp
similarity index 100%
rename from tdf1/index_files/tddf.webp
rename to public/tdf1/index_files/tddf.webp
diff --git a/tdf1/index_files/wit.webp b/public/tdf1/index_files/wit.webp
similarity index 100%
rename from tdf1/index_files/wit.webp
rename to public/tdf1/index_files/wit.webp
diff --git a/tdf2/font/TitilliumWeb-Bold.ttf b/public/tdf2/font/TitilliumWeb-Bold.ttf
similarity index 100%
rename from tdf2/font/TitilliumWeb-Bold.ttf
rename to public/tdf2/font/TitilliumWeb-Bold.ttf
diff --git a/tdf2/font/TitilliumWeb-Regular.ttf b/public/tdf2/font/TitilliumWeb-Regular.ttf
similarity index 100%
rename from tdf2/font/TitilliumWeb-Regular.ttf
rename to public/tdf2/font/TitilliumWeb-Regular.ttf
diff --git a/tdf2/image/CCTLogo.webp b/public/tdf2/image/CCTLogo.webp
similarity index 100%
rename from tdf2/image/CCTLogo.webp
rename to public/tdf2/image/CCTLogo.webp
diff --git a/tdf2/image/assemblies.png b/public/tdf2/image/assemblies.png
similarity index 100%
rename from tdf2/image/assemblies.png
rename to public/tdf2/image/assemblies.png
diff --git a/tdf2/image/costs.png b/public/tdf2/image/costs.png
similarity index 100%
rename from tdf2/image/costs.png
rename to public/tdf2/image/costs.png
diff --git a/tdf2/image/daasi_logo.png b/public/tdf2/image/daasi_logo.png
similarity index 100%
rename from tdf2/image/daasi_logo.png
rename to public/tdf2/image/daasi_logo.png
diff --git a/tdf2/image/dates.png b/public/tdf2/image/dates.png
similarity index 100%
rename from tdf2/image/dates.png
rename to public/tdf2/image/dates.png
diff --git a/tdf2/image/event.png b/public/tdf2/image/event.png
similarity index 100%
rename from tdf2/image/event.png
rename to public/tdf2/image/event.png
diff --git a/tdf2/image/kims_logo.png b/public/tdf2/image/kims_logo.png
similarity index 100%
rename from tdf2/image/kims_logo.png
rename to public/tdf2/image/kims_logo.png
diff --git a/tdf2/image/neon-scene.png b/public/tdf2/image/neon-scene.png
similarity index 100%
rename from tdf2/image/neon-scene.png
rename to public/tdf2/image/neon-scene.png
diff --git a/tdf2/image/no_budget_logo.svg b/public/tdf2/image/no_budget_logo.svg
similarity index 100%
rename from tdf2/image/no_budget_logo.svg
rename to public/tdf2/image/no_budget_logo.svg
diff --git a/tdf2/image/pagina_logo.png b/public/tdf2/image/pagina_logo.png
similarity index 100%
rename from tdf2/image/pagina_logo.png
rename to public/tdf2/image/pagina_logo.png
diff --git a/tdf2/image/participate.png b/public/tdf2/image/participate.png
similarity index 100%
rename from tdf2/image/participate.png
rename to public/tdf2/image/participate.png
diff --git a/tdf2/image/shedhalle.png b/public/tdf2/image/shedhalle.png
similarity index 100%
rename from tdf2/image/shedhalle.png
rename to public/tdf2/image/shedhalle.png
diff --git a/tdf2/image/shedhalle_logo.png b/public/tdf2/image/shedhalle_logo.png
similarity index 100%
rename from tdf2/image/shedhalle_logo.png
rename to public/tdf2/image/shedhalle_logo.png
diff --git a/tdf2/image/tdf-web-wide.png b/public/tdf2/image/tdf-web-wide.png
similarity index 100%
rename from tdf2/image/tdf-web-wide.png
rename to public/tdf2/image/tdf-web-wide.png
diff --git a/tdf2/image/tuebingen_logo.png b/public/tdf2/image/tuebingen_logo.png
similarity index 100%
rename from tdf2/image/tuebingen_logo.png
rename to public/tdf2/image/tuebingen_logo.png
diff --git a/tdf2/index.html b/public/tdf2/index.html
similarity index 100%
rename from tdf2/index.html
rename to public/tdf2/index.html
diff --git a/tdf2/styles.css b/public/tdf2/styles.css
similarity index 100%
rename from tdf2/styles.css
rename to public/tdf2/styles.css
diff --git a/tdf3/en/imprint.html b/public/tdf3/en/imprint.html
similarity index 100%
rename from tdf3/en/imprint.html
rename to public/tdf3/en/imprint.html
diff --git a/tdf3/en/index.html b/public/tdf3/en/index.html
similarity index 100%
rename from tdf3/en/index.html
rename to public/tdf3/en/index.html
diff --git a/tdf3/en/participate.html b/public/tdf3/en/participate.html
similarity index 100%
rename from tdf3/en/participate.html
rename to public/tdf3/en/participate.html
diff --git a/tdf3/en/recap.html b/public/tdf3/en/recap.html
similarity index 100%
rename from tdf3/en/recap.html
rename to public/tdf3/en/recap.html
diff --git a/tdf3/font/TitilliumWeb-Bold.ttf b/public/tdf3/font/TitilliumWeb-Bold.ttf
similarity index 100%
rename from tdf3/font/TitilliumWeb-Bold.ttf
rename to public/tdf3/font/TitilliumWeb-Bold.ttf
diff --git a/tdf3/font/TitilliumWeb-Regular.ttf b/public/tdf3/font/TitilliumWeb-Regular.ttf
similarity index 100%
rename from tdf3/font/TitilliumWeb-Regular.ttf
rename to public/tdf3/font/TitilliumWeb-Regular.ttf
diff --git a/tdf3/image/01.jpg b/public/tdf3/image/01.jpg
similarity index 100%
rename from tdf3/image/01.jpg
rename to public/tdf3/image/01.jpg
diff --git a/tdf3/image/02.jpg b/public/tdf3/image/02.jpg
similarity index 100%
rename from tdf3/image/02.jpg
rename to public/tdf3/image/02.jpg
diff --git a/tdf3/image/03.jpg b/public/tdf3/image/03.jpg
similarity index 100%
rename from tdf3/image/03.jpg
rename to public/tdf3/image/03.jpg
diff --git a/tdf3/image/04.jpg b/public/tdf3/image/04.jpg
similarity index 100%
rename from tdf3/image/04.jpg
rename to public/tdf3/image/04.jpg
diff --git a/tdf3/image/05.jpg b/public/tdf3/image/05.jpg
similarity index 100%
rename from tdf3/image/05.jpg
rename to public/tdf3/image/05.jpg
diff --git a/tdf3/image/06.jpg b/public/tdf3/image/06.jpg
similarity index 100%
rename from tdf3/image/06.jpg
rename to public/tdf3/image/06.jpg
diff --git a/tdf3/image/07.jpg b/public/tdf3/image/07.jpg
similarity index 100%
rename from tdf3/image/07.jpg
rename to public/tdf3/image/07.jpg
diff --git a/tdf3/image/08.jpg b/public/tdf3/image/08.jpg
similarity index 100%
rename from tdf3/image/08.jpg
rename to public/tdf3/image/08.jpg
diff --git a/tdf3/image/09.jpg b/public/tdf3/image/09.jpg
similarity index 100%
rename from tdf3/image/09.jpg
rename to public/tdf3/image/09.jpg
diff --git a/tdf3/image/10.jpg b/public/tdf3/image/10.jpg
similarity index 100%
rename from tdf3/image/10.jpg
rename to public/tdf3/image/10.jpg
diff --git a/tdf3/image/11.jpg b/public/tdf3/image/11.jpg
old mode 100755
new mode 100644
similarity index 100%
rename from tdf3/image/11.jpg
rename to public/tdf3/image/11.jpg
diff --git a/tdf3/image/12.jpg b/public/tdf3/image/12.jpg
similarity index 100%
rename from tdf3/image/12.jpg
rename to public/tdf3/image/12.jpg
diff --git a/tdf3/image/AVAT_logo.png b/public/tdf3/image/AVAT_logo.png
similarity index 100%
rename from tdf3/image/AVAT_logo.png
rename to public/tdf3/image/AVAT_logo.png
diff --git a/tdf3/image/CCTLogo.webp b/public/tdf3/image/CCTLogo.webp
similarity index 100%
rename from tdf3/image/CCTLogo.webp
rename to public/tdf3/image/CCTLogo.webp
diff --git a/tdf3/image/assemblies.png b/public/tdf3/image/assemblies.png
similarity index 100%
rename from tdf3/image/assemblies.png
rename to public/tdf3/image/assemblies.png
diff --git a/tdf3/image/banner-1.png b/public/tdf3/image/banner-1.png
similarity index 100%
rename from tdf3/image/banner-1.png
rename to public/tdf3/image/banner-1.png
diff --git a/tdf3/image/banner-2.png b/public/tdf3/image/banner-2.png
similarity index 100%
rename from tdf3/image/banner-2.png
rename to public/tdf3/image/banner-2.png
diff --git a/tdf3/image/banner-3.png b/public/tdf3/image/banner-3.png
similarity index 100%
rename from tdf3/image/banner-3.png
rename to public/tdf3/image/banner-3.png
diff --git a/tdf3/image/coworkgroupde_logo.jpg b/public/tdf3/image/coworkgroupde_logo.jpg
similarity index 100%
rename from tdf3/image/coworkgroupde_logo.jpg
rename to public/tdf3/image/coworkgroupde_logo.jpg
diff --git a/tdf3/image/daasi_logo.png b/public/tdf3/image/daasi_logo.png
similarity index 100%
rename from tdf3/image/daasi_logo.png
rename to public/tdf3/image/daasi_logo.png
diff --git a/tdf3/image/de.png b/public/tdf3/image/de.png
similarity index 100%
rename from tdf3/image/de.png
rename to public/tdf3/image/de.png
diff --git a/tdf3/image/gb.png b/public/tdf3/image/gb.png
similarity index 100%
rename from tdf3/image/gb.png
rename to public/tdf3/image/gb.png
diff --git a/tdf3/image/kims_logo.png b/public/tdf3/image/kims_logo.png
similarity index 100%
rename from tdf3/image/kims_logo.png
rename to public/tdf3/image/kims_logo.png
diff --git a/tdf3/image/map.png b/public/tdf3/image/map.png
similarity index 100%
rename from tdf3/image/map.png
rename to public/tdf3/image/map.png
diff --git a/tdf3/image/neon-scene.png b/public/tdf3/image/neon-scene.png
similarity index 100%
rename from tdf3/image/neon-scene.png
rename to public/tdf3/image/neon-scene.png
diff --git a/tdf3/image/network.png b/public/tdf3/image/network.png
similarity index 100%
rename from tdf3/image/network.png
rename to public/tdf3/image/network.png
diff --git a/tdf3/image/no_budget_logo.svg b/public/tdf3/image/no_budget_logo.svg
similarity index 100%
rename from tdf3/image/no_budget_logo.svg
rename to public/tdf3/image/no_budget_logo.svg
diff --git a/tdf3/image/participate.png b/public/tdf3/image/participate.png
similarity index 100%
rename from tdf3/image/participate.png
rename to public/tdf3/image/participate.png
diff --git a/tdf3/image/pesthoenchen.png b/public/tdf3/image/pesthoenchen.png
similarity index 100%
rename from tdf3/image/pesthoenchen.png
rename to public/tdf3/image/pesthoenchen.png
diff --git a/tdf3/image/radio.png b/public/tdf3/image/radio.png
similarity index 100%
rename from tdf3/image/radio.png
rename to public/tdf3/image/radio.png
diff --git a/tdf3/image/shedhalle_logo.png b/public/tdf3/image/shedhalle_logo.png
similarity index 100%
rename from tdf3/image/shedhalle_logo.png
rename to public/tdf3/image/shedhalle_logo.png
diff --git a/tdf3/image/sponsor.png b/public/tdf3/image/sponsor.png
similarity index 100%
rename from tdf3/image/sponsor.png
rename to public/tdf3/image/sponsor.png
diff --git a/tdf3/image/tdf-web-wide.png b/public/tdf3/image/tdf-web-wide.png
similarity index 100%
rename from tdf3/image/tdf-web-wide.png
rename to public/tdf3/image/tdf-web-wide.png
diff --git a/tdf3/image/tuebingen_logo.png b/public/tdf3/image/tuebingen_logo.png
similarity index 100%
rename from tdf3/image/tuebingen_logo.png
rename to public/tdf3/image/tuebingen_logo.png
diff --git a/tdf3/imprint.html b/public/tdf3/imprint.html
similarity index 100%
rename from tdf3/imprint.html
rename to public/tdf3/imprint.html
diff --git a/tdf3/index.html b/public/tdf3/index.html
similarity index 100%
rename from tdf3/index.html
rename to public/tdf3/index.html
diff --git a/tdf3/infobeamer/index.html b/public/tdf3/infobeamer/index.html
similarity index 100%
rename from tdf3/infobeamer/index.html
rename to public/tdf3/infobeamer/index.html
diff --git a/tdf3/participate.html b/public/tdf3/participate.html
similarity index 100%
rename from tdf3/participate.html
rename to public/tdf3/participate.html
diff --git a/tdf3/recap.html b/public/tdf3/recap.html
similarity index 100%
rename from tdf3/recap.html
rename to public/tdf3/recap.html
diff --git a/tdf3/style/bg.png b/public/tdf3/style/bg.png
similarity index 100%
rename from tdf3/style/bg.png
rename to public/tdf3/style/bg.png
diff --git a/tdf3/style/fire.gif b/public/tdf3/style/fire.gif
similarity index 100%
rename from tdf3/style/fire.gif
rename to public/tdf3/style/fire.gif
diff --git a/tdf3/style/logo.png b/public/tdf3/style/logo.png
similarity index 100%
rename from tdf3/style/logo.png
rename to public/tdf3/style/logo.png
diff --git a/tdf3/style/reset.css b/public/tdf3/style/reset.css
similarity index 100%
rename from tdf3/style/reset.css
rename to public/tdf3/style/reset.css
diff --git a/tdf3/style/style.css b/public/tdf3/style/style.css
similarity index 100%
rename from tdf3/style/style.css
rename to public/tdf3/style/style.css
diff --git a/tdf3/style/ufo.png b/public/tdf3/style/ufo.png
similarity index 100%
rename from tdf3/style/ufo.png
rename to public/tdf3/style/ufo.png
diff --git a/tdf3/styles-0.2.css b/public/tdf3/styles-0.2.css
similarity index 100%
rename from tdf3/styles-0.2.css
rename to public/tdf3/styles-0.2.css
diff --git a/src/_data/i18n/index.js b/src/_data/i18n/index.js
new file mode 100644
index 0000000..56ffe83
--- /dev/null
+++ b/src/_data/i18n/index.js
@@ -0,0 +1,192 @@
+module.exports = {
+ // Zeiten
+ times: {
+ full_date: {
+ de: '26./27. Juli 2025',
+ en: 'July 26-27, 2025'
+ },
+ day1: {
+ full_date: {
+ de: 'Samstag, 26. Juli 2025',
+ en: 'Saturday, July 26, 2025'
+ },
+ entry_assemblies: {
+ de: '09:00 Uhr',
+ en: '09.00 AM'
+ },
+ entry_assemblies_label: {
+ de: 'Einlass für Assembly-Area',
+ en: 'Entry for Assembly Area'
+ },
+ entry_all: {
+ de: '11:00 Uhr',
+ en: '11.00 AM'
+ },
+ entry_all_label: {
+ de: 'Einlass für alle',
+ en: 'Entry for everyone'
+ },
+ heralding_workshop: {
+ de: '12:00 Uhr',
+ en: '12.00 PM'
+ },
+ heralding_workshop_label: {
+ de: 'Einführung Herald und TV-Elfen',
+ en: 'Introduction Herald and TV Elves'
+ },
+ opening: {
+ de: '13:00 Uhr',
+ en: '1.00 PM'
+ },
+ opening_label: {
+ de: 'Eröffnung',
+ en: 'Opening'
+ },
+ schedule_program_start: {
+ de: '14:00',
+ en: '2.00 PM'
+ },
+ schedule_program_end: {
+ de: '23:00 Uhr',
+ en: '11.00 PM'
+ },
+ schedule_program_label: {
+ de: 'Programm',
+ en: 'Program'
+ },
+ nightshift_start: {
+ de: '23:00',
+ en: '11.00 PM'
+ },
+ nightshift_end: {
+ de: '09:00 Uhr',
+ en: '9.00 AM'
+ },
+ nightshift_label: {
+ de: 'Nachtschicht',
+ en: 'Nightshift'
+ },
+ },
+ day2: {
+ full_date: {
+ de: 'Sonntag, 27. Juli 2025',
+ en: 'Sunday, July 27, 2025'
+ },
+ entry_and_breakfast: {
+ de: '09:00 Uhr',
+ en: '09.00 AM'
+ },
+ entry_and_breakfast_label: {
+ de: '09:00 Uhr',
+ en: 'Entry and breakfast'
+ },
+ heralding_workshop: {
+ de: '10:00 Uhr',
+ en: '10.00 AM'
+ },
+ heralding_workshop_label: {
+ de: 'Einführung Herald und TV-Elfen',
+ en: 'Introduction Herald and TV Elves'
+ },
+ schedule_program_start: {
+ de: '11:00',
+ en: '11.00 AM'
+ },
+ schedule_program_end: {
+ de: '17:00 Uhr',
+ en: '5.00 PM'
+ },
+ schedule_program_label: {
+ de: 'Programm',
+ en: 'Program'
+ },
+ teardown: {
+ de: 'ab 17:00 Uhr',
+ en: 'from 5.00 PM'
+ },
+ teardown_label: {
+ de: 'Abbau',
+ en: 'Teardown'
+ },
+ },
+ },
+ url: {
+ tdf3_recap: {
+ de: '/tdf3/recap.html'
+ },
+ schedule: {
+ de: 'https://cfp.cttue.de/tdf4/schedule'
+ },
+ elf_system: {
+ de: 'https://elfen.cttue.de/'
+ },
+ },
+ // Navigation
+ nav: {
+ home: {
+ de: 'Hauptseite',
+ en: 'Home',
+ },
+ participate: {
+ de: 'Mitmachen',
+ en: 'Participate',
+ },
+ site_plan: {
+ de: 'Site Plan',
+ en: 'Lageplan'
+ },
+ schedule: {
+ de: 'Fahrplan',
+ en: 'Schedule'
+ },
+ elf_system: {
+ de: 'Elfensystem',
+ en: 'Elf system'
+ },
+ imprint: {
+ de: 'Impressum',
+ en: 'Legal Notice'
+ },
+ },
+ content: {
+ main_page: {
+ event: {
+ paragraph: {
+ de: 'Die Tübinger Tage der digitalen Freiheit sind ein offenes Chaos-Community-Event. Das Event richtet sich bei weitem nicht nur an Nerds, sondern an alle, die an einem Leben in Freiheit und Selbstbestimmung interessiert sind. Dazu möchten wir mit Werkzeugen zur Selbstbefähigung in Form von Workshops und Vorträgen anreizen. Man darf aber auch gerne zum Chillen, Gespräche und Blinkereien genießen vorbeikommen.',
+ en: 'The Tübingen Days of Digital Freedom are an open Chaos community event. The event is not only aimed at nerds, but also at everyone interested in a life of freedom and self-determination. To this end, we want to give you the tools for self-empowerment in the form of workshops and presentations. But you are also welcome to come just to hang-out, have conversations with others, and take a look at the blinky things.'
+ },
+ subtext: {
+ de: 'All Creatures Welcome!',
+ },
+ recap: {
+ de: 'Rückblick auf den TDF 2024',
+ en: 'Recap of the TDF 2024',
+ }
+ },
+ },
+ imprint: {
+ address_label: {
+ de: 'Anschrift',
+ en: 'Address'
+ },
+ website_label: {
+ de: 'Kontakt',
+ en: 'Contact'
+ },
+ contact: {
+ label: {
+ de: 'Im Web',
+ en: 'Online'
+ },
+ mail: {
+ de: 'Für allgemeinen Kontakt empfehlen wir eine E-Mail an mail(at)cttue.de',
+ en: 'For general inquiries, we recommend sending an email to mail(at)cttue.de '
+ },
+ register: {
+ de: 'Chaostreff Tübingen e.V. ist im Vereinsregister des Amtsgericht Stuttgart unter der Vereinsnummer VR 726042 eingetragen.',
+ en: 'Chaostreff Tübingen e.V. is registered in the association register of the Stuttgart District Court under association number VR 726042.'
+ }
+ }
+ },
+ }
+};
diff --git a/src/_data/locales.js b/src/_data/locales.js
new file mode 100644
index 0000000..8ce859f
--- /dev/null
+++ b/src/_data/locales.js
@@ -0,0 +1,12 @@
+module.exports = [
+ {
+ label: 'Deutsch',
+ code: 'de',
+ url: 'de'
+ },
+ {
+ label: 'English',
+ code: 'en',
+ url: 'en'
+ }
+];
diff --git a/src/_data/site.js b/src/_data/site.js
new file mode 100644
index 0000000..5f2aa49
--- /dev/null
+++ b/src/_data/site.js
@@ -0,0 +1,6 @@
+module.exports = {
+ title: 'cttue tdf website',
+ description: 'TDF Website',
+ url: 'https://git.cttue.de/CTT/tdf-webseite',
+ buildTime: new Date()
+};
diff --git a/src/_includes/components/language-selector.njk b/src/_includes/components/language-selector.njk
new file mode 100644
index 0000000..552d5d5
--- /dev/null
+++ b/src/_includes/components/language-selector.njk
@@ -0,0 +1,11 @@
+{# Is this ludicrous or crafty? #}
+{% set pageUrl = page.url.split('/').slice(2).join('/') %}
+
+{% if locales.length %}
+ {{ 'select_language' | i18n }}:
+
+{% endif %}
\ No newline at end of file
diff --git a/src/_includes/layouts/base.njk b/src/_includes/layouts/base.njk
new file mode 100644
index 0000000..dc2311a
--- /dev/null
+++ b/src/_includes/layouts/base.njk
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+
+
+
+ {{ title }}
+
+
+
+
+
+
+
+
+
+
+ {%- if locale == 'en' -%}
+
DE
+ {%- else -%}
+
EN
+ {%- endif-%}
+
+
+
+
+
+
+ {%- if locale == 'en' -%}
+
+ {%- else -%}
+
+ {%- endif-%}
+
+ {{ content | safe }}
+
+
+
+
+
+
diff --git a/src/_includes/layouts/imprint.njk b/src/_includes/layouts/imprint.njk
new file mode 100644
index 0000000..43db970
--- /dev/null
+++ b/src/_includes/layouts/imprint.njk
@@ -0,0 +1,25 @@
+---
+ layout: layouts/base.njk
+---
+
+
{{ 'nav.imprint' | i18n }}
+
{{ 'content.imprint.address_label' | i18n }}
+
+ Chaostreff Tübingen e. V.
+ Bei den Pferdeställen 8
+ 72072 Tübingen
+
+
+{{ 'content.imprint.website_label' | i18n }}: https://cttue.de
+
+
+{{ 'content.imprint.contact.label' | i18n }}
+
+
+{{ 'content.imprint.contact.mail' | i18n }}
+
+
+{{ 'content.imprint.contact.register' | i18n }}
+
+
diff --git a/src/_includes/layouts/mainpage.njk b/src/_includes/layouts/mainpage.njk
new file mode 100644
index 0000000..3eadece
--- /dev/null
+++ b/src/_includes/layouts/mainpage.njk
@@ -0,0 +1,171 @@
+---
+ layout: layouts/base.njk
+---
+
+
{{ 'times.full_date' | i18n }}
+
{{ 'content.main_page.event.paragraph' | i18n }}
+
+
{{ 'content.main_page.event.subtext' | i18n }}
+
+
+
+
+
Zeitplan
+
+
+
{{ 'times.day1.full_date' | i18n }}
+
+ {{ 'times.day1.entry_assemblies' | i18n }}: {{ 'times.day1.entry_assemblies_label' | i18n }}
+ {{ 'times.day1.entry_all' | i18n }}: {{ 'times.day1.entry_all_label' | i18n }}
+ {{ 'times.day1.heralding_workshop' | i18n }}: {{ 'times.day1.heralding_workshop_label' | i18n }}
+ {{ 'times.day1.opening' | i18n }}: {{ 'times.day1.opening_label' | i18n }}
+ {{ 'times.day1.schedule_program_start' | i18n }} – {{ 'times.day1.schedule_program_end' | i18n }}: {{ 'times.day1.schedule_program_label' | i18n }}
+ {{ 'times.day1.nightshift_start' | i18n }} – {{ 'times.day1.nightshift_end' | i18n }}: {{ 'times.day1.nightshift_label' | i18n }}
+
+
+
+
{{ 'times.day2.full_date' | i18n }}
+
+ {{ 'times.day2.entry_and_breakfast' | i18n }}: {{ 'times.day2.entry_and_breakfast_label' | i18n }}
+ {{ 'times.day2.heralding_workshop' | i18n }}: {{ 'times.day2.heralding_workshop_label' | i18n }}
+ {{ 'times.day2.schedule_program_start' | i18n }} – {{ 'times.day2.schedule_program_end' | i18n }}: {{ 'times.day2.schedule_program_label' | i18n }}
+ {{ 'times.day2.teardown' | i18n }}: {{ 'times.day2.teardown_label' | i18n }}
+
+
+
+
+
+
+
Programm
+
Es erwarten euch ca. 50 Vorträge und Workshops in 4 Sälen aus folgenden Themenbereichen:
+
+
+
+ Kreativität & Schönheit
+ Ethik, Politik & Gesellschaft
+
+
+
+
+ Hardware & Code
+ Digitalität & Mündigkeit
+
+
+
+
+ Vielfalt & Achtsamkeit
+ Nachhaltigkeit & Klima
+
+
+
+
+ Science & Technology
+ Vernetzung & Aktionen
+
+
+
+
+
+
+
+
macht mit!
+
Der Tag der digitalen Freiheit wird möglich durch deine Mitarbeit. Es gibt viele Möglichkeiten, wie
+ du zum Gelingen der Veranstaltung beitragen kannst. Auf der folgenden Seite kannst du mehr darüber
+ erfahren:
+
+
+
+
+
Anmelden
+
Du kannst dich für die Tübinger Tage der digitalen Freiheit anmelden, um uns bei der Planung zu
+ helfen und um auf dem Laufenden zu bleiben. Die Anmeldung ist freiwillig und kostenlos. Du kannst
+ aber eine Spende geben, um die Veranstaltung zu unterstützen.
+
+
+
+
+
+
Ort
+
Der Tag der digitalen Freiheit findet in der Westspitze Tübingen statt.
+
Eisenbahnstraße 1, 72072 Tübingen
+
Das Gebäude ist zu Fuß aus der Innenstadt in ca. 15 Minuten, vom Hauptbahnhof in ca. 10 Minuten, oder
+ von den
+ Bushaltestellen „Blaue Brücke" und „Landestheater" zu erreichen.
+
Wir treffen uns in den Räumen und auf den Flächen des Erdgeschoss und der Etagen 2, 6 und 7.
+
+
Größere
+ Karte
+ anzeigen
+
+
+
+
Veranstalter*innen
+
Der Tübinger Tag der digitalen Freiheit wird vom Chaostreff Tübingen e.V. (CTT) initiiert und
+ veranstaltet. Der Chaostreff ist ein gemeinnütziger Verein und steht inhaltlich dem Chaos Computer
+ Club e. V. nahe. Die Mitglieder treffen sich regelmäßig zum Austausch und gemeinsamen Arbeiten an
+ technischen, digitalen, kulturellen und gesellschaflichen Themen.
+
Mehr Informationen und Termine unter cttue.de .
+
+
+
+
+
+
Vorherige Events
+
Der Tag der digitalen Freiheit findet seit 2022 jährlich statt. Hier geht es zu den Seiten
+ der vorhergenden Events.
+
+
+
diff --git a/participate.html b/src/_includes/layouts/participate.njk
similarity index 75%
rename from participate.html
rename to src/_includes/layouts/participate.njk
index 83b88f4..7c73817 100644
--- a/participate.html
+++ b/src/_includes/layouts/participate.njk
@@ -1,42 +1,7 @@
-
-
-
-
-
-
-
-
- 4. Tübinger Tage der digitalen Freiheit
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+---
+ layout: layouts/base.njk
+---
+
Das Event
Der Tag der digitalen Freiheit ist ein Event organisiert aus der Chaos-Community und findet zum
vierten Mal
@@ -162,17 +127,3 @@
href="mailto:tdf@cttue.de">tdf@cttue.de anmelden.
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/site-plan.html b/src/_includes/layouts/site-plan.njk
similarity index 78%
rename from site-plan.html
rename to src/_includes/layouts/site-plan.njk
index cf3a1f5..2d4f060 100644
--- a/site-plan.html
+++ b/src/_includes/layouts/site-plan.njk
@@ -1,41 +1,7 @@
-
-
-
-
-
-
-
-
-
4. Tübinger Tage der digitalen Freiheit - Lageplan
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+---
+ layout: layouts/base.njk
+---
+
Wo ist was?
@@ -120,26 +86,26 @@
locationLinks.forEach(link => {
link.addEventListener('click', function(e) {
e.preventDefault();
-
+
// Alle Marker ausblenden
markers.forEach(marker => {
marker.classList.remove('active');
});
-
+
// Ziel-Location finden und Marker anzeigen
const targetLocation = this.getAttribute('data-target');
const targetMarker = document.querySelector(`[data-location="${targetLocation}"]`);
-
+
if (targetMarker) {
targetMarker.classList.add('active');
-
+
// Zur entsprechenden Etage scrollen
const targetFloor = this.getAttribute('href');
const targetElement = document.querySelector(targetFloor);
if (targetElement) {
targetElement.scrollIntoView({ behavior: 'smooth' });
}
-
+
// Marker nach 10 Sekunden ausblenden
setTimeout(() => {
targetMarker.classList.remove('active');
@@ -149,6 +115,3 @@
});
});
-
-
-
diff --git a/src/de/de.json b/src/de/de.json
new file mode 100644
index 0000000..b2fccf8
--- /dev/null
+++ b/src/de/de.json
@@ -0,0 +1,5 @@
+{
+ "dir": "ltr",
+ "lang": "de",
+ "locale": "de"
+}
diff --git a/src/de/imprint.njk b/src/de/imprint.njk
new file mode 100644
index 0000000..ac47fde
--- /dev/null
+++ b/src/de/imprint.njk
@@ -0,0 +1,5 @@
+---
+ title: TDF4
+ layout: layouts/imprint.njk
+ permalink: "{{ page.filePathStem | localizedPermalink(locale) }}"
+---
diff --git a/src/de/index.njk b/src/de/index.njk
new file mode 100644
index 0000000..317618c
--- /dev/null
+++ b/src/de/index.njk
@@ -0,0 +1,6 @@
+---
+ title: TDF4
+ layout: layouts/mainpage.njk
+ permalink: "{{ page.filePathStem | localizedPermalink(locale) }}"
+ pagename: index
+---
diff --git a/src/de/participate.njk b/src/de/participate.njk
new file mode 100644
index 0000000..2e119fb
--- /dev/null
+++ b/src/de/participate.njk
@@ -0,0 +1,6 @@
+---
+ title: TDF4
+ layout: layouts/participate.njk
+ permalink: "{{ page.filePathStem | localizedPermalink(locale) }}"
+ pagename: participate
+---
diff --git a/src/de/site-plan.njk b/src/de/site-plan.njk
new file mode 100644
index 0000000..02c44af
--- /dev/null
+++ b/src/de/site-plan.njk
@@ -0,0 +1,6 @@
+---
+ title: TDF4
+ layout: layouts/site-plan.njk
+ permalink: "{{ page.filePathStem | localizedPermalink(locale) }}"
+ pagename: site-plan
+---
diff --git a/src/en/en.json b/src/en/en.json
new file mode 100644
index 0000000..6a6e38c
--- /dev/null
+++ b/src/en/en.json
@@ -0,0 +1,5 @@
+{
+ "dir": "ltr",
+ "lang": "en",
+ "locale": "en"
+}
diff --git a/src/en/imprint.njk b/src/en/imprint.njk
new file mode 100644
index 0000000..ac47fde
--- /dev/null
+++ b/src/en/imprint.njk
@@ -0,0 +1,5 @@
+---
+ title: TDF4
+ layout: layouts/imprint.njk
+ permalink: "{{ page.filePathStem | localizedPermalink(locale) }}"
+---
diff --git a/src/en/index.njk b/src/en/index.njk
new file mode 100644
index 0000000..317618c
--- /dev/null
+++ b/src/en/index.njk
@@ -0,0 +1,6 @@
+---
+ title: TDF4
+ layout: layouts/mainpage.njk
+ permalink: "{{ page.filePathStem | localizedPermalink(locale) }}"
+ pagename: index
+---
diff --git a/src/en/participate.njk b/src/en/participate.njk
new file mode 100644
index 0000000..2e119fb
--- /dev/null
+++ b/src/en/participate.njk
@@ -0,0 +1,6 @@
+---
+ title: TDF4
+ layout: layouts/participate.njk
+ permalink: "{{ page.filePathStem | localizedPermalink(locale) }}"
+ pagename: participate
+---
diff --git a/src/en/site-plan.njk b/src/en/site-plan.njk
new file mode 100644
index 0000000..02c44af
--- /dev/null
+++ b/src/en/site-plan.njk
@@ -0,0 +1,6 @@
+---
+ title: TDF4
+ layout: layouts/site-plan.njk
+ permalink: "{{ page.filePathStem | localizedPermalink(locale) }}"
+ pagename: site-plan
+---