diff --git a/.eleventy.js b/.eleventy.js
index 465eca8..537967d 100644
--- a/.eleventy.js
+++ b/.eleventy.js
@@ -2,12 +2,20 @@ const handlebarsPlugin = require("@11ty/eleventy-plugin-handlebars");
const handlebars = require('handlebars');
const sass = require("sass");
const pluginRss = require("@11ty/eleventy-plugin-rss");
+const handlebarsHelpers = require('handlebars-helpers')
+const markdownit = require('markdown-it')
+const md = markdownit()
+const htmlmin = require("html-minifier");
require('dotenv').config();
module.exports = function(eleventyConfig) {
// Passthrough episodes directory to include both markdown and audio files
eleventyConfig.addPassthroughCopy("content/episodes/*/*.mp3");
+ eleventyConfig.addPassthroughCopy("content/episodes/**/*.jpg");
+ eleventyConfig.addPassthroughCopy("content/episodes/**/*.webp");
+ eleventyConfig.addPassthroughCopy("content/episodes/**/*.png");
eleventyConfig.addPassthroughCopy("content/images/*.jpg");
+ eleventyConfig.addPassthroughCopy("content/images/*.webp");
eleventyConfig.addPassthroughCopy("content/feeds/*.jpg");
eleventyConfig.addPlugin(handlebarsPlugin);
eleventyConfig.addPlugin(pluginRss);
@@ -23,6 +31,10 @@ module.exports = function(eleventyConfig) {
// return `S${seasonNumber}E${episodeNumber}`;
});
+ handlebarsHelpers({
+ handlebars
+ })
+
eleventyConfig.addFilter("seasonEpisodeFormat", function (season, episode, separator="") {
const seasonNumber = parseInt(season, 10).toString().padStart(2, '0');
const episodeNumber = parseInt(episode, 10).toString().padStart(2, '0');
@@ -30,6 +42,40 @@ module.exports = function(eleventyConfig) {
return value;
});
+ // Shortcodes
+ eleventyConfig.addPairedShortcode(
+ "prologue",
+ function(content) { return `
Prologue ` }
+ );
+ eleventyConfig.addPairedShortcode(
+ "masthead",
+ function(content) {
+ return `${md.render(content)}${this.page.date.toLocaleDateString()} ` }
+ );
+ eleventyConfig.addPairedShortcode(
+ "headline",
+ function(content) {
+ return `
+ ${md.render(content.trim())} ` }
+ );
+ eleventyConfig.addPairedShortcode(
+ "alternateTitles",
+ function(content) { return `Alternate Titles ${md.render(content)} ` }
+ );
+
+ eleventyConfig.addTransform("htmlmin", (content, outputPath) => {
+ if (outputPath.endsWith(".html")) {
+ return htmlmin.minify(content, {
+ collapseWhitespace: true,
+ removeComments: true,
+ useShortDoctype: true,
+ });
+ }
+
+ return content;
+ });
+
+ // Register Helpers
handlebars.registerHelper('ifEquals', function(arg1, arg2, options) {
return (arg1 == arg2) ? options.fn(this) : options.inverse(this);
});
@@ -42,15 +88,14 @@ module.exports = function(eleventyConfig) {
eleventyConfig.addTemplateFormats("scss");
eleventyConfig.addExtension("scss", {
outputFileExtension: "css", // optional, default: "html"
-
// `compile` is called once per .scss file in the input directory
compile: async function (inputContent) {
- let result = sass.compileString(inputContent);
+ let result = sass.compileString(inputContent, {
+ loadPaths: ["node_modules/bootstrap/scss", ]
+ });
// This is the render function, `data` is the full data cascade
- return async (data) => {
- return result.css;
- };
+ return async (data) => result.css;
},
});
diff --git a/.gitignore b/.gitignore
index 5e17ea9..808080e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,4 +2,5 @@ node_modules
**/.obsidian
dist
*.mp3
-.env
\ No newline at end of file
+.env
+.DS_Store
diff --git a/.vscode/launch.json b/.vscode/launch.json
new file mode 100644
index 0000000..94c421a
--- /dev/null
+++ b/.vscode/launch.json
@@ -0,0 +1,33 @@
+{
+ // Use IntelliSense to learn about possible attributes.
+ // Hover to view descriptions of existing attributes.
+ // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
+ "version": "0.2.0",
+ "configurations": [
+
+
+ {
+ "type": "node",
+ "request": "launch",
+ "name": "Launch Eleventy --serve",
+ "skipFiles": [
+ "/**"
+ ],
+ "runtimeExecutable": "npx",
+ "args": ["@11ty/eleventy","--output","dist", "--serve"],
+ },
+ {
+ "type": "node",
+ "request": "launch",
+ "name": "Debug Eleventy --serve",
+ "skipFiles": [
+ "/**"
+ ],
+ "env": {
+ "DEBUG":"Eleventy*"
+ },
+ "runtimeExecutable": "npx",
+ "args": ["@11ty/eleventy", "--output", "dist", "--serve"],
+ }
+ ]
+}
\ No newline at end of file
diff --git a/.vscode/settings.json b/.vscode/settings.json
new file mode 100644
index 0000000..d12ec1c
--- /dev/null
+++ b/.vscode/settings.json
@@ -0,0 +1,6 @@
+{
+ "files.exclude": {
+ // "dist/": true
+ "**/.obsidian/": true
+ }
+}
\ No newline at end of file
diff --git a/.vscode/tasks.json b/.vscode/tasks.json
new file mode 100644
index 0000000..6c6ba63
--- /dev/null
+++ b/.vscode/tasks.json
@@ -0,0 +1,20 @@
+{
+ "version": "2.0.0",
+ "tasks": [
+ {
+ "label": "Simple Browser",
+ "command": "${input:openSimpleBrowser}",
+ "problemMatcher": []
+ }
+ ],
+ "inputs": [
+ {
+ "id": "openSimpleBrowser",
+ "type": "command",
+ "command": "simpleBrowser.show",
+ "args": [
+ "http://localhost:8081"
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/content/campaigns/campaigns.hbs b/content/campaigns/campaigns.hbs
index 64aed57..8be131c 100644
--- a/content/campaigns/campaigns.hbs
+++ b/content/campaigns/campaigns.hbs
@@ -1,21 +1,17 @@
---
-layout: "base"
+layout: "base-with-heading"
override:tags: []
---
Campaigns
\ No newline at end of file
diff --git a/content/css/s04.scss b/content/css/s04.scss
new file mode 100644
index 0000000..b0463ed
--- /dev/null
+++ b/content/css/s04.scss
@@ -0,0 +1,97 @@
+.season-4, .season-1 {
+ --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-repeat:repeat;
+ background-position:center top;
+ background-color:black;
+
+ color:#ffd54e;
+ font-size:larger;
+ div {
+ width:80%;
+ margin:-2em auto 4.5em auto;
+ transform:perspective(300px) rotateX(10deg);
+ }
+
+ h1 {
+ text-transform:uppercase;
+ text-align:center;
+ border-bottom:none;
+ font-size:inherit;
+ line-height:1.5em;
+ }
+
+ h2 {
+ text-transform:uppercase;
+ text-align:center;
+ // font-family:trade-gothic-lt-condensed-no-18;
+ padding-bottom: 8px;
+ border-bottom:solid white 1.1px;
+ font-size:1.5em;
+ }
+
+ strong {
+ text-transform: uppercase;
+ font-weight:bold;
+ padding-right:.5em;
+ font-size:1.2em
+ }
+
+ h2 {
+ text-align: center;
+ }
+
+ p {
+ text-align: justify;
+ text-align:justify;
+ margin-bottom: 1em;
+ line-height:1.35em;
+ }
+ }
+
+
+
+}
+
+#JournalSheet-JournalEntry-oAthntGlaRbGfoHK p a.content-link {
+ background: inherit;
+ text-transform: uppercase;
+ border: none;
+ font-weight: 900;
+}
+
+
+// #JournalSheet-JournalEntry-oAthntGlaRbGfoHK p a.mention,
+// #JournalSheet-JournalEntry-oAthntGlaRbGfoHK p a.entity-mention,
+// #JournalSheet-JournalEntry-oAthntGlaRbGfoHK p a.mention em,
+// #JournalSheet-JournalEntry-oAthntGlaRbGfoHK p a.entity-mention em{
+// color: inherit;
+// text-transform: uppercase;
+// font-style: inherit;
+// font-weight: 900;
+// }
+
+
+// #JournalSheet-JournalEntry-oAthntGlaRbGfoHK article p{
+// text-align:justify;
+// margin-bottom: 1em;
+// line-height:1.35em;
+// }
+
+// #JournalSheet-JournalEntry-oAthntGlaRbGfoHK article {
+// color:#ffd54e;
+// font-size:larger;
+// width:80%;
+// margin:auto;
+// transform:perspective(300px) rotateX(10deg)
+// }
\ No newline at end of file
diff --git a/content/css/s05.scss b/content/css/s05.scss
new file mode 100644
index 0000000..b0f1cb6
--- /dev/null
+++ b/content/css/s05.scss
@@ -0,0 +1,60 @@
+.season-5 {
+ --newspaper-background-texture-image: url(/images/parchment.jpg);
+ --newspaper-headline-font: 'Noticia Text';
+ --newspaper-base-font: 'EB Garamond';
+ --newspaper-name-font: 'UnifrakturCook';
+
+ section.prologue {
+ font-family: var(--newspaper-base-font);
+ padding: 20px;
+ border: black solid 1 px;
+ border-radius: 10px;
+ background: var(--newspaper-background-texture-image);
+ text-align: justify;
+
+ p {
+ columns: 2;
+ }
+
+ h1, h2, h3 {
+ text-align: center;
+ }
+
+ // Newspaper Name
+ h1:first-child {
+ text-align: center;
+ font-family: var(--newspaper-name-font);
+ margin: inherit;
+ column-count: 1;
+ font-size: 5em;
+ margin: 8px;
+ text-align: center;
+ }
+
+ // Newspaper Tagline
+ h1:first-child + p {
+ columns: 1;
+ text-align: center;
+ font-style: italic;
+ border: solid;
+ margin: 0;
+ margin-bottom: 1em;
+ }
+
+ // Headline
+ h1 ~ h1 {
+ font-weight:bold;
+ text-transform: uppercase;
+ }
+
+ p:has(img) {
+ columns: 1;
+ text-align: center;
+ }
+ img {
+ height:400px;
+ }
+
+ }
+
+}
\ No newline at end of file
diff --git a/content/css/style.scss b/content/css/style.scss
index aa39693..8d4be9c 100644
--- a/content/css/style.scss
+++ b/content/css/style.scss
@@ -1,13 +1,20 @@
$primary-color: #333;
$secondary-color: #f0f0f0;
-
+@import "bootstrap";
+@import url("https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css");
@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');
+@import url('https://fonts.googleapis.com/css2?family=Oswald:wght@200..700&display=swap');
body {
- font-family: Helvetica, sans-serif, sans-serif;
+ .navbar-brand {
+ font-family: Oswald;
+ text-transform: uppercase;
+ }
+
+ font-family: "Libre Franklin", Helvetica, sans-serif, sans-serif;
background-color: $secondary-color;
color: $primary-color;
@@ -62,103 +69,6 @@ body {
a.active {
}
}
-
- h1 {
- text-align: center;
- }
-
- &.season-5 {
- --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);
-
- 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%;
- }
- h1 {
- column-count: 1;
- font-family: var(--newspaper-name-font);
- font-size: 5em;
- margin: 8px;
- text-align: center;
- }
- p {
- 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;
- }
-
- article p {
- text-align: justify;
- }
- }
}
header {
diff --git a/content/data/site.js b/content/data/site.js
index 295992c..2ef498b 100644
--- a/content/data/site.js
+++ b/content/data/site.js
@@ -1,6 +1,7 @@
require('dotenv').config();
module.exports = function () {
return {
- url: process.env.SITE_URL
+ url: process.env.SITE_URL,
+ cdn: process.env.CDN_URL
};
}
\ No newline at end of file
diff --git a/content/data/site.json b/content/data/site.json
index ac27475..b963154 100644
--- a/content/data/site.json
+++ b/content/data/site.json
@@ -3,5 +3,5 @@
"name": "Anthony Correa",
"email": "a@correa.co"
},
- "url": "http://localhost:8080"
+ "title": "Crew of the Kahuna"
}
\ No newline at end of file
diff --git a/content/episodes/seasons.hbs b/content/episodes/seasons.hbs
index 7255a36..243f92b 100644
--- a/content/episodes/seasons.hbs
+++ b/content/episodes/seasons.hbs
@@ -1,11 +1,12 @@
---
-layout: "base"
+title: Seasons
+layout: "base-with-heading"
permalink: "/seasons/"
override:tags: []
---
- {{#each collections.season}}
+ {{#each (sort collections.season)}}
{{{content}}}
diff --git a/content/index.md b/content/index.md
index 0c66c64..6c72f0a 100644
--- a/content/index.md
+++ b/content/index.md
@@ -1,4 +1,8 @@
---
layout: index
+title: Crew of the Kahuna
+heroImage: /images/ffgsw-dice.webp
+links:
+ podcastRss: /feeds/podcast.xml
---
We are a group of adventurers, storytellers, and dice-rolling enthusiasts who gather weekly to dive into epic campaigns and tell stories together. Whether it's battling ancient dragons, solving mysterious puzzles, or navigating treacherous political intrigues, we bring our characters to life and make unforgettable memories!
\ No newline at end of file
diff --git a/layouts/base-with-heading.hbs b/layouts/base-with-heading.hbs
new file mode 100644
index 0000000..4859a1d
--- /dev/null
+++ b/layouts/base-with-heading.hbs
@@ -0,0 +1,9 @@
+---
+layout: base
+---
+
+
+
{{title}}
+
+
+{{{content}}}
\ No newline at end of file
diff --git a/layouts/base.hbs b/layouts/base.hbs
index 3ebd800..e9cfd85 100644
--- a/layouts/base.hbs
+++ b/layouts/base.hbs
@@ -3,20 +3,30 @@
{{#if title }}{{ title }}{{else}}{{ site.title }}{{/if}} - {{ site.name }}
+ {{#each stylesheets}}
+
+ {{/each}}
-