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

${md.render(content)}
` } + ); + eleventyConfig.addPairedShortcode( + "masthead", + function(content) { + return `
${md.render(content)}
` } + ); + 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: [] ---