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..667075f 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]:
+My code repos[^gitrepos]:
- [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,8 @@ 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)
+- [AdGuard Home] (DNS Sinkhole for ads and trackers)
+- [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 +60,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 +69,8 @@ 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/
+[AdGuard Home]: https://adguard.com/adguard-home/overview.html
+[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
@@ -86,4 +92,4 @@ Video games also shaped a lot of my music tastes. I'm listening to tons of video
*[NES]: Nintendo Entertainment System
*[SNES]: Super NES
-[^1]: In case you're wondering: most of my repos are personal projects, just for me, and don't need to be developed out in the open.
+[^gitrepos]: In case you're wondering: most of my repos are personal projects, just for me, and don't need to be developed out in the open.
diff --git a/src/contact.md b/src/contact.md
index e852159..e6f4c7d 100644
--- a/src/contact.md
+++ b/src/contact.md
@@ -14,14 +14,12 @@ I can be found all over the Internet!
| ------------ | --------------------------- |
| Mastodon | [@SebinNyshkim@meow.social] |
| Bluesky | [@sebin-nyshkim.net] |
-| Twitter | [@SebinNyshkim] |
| Fur Affinity | [sonofdragons] |
If you prefer a more direct line to me, there's [Telegram], [Discord] and [Signal].
[@SebinNyshkim@meow.social]: https://meow.social/@SebinNyshkim
[@sebin-nyshkim.net]: https://bsky.app/profile/sebin-nyshkim.net
-[@SebinNyshkim]: https://twitter.com/SebinNyshkim
[sonofdragons]: https://www.furaffinity.net/user/sonofdragons
[Telegram]: https://t.me/SebinNyshkim
[Discord]: https://discordapp.com/users/227753049530040321
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..b00c5d7
--- /dev/null
+++ b/src/feed.njk
@@ -0,0 +1,38 @@
+---
+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/'
+---
+
+
+ {{ metadata.title }}
+ {{ metadata.description }}
+
+
+ {{ collections.posts | getNewestCollectionItemDate | dateToRfc3339 }}
+ {{ metadata.base | addPathPrefixToFullUrl }}
+ {%- for post in collections.posts | reverse %}
+ {%- set absolutePostUrl %}{{ post.url | htmlBaseUrl(metadata.base) }}{% endset %}
+
+
+ {{ post.data.author.name }}
+ {{ post.data.author.href }}
+
+ {{ post.data.title }}
+
+ {{ post.date | dateToRfc3339 }}
+ {{ absolutePostUrl }}
+ {%- for tag in post.data.tags %}
+
+ {%- endfor %}
+
+ <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..6360146 100644
--- a/src/layouts/base.njk
+++ b/src/layouts/base.njk
@@ -13,11 +13,10 @@
og_image_alt = image.alt,
og_image_type = 'image/webp',
twitter_card_type = twitter.cardType,
- 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 +28,14 @@
{% endif %}
-
+