diff --git a/eleventy.config.js b/eleventy.config.js
index 3102604..f05c8e3 100644
--- a/eleventy.config.js
+++ b/eleventy.config.js
@@ -1,7 +1,6 @@
import fs from 'node:fs';
import { env } from 'node:process';
import { eleventyImageTransformPlugin } from '@11ty/eleventy-img';
-import { feedPlugin } from '@11ty/eleventy-plugin-rss';
import Image from '@11ty/eleventy-img';
import eleventyPluginCiu from '@alexcarpenter/eleventy-plugin-caniuse';
import eleventyPluginEmbedEverything from 'eleventy-plugin-embed-everything';
@@ -12,6 +11,7 @@ import eleventyPluginNavigation from '@11ty/eleventy-navigation';
import eleventyPluginOgImage from 'eleventy-plugin-og-image';
import eleventyPluginReadingTime from '@myxotod/eleventy-plugin-readingtime';
import eleventyPluginRobotsTxt from 'eleventy-plugin-robotstxt';
+import eleventyPluginRss from '@11ty/eleventy-plugin-rss';
import eleventyPluginSyntaxHighlight from '@11ty/eleventy-plugin-syntaxhighlight';
import markdownIt from 'markdown-it';
import markdownItAbbr from 'markdown-it-abbr';
@@ -22,9 +22,24 @@ import markdownItDeflist from 'markdown-it-deflist';
import markdownItFootnote from 'markdown-it-footnote';
import markdownItImageFigures from 'markdown-it-image-figures';
-const MARKDOWNIT_OPTIONS = { html: true, linkify: true, typographer: true };
Image.concurrency = 4;
+const urlFormat = ({ src, width, format }) => {
+ const baseUrl = `https://img.sebin-nyshkim.net/i`;
+ const imgUuid = src.match(/\/([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})/);
+ const imgFormat = format === 'jpeg' ? 'jpg' : format;
+
+ return `${baseUrl}/${imgUuid[1]}.${imgFormat}?width=${width}`;
+};
+
+const MARKDOWNIT_OPTIONS = { html: true, linkify: true, typographer: true };
+const ELEVENTY_IMAGE_DEFAULTS = {
+ formats: ['webp', 'auto'],
+ urlPath: '/img/',
+ outputDir: './public/img/',
+ urlFormat
+};
+
export default async function (eleventyConfig) {
eleventyConfig.addPassthroughCopy('./src/css/prism.css');
eleventyConfig.addWatchTarget('./src/css/');
@@ -32,9 +47,6 @@ export default async function (eleventyConfig) {
eleventyConfig.addPassthroughCopy('./src/fonts/');
eleventyConfig.addWatchTarget('./src/fonts/');
- eleventyConfig.addPassthroughCopy('./src/img/sebin.png');
- eleventyConfig.addWatchTarget('./src/img/sebin.png');
-
eleventyConfig.addCollection('posts', (collection) =>
process.env.ELEVENTY_PRODUCTION
? collection.getFilteredByGlob('./src/posts/*.md')
@@ -90,37 +102,16 @@ export default async function (eleventyConfig) {
}
});
eleventyConfig.addPlugin(eleventyImageTransformPlugin, {
+ ...ELEVENTY_IMAGE_DEFAULTS,
extensions: 'html',
- formats: ['avif', 'webp', 'auto'],
widths: [640, 800, 1280, 1920, 2560, 3840, 'auto'],
- sharpJpegOptions: { mozjpeg: true, optimiseScans: true, quality: 95 },
- sharpPngOptions: { compressionLevel: 9 },
- urlPath: '/img/',
- outputDir: './public/img/',
defaultAttributes: {
loading: 'lazy',
decoding: 'async',
sizes: '(min-width: 1280px) 960px, (min-width: 1024px) 768px, (min-width: 640px) 640px, 480px'
}
});
- eleventyConfig.addPlugin(feedPlugin, {
- type: 'atom', // or "rss", "json"
- outputPath: '/feed.xml',
- collection: {
- name: 'posts', // iterate over `collections.posts`
- limit: 0 // 0 means no limit
- },
- metadata: {
- language: 'en',
- title: "Sebin's Blog",
- subtitle: 'Writing about stuff I have vague interests in and commenting on stuff I read.',
- base: 'https://blog.sebin-nyshkim.net/',
- author: {
- name: 'Sebin Nyshkim',
- email: '' // Optional
- }
- }
- });
+ eleventyConfig.addPlugin(eleventyPluginRss);
eleventyConfig.setLibrary('md', markdownIt(MARKDOWNIT_OPTIONS));
@@ -138,12 +129,8 @@ export default async function (eleventyConfig) {
eleventyConfig.addShortcode('year', () => `${new Date().getFullYear()}`);
eleventyConfig.addShortcode('bgimgset', async (src) => {
const imgset = await Image(src, {
- widths: [1920, 2560, 3840],
- sharpJpegOptions: { mozjpeg: true, optimiseScans: true, quality: 95 },
- sharpPngOptions: { compressionLevel: 9 },
- formats: ['avif', 'webp', 'auto'],
- urlPath: '/img/',
- outputDir: './public/img/'
+ ...ELEVENTY_IMAGE_DEFAULTS,
+ widths: [1920, 2560, 3840]
});
const getSets = ({ url, sourceType }, i) => `url(${url}) type('${sourceType}') ${i + 1}x`;
diff --git a/src/404.md b/src/404.md
index e2fa7a3..b098488 100644
--- a/src/404.md
+++ b/src/404.md
@@ -6,7 +6,7 @@ permalink: /404.html
# Here be no dragons
-
+
The page you were looking for does not exist!
diff --git a/src/about.md b/src/about.md
index 166efc4..625ebac 100644
--- a/src/about.md
+++ b/src/about.md
@@ -8,7 +8,7 @@ eleventyNavigation:
# {{ title }}
-
+
| Key | Value |
| --------- | ----------------- |
@@ -19,12 +19,13 @@ eleventyNavigation:
I'm a dude from the south of Germany pretending to be a dragon online.
-I'm a web developer at heart and love to make pretty and sleek websites (as you might have noticed). I started profesionally coding right around the time HTML5 took off and kept at it ever since. You can take a look at some of my personal projects over on my [main home page].
+I'm a web developer at heart and love to make pretty and sleek websites (as you might have noticed). I started coding professionally right around the time HTML5 took off and kept at it ever since. You can take a look at some of my personal projects over on my [main home page].
My code repos[^1]:
- [GitHub]
- [GitLab]
+- [Forgejo][selfgit]
Besides that I also love FOSS and use Arch Linux (btw) as my daily driver! Whenever I can I try to get involved and contribute translations to various tools and apps. I've been running Linux for the better part of the last 10 years, going from Linux Mint, to Manjaro and eventually pure Arch. It gave me a whole new appreciation for how computers work and being able to fully control my general computing experience (the privacy benefits are cool, too).
@@ -46,6 +47,7 @@ When I'm not doing development work, I'm getting my hands dirty in self-hosting.
- [Wallabag] (read-it-later pile of shame)
- [Nextcloud] (cloud storage & collaboration)
- [Immich] (Google Photos without the Google parts)
+- [Forgejo] (light-weight Git forge)
As for the pretending to be a dragon online thing: Yes, I'm one of those furries. Been one for the past 20 years. Also hella gay 🏳️🌈
@@ -57,6 +59,7 @@ Video games also shaped a lot of my music tastes. I'm listening to tons of video
[GitHub]: https://github.com/SebinNyshkim
[GitLab]: https://gitlab.com/SebinNyshkim
+[selfgit]: https://git.sebin-nyshkim.net/SebinNyshkim
[Navidrome]: https://www.navidrome.org/
[Jellyfin]: https://jellyfin.org/
@@ -65,6 +68,7 @@ Video games also shaped a lot of my music tastes. I'm listening to tons of video
[Wallabag]: https://wallabag.org/
[Nextcloud]: https://nextcloud.com/
[Immich]: https://immich.app/
+[Forgejo]: https://forgejo.org/
[Secret of Mana]: https://www.igdb.com/games/secret-of-mana
[Secret of Evermore]: https://www.igdb.com/games/secret-of-evermore
diff --git a/src/drafts/drafts.json b/src/drafts/drafts.json
index 3a003b0..4db5e52 100644
--- a/src/drafts/drafts.json
+++ b/src/drafts/drafts.json
@@ -6,7 +6,7 @@
"author": {
"name": "Sebin Nyshkim",
"href": "https://blog.sebin-nyshkim.net",
- "image": "https://cdn.sebin-nyshkim.net/-o3c3fVEgEx"
+ "image": "https://img.sebin-nyshkim.net/i/b6629b72-ab77-4a6c-bf97-b1a615cc2454"
},
"twitter": {
"cardType": "summary_large_image",
diff --git a/src/feed.njk b/src/feed.njk
new file mode 100644
index 0000000..4145699
--- /dev/null
+++ b/src/feed.njk
@@ -0,0 +1,40 @@
+---json
+{
+ "permalink": "feed.xml",
+ "eleventyExcludeFromCollections": true,
+ "metadata": {
+ "title": "Sebin's Blog",
+ "description": "Writing about stuff I have vague interests in and commenting on stuff I read.",
+ "language": "en",
+ "base": "https://blog.sebin-nyshkim.net/",
+ "author": {
+ "name": "Sebin Nyshkim"
+ }
+ }
+}
+---
+
+
+ {{ metadata.title }}
+ {{ metadata.description }}
+
+
+ {{ collections.posts | getNewestCollectionItemDate | dateToRfc3339 }}
+ {{ metadata.base | addPathPrefixToFullUrl }}
+
+ {{ metadata.author.name }}
+
+ {%- for post in collections.posts | reverse %}
+ {%- set absolutePostUrl %}{{ post.url | htmlBaseUrl(metadata.base) }}{% endset %}
+
+ {{ post.data.title }}
+
+ {{ post.date | dateToRfc3339 }}
+ {{ absolutePostUrl }}
+
+ <img src="{{ post.data.image.src }}.webp?width=1200" alt="{{ post.data.image.alt }}">
+ {{ post.content | renderTransforms(post.data.page, metadata.base) }}
+
+
+ {%- endfor %}
+
diff --git a/src/img/sebin-sticker-hello.png b/src/img/sebin-sticker-hello.png
deleted file mode 100644
index 575e05e..0000000
Binary files a/src/img/sebin-sticker-hello.png and /dev/null differ
diff --git a/src/img/sebin-sticker-phone.png b/src/img/sebin-sticker-phone.png
deleted file mode 100644
index a1af3d1..0000000
Binary files a/src/img/sebin-sticker-phone.png and /dev/null differ
diff --git a/src/img/sebin-sticker-think.png b/src/img/sebin-sticker-think.png
deleted file mode 100644
index bb6c452..0000000
Binary files a/src/img/sebin-sticker-think.png and /dev/null differ
diff --git a/src/img/sebin.png b/src/img/sebin.png
deleted file mode 100644
index 8dcce6e..0000000
Binary files a/src/img/sebin.png and /dev/null differ
diff --git a/src/index.md b/src/index.md
index 7677533..058cab6 100644
--- a/src/index.md
+++ b/src/index.md
@@ -7,7 +7,7 @@ eleventyNavigation:
# Rawr there! 👋🏻
-
+
Welcome to my little corner of the internet! This is where I pour out my thoughts whenever I have them :3
diff --git a/src/layouts/base.njk b/src/layouts/base.njk
index 774b306..5165072 100644
--- a/src/layouts/base.njk
+++ b/src/layouts/base.njk
@@ -16,8 +16,8 @@
twitter_handle = twitter.account,
name = author.name,
generator = eleventy.generator,
- preconnect = ['https://cdn.sebin-nyshkim.net'],
- dns_prefetch = ['https://cdn.sebin-nyshkim.net'],
+ preconnect = ['https://img.sebin-nyshkim.net'],
+ dns_prefetch = ['https://img.sebin-nyshkim.net'],
css = ['/fonts/tilt-warp/tilt-warp.css',
'/fonts/encode-sans/encode-sans.css',
'/fonts/m-plus-1-code/m-plus-1-code.css',
@@ -29,14 +29,14 @@
{% endif %}
-
+