2024-11-11
This commit is contained in:
@@ -5,7 +5,8 @@ const pluginRss = require("@11ty/eleventy-plugin-rss");
|
||||
|
||||
module.exports = function(eleventyConfig) {
|
||||
// Passthrough episodes directory to include both markdown and audio files
|
||||
eleventyConfig.addPassthroughCopy("episodes/*/*.mp3");
|
||||
eleventyConfig.addPassthroughCopy("content/episodes/*/*.mp3");
|
||||
eleventyConfig.addPassthroughCopy("content/images/*.jpg");
|
||||
eleventyConfig.addPlugin(handlebarsPlugin);
|
||||
eleventyConfig.addPlugin(pluginRss);
|
||||
|
||||
|
||||
16
content/campaigns/crew-of-the-kahuna.md
Normal file
16
content/campaigns/crew-of-the-kahuna.md
Normal file
@@ -0,0 +1,16 @@
|
||||
---
|
||||
title: Crew of the Kahuna
|
||||
layout: campaign
|
||||
tags: campaign
|
||||
system:
|
||||
name: FFG Star Wars
|
||||
seasons:
|
||||
- 1
|
||||
- 4
|
||||
---
|
||||
|
||||
It is a dark time for the galaxy. Striking from their hidden base, the Rebel Alliance has destroyed the evil GALACTIC EMPIRE's powerful Death Star. Now, Imperial forces strike back, throwing the galaxy into war.
|
||||
|
||||
In the midst of conflict, countless planets suffer under Imperial tyranny. Many flee opression to build new lives beyond the bounds of civilization.
|
||||
|
||||
On the edge of the Empire, these renegades struggle to survive and remain free in the midst of ongoing turmoil....
|
||||
16
content/campaigns/junkfort-boys.md
Normal file
16
content/campaigns/junkfort-boys.md
Normal file
@@ -0,0 +1,16 @@
|
||||
---
|
||||
title: Junk Fort Boys
|
||||
layout: campaign
|
||||
tags: campaign
|
||||
system:
|
||||
name: Blades in the Dark
|
||||
seasons:
|
||||
- 3
|
||||
- 5
|
||||
---
|
||||
|
||||
In the electrified, shadowy streets of Doskvol, the Junk Fort Boys—a distinctive crew of eccentrics—tackle a series of misadventures.
|
||||
|
||||
The team includes Squish, a formidable fighter known for his culinary misadventures; Djuckles, a tinkerer with a knack for improvisation and occasional nut-punching solutions; and the Captain, an avid reader and drinker with a penchant for the occasional explosive.
|
||||
|
||||
Together, they embark on daring heists and supernatural encounters across haunted ships, arcane academies, and high-society parties, often dealing with cursed artifacts and ghostly adversaries. Their dynamic headquarters evolves from a makeshift fort to a floating garbage barge, reflecting their chaotic lifestyle and inventive survival tactics. Through their escapades, they not only explore the mystical and perilous corners of Doskvol but also navigate the depths of their camaraderie and individual quests for purpose, all while maintaining a humorous twist on their unconventional problem-solving methods.
|
||||
10
content/campaigns/rick-and-morty.md
Normal file
10
content/campaigns/rick-and-morty.md
Normal file
@@ -0,0 +1,10 @@
|
||||
---
|
||||
title: D&D vs. Rick and Morty
|
||||
layout: campaign
|
||||
tags: campaign
|
||||
system:
|
||||
name: Dungeons and Dragons
|
||||
seasons:
|
||||
- 2
|
||||
---
|
||||
When Morty sees a cute girl at school playing Dungeons & Dragons, he asks Rick to show him the ropes, only to discover that his grandfather is a veteran gamer. Next thing he knows, the entire family has been pulled into a campaign that escalates from virtual D&D simulations to alternate universes governed by the rules of the game. And as it turns out, Rick isn't the only one who knows his way around a d20.
|
||||
@@ -4,6 +4,7 @@ $secondary-color: #f0f0f0;
|
||||
@import url('https://fonts.googleapis.com/css2?family=Noticia+Text:ital,wght@0,400;0,700;1,400;1,700&display=swap');
|
||||
@import url('https://fonts.googleapis.com/css2?family=UnifrakturCook:wght@700&display=swap');
|
||||
@import url('https://fonts.googleapis.com/css2?family=EB+Garamond:ital,wght@0,400..800;1,400..800&display=swap');
|
||||
@import url('https://fonts.googleapis.com/css2?family=Didact+Gothic&family=Libre+Franklin:ital,wght@0,100..900;1,100..900&display=swap');
|
||||
|
||||
body {
|
||||
font-family: Helvetica, sans-serif, sans-serif;
|
||||
@@ -67,14 +68,33 @@ body {
|
||||
}
|
||||
|
||||
&.season-5 {
|
||||
--newspaper-background-texture-image: url(../textures/parchment.jpg);
|
||||
--newspaper-background-texture-image: url(../images/parchment.jpg);
|
||||
--newspaper-headline-font: 'Noticia Text';
|
||||
--newspaper-base-font: 'EB Garamond';
|
||||
--newspaper-name-font: 'UnifrakturCook';
|
||||
font-family: var(--newspaper-base-font);
|
||||
hgroup {
|
||||
|
||||
section.prologue {
|
||||
padding: 20px;
|
||||
margin: 20px;
|
||||
border: black solid 1 px;
|
||||
border-radius: 10px;
|
||||
background: var(--newspaper-background-texture-image);
|
||||
background-color: green;
|
||||
}
|
||||
|
||||
hgroup{
|
||||
h1 {
|
||||
text-transform: uppercase;
|
||||
margin: inherit;
|
||||
}
|
||||
h2 {
|
||||
margin: inherit;
|
||||
}
|
||||
&.masthead {
|
||||
text-align: center;
|
||||
h1, h2 {
|
||||
text-transform: inherit;
|
||||
border-bottom: 0px;
|
||||
font-family: var(--newspaper-headline-font);
|
||||
line-height: 85%;
|
||||
@@ -90,6 +110,47 @@ body {
|
||||
font-style: italic;
|
||||
}
|
||||
}
|
||||
}
|
||||
h2 {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
article p {
|
||||
text-align: justify;
|
||||
}
|
||||
}
|
||||
|
||||
&.season-4 {
|
||||
--newspaper-background-texture-image: url(../images/starwars.jpg);
|
||||
--newspaper-headline-font: 'Noticia Text';
|
||||
--newspaper-base-font: 'EB Garamond';
|
||||
--newspaper-name-font: 'UnifrakturCook';
|
||||
font-family: "Libre Franklin";
|
||||
|
||||
section.prologue {
|
||||
padding: 20px;
|
||||
margin: 20px;
|
||||
border: black solid 1 px;
|
||||
border-radius: 10px;
|
||||
background: var(--newspaper-background-texture-image);
|
||||
background-color: black;
|
||||
color: yellow;
|
||||
}
|
||||
|
||||
hgroup{
|
||||
text-align: center;
|
||||
text-transform: uppercase;
|
||||
h1 {
|
||||
margin: inherit;
|
||||
}
|
||||
h2 {
|
||||
margin: inherit;
|
||||
}
|
||||
|
||||
}
|
||||
strong {
|
||||
text-transform: uppercase;
|
||||
}
|
||||
h2 {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
6
content/data/site.js
Normal file
6
content/data/site.js
Normal file
@@ -0,0 +1,6 @@
|
||||
require('dotenv').config();
|
||||
module.exports = function () {
|
||||
return {
|
||||
url: process.env.SITE_URL
|
||||
};
|
||||
}
|
||||
47
content/feeds/full.njk
Normal file
47
content/feeds/full.njk
Normal file
@@ -0,0 +1,47 @@
|
||||
---
|
||||
permalink: /feeds/full.xml
|
||||
eleventyExcludeFromCollections: true
|
||||
metadata:
|
||||
title: Crew of the Kahuna
|
||||
subtitle: A FFG Star Wars RPG Story
|
||||
description: This is an RPG podcast.
|
||||
language: en
|
||||
categories:
|
||||
- Fiction
|
||||
- Comedy
|
||||
- Lesiure
|
||||
- Games
|
||||
---
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xml:base="{{ site.url | addPathPrefixToFullUrl }}" xmlns:atom="http://www.w3.org/2005/Atom">
|
||||
<channel>
|
||||
<title>{{ metadata.title }}</title>
|
||||
<link>{{ site.url | addPathPrefixToFullUrl }}</link>
|
||||
<atom:link href="{{ permalink | htmlBaseUrl(site.url) }}" rel="self" type="application/rss+xml" />
|
||||
<description>{{ metadata.description }}</description>
|
||||
<language>{{ metadata.language or page.lang }}</language>
|
||||
<itunes:subtitle>{{metadata.subtitle}}</itunes:subtitle>
|
||||
<itunes:author>{{site.author.name}}</itunes:author>
|
||||
{%- for category in metadata.categories %}
|
||||
<itunes:category text="{{category}}"/>
|
||||
{%- endfor %}
|
||||
<itunes:owner>
|
||||
<itunes:name>{{ site.author.name }}</itunes:name>
|
||||
<itunes:email>{{ site.author.email }}</itunes:email>
|
||||
</itunes:owner>
|
||||
<generator>
|
||||
{{eleventy.generator}}
|
||||
</generator>
|
||||
{%- for post in collections.episode | reverse %}
|
||||
{%- set absolutePostUrl = post.url | htmlBaseUrl(site.url) %}
|
||||
{% if post.data.podcast %}<item>
|
||||
<title>{{ post.data.title }}</title>
|
||||
<link>{{ absolutePostUrl }}</link>
|
||||
<description>{{ post.content | renderTransforms(post.data.page, site.url) }}</description>
|
||||
<pubDate>{{ post.date.toUTCString() | dateToRfc822 }}</pubDate>
|
||||
<guid>{{ absolutePostUrl }}</guid>
|
||||
<enclosure url="{{ post | podcastUrl | absoluteUrl(site.url) }}" type="audio/mpeg"/>
|
||||
</item>{% endif %}
|
||||
{%- endfor %}
|
||||
</channel>
|
||||
</rss>
|
||||
79
content/feeds/podcast.11ty.js
Normal file
79
content/feeds/podcast.11ty.js
Normal file
@@ -0,0 +1,79 @@
|
||||
const { Podcast } = require('podcast');
|
||||
const music_metadata = require('music-metadata');
|
||||
const fs = require('fs');
|
||||
|
||||
async function getMp3Duration(filePath) {
|
||||
try {
|
||||
const metadata = await music_metadata.parseFile(filePath);
|
||||
console.log('Duration:', metadata.format.duration, 'seconds');
|
||||
return metadata.format.duration; // Duration in seconds
|
||||
} catch (error) {
|
||||
console.error('Error reading file:', error.message);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
class PodcastFeed {
|
||||
data() {
|
||||
return {
|
||||
// Writes to "/my-permalink/hello/index.html"
|
||||
permalink: (data) => `${data.page.filePathStem}.xml`,
|
||||
};
|
||||
}
|
||||
|
||||
async render(data) {
|
||||
const feed = new Podcast({
|
||||
title: 'title',
|
||||
description: 'description',
|
||||
feedUrl: `${data.site.url}${data.page.filePathStem}.xml`,
|
||||
siteUrl: data.site.url,
|
||||
imageUrl: 'http://example.com/icon.png',
|
||||
author: `${data.site.author.name}`,
|
||||
copyright: '2013 Dylan Greene',
|
||||
language: 'en',
|
||||
categories: ['Category 1','Category 2','Category 3'],
|
||||
pubDate: 'May 20, 2012 04:00:00 GMT',
|
||||
ttl: 60,
|
||||
itunesAuthor: `${data.site.author.name}`,
|
||||
itunesSubtitle: 'I am a sub title',
|
||||
itunesSummary: 'I am a summary',
|
||||
itunesOwner: { name: `${data.site.author.name}`, email: `${data.site.author.email}` },
|
||||
itunesExplicit: false,
|
||||
itunesCategory: [{
|
||||
text: 'Entertainment',
|
||||
subcats: [{
|
||||
text: 'Television'
|
||||
}]
|
||||
}],
|
||||
itunesImage: 'http://example.com/image.png'
|
||||
});
|
||||
|
||||
data.collections.episode.forEach(episode=>{
|
||||
const episode_data = episode.data
|
||||
const zero_pad_season = episode_data.season.toString().padStart(2, '0')
|
||||
// const duration = getMp3Duration(`../episodes/s${zero_pad_season}/s${zero_pad_season}e${episode_data.episode}.mp3`)
|
||||
/* loop over data and add to feed */
|
||||
feed.addItem({
|
||||
title: `S${zero_pad_season}E${episode_data.episode}: ${episode_data.title}`,
|
||||
description: episode.content,
|
||||
url: episode.url, // link to the item
|
||||
guid: episode.url, // optional - defaults to url
|
||||
categories: episode_data.categories,
|
||||
author: data.site.author.name,
|
||||
date: episode_data.date, // any format that js Date can parse.
|
||||
// enclosure : {url:`${data.site.url}/episodes/s${zero_pad_season}/s${zero_pad_season}e${episode_data.episode}.mp3`}, // optional enclosure
|
||||
enclosure : {url:`https://cdn.localhost/podcast/s${zero_pad_season}e${episode_data.episode}.mp3`}, // optional enclosure
|
||||
itunesAuthor: data.site.author,
|
||||
itunesExplicit: episode_data.itunesExplicit,
|
||||
// itunesDuration: duration,
|
||||
});
|
||||
})
|
||||
|
||||
|
||||
// cache the xml to send to clients
|
||||
const xml = feed.buildXml();
|
||||
return xml
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = PodcastFeed
|
||||
BIN
content/images/parchment.jpg
Normal file
BIN
content/images/parchment.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 144 KiB |
BIN
content/images/starwars.jpg
Normal file
BIN
content/images/starwars.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 165 KiB |
9
content/podcast.md
Normal file
9
content/podcast.md
Normal file
@@ -0,0 +1,9 @@
|
||||
---
|
||||
layout: podcast
|
||||
seasons:
|
||||
- s01
|
||||
- s05
|
||||
campaigns:
|
||||
- junkfort-boys
|
||||
- crew-of-the-kahuna
|
||||
---
|
||||
@@ -2,16 +2,16 @@
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>{{#if title }}{{ title }}{{else}}{{ site.title }}{{/if}} - {{ site.name }}</title>
|
||||
<link rel="stylesheet" href="/css/style.css">
|
||||
<link rel="stylesheet" href="{{site.url}}/css/style.css">
|
||||
</head>
|
||||
<body class="{{{bodyClasses}}}">
|
||||
<header>
|
||||
<div>rpg.ascorrea.com</div>
|
||||
<nav>
|
||||
<ul>
|
||||
<li><a href="/">Home</a></li>
|
||||
<li><a href="/campaigns">Campaigns</a></li>
|
||||
<li><a href="/seasons">Seasons</a></li>
|
||||
<li><a href="{{site.url}}">Home</a></li>
|
||||
<li><a href="./campaigns">Campaigns</a></li>
|
||||
<li><a href="./seasons">Seasons</a></li>
|
||||
</ul>
|
||||
</nav>
|
||||
</header>
|
||||
|
||||
226
package-lock.json
generated
226
package-lock.json
generated
@@ -12,7 +12,10 @@
|
||||
"@11ty/eleventy-navigation": "^0.3.5",
|
||||
"@11ty/eleventy-plugin-handlebars": "^1.0.0",
|
||||
"@11ty/eleventy-plugin-rss": "^2.0.2",
|
||||
"dotenv": "^16.4.5",
|
||||
"markdown-it": "^14.1.0",
|
||||
"music-metadata": "^10.5.1",
|
||||
"podcast": "^2.0.1",
|
||||
"sass": "^1.80.3"
|
||||
}
|
||||
},
|
||||
@@ -383,6 +386,16 @@
|
||||
"url": "https://opencollective.com/parcel"
|
||||
}
|
||||
},
|
||||
"node_modules/@sec-ant/readable-stream": {
|
||||
"version": "0.4.1",
|
||||
"resolved": "https://registry.npmjs.org/@sec-ant/readable-stream/-/readable-stream-0.4.1.tgz",
|
||||
"integrity": "sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg=="
|
||||
},
|
||||
"node_modules/@tokenizer/token": {
|
||||
"version": "0.3.0",
|
||||
"resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz",
|
||||
"integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A=="
|
||||
},
|
||||
"node_modules/argparse": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
|
||||
@@ -431,6 +444,14 @@
|
||||
"url": "https://paulmillr.com/funding/"
|
||||
}
|
||||
},
|
||||
"node_modules/content-type": {
|
||||
"version": "1.0.5",
|
||||
"resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
|
||||
"integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
|
||||
"engines": {
|
||||
"node": ">= 0.6"
|
||||
}
|
||||
},
|
||||
"node_modules/debug": {
|
||||
"version": "4.3.7",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
|
||||
@@ -557,6 +578,17 @@
|
||||
"url": "https://github.com/fb55/domutils?sponsor=1"
|
||||
}
|
||||
},
|
||||
"node_modules/dotenv": {
|
||||
"version": "16.4.5",
|
||||
"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz",
|
||||
"integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==",
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://dotenvx.com"
|
||||
}
|
||||
},
|
||||
"node_modules/entities": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz",
|
||||
@@ -629,6 +661,23 @@
|
||||
"reusify": "^1.0.4"
|
||||
}
|
||||
},
|
||||
"node_modules/file-type": {
|
||||
"version": "19.6.0",
|
||||
"resolved": "https://registry.npmjs.org/file-type/-/file-type-19.6.0.tgz",
|
||||
"integrity": "sha512-VZR5I7k5wkD0HgFnMsq5hOsSc710MJMu5Nc5QYsbe38NN5iPV/XTObYLc/cpttRTf6lX538+5uO1ZQRhYibiZQ==",
|
||||
"dependencies": {
|
||||
"get-stream": "^9.0.1",
|
||||
"strtok3": "^9.0.1",
|
||||
"token-types": "^6.0.0",
|
||||
"uint8array-extras": "^1.3.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sindresorhus/file-type?sponsor=1"
|
||||
}
|
||||
},
|
||||
"node_modules/fill-range": {
|
||||
"version": "7.1.1",
|
||||
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
|
||||
@@ -666,6 +715,21 @@
|
||||
"url": "https://github.com/sponsors/ljharb"
|
||||
}
|
||||
},
|
||||
"node_modules/get-stream": {
|
||||
"version": "9.0.1",
|
||||
"resolved": "https://registry.npmjs.org/get-stream/-/get-stream-9.0.1.tgz",
|
||||
"integrity": "sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==",
|
||||
"dependencies": {
|
||||
"@sec-ant/readable-stream": "^0.4.1",
|
||||
"is-stream": "^4.0.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/glob-parent": {
|
||||
"version": "5.1.2",
|
||||
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
|
||||
@@ -778,6 +842,25 @@
|
||||
"node": ">= 6"
|
||||
}
|
||||
},
|
||||
"node_modules/ieee754": {
|
||||
"version": "1.2.1",
|
||||
"resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
|
||||
"integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
|
||||
"funding": [
|
||||
{
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/feross"
|
||||
},
|
||||
{
|
||||
"type": "patreon",
|
||||
"url": "https://www.patreon.com/feross"
|
||||
},
|
||||
{
|
||||
"type": "consulting",
|
||||
"url": "https://feross.org/support"
|
||||
}
|
||||
]
|
||||
},
|
||||
"node_modules/immutable": {
|
||||
"version": "4.3.7",
|
||||
"resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.7.tgz",
|
||||
@@ -815,6 +898,17 @@
|
||||
"node": ">=0.12.0"
|
||||
}
|
||||
},
|
||||
"node_modules/is-stream": {
|
||||
"version": "4.0.1",
|
||||
"resolved": "https://registry.npmjs.org/is-stream/-/is-stream-4.0.1.tgz",
|
||||
"integrity": "sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==",
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/linkify-it": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz",
|
||||
@@ -860,6 +954,14 @@
|
||||
"resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz",
|
||||
"integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w=="
|
||||
},
|
||||
"node_modules/media-typer": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz",
|
||||
"integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==",
|
||||
"engines": {
|
||||
"node": ">= 0.8"
|
||||
}
|
||||
},
|
||||
"node_modules/merge2": {
|
||||
"version": "1.4.1",
|
||||
"resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
|
||||
@@ -880,6 +982,25 @@
|
||||
"node": ">=8.6"
|
||||
}
|
||||
},
|
||||
"node_modules/mime-db": {
|
||||
"version": "1.25.0",
|
||||
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.25.0.tgz",
|
||||
"integrity": "sha512-5k547tI4Cy+Lddr/hdjNbBEWBwSl8EBc5aSdKvedav8DReADgWJzcYiktaRIw3GtGC1jjwldXtTzvqJZmtvC7w==",
|
||||
"engines": {
|
||||
"node": ">= 0.6"
|
||||
}
|
||||
},
|
||||
"node_modules/mime-types": {
|
||||
"version": "2.1.13",
|
||||
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.13.tgz",
|
||||
"integrity": "sha512-ryBDp1Z/6X90UvjUK3RksH0IBPM137T7cmg4OgD5wQBojlAiUwuok0QeELkim/72EtcYuNlmbkrcGuxj3Kl0YQ==",
|
||||
"dependencies": {
|
||||
"mime-db": "~1.25.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.6"
|
||||
}
|
||||
},
|
||||
"node_modules/minimist": {
|
||||
"version": "1.2.8",
|
||||
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
|
||||
@@ -893,6 +1014,34 @@
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
|
||||
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
|
||||
},
|
||||
"node_modules/music-metadata": {
|
||||
"version": "10.5.1",
|
||||
"resolved": "https://registry.npmjs.org/music-metadata/-/music-metadata-10.5.1.tgz",
|
||||
"integrity": "sha512-lrBqOlhgAlqzBkqEMiqnVaCXwfQBkid8eXborPVceYv/t4lfXN3DiCBHed3fu+5kpqpaAez/rn3/PiT/fCYU4g==",
|
||||
"funding": [
|
||||
{
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/Borewit"
|
||||
},
|
||||
{
|
||||
"type": "buymeacoffee",
|
||||
"url": "https://buymeacoffee.com/borewit"
|
||||
}
|
||||
],
|
||||
"dependencies": {
|
||||
"@tokenizer/token": "^0.3.0",
|
||||
"content-type": "^1.0.5",
|
||||
"debug": "^4.3.7",
|
||||
"file-type": "^19.6.0",
|
||||
"media-typer": "^1.1.0",
|
||||
"strtok3": "^9.0.1",
|
||||
"token-types": "^6.0.0",
|
||||
"uint8array-extras": "^1.4.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=16.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/neo-async": {
|
||||
"version": "2.6.2",
|
||||
"resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
|
||||
@@ -937,6 +1086,18 @@
|
||||
"resolved": "https://registry.npmjs.org/parse-srcset/-/parse-srcset-1.0.2.tgz",
|
||||
"integrity": "sha512-/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q=="
|
||||
},
|
||||
"node_modules/peek-readable": {
|
||||
"version": "5.3.1",
|
||||
"resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-5.3.1.tgz",
|
||||
"integrity": "sha512-GVlENSDW6KHaXcd9zkZltB7tCLosKB/4Hg0fqBJkAoBgYG2Tn1xtMgXtSUuMU9AK/gCm/tTdT8mgAeF4YNeeqw==",
|
||||
"engines": {
|
||||
"node": ">=14.16"
|
||||
},
|
||||
"funding": {
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/Borewit"
|
||||
}
|
||||
},
|
||||
"node_modules/picomatch": {
|
||||
"version": "2.3.1",
|
||||
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
|
||||
@@ -948,6 +1109,14 @@
|
||||
"url": "https://github.com/sponsors/jonschlinkert"
|
||||
}
|
||||
},
|
||||
"node_modules/podcast": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/podcast/-/podcast-2.0.1.tgz",
|
||||
"integrity": "sha512-TWXe/zVziwJNksAn7RLkSre+Z6VQgbs/+gC7qQCKdkyw0hv2hdFGOY9rHgKqa4LI+UP+yZBa6Wr+b9a9vrYDYQ==",
|
||||
"dependencies": {
|
||||
"rss": "^1.2.2"
|
||||
}
|
||||
},
|
||||
"node_modules/posthtml": {
|
||||
"version": "0.16.6",
|
||||
"resolved": "https://registry.npmjs.org/posthtml/-/posthtml-0.16.6.tgz",
|
||||
@@ -1030,6 +1199,15 @@
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/rss": {
|
||||
"version": "1.2.2",
|
||||
"resolved": "https://registry.npmjs.org/rss/-/rss-1.2.2.tgz",
|
||||
"integrity": "sha512-xUhRTgslHeCBeHAqaWSbOYTydN2f0tAzNXvzh3stjz7QDhQMzdgHf3pfgNIngeytQflrFPfy6axHilTETr6gDg==",
|
||||
"dependencies": {
|
||||
"mime-types": "2.1.13",
|
||||
"xml": "1.0.1"
|
||||
}
|
||||
},
|
||||
"node_modules/run-parallel": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
|
||||
@@ -1101,6 +1279,22 @@
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/strtok3": {
|
||||
"version": "9.0.1",
|
||||
"resolved": "https://registry.npmjs.org/strtok3/-/strtok3-9.0.1.tgz",
|
||||
"integrity": "sha512-ERPW+XkvX9W2A+ov07iy+ZFJpVdik04GhDA4eVogiG9hpC97Kem2iucyzhFxbFRvQ5o2UckFtKZdp1hkGvnrEw==",
|
||||
"dependencies": {
|
||||
"@tokenizer/token": "^0.3.0",
|
||||
"peek-readable": "^5.3.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=16"
|
||||
},
|
||||
"funding": {
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/Borewit"
|
||||
}
|
||||
},
|
||||
"node_modules/to-regex-range": {
|
||||
"version": "5.0.1",
|
||||
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
|
||||
@@ -1112,6 +1306,22 @@
|
||||
"node": ">=8.0"
|
||||
}
|
||||
},
|
||||
"node_modules/token-types": {
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/token-types/-/token-types-6.0.0.tgz",
|
||||
"integrity": "sha512-lbDrTLVsHhOMljPscd0yitpozq7Ga2M5Cvez5AjGg8GASBjtt6iERCAJ93yommPmz62fb45oFIXHEZ3u9bfJEA==",
|
||||
"dependencies": {
|
||||
"@tokenizer/token": "^0.3.0",
|
||||
"ieee754": "^1.2.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=14.16"
|
||||
},
|
||||
"funding": {
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/Borewit"
|
||||
}
|
||||
},
|
||||
"node_modules/uc.micro": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz",
|
||||
@@ -1129,10 +1339,26 @@
|
||||
"node": ">=0.8.0"
|
||||
}
|
||||
},
|
||||
"node_modules/uint8array-extras": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/uint8array-extras/-/uint8array-extras-1.4.0.tgz",
|
||||
"integrity": "sha512-ZPtzy0hu4cZjv3z5NW9gfKnNLjoz4y6uv4HlelAjDK7sY/xOkKZv9xK/WQpcsBB3jEybChz9DPC2U/+cusjJVQ==",
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/wordwrap": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
|
||||
"integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q=="
|
||||
},
|
||||
"node_modules/xml": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz",
|
||||
"integrity": "sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw=="
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,8 @@
|
||||
"description": "A static site generator",
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
"build": "npx @11ty/eleventy",
|
||||
"serve": "npx @11ty/eleventy --serve",
|
||||
"test": "echo \"Error: no test specified\" && exit 1"
|
||||
},
|
||||
"keywords": [],
|
||||
@@ -13,7 +15,10 @@
|
||||
"@11ty/eleventy-navigation": "^0.3.5",
|
||||
"@11ty/eleventy-plugin-handlebars": "^1.0.0",
|
||||
"@11ty/eleventy-plugin-rss": "^2.0.2",
|
||||
"dotenv": "^16.4.5",
|
||||
"markdown-it": "^14.1.0",
|
||||
"music-metadata": "^10.5.1",
|
||||
"podcast": "^2.0.1",
|
||||
"sass": "^1.80.3"
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user