blurb: `Today is <ahref="https://www.unaids.org/en/zero-discrimination-day"target="_blank">Zero Discrimination Day</a>`,
class: "flag-progress-intersex",
};
else if (month === 3 && day === 8)
return {
blurb: `Today is <ahref="https://www.internationalwomensday.com/"target="_blank">International Women's Day}</a>`,
class: "symbol-venus",
};
else if (month === 3 && day === 31)
return {
blurb: `Today is <ahref="https://www.manygendersonevoice.org/tdov.html"target="_blank">Trans Day of Visibility</a>`,
class: "flag-trans",
};
else if (month === 4 && day === 6)
return {
blurb: `Today is <ahref="https://internationalasexualityday.org/en"target="_blank">International Asexuality Day</a>`,
class: "flag-ace",
};
else if (month === 4 && day === 26)
return {
blurb: `Today is <ahref="https://www.lesbianvisibilityweek.com"target="_blank">Lesbian Visibility Day</a>`,
class: "flag-lesbian",
};
else if (month === 5 && day === 17)
return {
blurb: `Today is <ahref="https://may17.org"target="_blank">International Day Against Homophobia, Biphobia and Transphobia</a>`,
class: "flag-progress",
};
else if (month === 5 && day === 19)
return {
blurb: `Today is <ahref="https://www.believeoutloud.com/voices/article/agender-pride-day/"target="_blank">Agender Pride Day</a>`,
class: "flag-agender",
};
else if (month === 5 && day === 25)
return {
blurb: `Today is <ahref="https://genderedintelligence.co.uk/panvisibilityday"target="_blank">Pansexual and Panromantic Awareness and Visibility Day</a>`,
blurb: `Today is <ahref="https://www.manygendersonevoice.org/non-binary-peoples-day.html"target="_blank">Non-Binary People's Day</a>`,
class: "flag-nonbinary",
};
else if (month === 7 && day === 28)
return {
blurb: `Today is Leilukin's Birthday`
};
else if (month === 9 && day === 11)
return {
blurb: `Today is the ${leilukinsHubAnniversary}-year anniversary of the launch of Leilukin's Hub`
};
else if (month === 9 && day === 23)
return {
blurb: `Today is <ahref="https://bivisibilityday.com/about"target="_blank">Bi Visibility Day</a>`,
class: "flag-bi",
};
else if (month === 10 && day === 8)
return {
blurb: `Today is <ahref="https://www.lgbtiqhealth.org.au/international_lesbian_day2"target="_blank">International Lesbian Day</a>`,
class: "flag-lesbian",
};
else if (month === 10 && day === 11)
return {
blurb: `Today is <ahref="https://www.hrc.org/resources/national-coming-out-day"target="_blank">National Coming Out Day</a>`,
class: "flag-rainbow",
};
else if (month === 10 && day === 17)
return {
blurb: `Today is the start of <ahref="https://www.grlgbtqhealthcareconsortium.org/significantdates/genderfluid-visibility-week"target="_blank">Genderfluid Visibility Week</a>`,
class: "flag-genderfluid",
};
else if (month === 10 && day === 24)
return {
blurb: `Today is the start of <ahref="https://www.grlgbtqhealthcareconsortium.org/significantdates/ace-week"target="_blank">Ace Week</a>`,
class: "flag-ace",
};
else if (month === 10 && day === 26)
return {
blurb: `Today is <ahref="https://interactadvocates.org/intersex-awareness-day"target="_blank">Intersex Awareness Day</a>`,
<li><ahref="#use-github-actions-to-deploy-leilukins-hub-to-neocities">Use GitHub Actions to deploy Leilukin's Hub to Neocities</a>
</li>
<li><ahref="#a-weeks-worth-of-effort-well-spent">A Week's Worth of Effort Well-Spent</a>
</li>
</ol>
</nav>
</details>
</aside>
<style>
.toc__wrapper {
max-height: 89vh;
overflow: auto;
background-color: var(--clr-content-bg);
padding: 1rem 1.3rem;
}
.toc__heading {
font-size: 1.3rem;
font-weight: 700;
color: var(--clr-sub-heading);
cursor: pointer;
}
.toc ol,
.toc ol ol {
display: grid;
gap: 0.3em;
}
.toc ol {
border-top: 0.1em solid var(--clr-title-border);
padding-left: 1.3em;
padding-top: 1em;
}
.toc ol ol {
border-top: none;
list-style-type: disc;
padding-left: 1em;
padding-top: 0.3em;
}
.toc ol a {
font-size: 1.1rem;
padding-left: 0.3em;
}
.toc ol ol a {
padding: 0;
font-size: 1rem;
}
</style>
<articleclass="article">
<p>Leilukin's Hub just overgone a major overhaul: In April 2024, I have been rebuilding this entire website with the <ahref="https://en.wikipedia.org/wiki/Static_site_generator">static site generator</a> (SSG), <ahref="https://www.11ty.dev/">Eleventy</a>, often abbreviated as 11ty, and the process was completed on 20 April 2024.</p>
<p>After building this website for more than a year, Eleventy finally provided the solution for me to maintain, manage and update my website in more dynamic and sufficient ways to save time.</p>
<divclass="heading-wrapper h2">
<h2id="challenges-of-maintaining-a-growing-website">Challenges of Maintaining a Growing Website</h2>
<p>Leilukin's Hub has come a long way since launch on 11 September 2022, from a small website with a few pages and a simple layout, to a full-fledged personal website with multiple <ahref="/articles">articles</a>, a <ahref="/blog">blog</a>, a couple of <ahref="/shrines">shrines</a> with additional features such as sticky navigation bar, table of contents, etc. Meanwhile, I have also been learning web development, which helped to improve this website in multiple ways.</p>
<p>However, more content on my website also means more work to maintain. In particular, I have been trying to find ways to render components that share across multiple pages on my site, such as the header, navigation bar and footer, without having to copy and pasting the code of these components over and over whenever I want to add a new page. I had used JavaScript for this, but it is still not the best solution because I still needed to add a link to my JavaScript file in HTML. Thankfully, I eventually discovered Eleventy as the solution.</p>
<p>There are <ahref="https://jamstack.org/generators/">many static site generators</a>, so why I choose Eleventy over others? The main reason is Eleventy's flexibility. You can start building your website with Eleventy with something as simple as <ahref="https://hamatti.org/posts/index-md-is-valid-eleventy-project/">an <code>index.md</code> Markdown file</a>.</p>
<p>In addition, Eleventy's own features, support for many <ahref="https://www.11ty.dev/docs/languages/">template languages</a> and plugins allow me to have control over how I build and customise my own website, some of which I will highlight as I elaborate the changes and improvements I had made to this website below.</p>
<divclass="heading-wrapper h2">
<h2id="new-features-of-leilukins-hub">New Features of Leilukin's Hub</h2>
<p>Leilukin's Hub <ahref="/blog">blog</a> and main <ahref="/changelogs">changelogs</a> page now has pagination, thanks to <ahref="https://www.11ty.dev/docs/pagination/">Eleventy's built-in support for the feature</a>.</p>
<p>Thanks to <ahref="https://www.npmjs.com/package/@11tyrocks/eleventy-plugin-emoji-readtime">Emoji Read Time</a>, a community plugin for Eleventy, my articles and blog posts now show the piece's estimated reading time before the main content.</p>
<p>For the articles, blog posts and some other pages that have headings, I have enabled anchor links on the headings by referring to the <ahref="https://11ty.rocks/eleventyjs/slugs-anchors/#enable-anchor-links-on-content-headings">11ty Slugs and Anchors guide</a> from the website 11ty Rocks!, installing and configuring the <ahref="https://www.npmjs.com/package/markdown-it-anchor">markdown-it-anchor</a> plugin.</p>
<p>Having a plugin that automatically generates heading anchor links also allows me to generate table of contents by installing the <ahref="https://www.npmjs.com/package/eleventy-plugin-nesting-toc">eleventy-plugin-nesting-toc</a> plugin.</p>
<p>Eleventy's <ahref="https://www.11ty.dev/docs/collections/">collection</a> feature allows users to group site content by tags and create custom collections. This feature allows me to add categories to my articles and blog posts, and in turn allows visitors to browse my website by <ahref="/categories">categories</a>.</p>
<divclass="heading-wrapper h3">
<h3id="archive-for-all-my-articles-and-blog-posts">Archive for All My Articles and Blog Posts</h3>
<p>Eleventy's collection feature also allows me to dynamically display links to my articles and posts when I make a new one, without needing to edit more pages to add the new links myself. Therefore, I took advantage of this feature by creating an [archive] page to display all my articles and blog posts.</p>
<p>Furthermore, my articles, blog and posts now has a right sidebar with links to my articles, blog posts as well as their archives and categories.</p>
<p>Some contents on Leilukin's Hub now has <ahref="https://www.seoptimer.com/blog/breadcrumbs-website/">breadcrumbs</a>, which shows the locations of these contents within this website and provides another means for visitors to navigate this site.</p>
<p>Inspired by the <ahref="https://nownownow.com/about">nownownow.com</a> website, I have added a <ahref="/now">Now page</a> to Leilukin's Hub. This page is about what I am doing and focusing at the moment. The page can be updated at any time, so feel free to check it out when you visit this website to learn what I am up to!</p>
<p>Leilukin's Hub blog was <ahref="https://leilukin.neocities.org/blog/posts/2023-01-28-leilukins-hub-now-has-a-blog/">launched on 28 January 2023</a>. Formerly, the blog was built with <ahref="https://zonelets.net/">Zonelets</a>; now I take advantage of Eleventy's flexibility by recreating Leilukin's Hub blog with it, thus using the main site's layout for the blog instead of <ahref="/changelogs/layouts/#11-september-2023-blog-layout">using a different layout</a>. This makes the blog actually feels like it is part of this website.</p>
<p>Visually, my <ahref="/sitemap">site map</a> does not change much other than tweaking the spacing, but under the hood, I use the Eleventy's official <ahref="https://www.11ty.dev/docs/plugins/navigation/">Navigation</a> plugin to generate the links to my pages in a hierarchical manner.</p>
<p>I had created an <ahref="/feed.xml">RSS feed</a> for Leilukin's Hub's changelogs and blog posts for a while, but previously I had to create new entries in the feed manually by using <ahref="https://sourceforge.net/projects/rss-builder/">RSS Builder</a>. Now by installing and setting up Eleventy's official <ahref="https://www.11ty.dev/docs/plugins/rss/">RSS</a> plugin, new feed entries will be generated automatically when I make new changelogs, articles and blog posts.</p>
<p>The following changes are not related to any features inherent to Eleventy or its plugins, but they were part of my process of rebuilding Leilukin's Hub.</p>
<p>I have removed the "launch page" that was used as the very first page you saw when you visited the link <ahref="https://leilukin.neocities.org/">leilukin.neocities.org</a>. Now when you visit the link to my website, you will immediately see the home page wihout any extra step.</p>
<divclass="heading-wrapper h2">
<h2id="my-creation-page-renamed-to-projects">My Creation Page Renamed to Projects</h2>
<p>Previously, longer <ahref="/categories/site-updates/">site updates</a> were made into their own pages, since Leilukin's Hub did not have its own blog when I made the first site update post. Now these updates are converted into blog posts.</p>
<divclass="heading-wrapper h3">
<h3id="featured-articles-being-party-of-articles">Featured Articles being Party of Articles</h3>
<p>Formerly, pages that featured my interviews were on their own page called "featured". Now, these <ahref="/articles/#featured-articles">featured articles</a> are merged into the <ahref="/articles">articles</a> page.</p>
<p>I have created two different resolutions of each header image of my <ahref="/shrines">shrines</a>. Which version of the shrine header image gets displayed depends on if your screen is horizontal or vertical.</p>
<p>Previously, this site's scroll-to-top function was placed in the footer. Now, I created a scroll-to-top button in the bottom right corner of the page when you scroll down.</p>
<p>The main title of each page is now displayed above both the main content and sidebars, instead of just above the main content like in the <ahref="/changelogs/layouts/#23-june-2023">previous layout</a>. This change was made so when this site is viewed on mobile, the table of contents of the left sidebar will be displayed above the main content but still below the page's main title. Previously, I had to place the table of contents on both the left sidebar and the main content's body, and hide the sidebar table of contents when viewed on mobile.</p>
<p>I also use <ahref="https://css-tricks.com/snippets/css/complete-guide-grid/">CSS grid</a> to set the page layout in that the main content's width will remain the same instead of expanding if there is no sidebar on the page.</p>
<divclass="heading-wrapper h2">
<h2id="use-github-actions-to-deploy-leilukins-hub-to-neocities">Use GitHub Actions to deploy Leilukin's Hub to Neocities</h2>
<p>Eleventy is great for reducing many workloads in maintaining and updating my website, so how about publishing the website to Neocities? That is where the <ahref="https://docs.github.com/en/actions">GitHub actions</a> comes in.</p>
<p>Before I decided to use a static site generator to rebuild Leilukin's Hub, I discovered the GitHub action named <ahref="https://github.com/bcomnes/deploy-to-neocities">deploy-to-neocities</a>, which as the name suggests, allows you to publish your website directly from a GitHub repository to Neocities. I succeeded in deploying all the files of Leilukin's Hub to Neocities with it even before starting to rebuild my website with Eleventy.</p>
<p>I have been using Visual Studio Code to write the code for Leilukin's Hub, and saving a copy of all the files of my website on my own computer. The combination of creating a Git repository for Leilukin's Hub and using the deploy-to-neocities GitHub action saves the time and workload needed to log in to Neocities, navigate the files and folders and open a file to edit the code every time I want to make a change to my website.</p>
<divclass="heading-wrapper h2">
<h2id="a-weeks-worth-of-effort-well-spent">A Week's Worth of Effort Well-Spent</h2>
<p>I had spent a whole week in rebuilding Leilukin's Hub from scratch with Eleventy, and at last completing the process on 20 April 2024. Most of the time rebuilding this website was spent on setting up layout templates, rather than changing the format of my articles and blog posts from HTML to markdown. However, the effort and time spent was worth it, and Leilukin's Hub feels new again.</p>
<ulclass="blog__post--nextprev"><li>Previous Post: <ahref="/blog/posts/2024-03-06-i-received-a-lifetime-premium-membership-on-nexus-mods-for-free/">I Received a Lifetime Premium Membership on Nexus Mods for Free</a></li><li>Next Post: <ahref="/blog/posts/2024-04-27-lesbian-visibility-day1-year-anniversary-of-cassette-beasts/">Happy Lesbian Visibility Day and 1-Year Anniversary of Cassette Beasts</a></li>