diff --git a/.eleventy.js b/.eleventy.js
index a4f0909e..9b06dc7c 100644
--- a/.eleventy.js
+++ b/.eleventy.js
@@ -1,4 +1,3 @@
-const sass = require('sass');
const fs = require('node:fs');
const path = require('node:path');
const moment = require('moment');
@@ -7,10 +6,6 @@ const markdownIt = require('markdown-it');
const markdownItAnchor = require('markdown-it-anchor');
const pluginRss = require('@11ty/eleventy-plugin-rss').default;
const striptags = require('striptags');
-// const upgradeHelper = require('@11ty/eleventy-upgrade-help');
-
-// install prism plugins
-require('prismjs/plugins/custom-class/prism-custom-class');
const REGEX_IMAGE_EXTENSION = '(jpg|png|gif)';
@@ -24,28 +19,9 @@ module.exports = function (eleventyConfig) {
}
console.log('Cleared _site folder');
- const isServing = process.argv.includes('--serve');
- if (isServing) {
- // watch only files if we are serving
- const watcher = fs.watch('src/styles', (event, filepath) => {
- console.log('Styles file changed', filepath);
- compileSass();
- });
-
- process.on('SIGINT', () => {
- console.log('Stopping file watcher...');
- watcher.close();
- });
-
- process.on('SIGTERM', () => {
- console.log('Stopping file watcher...');
- watcher.close();
- });
- }
- compileSass();
-
+ eleventyConfig.addPassthroughCopy('src/css');
eleventyConfig.addPassthroughCopy({
- './node_modules/@fortawesome/fontawesome-free': 'css/fontawesome',
+ './node_modules/@picocss/pico/css/pico.min.css': 'css/pico.min.css',
});
eleventyConfig.addPassthroughCopy('src/CNAME');
eleventyConfig.addPassthroughCopy('src/images');
@@ -66,17 +42,7 @@ module.exports = function (eleventyConfig) {
return collectionApi.getFilteredByGlob('src/projects/**/*.md').reverse();
});
- eleventyConfig.addPlugin(syntaxhighlight, {
- init: function ({ Prism }) {
- Prism.plugins.customClass.map({
- // prefix tag and number to avoid conflicts with Bulma
- tag: 'prism-tag',
- number: 'prism-number',
- });
- },
- });
-
- eleventyConfig.addFilter('coverImage', filterCoverImage);
+ eleventyConfig.addPlugin(syntaxhighlight);
/**
* Generates a dynamic cover image
@@ -132,13 +98,6 @@ module.exports = function (eleventyConfig) {
};
};
-async function compileSass() {
- console.log('Compiling sass.');
- const cssContent = sass.compile('src/styles/main.scss');
- fs.mkdirSync('_site/css', { recursive: true });
- fs.writeFileSync('_site/css/main.css', cssContent.css);
-}
-
function shortcodeDynamicImageOnHover(
page,
staticCoverImage,
@@ -159,16 +118,14 @@ function shortcodeDynamicImageOnHover(
if (fs.existsSync(dynamicCoverImageInputPath)) {
// dynamic cover image exists
return (
- `
` +
- `
`
+ `
` +
+ `

` +
+ `

` +
+ `
`
);
} else {
- return `
`;
+ return `
`;
}
}
-function filterCoverImage(page) {
- // take filePathStem or pageOptions directly if it is a string (and a path)
- var pageOptions = typeof pageOptions === 'string' ? page : page.filePathStem;
- return path.join(path.dirname(pageOptions), page.data.coverImageName);
-}
+
diff --git a/.github/workflows/test-and-deploy.yml b/.github/workflows/test-and-deploy.yml
index d80c6ad8..fecc7698 100644
--- a/.github/workflows/test-and-deploy.yml
+++ b/.github/workflows/test-and-deploy.yml
@@ -9,9 +9,9 @@ jobs:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v6
+ - uses: actions/checkout@v4
- name: Use Node.js 22
- uses: actions/setup-node@v6
+ uses: actions/setup-node@v4
with:
node-version: 24
cache: npm
diff --git a/.github/workflows/test-pull-request.yml b/.github/workflows/test-pull-request.yml
index 862fa562..a234b480 100644
--- a/.github/workflows/test-pull-request.yml
+++ b/.github/workflows/test-pull-request.yml
@@ -9,9 +9,9 @@ jobs:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v6
+ - uses: actions/checkout@v4
- name: Use Node.js 22
- uses: actions/setup-node@v6
+ uses: actions/setup-node@v4
with:
node-version: 24
cache: npm
diff --git a/CHANGELOG.md b/CHANGELOG.md
index d24f8791..99ac6299 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,13 @@
# Changelog
+## 3.0.0
+
+- Replace Bulma CSS framework with Pico CSS for semantic, classless styling
+- Remove Sass build pipeline in favor of static CSS passthrough
+- Switch project display from card grid to list layout with cover images
+- Remove Font Awesome dependency; use plain text for icons
+- Simplify homepage to blog-focused layout with nav-based navigation
+
## 2.7.0
- Upgrade eleventy to version 3
diff --git a/package-lock.json b/package-lock.json
index 8decb0a0..cd0cac68 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "kleinprojects-website",
- "version": "2.7.0",
+ "version": "3.0.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "kleinprojects-website",
- "version": "2.7.0",
+ "version": "3.0.0",
"license": "CC-BY-3.0",
"dependencies": {
"striptags": "^3.2.0"
@@ -15,15 +15,13 @@
"@11ty/eleventy": "^3.1.2",
"@11ty/eleventy-plugin-rss": "^3.0.0",
"@11ty/eleventy-plugin-syntaxhighlight": "^5.0.0",
- "@fortawesome/fontawesome-free": "^7.2.0",
+ "@picocss/pico": "^2.1.1",
"@playwright/test": "^1.39.0",
"@types/node": "^24.5.2",
- "bulma": "^1.0.0",
"gh-pages": "^6.0.0",
"markdown-it-anchor": "^9.0.0",
"moment": "^2.29.4",
- "npm-check-updates": "^22.2.1",
- "sass": "^1.69.3"
+ "npm-check-updates": "^22.2.1"
}
},
"node_modules/@11ty/dependency-tree": {
@@ -293,16 +291,6 @@
"node": ">=18"
}
},
- "node_modules/@fortawesome/fontawesome-free": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-7.2.0.tgz",
- "integrity": "sha512-3DguDv/oUE+7vjMeTSOjCSG+KeawgVQOHrKRnvUuqYh1mfArrh7s+s8hXW3e4RerBA1+Wh+hBqf8sJNpqNrBWg==",
- "dev": true,
- "license": "(CC-BY-4.0 AND OFL-1.1 AND MIT)",
- "engines": {
- "node": ">=6"
- }
- },
"node_modules/@nodelib/fs.scandir": {
"version": "2.1.5",
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
@@ -338,301 +326,12 @@
"node": ">= 8"
}
},
- "node_modules/@parcel/watcher": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.0.tgz",
- "integrity": "sha512-i0GV1yJnm2n3Yq1qw6QrUrd/LI9bE8WEBOTtOkpCXHHdyN3TAGgqAK/DAT05z4fq2x04cARXt2pDmjWjL92iTQ==",
- "dev": true,
- "hasInstallScript": true,
- "optional": true,
- "dependencies": {
- "detect-libc": "^1.0.3",
- "is-glob": "^4.0.3",
- "micromatch": "^4.0.5",
- "node-addon-api": "^7.0.0"
- },
- "engines": {
- "node": ">= 10.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- },
- "optionalDependencies": {
- "@parcel/watcher-android-arm64": "2.5.0",
- "@parcel/watcher-darwin-arm64": "2.5.0",
- "@parcel/watcher-darwin-x64": "2.5.0",
- "@parcel/watcher-freebsd-x64": "2.5.0",
- "@parcel/watcher-linux-arm-glibc": "2.5.0",
- "@parcel/watcher-linux-arm-musl": "2.5.0",
- "@parcel/watcher-linux-arm64-glibc": "2.5.0",
- "@parcel/watcher-linux-arm64-musl": "2.5.0",
- "@parcel/watcher-linux-x64-glibc": "2.5.0",
- "@parcel/watcher-linux-x64-musl": "2.5.0",
- "@parcel/watcher-win32-arm64": "2.5.0",
- "@parcel/watcher-win32-ia32": "2.5.0",
- "@parcel/watcher-win32-x64": "2.5.0"
- }
- },
- "node_modules/@parcel/watcher-android-arm64": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.0.tgz",
- "integrity": "sha512-qlX4eS28bUcQCdribHkg/herLe+0A9RyYC+mm2PXpncit8z5b3nSqGVzMNR3CmtAOgRutiZ02eIJJgP/b1iEFQ==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">= 10.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/@parcel/watcher-darwin-arm64": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.0.tgz",
- "integrity": "sha512-hyZ3TANnzGfLpRA2s/4U1kbw2ZI4qGxaRJbBH2DCSREFfubMswheh8TeiC1sGZ3z2jUf3s37P0BBlrD3sjVTUw==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">= 10.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/@parcel/watcher-darwin-x64": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.0.tgz",
- "integrity": "sha512-9rhlwd78saKf18fT869/poydQK8YqlU26TMiNg7AIu7eBp9adqbJZqmdFOsbZ5cnLp5XvRo9wcFmNHgHdWaGYA==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">= 10.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/@parcel/watcher-freebsd-x64": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.0.tgz",
- "integrity": "sha512-syvfhZzyM8kErg3VF0xpV8dixJ+RzbUaaGaeb7uDuz0D3FK97/mZ5AJQ3XNnDsXX7KkFNtyQyFrXZzQIcN49Tw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "freebsd"
- ],
- "engines": {
- "node": ">= 10.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/@parcel/watcher-linux-arm-glibc": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.0.tgz",
- "integrity": "sha512-0VQY1K35DQET3dVYWpOaPFecqOT9dbuCfzjxoQyif1Wc574t3kOSkKevULddcR9znz1TcklCE7Ht6NIxjvTqLA==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/@parcel/watcher-linux-arm-musl": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.0.tgz",
- "integrity": "sha512-6uHywSIzz8+vi2lAzFeltnYbdHsDm3iIB57d4g5oaB9vKwjb6N6dRIgZMujw4nm5r6v9/BQH0noq6DzHrqr2pA==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/@parcel/watcher-linux-arm64-glibc": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.0.tgz",
- "integrity": "sha512-BfNjXwZKxBy4WibDb/LDCriWSKLz+jJRL3cM/DllnHH5QUyoiUNEp3GmL80ZqxeumoADfCCP19+qiYiC8gUBjA==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/@parcel/watcher-linux-arm64-musl": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.0.tgz",
- "integrity": "sha512-S1qARKOphxfiBEkwLUbHjCY9BWPdWnW9j7f7Hb2jPplu8UZ3nes7zpPOW9bkLbHRvWM0WDTsjdOTUgW0xLBN1Q==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/@parcel/watcher-linux-x64-glibc": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.0.tgz",
- "integrity": "sha512-d9AOkusyXARkFD66S6zlGXyzx5RvY+chTP9Jp0ypSTC9d4lzyRs9ovGf/80VCxjKddcUvnsGwCHWuF2EoPgWjw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/@parcel/watcher-linux-x64-musl": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.0.tgz",
- "integrity": "sha512-iqOC+GoTDoFyk/VYSFHwjHhYrk8bljW6zOhPuhi5t9ulqiYq1togGJB5e3PwYVFFfeVgc6pbz3JdQyDoBszVaA==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/@parcel/watcher-win32-arm64": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.0.tgz",
- "integrity": "sha512-twtft1d+JRNkM5YbmexfcH/N4znDtjgysFaV9zvZmmJezQsKpkfLYJ+JFV3uygugK6AtIM2oADPkB2AdhBrNig==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">= 10.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/@parcel/watcher-win32-ia32": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.0.tgz",
- "integrity": "sha512-+rgpsNRKwo8A53elqbbHXdOMtY/tAtTzManTWShB5Kk54N8Q9mzNWV7tV+IbGueCbcj826MfWGU3mprWtuf1TA==",
- "cpu": [
- "ia32"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">= 10.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
- },
- "node_modules/@parcel/watcher-win32-x64": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.0.tgz",
- "integrity": "sha512-lPrxve92zEHdgeff3aiu4gDOIt4u7sJYha6wbdEZDCDUhtjTsOMiaJzG5lMY4GkWH8p0fMmO2Ppq5G5XXG+DQw==",
- "cpu": [
- "x64"
- ],
+ "node_modules/@picocss/pico": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/@picocss/pico/-/pico-2.1.1.tgz",
+ "integrity": "sha512-kIDugA7Ps4U+2BHxiNHmvgPIQDWPDU4IeU6TNRdvXQM1uZX+FibqDQT2xUOnnO2yq/LUHcwnGlu1hvf4KfXnMg==",
"dev": true,
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">= 10.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/parcel"
- }
+ "license": "MIT"
},
"node_modules/@playwright/test": {
"version": "1.60.0",
@@ -870,13 +569,6 @@
"node": ">=8"
}
},
- "node_modules/bulma": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/bulma/-/bulma-1.0.4.tgz",
- "integrity": "sha512-Ffb6YGXDiZYX3cqvSbHWqQ8+LkX6tVoTcZuVB3lm93sbAVXlO0D6QlOTMnV6g18gILpAXqkG2z9hf9z4hCjz2g==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/chokidar": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
@@ -959,19 +651,6 @@
"node": ">=4"
}
},
- "node_modules/detect-libc": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
- "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==",
- "dev": true,
- "optional": true,
- "bin": {
- "detect-libc": "bin/detect-libc.js"
- },
- "engines": {
- "node": ">=0.10"
- }
- },
"node_modules/dir-glob": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
@@ -1454,13 +1133,6 @@
"node": ">= 4"
}
},
- "node_modules/immutable": {
- "version": "5.1.5",
- "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.5.tgz",
- "integrity": "sha512-t7xcm2siw+hlUM68I+UEOK+z84RzmN59as9DZ7P1l0994DKUWV7UXBMQZVxaoMSRQ+PBZbHCOoBt7a2wxOMt+A==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/inherits": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
@@ -1851,13 +1523,6 @@
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
"dev": true
},
- "node_modules/node-addon-api": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz",
- "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==",
- "dev": true,
- "optional": true
- },
"node_modules/node-retrieve-globals": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/node-retrieve-globals/-/node-retrieve-globals-6.0.1.tgz",
@@ -2262,57 +1927,6 @@
"queue-microtask": "^1.2.2"
}
},
- "node_modules/sass": {
- "version": "1.100.0",
- "resolved": "https://registry.npmjs.org/sass/-/sass-1.100.0.tgz",
- "integrity": "sha512-B5j0rYMlinhhOo9tjQebMVVn0TfyXAF+wB3b2ggZUuJ/is/Y+7+JGjirAMxHZ9Z3hIP98NPfamlAkBHa1lAaXQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "chokidar": "^5.0.0",
- "immutable": "^5.1.5",
- "source-map-js": ">=0.6.2 <2.0.0"
- },
- "bin": {
- "sass": "sass.js"
- },
- "engines": {
- "node": ">=20.19.0"
- },
- "optionalDependencies": {
- "@parcel/watcher": "^2.4.1"
- }
- },
- "node_modules/sass/node_modules/chokidar": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-5.0.0.tgz",
- "integrity": "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "readdirp": "^5.0.0"
- },
- "engines": {
- "node": ">= 20.19.0"
- },
- "funding": {
- "url": "https://paulmillr.com/funding/"
- }
- },
- "node_modules/sass/node_modules/readdirp": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-5.0.0.tgz",
- "integrity": "sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 20.19.0"
- },
- "funding": {
- "type": "individual",
- "url": "https://paulmillr.com/funding/"
- }
- },
"node_modules/section-matter": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz",
@@ -2392,15 +2006,6 @@
"node": ">=8.0.0"
}
},
- "node_modules/source-map-js": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
- "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/sprintf-js": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
diff --git a/package.json b/package.json
index cfcfa2f8..78fc2d1e 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "kleinprojects-website",
- "version": "2.7.0",
+ "version": "3.0.0",
"description": "Landing page of Kleinprojects with blog and projects",
"dependencies": {
"striptags": "^3.2.0"
@@ -9,15 +9,13 @@
"@11ty/eleventy": "^3.1.2",
"@11ty/eleventy-plugin-rss": "^3.0.0",
"@11ty/eleventy-plugin-syntaxhighlight": "^5.0.0",
- "@fortawesome/fontawesome-free": "^7.2.0",
+ "@picocss/pico": "^2.1.1",
"@playwright/test": "^1.39.0",
"@types/node": "^24.5.2",
- "bulma": "^1.0.0",
"gh-pages": "^6.0.0",
"markdown-it-anchor": "^9.0.0",
"moment": "^2.29.4",
- "npm-check-updates": "^22.2.1",
- "sass": "^1.69.3"
+ "npm-check-updates": "^22.2.1"
},
"scripts": {
"start": "eleventy --serve",
diff --git a/src/_includes/page.njk b/src/_includes/page.njk
index ce63555f..7dd4eb75 100644
--- a/src/_includes/page.njk
+++ b/src/_includes/page.njk
@@ -1,11 +1,9 @@
---
navParent: home
useHero: true
-addSection: true
title: null
subtitle: null
date: null
-centerContent: true
---
{% include 'partials/_header.njk' %}
@@ -14,13 +12,10 @@ centerContent: true
{% include 'partials/_hero.njk' %}
{% else %}
{% include 'partials/_navbar.njk' %}
- {% include 'partials/_section.njk' %}
{% endif %}
-
-
+
+ {{ content | safe }}
{% include 'partials/_footer.njk' %}
diff --git a/src/_includes/partials/_footer.njk b/src/_includes/partials/_footer.njk
index 4957cdcb..ec4c1520 100644
--- a/src/_includes/partials/_footer.njk
+++ b/src/_includes/partials/_footer.njk
@@ -1,6 +1,7 @@
-