Compare commits

...

8 Commits

Author SHA1 Message Date
Helen Chong 27d39ffc0c Bundle page-specific JavaScript 2024-07-18 23:36:07 +08:00
Helen Chong bdb693d73d Add changelog and colophon info about upgrading Eleventy to v3.0 2024-07-18 23:09:53 +08:00
Helen Chong 94dfc789bc Upgrade Eleventy's official RSS plugin to v2 2024-07-18 22:47:06 +08:00
Helen Chong 21f0f53d9c Use getBundleFileUrl for JavaScript files 2024-07-18 22:23:59 +08:00
Helen Chong 72b878ef81 Replace custom CSS and JavaScript frontmatter with bundles 2024-07-18 22:11:18 +08:00
Helen Chong aa536e42bc Use bundle plugin to bundle CSS 2024-07-18 21:08:32 +08:00
Helen Chong 719d56ccf5 Upgrade to Eleventy 3.0 2024-07-18 20:49:55 +08:00
Helen Chong bce14668b1 Upgrade bun to 1.1.6 2024-07-18 20:38:24 +08:00
29 changed files with 75 additions and 119 deletions

BIN
bun.lockb

Binary file not shown.

View File

@ -23,6 +23,10 @@ module.exports = function (eleventyConfig) {
eleventyConfig.addPlugin(metagen); eleventyConfig.addPlugin(metagen);
eleventyConfig.addPlugin(emojiReadTime); eleventyConfig.addPlugin(emojiReadTime);
// Eleventy bundle plugin
eleventyConfig.addBundle("css");
eleventyConfig.addBundle("js");
// Add content categories to a collection // Add content categories to a collection
eleventyConfig.addCollection("categories", function(collectionApi) { eleventyConfig.addCollection("categories", function(collectionApi) {
let categories = new Set(); let categories = new Set();

View File

@ -5,12 +5,12 @@
"build": "bunx @11ty/eleventy" "build": "bunx @11ty/eleventy"
}, },
"devDependencies": { "devDependencies": {
"@types/bun": "^1.1.5" "@types/bun": "^1.1.6"
}, },
"dependencies": { "dependencies": {
"@11ty/eleventy": "^2.0.1", "@11ty/eleventy": "^3.0.0-alpha.17",
"@11ty/eleventy-navigation": "^0.3.5", "@11ty/eleventy-navigation": "^0.3.5",
"@11ty/eleventy-plugin-rss": "^1.2.0", "@11ty/eleventy-plugin-rss": "^2.0.2",
"@11tyrocks/eleventy-plugin-emoji-readtime": "^1.0.1", "@11tyrocks/eleventy-plugin-emoji-readtime": "^1.0.1",
"@uncenter/eleventy-plugin-toc": "^1.0.3", "@uncenter/eleventy-plugin-toc": "^1.0.3",
"@zachleat/details-utils": "^2.0.2", "@zachleat/details-utils": "^2.0.2",

View File

@ -1,6 +1,4 @@
--- {%- css %}{% include "src/assets/css/asummersend.css" %}{%- endcss %}
customCSSSheets: ["asummersend"]
---
{% extends "global/baselayout.njk" %} {% extends "global/baselayout.njk" %}

View File

@ -1,6 +1,4 @@
--- {%- css %}{% include "src/assets/css/cassettebeasts.css" %}{%- endcss %}
customCSSSheets: ["cassettebeasts"]
---
{% extends "global/baselayout.njk" %} {% extends "global/baselayout.njk" %}

View File

@ -12,11 +12,7 @@
{% if hasTooltips %} {% if hasTooltips %}
<link rel="stylesheet" href="{{'/assets/css/tooltips.css' | url | safe}}"> <link rel="stylesheet" href="{{'/assets/css/tooltips.css' | url | safe}}">
{% endif %} {% endif %}
{% if customCSSSheets %} <style>{% getBundle "css" %}</style>
{%- for sheet in customCSSSheets -%}
<link rel="stylesheet" href="{{'/assets/css/' + sheet + '.css' | url | safe}}">
{%- endfor -%}
{% endif %}
{# Fonts #} {# Fonts #}
{% include "global/fontdefault.njk" %} {% include "global/fontdefault.njk" %}
@ -37,11 +33,9 @@
{% block favicon %}{% include "global/favicon.njk" %}{% endblock %} {% block favicon %}{% include "global/favicon.njk" %}{% endblock %}
{# JavaScript #} {# JavaScript #}
<script src="{% getBundleFileUrl 'js' %}" defer></script>
{% if toc %}
<script src="{{'/assets/js/details-utils.js'}}" defer></script> <script src="{{'/assets/js/details-utils.js'}}" defer></script>
{% if customJSFiles %}
{%- for jsFile in customJSFiles -%}
<script src="{{'/assets/js/' + jsFile + '.js' | url | safe}}" defer></script>
{%- endfor -%}
{% endif %} {% endif %}
<title> <title>

View File

@ -86,7 +86,7 @@
{% block shrineInfo %}{% endblock %} {% block shrineInfo %}{% endblock %}
</content-wrapper> </content-wrapper>
<style> {%- css %}
.breadcrumbs { .breadcrumbs {
list-style-type: ""; list-style-type: "";
padding: 0; padding: 0;
@ -118,11 +118,6 @@
grid-template-areas: 'prev next'; grid-template-areas: 'prev next';
} }
.blog__post--prev { .blog__post--prev { grid-area: prev; }
grid-area: prev; .blog__post--next { grid-area: next; }
} {% endcss %}
.blog__post--next {
grid-area: next;
}
</style>

View File

@ -17,7 +17,7 @@
{%- include "global/top-btn.njk" %} {%- include "global/top-btn.njk" %}
</footer> </footer>
<style> {%- css %}
:root { --footer-gap: 0.5em; } :root { --footer-gap: 0.5em; }
.footer { .footer {
@ -40,4 +40,4 @@
.footer__links { justify-self: center; } .footer__links { justify-self: center; }
.footer__shrines { align-self: center; } .footer__shrines { align-self: center; }
</style> {% endcss %}

View File

@ -7,7 +7,7 @@
</div> </div>
</header> </header>
<style> {%- css %}
.hero { .hero {
width: 100%; width: 100%;
background-color: var(--clr-hero-bg); background-color: var(--clr-hero-bg);
@ -32,11 +32,10 @@
object-fit: contain; object-fit: contain;
overflow: hidden; overflow: hidden;
max-height: 16rem; max-height: 16rem;
{% block heroDropShadowStyle %}{% endblock %}
} }
</style> {% endcss %}
<script> {%- js %}
const hero = document.querySelector(".hero"); const hero = document.querySelector(".hero");
const heroTopBarEl = document.querySelector(".hero__top-bar"); const heroTopBarEl = document.querySelector(".hero__top-bar");
const headerImgEl = document.querySelector(".hero__img"); const headerImgEl = document.querySelector(".hero__img");
@ -44,4 +43,4 @@
{% block eventScript %} {% block eventScript %}
{{ eventScript }} {{ eventScript }}
{% endblock %} {% endblock %}
</script> {% endjs %}

View File

@ -36,7 +36,7 @@ https://kalechips.net/projects/snippets/burger #}
</ul> </ul>
</nav> </nav>
<style> {%- css %}
:root { :root {
--icon-burger: url(/assets/icons/burger.svg); --icon-burger: url(/assets/icons/burger.svg);
--icon-close: url(/assets/icons/close.svg); --icon-close: url(/assets/icons/close.svg);
@ -131,9 +131,9 @@ https://kalechips.net/projects/snippets/burger #}
padding: 0; padding: 0;
} }
} }
</style> {% endcss %}
<script> {%- js %}
const navbarBurger = document.querySelector(".navbar__burger"); const navbarBurger = document.querySelector(".navbar__burger");
navbarBurger.addEventListener("keydown", (event) => { navbarBurger.addEventListener("keydown", (event) => {
if (event.key == "Escape") { if (event.key == "Escape") {
@ -142,4 +142,4 @@ https://kalechips.net/projects/snippets/burger #}
document.querySelector(".navbar__toggle").focus(); document.querySelector(".navbar__toggle").focus();
} }
}); });
</script> {% endjs %}

View File

@ -57,7 +57,7 @@ Newer{% endset %}
</ul> </ul>
</nav> </nav>
<style> {%- css %}
.pagination__wrapper { .pagination__wrapper {
display: grid; display: grid;
place-content: center; place-content: center;
@ -100,7 +100,5 @@ Newer{% endset %}
text-decoration: none; text-decoration: none;
} }
.pagination li a:focus { .pagination li a:focus { outline: none; }
outline: none; {% endcss %}
}
</style>

View File

@ -13,7 +13,7 @@
</div> </div>
</aside> </aside>
<style> {%- css %}
.right-sidebar { .right-sidebar {
background-color: var(--clr-content-bg); background-color: var(--clr-content-bg);
font-size: clamp(0.9rem, 0.9rem + 3vw, 1rem); font-size: clamp(0.9rem, 0.9rem + 3vw, 1rem);
@ -35,4 +35,4 @@
} }
.shrine__info ul { margin-top: 0.5em; } .shrine__info ul { margin-top: 0.5em; }
</style> {% endcss %}

View File

@ -9,7 +9,7 @@
</details-utils> </details-utils>
</aside> </aside>
<style> {%- css %}
.toc__wrapper { .toc__wrapper {
max-height: 89vh; max-height: 89vh;
overflow-x: auto; overflow-x: auto;
@ -52,4 +52,4 @@
padding: 0; padding: 0;
font-size: 1rem; font-size: 1rem;
} }
</style> {% endcss %}

View File

@ -5,7 +5,7 @@
Back to Top Back to Top
</a> </a>
<style> {%- css %}
.top-btn, .top-btn,
.top-btn:hover { .top-btn:hover {
color: var(--clr-top-btn-txt); color: var(--clr-top-btn-txt);
@ -39,4 +39,4 @@
stroke: currentColor; stroke: currentColor;
fill: currentColor; fill: currentColor;
} }
</style> {% endcss %}

View File

@ -14,7 +14,7 @@
{% endfor %} {% endfor %}
</ul> </ul>
<style> {%- css %}
.item-list { .item-list {
display: grid; display: grid;
gap: 1em; gap: 1em;
@ -26,4 +26,4 @@
line-height: 1.3; line-height: 1.3;
margin-bottom: 0.2em; margin-bottom: 0.2em;
} }
</style> {% endcss %}

View File

@ -26,7 +26,7 @@ articleElement: true
{{ content | safe }} {{ content | safe }}
<style> {%- css %}
.changelog__nav, .changelog__nav,
.changelog__nav--links { .changelog__nav--links {
display: flex; display: flex;
@ -59,4 +59,4 @@ articleElement: true
gap: 1em; gap: 1em;
} }
} }
</style> {% endcss %}

View File

@ -13,7 +13,7 @@
</nav> </nav>
</aside> </aside>
<style> {%- css %}
.content__nav { .content__nav {
padding: 1.2em clamp(1em, 5%, 1.5em); padding: 1.2em clamp(1em, 5%, 1.5em);
background-color: var(--clr-content-bg); background-color: var(--clr-content-bg);
@ -22,4 +22,4 @@
.content__nav--title { .content__nav--title {
font-size: 1.7rem; font-size: 1.7rem;
} }
</style> {% endcss %}

View File

@ -4,9 +4,7 @@
<img fetchpriority="high" src="/assets/leilukin/Leilukins-Hub-website-banner.avif" alt="Banner of Leilukin's Hub"> <img fetchpriority="high" src="/assets/leilukin/Leilukins-Hub-website-banner.avif" alt="Banner of Leilukin's Hub">
{% endblock %} {% endblock %}
{% block heroDropShadowStyle %} {%- css %}.hero img { filter: drop-shadow(0.1rem 0.1rem 0.2rem black); }{% endcss %}
filter: drop-shadow(0.1rem 0.1rem 0.2rem black);
{% endblock %}
{% block eventScript %} {% block eventScript %}
const todayEvent = getTodayEvent(); const todayEvent = getTodayEvent();

View File

@ -10,13 +10,9 @@
<p><a href="https://status.cafe/users/leilukin">View my statuses on status.cafe</a></p> <p><a href="https://status.cafe/users/leilukin">View my statuses on status.cafe</a></p>
</div> </div>
<style> {%- css %}#statuscafe-content { margin-bottom: 0.5em; }{% endcss %}
#statuscafe-content {
margin: 0 0 0.5em 0;
}
</style>
<script> {%- js %}
const statusCafeContent = document.getElementById("statuscafe-content"); const statusCafeContent = document.getElementById("statuscafe-content");
statusCafeContent.innerHTML = ` statusCafeContent.innerHTML = `
<p>Fetching data from status.cafe...</p> <p>Fetching data from status.cafe...</p>
@ -40,4 +36,4 @@
} }
}; };
fetchStatusCafe(); fetchStatusCafe();
</script> {% endjs %}

View File

@ -4,7 +4,7 @@
<a href="https://ko-fi.com/A1042UH4"><img height="36" style="border:0px;" src="/assets/buttons/misc/ko-fi.webp" border="0" alt="Buy Me a Coffee at ko-fi.com" loading="lazy"></a> <a href="https://ko-fi.com/A1042UH4"><img height="36" style="border:0px;" src="/assets/buttons/misc/ko-fi.webp" border="0" alt="Buy Me a Coffee at ko-fi.com" loading="lazy"></a>
</div> </div>
<style> {%- css %}
.support-me { .support-me {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
@ -12,4 +12,4 @@
align-items: center; align-items: center;
margin-top: 0.7em; margin-top: 0.7em;
} }
</style> {% endcss %}

View File

@ -1,6 +1,4 @@
--- {%- css %}{% include "src/assets/css/starwarskotor.css" %}{%- endcss %}
customCSSSheets: ["starwarskotor"]
---
{% extends "global/baselayout.njk" %} {% extends "global/baselayout.njk" %}

View File

@ -25,7 +25,7 @@ eleventyNavigation:
{% endfor %} {% endfor %}
</ul> </ul>
<style> {%- css %}
.blog__postlist { .blog__postlist {
display: grid; display: grid;
gap: 1em; gap: 1em;
@ -37,4 +37,4 @@ eleventyNavigation:
line-height: 1.3; line-height: 1.3;
margin-bottom: 0.2em; margin-bottom: 0.2em;
} }
</style> {% endcss %}

View File

@ -22,9 +22,4 @@ eleventyNavigation:
{% include "global/pagination-oldnew.njk" %} {% include "global/pagination-oldnew.njk" %}
<style> {%- css %}* + h2, * + h3 { margin-top: 1.5em; }{% endcss %}
* + h2,
* + h3 {
margin-top: 1.5em;
}
</style>

View File

@ -4,4 +4,6 @@ date: 2024-07-18
* Add list of web cliques I joined to the home page * Add list of web cliques I joined to the home page
* Add pixel cliques I joined to the [Adoptables page](/adoptables) * Add pixel cliques I joined to the [Adoptables page](/adoptables)
* Add a [Joined](/links/#joined) tab to the [Links page](/links) to list the web cliques and widgets of web rings I joined, as well as linking to my fanlisting collective. * Add a [Joined](/links/#joined) tab to the [Links page](/links) to list the web cliques and widgets of web rings I joined, as well as linking to my fanlisting collective.
* Upgrade Eleventy to version 3.0
* Bundle page-specific CSS and JavaScript in the `<head>` element with Eleventy 3.0's [built-in bundle plugin](https://github.com/11ty/eleventy-plugin-bundle)

View File

@ -43,11 +43,8 @@ eleventyComputed:
{% include "global/pagination-oldnew.njk" %} {% include "global/pagination-oldnew.njk" %}
</section> </section>
<style> {%- css %}
.blog__posts, .blog__posts, .blog__post { display: grid; }
.blog__post {
display: grid;
}
.blog__posts { .blog__posts {
list-style-type: none; list-style-type: none;
@ -62,9 +59,7 @@ eleventyComputed:
border-bottom: var(--bdr-blogpost); border-bottom: var(--bdr-blogpost);
} }
.blog__post:first-of-type { .blog__post:first-of-type { border-top: var(--bdr-blogpost); }
border-top: var(--bdr-blogpost);
}
.blog__post--title { .blog__post--title {
font-size: clamp(1.55rem, 1rem + 3vw, 1.8rem); font-size: clamp(1.55rem, 1rem + 3vw, 1.8rem);
@ -76,4 +71,4 @@ eleventyComputed:
color: var(--clr-sub-heading); color: var(--clr-sub-heading);
font-weight: 700; font-weight: 700;
} }
</style> {% endcss %}

View File

@ -1,12 +1,14 @@
--- ---
title: Guestbook title: Guestbook
customCSSSheets: ["comments"]
customJSFiles: ["svgIconControl", "googleSheetsReaderGizmo", "comments"]
eleventyNavigation: eleventyNavigation:
order: 10 order: 10
eleventyComputed: eleventyComputed:
desc: Leave a message for {{ sitemeta.siteAuthor.name }}. desc: Leave a message for {{ sitemeta.siteAuthor.name }}.
--- ---
{%- css %}{% include "src/assets/css/comments.css" %}{%- endcss %}
{%- js %}{% include "src/assets/js/svgIconControl.js" %}{%- endjs %}
{%- js %}{% include "src/assets/js/googleSheetsReaderGizmo.js" %}{%- endjs %}
{%- js %}{% include "src/assets/js/comments.js" %}{%- endjs %}
<p class="center-text">Guestbook Archive: <a href="https://web.archive.org/web/20240528231121/https%3A%2F%2Fleilukin.123guestbook.com%2F">123Guestbook</a></p> <p class="center-text">Guestbook Archive: <a href="https://web.archive.org/web/20240528231121/https%3A%2F%2Fleilukin.123guestbook.com%2F">123Guestbook</a></p>
@ -40,9 +42,9 @@ eleventyComputed:
</div> </div>
</noscript> </noscript>
<style> {%- css %}
.gb__messages--title { .gb__messages--title {
text-align: center; text-align: center;
margin-bottom: 0.5em; margin-bottom: 0.5em;
} }
</style> {% endcss %}

View File

@ -25,7 +25,7 @@ eleventyComputed:
</li> </li>
</ul> </ul>
<style> {%- css %}
.shrine-index { .shrine-index {
display: grid; display: grid;
gap: 2em; gap: 2em;
@ -38,4 +38,4 @@ eleventyComputed:
display: grid; display: grid;
gap: 0.7em; gap: 0.7em;
} }
</style> {% endcss %}

View File

@ -19,7 +19,7 @@ eleventyComputed:
<h2>Main Site</h2> <h2>Main Site</h2>
{{ collections.all | eleventyNavigation | eleventyNavigationToHtml(navigationOptions) | safe }} {{ collections.all | eleventyNavigation | eleventyNavigationToHtml(navigationOptions) | safe }}
<style> {%- css %}
main ul { main ul {
display: grid; display: grid;
gap: 0.5rem; gap: 0.5rem;
@ -32,32 +32,16 @@ eleventyComputed:
list-style-type: ""; list-style-type: "";
} }
.sitemap a:focus { .sitemap a:focus { outline: 0.15rem solid var(--clr-link); }
outline: 0.15rem solid var(--clr-link);
}
.sitemap li { .sitemap li {
padding-left: 0.5em; padding-left: 0.5em;
align-items: start; align-items: start;
} }
.sitemap li::marker { .sitemap li::marker { content: "▶"; }
content: "▶"; .sitemap ul { padding-left: 1em; }
} .sitemap ul li::marker { content: "★"; }
.sitemap ul ul li::marker { content: "♥"; }
.sitemap ul { .sitemap ul ul ul li::marker { content: "❣"; }
padding-left: 1em; {% endcss %}
}
.sitemap ul li::marker {
content: "★";
}
.sitemap ul ul li::marker {
content: "♥";
}
.sitemap ul ul ul li::marker {
content: "❣";
}
</style>

View File

@ -10,7 +10,7 @@ eleventyNavigation:
Information about how this website is built. Information about how this website is built.
## Technology ## Technology
* Built with the static site generator [Eleventy](https://www.11ty.dev/) * Built with the static site generator [Eleventy](https://www.11ty.dev/) (version 3.0)
* Templating languages: Nunjucks and Markdown * Templating languages: Nunjucks and Markdown
* Code written with Visual Studio Code * Code written with Visual Studio Code
* JavaScript runtime: [Bun](https://bun.sh) * JavaScript runtime: [Bun](https://bun.sh)