From 858db12d75f09ce420c092192b19260be25e1014 Mon Sep 17 00:00:00 2001 From: helenclx Date: Tue, 3 Dec 2024 15:57:16 +0000 Subject: [PATCH] Build: (6cbeebc) Add 3 December 2024 changelog --- archive/index.html | 6 +- articles/accessible-footnotes/index.html | 94 ++++++++++++- assets/css/plugins.css | 4 +- categories/star-wars-kotor-2/index.html | 6 +- categories/star-wars-kotor/index.html | 2 +- categories/video-game-mods/index.html | 4 +- changelogs/2024/index.html | 12 ++ changelogs/index.html | 11 +- changelogs/page/2/index.html | 10 +- changelogs/page/3/index.html | 10 +- changelogs/page/4/index.html | 11 +- changelogs/page/5/index.html | 11 +- changelogs/page/6/index.html | 10 +- changelogs/page/7/index.html | 5 + feed.xml | 167 +++++++++++++---------- index.html | 5 +- shrines/asummersend/trivia/index.html | 124 ++++++++++++++--- shrines/cassettebeasts/facts/index.html | 140 ++++++++++++++++--- sitemap.xml | 82 +++++------ 19 files changed, 520 insertions(+), 194 deletions(-) diff --git a/archive/index.html b/archive/index.html index 4be2bbb9..44c34f47 100644 --- a/archive/index.html +++ b/archive/index.html @@ -399,7 +399,7 @@ drop-shadow(0.1rem 0.1rem 0.2rem rgba(30, 30, 30, 0.8))

- +
  • @@ -409,7 +409,7 @@ drop-shadow(0.1rem 0.1rem 0.2rem rgba(30, 30, 30, 0.8))

    - +
  • @@ -419,7 +419,7 @@ drop-shadow(0.1rem 0.1rem 0.2rem rgba(30, 30, 30, 0.8))

    - +
  • diff --git a/articles/accessible-footnotes/index.html b/articles/accessible-footnotes/index.html index 83d10322..13e8d48a 100644 --- a/articles/accessible-footnotes/index.html +++ b/articles/accessible-footnotes/index.html @@ -429,10 +429,12 @@ drop-shadow(0.1rem 0.1rem 0.2rem rgba(30, 30, 30, 0.8))
  • Final HTML Markup for Accessible Footnotes
  • Configure markdown-it-footnote in Eleventy's Configuration File
  • Bonus: Alternatives to Footnotes
  • -
  • Wrapping Up
  • +
  • Wrapping Up
  • +
  • Update 3 December 2024: Enlarge Link Target Area
    1. Updated HTML Markup
    2. +
    3. Updated markdown-it-footnotes Configuration
  • @@ -490,7 +494,7 @@ drop-shadow(0.1rem 0.1rem 0.2rem rgba(30, 30, 30, 0.8))

    About Footnotes

    Plagiarism.org defines footnotes as notes placed at the bottom of a page, and what footnotes do is to cite references or comment on a designated part of the text above it.

    -

    My use case of footnotes is citing sources of information, particularly citing the same source multiple times on the same page when information from the same source is spread across my page. As of this writing, my website pages that use footnotes include the trivia page of my A Summer’s End — Hong Kong 1986 shrine 1 and the facts page of my Cassette Beasts shrine. You are free to look at the HTML and CSS for reference, including when you are reading this article as I am explaining how I implement the footnotes.

    +

    My use case of footnotes is citing sources of information, particularly citing the same source multiple times on the same page when information from the same source is spread across my page. As of this writing, my website pages that use footnotes include the trivia page of my A Summer’s End — Hong Kong 1986 shrine 1 and the facts page of my Cassette Beasts shrine. You are free to look at the HTML and CSS for reference.

    Footnotes are used both on print and on the web. However, maintaining footnotes on the web can be tedious, especially if you want to update a web page to add or remove them, since you will need to change the number references of existing footnotes.

    Attempted to Use CSS Counters

    @@ -666,6 +670,90 @@ module.

    Creating and maintaining footnotes on web pages is tricky, so I hope my article about accessible footnotes is helpful if you want to create them.

    I am still not completely certain if my method is the best, although I tried to the best of my abilities, so I am interested in hearing feedback for my way of implementing accessible footnotes.

    +
    + +
    +

    On 3 December 2024, ~hedy emailed me talking about this article, offering additional tips for improving footnotes. She also recommended me to check out Seirdy's blog as a reference for formatting footnotes.

    +

    I found ~hedy's suggestions good, so I made further improvements to my footnotes, by enlarging the target area of links. To achieve this, I changed the reference labels and footnote backlinks by using visible longer link text instead of ARIA labels.

    +

    Specifically, for reference labels, I now use "[Note 1]" instead of just a number like "[1]", while for footnote backlinks, I use "↩︎ Back to reference 1" instead of just a ↩︎ symbol.

    +

    In addition, I wrap each footnote backlink in a paragraph element (<p>), to place each backlink per line to improve footnotes' readability.

    +

    Larger link target area is even better because mobile device users would find it easier to tap on the reference links and the footnote backlinks, and sighted visitors on desktop are also benefited because they can see the purpose of these links on plain slight.

    +
    +

    Updated HTML Markup

    +
    +

    Here is an example of how the final HTML markup would look like with larger link target area:

    +
    <p>This is a paragraph with the first footnote reference. <sup class="footnote-ref"><a href="#fn1" id="fnref1">[Note 1]</a></sup></p>
    +
    +<p>Here is the second paragraph with the second footnote reference. <sup class="footnote-ref"><a href="#fn2" id="fnref2">[Note 2]</a></sup></p>
    +
    +<p>This the third paragraph, but with a foootnote reference that points to the first footnote. <sup class="footnote-ref"><a href="#fn1" id="fnref1:1">[Note 1:1]</a></sup></p>
    +
    +<hr class="footnotes-sep">
    +<section class="footnotes">
    +	<h2>Footnotes</h2>
    +    <ol class="footnotes-list">
    +        <li id="fn1" class="footnote-item">
    +	        First footnote
    +	        <p><a href="#fnref1" class="footnote-backref">↩︎ Back to reference 1</a></p>
    +	        <p><a href="#fnref1:1" class="footnote-backref">↩︎ Back to reference 1:1</a></p>
    +	    </li>
    +        <li id="fn2" class="footnote-item">
    +	        Second footnote
    +	        <p><a href="#fnref2" class="footnote-backref">↩︎ Back to reference 2</a></p>
    +	    </li>
    +    </ol>
    +</section>
    +
    +

    Updated markdown-it-footnotes Configuration

    +
    +

    Here is the code of the configuration for the markdown-it-footnotes plugin:

    +
    // markdown-it plugins
    +const markdownIt = require("markdown-it");
    +const markdownItFootnote = require("markdown-it-footnote");
    +let markdownLibrary;
    +
    +module.exports = function (eleventyConfig) {
    +    /* Markdown Overrides */
    +    markdownLibrary = markdownIt({
    +        html: true,
    +    }).use(markdownItFootnote);
    +
    +    // Configure markdown-it-footnote
    +    markdownLibrary.renderer.rules.footnote_block_open = () => (
    +        '<hr class="footnotes-sep">\n' +
    +        '<section class="footnotes">\n' +
    +        `<h2>Footnotes</h2>\n`
    +    );
    +
    +    markdownLibrary.renderer.rules.footnote_anchor = (tokens, idx, options, env, slf) => {
    +        let id = slf.rules.footnote_anchor_name(tokens, idx, options, env, slf);
    +
    +        if (tokens[idx].meta.subId > 0) id += `:${tokens[idx].meta.subId}`;
    +
    +        /* ↩ with escape code to prevent display as Apple Emoji on iOS */
    +        return `
    +            <p class="footnote-item__back">
    +                <a href="#fnref${id}" class="footnote-backref">
    +                    <span aria-hidden="true">\u21a9\uFE0E</span>
    +                    Back to reference ${id}
    +                </a>
    +            </p>
    +        `;
    +    };
    +
    +    const renderRules = {
    +        footnote_caption: ['[', '[Note '],
    +    };
    +    Object.keys(renderRules).map(rule => {
    +        let defaultRender = markdownLibrary.renderer.rules[rule];
    +        markdownLibrary.renderer.rules[rule] = (tokens, idx, options, env, self) => {
    +            return defaultRender(tokens, idx, options, env, self).replace(...renderRules[rule]);
    +        }
    +    });
    +
    +    /* This is the part that tells 11ty to swap to our custom config */
    +    eleventyConfig.setLibrary("md", markdownLibrary);
    +}
    diff --git a/assets/css/plugins.css b/assets/css/plugins.css index 6c80b835..868726ca 100644 --- a/assets/css/plugins.css +++ b/assets/css/plugins.css @@ -39,10 +39,12 @@ .footnotes-list { display: grid; - gap: 0.3em; + gap: 1em; } .footnotes-list :target { background-color: var(--clr-quote-bg); outline: 0.1em dashed var(--clr-title-border); + outline-offset: 0.1em; } +*:not([class]) + .footnote-item__back { margin-top: 0.5em; } \ No newline at end of file diff --git a/categories/star-wars-kotor-2/index.html b/categories/star-wars-kotor-2/index.html index 0b9ea916..9e097b1e 100644 --- a/categories/star-wars-kotor-2/index.html +++ b/categories/star-wars-kotor-2/index.html @@ -402,7 +402,7 @@ drop-shadow(0.1rem 0.1rem 0.2rem rgba(30, 30, 30, 0.8))

    - +
  • @@ -412,7 +412,7 @@ drop-shadow(0.1rem 0.1rem 0.2rem rgba(30, 30, 30, 0.8))

    - +
  • @@ -422,7 +422,7 @@ drop-shadow(0.1rem 0.1rem 0.2rem rgba(30, 30, 30, 0.8))

    - +
  • diff --git a/categories/star-wars-kotor/index.html b/categories/star-wars-kotor/index.html index e4d8f9df..ca781f56 100644 --- a/categories/star-wars-kotor/index.html +++ b/categories/star-wars-kotor/index.html @@ -402,7 +402,7 @@ drop-shadow(0.1rem 0.1rem 0.2rem rgba(30, 30, 30, 0.8))

    - +
  • diff --git a/categories/video-game-mods/index.html b/categories/video-game-mods/index.html index b35982ce..38b38f49 100644 --- a/categories/video-game-mods/index.html +++ b/categories/video-game-mods/index.html @@ -402,7 +402,7 @@ drop-shadow(0.1rem 0.1rem 0.2rem rgba(30, 30, 30, 0.8))

    - +
  • @@ -412,7 +412,7 @@ drop-shadow(0.1rem 0.1rem 0.2rem rgba(30, 30, 30, 0.8))

    - +
  • diff --git a/changelogs/2024/index.html b/changelogs/2024/index.html index dcb0c871..a765f6b5 100644 --- a/changelogs/2024/index.html +++ b/changelogs/2024/index.html @@ -429,6 +429,18 @@ drop-shadow(0.1rem 0.1rem 0.2rem rgba(30, 30, 30, 0.8)) +
    +

    + 3 December 2024 +

    + +
    + + +

    1 December 2024 diff --git a/changelogs/index.html b/changelogs/index.html index d89b4669..f2264b6b 100644 --- a/changelogs/index.html +++ b/changelogs/index.html @@ -473,6 +473,12 @@ drop-shadow(0.1rem 0.1rem 0.2rem rgba(30, 30, 30, 0.8))

    Latest Changelogs

    +

    + +

    -

    - - diff --git a/changelogs/page/2/index.html b/changelogs/page/2/index.html index 83310e12..3997d6a4 100644 --- a/changelogs/page/2/index.html +++ b/changelogs/page/2/index.html @@ -473,6 +473,11 @@ drop-shadow(0.1rem 0.1rem 0.2rem rgba(30, 30, 30, 0.8))

    Latest Changelogs

    +

    + +

    -

    -
      -
    • Replace the entire site's default font from Noto Sans to Lexend.
    • -
    - diff --git a/changelogs/page/3/index.html b/changelogs/page/3/index.html index 92ce970b..8e490c05 100644 --- a/changelogs/page/3/index.html +++ b/changelogs/page/3/index.html @@ -473,6 +473,11 @@ drop-shadow(0.1rem 0.1rem 0.2rem rgba(30, 30, 30, 0.8))

    Latest Changelogs

    +

    +
      +
    • Replace the entire site's default font from Noto Sans to Lexend.
    • +
    +

    -

    -
      -
    • Cassette Beasts shrine: Updated the Development History section of the Trivia page with info about the release of Update 1.5 and "Pier of the Unknown" DLC.
    • -
    - diff --git a/changelogs/page/4/index.html b/changelogs/page/4/index.html index ccbb657a..c1ac2103 100644 --- a/changelogs/page/4/index.html +++ b/changelogs/page/4/index.html @@ -473,6 +473,11 @@ drop-shadow(0.1rem 0.1rem 0.2rem rgba(30, 30, 30, 0.8))

    Latest Changelogs

    +

    +
      +
    • Cassette Beasts shrine: Updated the Development History section of the Trivia page with info about the release of Update 1.5 and "Pier of the Unknown" DLC.
    • +
    +

    • Changed this website's font to Noto Sans.
    • @@ -591,12 +596,6 @@ drop-shadow(0.1rem 0.1rem 0.2rem rgba(30, 30, 30, 0.8))
    • Cassette Beasts shrine: Added a Trivia
    -

    - - diff --git a/changelogs/page/5/index.html b/changelogs/page/5/index.html index 05f36e15..f305253f 100644 --- a/changelogs/page/5/index.html +++ b/changelogs/page/5/index.html @@ -473,6 +473,12 @@ drop-shadow(0.1rem 0.1rem 0.2rem rgba(30, 30, 30, 0.8))

    Latest Changelogs

    +

    + +

    • Launched a new shrine: Cassette Beasts.
    • @@ -596,11 +602,6 @@ drop-shadow(0.1rem 0.1rem 0.2rem rgba(30, 30, 30, 0.8))
    • Changed the color of subheadings.
    -

    - - diff --git a/changelogs/page/6/index.html b/changelogs/page/6/index.html index f6b1e156..1bcd849d 100644 --- a/changelogs/page/6/index.html +++ b/changelogs/page/6/index.html @@ -473,6 +473,11 @@ drop-shadow(0.1rem 0.1rem 0.2rem rgba(30, 30, 30, 0.8))

    Latest Changelogs

    +

    + +

    -

    - - diff --git a/changelogs/page/7/index.html b/changelogs/page/7/index.html index 8b249a27..8391783b 100644 --- a/changelogs/page/7/index.html +++ b/changelogs/page/7/index.html @@ -473,6 +473,11 @@ drop-shadow(0.1rem 0.1rem 0.2rem rgba(30, 30, 30, 0.8))

    Latest Changelogs

    +

    + +

    • Added my latest mod, TSL Workbench Lightsaber Creation, to my mods for Star Wars: Knights of the Old Republic II: The Sith Lords page.
    • diff --git a/feed.xml b/feed.xml index b3d49523..60959688 100644 --- a/feed.xml +++ b/feed.xml @@ -4,13 +4,25 @@ Leilukin's personal website. - 2024-12-03T11:05:45Z + 2024-12-03T15:57:12Z https://leilukin.com/ Leilukin contact@leilukin.com + + Changelog: 3 December 2024 + + 2024-12-03T15:53:36Z + https://leilukin.com/ + <ul> +<li>Improve footnotes by enlarging the target area of reference links and footntoe backlinks.</li> +<li>Update article <a href="https://leilukin.com/articles/accessible-footnotes/#update-3-december-2024-enlarge-link-target-area">&quot;How I (Tried to) Implement Accessible Footnotes&quot;</a> with information about improving footnote links' target area.</li> +</ul> + + + Changelog: 1 December 2024 @@ -226,7 +238,7 @@ <h2 id="about-footnotes">About Footnotes</h2> <a class="heading-anchor" href="https://leilukin.com/articles/accessible-footnotes/#about-footnotes" aria-labelledby="about-footnotes"><span hidden="">#</span></a></div> <p>Plagiarism.org <a href="https://www.plagiarism.org/article/what-are-footnotes">defines footnotes</a> as notes placed at the bottom of a page, and what footnotes do is to cite references or comment on a designated part of the text above it.</p> -<p>My use case of footnotes is citing sources of information, particularly citing the same source multiple times on the same page when information from the same source is spread across my page. As of this writing, my website pages that use footnotes include the <a href="https://leilukin.com/shrines/asummersend/trivia/">trivia page of my <cite>A Summer’s End — Hong Kong 1986</cite> shrine 1</a> and the <a href="https://leilukin.com/shrines/cassettebeasts/facts/">facts page of my <cite>Cassette Beasts</cite> shrine</a>. You are free to look at the HTML and CSS for reference, including when you are reading this article as I am explaining how I implement the footnotes.</p> +<p>My use case of footnotes is citing sources of information, particularly citing the same source multiple times on the same page when information from the same source is spread across my page. As of this writing, my website pages that use footnotes include the <a href="https://leilukin.com/shrines/asummersend/trivia/">trivia page of my <cite>A Summer’s End — Hong Kong 1986</cite> shrine 1</a> and the <a href="https://leilukin.com/shrines/cassettebeasts/facts/">facts page of my <cite>Cassette Beasts</cite> shrine</a>. You are free to look at the HTML and CSS for reference.</p> <p>Footnotes are used both on print and on the web. However, maintaining footnotes on the web can be tedious, especially if you want to update a web page to add or remove them, since you will need to change the number references of existing footnotes.</p> <div class="heading-wrapper h2"> <h2 id="attempted-to-use-css-counters">Attempted to Use CSS Counters</h2> @@ -402,6 +414,90 @@ module<span class="token punctuation">.</span><span cla <a class="heading-anchor" href="https://leilukin.com/articles/accessible-footnotes/#wrapping-up" aria-labelledby="wrapping-up"><span hidden="">#</span></a></div> <p>Creating and maintaining footnotes on web pages is tricky, so I hope my article about accessible footnotes is helpful if you want to create them.</p> <p>I am still not completely certain if my method is the best, although I tried to the best of my abilities, so I am interested in hearing feedback for my way of implementing accessible footnotes.</p> +<div class="heading-wrapper h2"> +<h2 id="update-3-december-2024-enlarge-link-target-area">Update 3 December 2024: Enlarge Link Target Area</h2> +<a class="heading-anchor" href="https://leilukin.com/articles/accessible-footnotes/#update-3-december-2024-enlarge-link-target-area" aria-labelledby="update-3-december-2024-enlarge-link-target-area"><span hidden="">#</span></a></div> +<p>On 3 December 2024, <a href="https://home.hedy.dev/">~hedy</a> emailed me talking about this article, offering additional tips for improving footnotes. She also recommended me to check out <a href="https://seirdy.one/">Seirdy</a>'s blog as a reference for formatting footnotes.</p> +<p>I found ~hedy's suggestions good, so I made further improvements to my footnotes, by enlarging the target area of links. To achieve this, I changed the reference labels and footnote backlinks by using visible longer link text instead of ARIA labels.</p> +<p>Specifically, for reference labels, I now use &quot;[Note 1]&quot; instead of just a number like &quot;[1]&quot;, while for footnote backlinks, I use &quot;↩︎ Back to reference 1&quot; instead of just a ↩︎ symbol.</p> +<p>In addition, I wrap each footnote backlink in a paragraph element (<code>&lt;p&gt;</code>), to place each backlink per line to improve footnotes' readability.</p> +<p>Larger link target area is even better because mobile device users would find it easier to tap on the reference links and the footnote backlinks, and sighted visitors on desktop are also benefited because they can see the purpose of these links on plain slight.</p> +<div class="heading-wrapper h3"> +<h3 id="updated-html-markup">Updated HTML Markup</h3> +<a class="heading-anchor" href="https://leilukin.com/articles/accessible-footnotes/#updated-html-markup" aria-labelledby="updated-html-markup"><span hidden="">#</span></a></div> +<p>Here is an example of how the final HTML markup would look like with larger link target area:</p> +<pre class="language-html" tabindex="0"><code class="language-html"><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>p</span><span class="token punctuation">></span></span>This is a paragraph with the first footnote reference. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>sup</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>footnote-ref<span class="token punctuation">"</span></span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a</span> <span class="token attr-name">href</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>#fn1<span class="token punctuation">"</span></span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>fnref1<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>[Note 1]<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a</span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>sup</span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>p</span><span class="token punctuation">></span></span> + +<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>p</span><span class="token punctuation">></span></span>Here is the second paragraph with the second footnote reference. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>sup</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>footnote-ref<span class="token punctuation">"</span></span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a</span> <span class="token attr-name">href</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>#fn2<span class="token punctuation">"</span></span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>fnref2<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>[Note 2]<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a</span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>sup</span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>p</span><span class="token punctuation">></span></span> + +<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>p</span><span class="token punctuation">></span></span>This the third paragraph, but with a foootnote reference that points to the first footnote. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>sup</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>footnote-ref<span class="token punctuation">"</span></span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a</span> <span class="token attr-name">href</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>#fn1<span class="token punctuation">"</span></span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>fnref1:1<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>[Note 1:1]<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a</span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>sup</span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>p</span><span class="token punctuation">></span></span> + +<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>hr</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>footnotes-sep<span class="token punctuation">"</span></span><span class="token punctuation">></span></span> +<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>section</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>footnotes<span class="token punctuation">"</span></span><span class="token punctuation">></span></span> + <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>h2</span><span class="token punctuation">></span></span>Footnotes<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>h2</span><span class="token punctuation">></span></span> + <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>ol</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>footnotes-list<span class="token punctuation">"</span></span><span class="token punctuation">></span></span> + <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>li</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>fn1<span class="token punctuation">"</span></span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>footnote-item<span class="token punctuation">"</span></span><span class="token punctuation">></span></span> + First footnote + <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>p</span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a</span> <span class="token attr-name">href</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>#fnref1<span class="token punctuation">"</span></span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>footnote-backref<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>↩︎ Back to reference 1<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a</span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>p</span><span class="token punctuation">></span></span> + <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>p</span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a</span> <span class="token attr-name">href</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>#fnref1:1<span class="token punctuation">"</span></span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>footnote-backref<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>↩︎ Back to reference 1:1<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a</span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>p</span><span class="token punctuation">></span></span> + <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>li</span><span class="token punctuation">></span></span> + <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>li</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>fn2<span class="token punctuation">"</span></span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>footnote-item<span class="token punctuation">"</span></span><span class="token punctuation">></span></span> + Second footnote + <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>p</span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a</span> <span class="token attr-name">href</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>#fnref2<span class="token punctuation">"</span></span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>footnote-backref<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>↩︎ Back to reference 2<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a</span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>p</span><span class="token punctuation">></span></span> + <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>li</span><span class="token punctuation">></span></span> + <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>ol</span><span class="token punctuation">></span></span> +<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>section</span><span class="token punctuation">></span></span></code></pre> +<div class="heading-wrapper h3"> +<h3 id="updated-markdown-it-footnotes-configuration">Updated markdown-it-footnotes Configuration</h3> +<a class="heading-anchor" href="https://leilukin.com/articles/accessible-footnotes/#updated-markdown-it-footnotes-configuration" aria-labelledby="updated-markdown-it-footnotes-configuration"><span hidden="">#</span></a></div> +<p>Here is the code of the configuration for the markdown-it-footnotes plugin:</p> +<pre class="language-js" tabindex="0"><code class="language-js"><span class="token comment">// markdown-it plugins</span> +<span class="token keyword">const</span> markdownIt <span class="token operator">=</span> <span class="token function">require</span><span class="token punctuation">(</span><span class="token string">"markdown-it"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> +<span class="token keyword">const</span> markdownItFootnote <span class="token operator">=</span> <span class="token function">require</span><span class="token punctuation">(</span><span class="token string">"markdown-it-footnote"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> +<span class="token keyword">let</span> markdownLibrary<span class="token punctuation">;</span> + +module<span class="token punctuation">.</span><span class="token function-variable function">exports</span> <span class="token operator">=</span> <span class="token keyword">function</span> <span class="token punctuation">(</span><span class="token parameter">eleventyConfig</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> + <span class="token comment">/* Markdown Overrides */</span> + markdownLibrary <span class="token operator">=</span> <span class="token function">markdownIt</span><span class="token punctuation">(</span><span class="token punctuation">{</span> + <span class="token literal-property property">html</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span> + <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">use</span><span class="token punctuation">(</span>markdownItFootnote<span class="token punctuation">)</span><span class="token punctuation">;</span> + + <span class="token comment">// Configure markdown-it-footnote</span> + markdownLibrary<span class="token punctuation">.</span>renderer<span class="token punctuation">.</span>rules<span class="token punctuation">.</span><span class="token function-variable function">footnote_block_open</span> <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">(</span> + <span class="token string">'&lt;hr class="footnotes-sep">\n'</span> <span class="token operator">+</span> + <span class="token string">'&lt;section class="footnotes">\n'</span> <span class="token operator">+</span> + <span class="token template-string"><span class="token template-punctuation string">`</span><span class="token string">&lt;h2>Footnotes&lt;/h2>\n</span><span class="token template-punctuation string">`</span></span> + <span class="token punctuation">)</span><span class="token punctuation">;</span> + + markdownLibrary<span class="token punctuation">.</span>renderer<span class="token punctuation">.</span>rules<span class="token punctuation">.</span><span class="token function-variable function">footnote_anchor</span> <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token parameter">tokens<span class="token punctuation">,</span> idx<span class="token punctuation">,</span> options<span class="token punctuation">,</span> env<span class="token punctuation">,</span> slf</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span> + <span class="token keyword">let</span> id <span class="token operator">=</span> slf<span class="token punctuation">.</span>rules<span class="token punctuation">.</span><span class="token function">footnote_anchor_name</span><span class="token punctuation">(</span>tokens<span class="token punctuation">,</span> idx<span class="token punctuation">,</span> options<span class="token punctuation">,</span> env<span class="token punctuation">,</span> slf<span class="token punctuation">)</span><span class="token punctuation">;</span> + + <span class="token keyword">if</span> <span class="token punctuation">(</span>tokens<span class="token punctuation">[</span>idx<span class="token punctuation">]</span><span class="token punctuation">.</span>meta<span class="token punctuation">.</span>subId <span class="token operator">></span> <span class="token number">0</span><span class="token punctuation">)</span> id <span class="token operator">+=</span> <span class="token template-string"><span class="token template-punctuation string">`</span><span class="token string">:</span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span>tokens<span class="token punctuation">[</span>idx<span class="token punctuation">]</span><span class="token punctuation">.</span>meta<span class="token punctuation">.</span>subId<span class="token interpolation-punctuation punctuation">}</span></span><span class="token template-punctuation string">`</span></span><span class="token punctuation">;</span> + + <span class="token comment">/* ↩ with escape code to prevent display as Apple Emoji on iOS */</span> + <span class="token keyword">return</span> <span class="token template-string"><span class="token template-punctuation string">`</span><span class="token string"> + &lt;p class="footnote-item__back"> + &lt;a href="#fnref</span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span>id<span class="token interpolation-punctuation punctuation">}</span></span><span class="token string">" class="footnote-backref"> + &lt;span aria-hidden="true">\u21a9\uFE0E&lt;/span> + Back to reference </span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span>id<span class="token interpolation-punctuation punctuation">}</span></span><span class="token string"> + &lt;/a> + &lt;/p> + </span><span class="token template-punctuation string">`</span></span><span class="token punctuation">;</span> + <span class="token punctuation">}</span><span class="token punctuation">;</span> + + <span class="token keyword">const</span> renderRules <span class="token operator">=</span> <span class="token punctuation">{</span> + <span class="token literal-property property">footnote_caption</span><span class="token operator">:</span> <span class="token punctuation">[</span><span class="token string">'['</span><span class="token punctuation">,</span> <span class="token string">'[Note '</span><span class="token punctuation">]</span><span class="token punctuation">,</span> + <span class="token punctuation">}</span><span class="token punctuation">;</span> + Object<span class="token punctuation">.</span><span class="token function">keys</span><span class="token punctuation">(</span>renderRules<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">map</span><span class="token punctuation">(</span><span class="token parameter">rule</span> <span class="token operator">=></span> <span class="token punctuation">{</span> + <span class="token keyword">let</span> defaultRender <span class="token operator">=</span> markdownLibrary<span class="token punctuation">.</span>renderer<span class="token punctuation">.</span>rules<span class="token punctuation">[</span>rule<span class="token punctuation">]</span><span class="token punctuation">;</span> + markdownLibrary<span class="token punctuation">.</span>renderer<span class="token punctuation">.</span>rules<span class="token punctuation">[</span>rule<span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token parameter">tokens<span class="token punctuation">,</span> idx<span class="token punctuation">,</span> options<span class="token punctuation">,</span> env<span class="token punctuation">,</span> self</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span> + <span class="token keyword">return</span> <span class="token function">defaultRender</span><span class="token punctuation">(</span>tokens<span class="token punctuation">,</span> idx<span class="token punctuation">,</span> options<span class="token punctuation">,</span> env<span class="token punctuation">,</span> self<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">replace</span><span class="token punctuation">(</span><span class="token operator">...</span>renderRules<span class="token punctuation">[</span>rule<span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;</span> + <span class="token punctuation">}</span> + <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span> + + <span class="token comment">/* This is the part that tells 11ty to swap to our custom config */</span> + eleventyConfig<span class="token punctuation">.</span><span class="token function">setLibrary</span><span class="token punctuation">(</span><span class="token string">"md"</span><span class="token punctuation">,</span> markdownLibrary<span class="token punctuation">)</span><span class="token punctuation">;</span> +<span class="token punctuation">}</span></code></pre> @@ -413,73 +509,6 @@ module<span class="token punctuation">.</span><span cla <ul> <li>Added my first publicly released code snippet on this website: <a href="https://leilukin.com/projects/snippets/disability-pride-flag-background">Responsive Disability Pride Flag CSS Background</a>.</li> </ul> - - - - - Leilukin's Hub Has Migrated to Hostinger | Blog - - 2024-07-26T16:44:00Z - https://leilukin.com/blog/posts/2024-07-27-hostinger-migration-leilukins-hub/ - <p>Starting with 25 July 2024, Leilukin's Hub and all its subsites, including its <a href="https://tumbleblog.leilukin.com/">tumbleblog</a> and <a href="https://fan.leilukin.com/">fanlisting collective</a>, have been migrated to <a href="https://www.hostinger.my/">Hostinger</a>. In other words, I have moved hosts again almost two months after <a href="https://leilukin.com/blog/posts/2024-05-31-domain-name-hosting-change-leilukins-hub">moving Leilukin's Hub to Netlify</a>.</p> -<p>Before talking about why I chose Hostinger as my new website host, I want to talk about why I was considering to move hosts again.</p> -<div class="heading-wrapper h2"> -<h2 id="why-decided-to-move-hosts-again">Why Decided to Move Hosts Again</h2> -<a class="heading-anchor" href="https://leilukin.com/blog/posts/2024-07-27-hostinger-migration-leilukins-hub/#why-decided-to-move-hosts-again" aria-labelledby="why-decided-to-move-hosts-again"><span hidden="">#</span></a></div> -<div class="heading-wrapper h3"> -<h3 id="owning-both-static-and-dynamic-sites">Owning Both Static and Dynamic Sites</h3> -<a class="heading-anchor" href="https://leilukin.com/blog/posts/2024-07-27-hostinger-migration-leilukins-hub/#owning-both-static-and-dynamic-sites" aria-labelledby="owning-both-static-and-dynamic-sites"><span hidden="">#</span></a></div> -<p>The first major reason is that leilukin.com has evolved into more than a static site; since I have also begun to dip my toe into PHP to build dynamic sites, including a tumbleblog, fanlistings and a fanlisting.</p> -<p><a href="https://www.netlify.com/">Netlify</a>, which previously hosted the main site of Leilukin's Hub, does not support PHP hosting, so I hosted my tumbleblog and fanlisting collective on <a href="https://www.infinityfree.com/">InfinityFree</a>, one of the very few platforms to provide PHP and MySQL website hosting for free. InfinityFree has been a decent platform for PHP and MySQL beginners to experiment with the languages, however as you might have expected, its free hosting plan comes with limitations.</p> -<div class="heading-wrapper h3"> -<h3 id="limitations-of-infinityfrees-free-hosting">Limitations of InfinityFree's Free Hosting</h3> -<a class="heading-anchor" href="https://leilukin.com/blog/posts/2024-07-27-hostinger-migration-leilukins-hub/#limitations-of-infinityfrees-free-hosting" aria-labelledby="limitations-of-infinityfrees-free-hosting"><span hidden="">#</span></a></div> -<p>InfinityFree places <a href="https://forum.infinityfree.com/docs?topic=49356">their own security measures</a> on websites on their free hosting plan to ensure <a href="https://forum.infinityfree.com/docs?topic=49353">only regular browsers can access these websites</a>. While it is understandable to apply these security measures on free websites to prevent abuse, it can be a dealbreaker depending on your needs.</p> -<p>In my case, the thing that frustrated me the most about InfinityFree's security system on their free websites is the fact that my tumbleblog was unable to provide RSS feed in a usual way. <a href="https://chyrplite.net/">Chyrp Lite</a>, which powers my tumbleblog, includes the feature of providing blog RSS feeds, but InfinityFree's security system blocks feed readers from reading feeds from websites on their free hosting, so I had to use Feedburner to proxy my tumbleblog's feeds to get around it.</p> -<div class="heading-wrapper h3"> -<h3 id="invested-in-webmastery-enough-to-spend-money">Invested in Webmastery Enough to Spend Money</h3> -<a class="heading-anchor" href="https://leilukin.com/blog/posts/2024-07-27-hostinger-migration-leilukins-hub/#invested-in-webmastery-enough-to-spend-money" aria-labelledby="invested-in-webmastery-enough-to-spend-money"><span hidden="">#</span></a></div> -<p>Lastly, I am invested in building my own websites enough to spend money on them, as already evident in my purchase and registration of a custom domain name leilukin.com for this website.</p> -<p>That said, I do need to consider carefully about how much money I am going to spend on my hobbies, which factors in why I eventually chose Hostinger to host my websites.</p> -<div class="heading-wrapper h2"> -<h2 id="why-hostinger">Why Hostinger</h2> -<a class="heading-anchor" href="https://leilukin.com/blog/posts/2024-07-27-hostinger-migration-leilukins-hub/#why-hostinger" aria-labelledby="why-hostinger"><span hidden="">#</span></a></div> -<div class="heading-wrapper h3"> -<h3 id="affordable-price-with-regional-pricing">Affordable Price with Regional Pricing</h3> -<a class="heading-anchor" href="https://leilukin.com/blog/posts/2024-07-27-hostinger-migration-leilukins-hub/#affordable-price-with-regional-pricing" aria-labelledby="affordable-price-with-regional-pricing"><span hidden="">#</span></a></div> -<p>The biggest draw about Hostinger is its pricing — it is not only cheap, but also offering regional pricing. This is a huge deal for people who live in countries with weaker currencies than US Dollars and Euro, as the pricing scales to the level we are more comfortable spending, without worrying about currency conversion rates.</p> -<p>For reference, as of this writing, 1 USD equals approximately 4.6 Malaysian Ringgit (MYR), while the minimum wage in Malaysia is 1,500 MYR, which approximately equals to 321.03 USD, per month. Therefore, if a Malaysian like me is going to spend money, every USD counts.</p> -<p>Compare the pricing of the 48-month Premium Shared Hosting plan, which was what I ended up spending to host my websites, of <a href="https://www.hostinger.my/">Hostinger.my</a> to <a href="https://www.hostinger.com/">Hostinger.com</a>: The plan costs 7.99 per month in MYR (approximately 1.71 USD), while 2.99 per month in USD (approximately 13.97 MYR). This means I ended up saving almost 6 MYR per month by purchasing the plan on the Malaysian branch of Hostinger. This is just comparing Hostinger's own hosting plan with different currencies, let alone comparing Hostinger's hosting plan to its competitors.</p> -<p>As a bonus, being able to purchase Hostinger's hosting plans in Malaysian Ringgit means I can pay by directly transferring money from a Malaysian bank account.</p> -<p>Being cheap is not even the only reason I chose Hostinger; what is better than being cheap is to provide many, many features at the same time.</p> -<div class="heading-wrapper h3"> -<h3 id="many-many-features-at-a-cheap-price">Many, Many Features at a Cheap Price</h3> -<a class="heading-anchor" href="https://leilukin.com/blog/posts/2024-07-27-hostinger-migration-leilukins-hub/#many-many-features-at-a-cheap-price" aria-labelledby="many-many-features-at-a-cheap-price"><span hidden="">#</span></a></div> -<p>The cheap price of the Premium Shared Hosting Plan of Hostinger is jam-packed with many features, including but not limited to:</p> -<ul> -<li>Ability to create up to 100 websites (Netlify allows you to deploy 500 sites, but 100 sites are still significantly more than enough for average users)</li> -<li>100 GB SSD storage</li> -<li>Unlimited bandwidth (InfinityFree's free hosting also allows unlimited bandwidth, but Netlify has a limit of 100GB per month)</li> -<li>Unlimited MySQL databases (while Infinity has a limit of 400 databases)</li> -<li>Email accounts included for free</li> -<li>Built-in Git support, which allows me to continue deploying my main site from its Git repository</li> -<li>And more!</li> -</ul> -<p>On the subject of email accounts, it is worth pointing out that Hostinger's Premium Shared Hosting plan allows you to create an email account for each website you made, and you can have up to 100 addresses and forwarders for each email account.</p> -<div class="heading-wrapper h2"> -<h2 id="a-birthday-present-for-myself">A Birthday Present for Myself</h2> -<a class="heading-anchor" href="https://leilukin.com/blog/posts/2024-07-27-hostinger-migration-leilukins-hub/#a-birthday-present-for-myself" aria-labelledby="a-birthday-present-for-myself"><span hidden="">#</span></a></div> -<p>Last but not least, another motivator for me to purchase a premium website hosting plan for my websites now is the fact that my birthday is coming soon on July 28, so I spent money on premium hosting for my websites as a birthday present for myself this year.</p> -<div class="heading-wrapper h2"> -<h2 id="domain-names-remaining-at-porkbun">Domain Names Remaining at Porkbun</h2> -<a class="heading-anchor" href="https://leilukin.com/blog/posts/2024-07-27-hostinger-migration-leilukins-hub/#domain-names-remaining-at-porkbun" aria-labelledby="domain-names-remaining-at-porkbun"><span hidden="">#</span></a></div> -<p>While Hostinger provides domain registration and transfer service, I chose to have the leilukin.com domain name stay with <a href="https://porkbun.com/">Porkbun</a>, because I already spent money on the domain name, so Hostinger's hosting plan providing domain name registration for free for the first year does not benefit me.</p> -<p>In addition, Porkbun's renewal rate for domain names is cheaper than Hostinger. For example, Porkbun renews the <code>.com</code> domain extension at 10.37 USD per year, while Hostinger renews at 15.99 USD per year. Even the Malaysian Ringgit pricing of Hostinger's domain renewal rate for <code>.com</code>, 55.99 MYR per year, is still more expansive than Porkbun's approximately 48.3 MYR per year rate.</p> -<div class="heading-wrapper h2"> -<h2 id="wrapping-up">Wrapping Up</h2> -<a class="heading-anchor" href="https://leilukin.com/blog/posts/2024-07-27-hostinger-migration-leilukins-hub/#wrapping-up" aria-labelledby="wrapping-up"><span hidden="">#</span></a></div> -<p>Leilukin's Hub's migration to Hostinger has been smooth. There was no significant change on the front end of my websites after the switch, aside from changing the theme of my tumbleblog, so my websites will continue to operate as usual, as well as improved site performance for my tumbleblog and fanlisting collective by loading custom web fonts faster to the extent I intended by <a href="https://web.dev/articles/codelab-preload-web-fonts">preloading the fonts</a>.</p> -<p>Moving hosts for my website again reminds me of one of the benefits of owning a custom domain name of making the host migration more seamless, since it saves the trouble of having to change and update my website's address every time I move hosts.</p> \ No newline at end of file diff --git a/index.html b/index.html index 5b742557..8bb43c24 100644 --- a/index.html +++ b/index.html @@ -438,9 +438,10 @@ drop-shadow(0.1rem 0.1rem 0.2rem rgba(30, 30, 30, 0.8))

      What is New?

      -

      Changelog: 1 December 2024

      +

      Changelog: 3 December 2024

      View all site changelogs

      diff --git a/shrines/asummersend/trivia/index.html b/shrines/asummersend/trivia/index.html index 8d3d6ead..cfacd24f 100644 --- a/shrines/asummersend/trivia/index.html +++ b/shrines/asummersend/trivia/index.html @@ -473,7 +473,7 @@

      Chinese Names

      -

      Michelle Cheung's Chinese name is 張鳳霞, while Sam Wong's Chinese name is 黃嘉欣[Footnote #1]. Oracle and Bone had commented on their idea behind the characters' Chinese names in a response to a fan's question on Tumblr:

      +

      Michelle Cheung's Chinese name is 張鳳霞, while Sam Wong's Chinese name is 黃嘉欣[Note 1]. Oracle and Bone had commented on their idea behind the characters' Chinese names in a response to a fan's question on Tumblr:

      A part of how we came up with their names was by referencing names of Hong Kong film actresses from their time period as a little homage to them. We also thought of how their names might reflect their upbringing. For example, despite Michelle being younger than Sam, she has a more old fashioned sounding Chinese name. The meaning of their Chinese names was also important to us. We particularly wanted Michelle’s name to have metaphoric meaning that reflected her story as well as the themes of the game.

      @@ -481,32 +481,32 @@

      Birthdays

      Zodiac Signs

      Myers–Briggs Type Indicator

      Inspirations

        -
      • The character and fashion of Cecelia has been largely inspired by Anita Mui.[Footnote #8]
      • +
      • The character and fashion of Cecelia has been largely inspired by Anita Mui.[Note 8]
      diff --git a/shrines/cassettebeasts/facts/index.html b/shrines/cassettebeasts/facts/index.html index 220b65d7..de9ab840 100644 --- a/shrines/cassettebeasts/facts/index.html +++ b/shrines/cassettebeasts/facts/index.html @@ -512,7 +512,7 @@
    Late 2019
    -
    Development of Cassette Beasts began[Footnote #1].
    +
    Development of Cassette Beasts began[Note 1].
    11 May 2020
    Reveal trailer released.
    19 October 2021
    @@ -567,21 +567,21 @@

    Design Philosophy

    On 12 October 2023, Bytten Studio wrote a Steam blog post "Cassette Beasts - Design & Expectations" about their design philosophy of Cassette Beasts to celebrate the game reaching 350,000+ players.

    -

    Cassette Beasts very consciously opens with exploration and combat within the first minute of the game and leaves the lore for later, because Bytten Studio believes in giving players the game first and selling the players on the story later.[Footnote #2]

    +

    Cassette Beasts very consciously opens with exploration and combat within the first minute of the game and leaves the lore for later, because Bytten Studio believes in giving players the game first and selling the players on the story later.[Note 2]

    Influences and Inspirations

    The YouTube channel Lockstin & Gnoggin has a video that explains the names and designs of the monsters and Archangels: EVERY Cassette Beast EXPLAINED! 🖭. The video was retweeted by Bytten Studio.

    -

    The idea of copying monster forms to transform into came from Tom Coxon's dream. Jay Baylis, inspired by Kamen Rider, later suggested doing the copying and transforming with physical cassette tapes.[Footnote #1:1]

    -

    Another oddball source of inspiration for Tom the story “The Beatles Never Broke Up”, about a man who in 2009 hit his head and woke up in another world where the Beatles still exist, where people still use analogue technology, and where parallel universe travel is commonplace.[Footnote #1:2]

    -

    The presentation of Archangels is inspired a little by the Witches in Puella Magi Madoka Magica.[Footnote #1:3]

    -

    The way the relationship system ties into fusions is heavily influenced by Steven Universe, which both Tom and Jay are fans of.[Footnote #1:4]

    -

    The AP system in Cassette Beasts is taken from board and card games.[Footnote #1:5]

    -

    Jay cited comic author Grant Morrison as an influence on the broader themes of the game (as well as the strange English surrealism of the setting), as Morrison's stories often explore the nature of fiction, multiple realities, and their influence on one another.[Footnote #1:6]

    -

    Archangels Morgante and Aleph were inspired by Morgan le Fay and King Arthur from Arturian legends, but with an unusual twist that Aleph is portrayed as a conqueror instead of a "rightful king" to reflect Britain's history of conquest.[Footnote #3]

    -

    The ideas for the other Archangels came after Morgante and Aleph. Their themes were kind of arbitrarily chosen to match the design Jay had given them.[Footnote #3:1]

    -

    Bytten Studio made a point to not put in a huge amount of Japanese mythological monsters in comparison to mythology from other nations, especially since well-known mons franchises such as Shin Megami Tensei, Pokémon and Digimon are Japanese franchises; they do not want to seem derivative.[Footnote #4]

    -

    Barkley was not inspired by anything in particular; he was added in the game to surprise players as a non-human partner.[Footnote #5]

    +

    The idea of copying monster forms to transform into came from Tom Coxon's dream. Jay Baylis, inspired by Kamen Rider, later suggested doing the copying and transforming with physical cassette tapes.[Note 1:1]

    +

    Another oddball source of inspiration for Tom the story “The Beatles Never Broke Up”, about a man who in 2009 hit his head and woke up in another world where the Beatles still exist, where people still use analogue technology, and where parallel universe travel is commonplace.[Note 1:2]

    +

    The presentation of Archangels is inspired a little by the Witches in Puella Magi Madoka Magica.[Note 1:3]

    +

    The way the relationship system ties into fusions is heavily influenced by Steven Universe, which both Tom and Jay are fans of.[Note 1:4]

    +

    The AP system in Cassette Beasts is taken from board and card games.[Note 1:5]

    +

    Jay cited comic author Grant Morrison as an influence on the broader themes of the game (as well as the strange English surrealism of the setting), as Morrison's stories often explore the nature of fiction, multiple realities, and their influence on one another.[Note 1:6]

    +

    Archangels Morgante and Aleph were inspired by Morgan le Fay and King Arthur from Arturian legends, but with an unusual twist that Aleph is portrayed as a conqueror instead of a "rightful king" to reflect Britain's history of conquest.[Note 3]

    +

    The ideas for the other Archangels came after Morgante and Aleph. Their themes were kind of arbitrarily chosen to match the design Jay had given them.[Note 3:1]

    +

    Bytten Studio made a point to not put in a huge amount of Japanese mythological monsters in comparison to mythology from other nations, especially since well-known mons franchises such as Shin Megami Tensei, Pokémon and Digimon are Japanese franchises; they do not want to seem derivative.[Note 4]

    +

    Barkley was not inspired by anything in particular; he was added in the game to surprise players as a non-human partner.[Note 5]

    Developer Notes

    @@ -647,8 +647,8 @@

    The Developers

    -

    Jay Baylis' favourite monster catching game is Pokémon Ruby/Sapphire.[Footnote #6]

    -

    Tom Coxon's favourite monster catching game is Siralim Ultimate.[Footnote #7]

    +

    Jay Baylis' favourite monster catching game is Pokémon Ruby/Sapphire.[Note 6]

    +

    Tom Coxon's favourite monster catching game is Siralim Ultimate.[Note 7]

    Frequently Asked Topics

    @@ -698,19 +698,117 @@
      -
    1. "Cassette Beasts Blog #13 - You asked, we answered!". Cassette Beasts Steam blog. 28 February 2023. ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎

      +
    2. "Cassette Beasts Blog #13 - You asked, we answered!". Cassette Beasts Steam blog. 28 February 2023. +

      + + + Back to reference 1 + +

      + +

      + + + Back to reference 1:1 + +

      + +

      + + + Back to reference 1:2 + +

      + +

      + + + Back to reference 1:3 + +

      + +

      + + + Back to reference 1:4 + +

      + +

      + + + Back to reference 1:5 + +

      + +

      + + + Back to reference 1:6 + +

      +

    3. -
    4. Jay Baylis' (@SamuriFerret) quote tweet from @DavidKayConrad. 10 May 2024. ↩︎

      +
    5. Jay Baylis' (@SamuriFerret) quote tweet from @DavidKayConrad. 10 May 2024. +

      + + + Back to reference 2 + +

      +

    6. -
    7. Tom Coxon's (u/tcoxon) comment. Bytten Studio's AMA on r/NintendoSwitch. 1 July 2023. ↩︎ ↩︎

      +
    8. Tom Coxon's (u/tcoxon) comment. Bytten Studio's AMA on r/NintendoSwitch. 1 July 2023. +

      + + + Back to reference 3 + +

      + +

      + + + Back to reference 3:1 + +

      +

    9. -
    10. Jay Baylis's (samuri) message. Bytten Studio Discord server. 11 February 2024. ↩︎

      +
    11. Jay Baylis's (samuri) message. Bytten Studio Discord server. 11 February 2024. +

      + + + Back to reference 4 + +

      +

    12. -
    13. Tom Coxon's (u/tcoxon) comment. Bytten Studio's AMA on r/JRPG. 25 March 2024. ↩︎

      +
    14. Tom Coxon's (u/tcoxon) comment. Bytten Studio's AMA on r/JRPG. 25 March 2024. +

      + + + Back to reference 5 + +

      +

    15. -
    16. Jay Baylis' (u/SamuriFerret) comment. Bytten Studio's AMA on r/NintendoSwitch. 1 July 2023. ↩︎

      +
    17. Jay Baylis' (u/SamuriFerret) comment. Bytten Studio's AMA on r/NintendoSwitch. 1 July 2023. +

      + + + Back to reference 6 + +

      +

    18. -
    19. Tom Coxon's (u/tcoxon) comment. Bytten Studio's AMA on r/NintendoSwitch. 1 July 2023. ↩︎

      +
    20. Tom Coxon's (u/tcoxon) comment. Bytten Studio's AMA on r/NintendoSwitch. 1 July 2023. +

      + + + Back to reference 7 + +

      +

    diff --git a/sitemap.xml b/sitemap.xml index 23f3291f..21770273 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -1146,231 +1146,237 @@ weekly 0.5 + + https://leilukin.comfalse + 2024-12-03T15:53:36.000Z + weekly + 0.5 + https://leilukin.com/blog/posts/ - 2024-12-03T11:05:41.250Z + 2024-12-03T15:57:08.285Z weekly 0.5 https://leilukin.com/changelogs/2022/ - 2024-12-03T11:05:41.254Z + 2024-12-03T15:57:08.289Z weekly 0.5 https://leilukin.com/changelogs/2023/ - 2024-12-03T11:05:41.254Z + 2024-12-03T15:57:08.289Z weekly 0.5 https://leilukin.com/changelogs/2024/ - 2024-12-03T11:05:41.254Z + 2024-12-03T15:57:08.289Z weekly 0.5 https://leilukin.com/changelogs/layouts/ - 2024-12-03T11:05:41.254Z + 2024-12-03T15:57:08.289Z weekly 0.5 https://leilukin.com/ - 2024-12-03T11:05:41.254Z + 2024-12-03T15:57:08.289Z weekly 0.5 https://leilukin.com/projects/code/bellabuffs-phpmailer/ - 2024-12-03T11:05:41.254Z + 2024-12-03T15:57:08.289Z weekly 0.5 https://leilukin.com/projects/playlists/ - 2024-12-03T11:05:41.254Z + 2024-12-03T15:57:08.289Z weekly 0.5 https://leilukin.com/projects/snippets/disability-pride-flag-background/ - 2024-12-03T11:05:41.254Z + 2024-12-03T15:57:08.289Z weekly 0.5 https://leilukin.com/shrines/asummersend/gallery/ - 2024-12-03T11:05:41.254Z + 2024-12-03T15:57:08.289Z weekly 0.5 https://leilukin.com/shrines/asummersend/playlists/ - 2024-12-03T11:05:41.254Z + 2024-12-03T15:57:08.289Z weekly 0.5 https://leilukin.com/shrines/asummersend/trivia/ - 2024-12-03T11:05:41.254Z + 2024-12-03T15:57:08.289Z weekly 0.5 https://leilukin.com/shrines/cassettebeasts/articles/ - 2024-12-03T11:05:41.254Z + 2024-12-03T15:57:08.289Z weekly 0.5 https://leilukin.com/shrines/cassettebeasts/facts/ - 2024-12-03T11:05:41.258Z + 2024-12-03T15:57:08.293Z weekly 0.5 https://leilukin.com/shrines/cassettebeasts/featured/ - 2024-12-03T11:05:41.258Z + 2024-12-03T15:57:08.293Z weekly 0.5 https://leilukin.com/shrines/cassettebeasts/gamelog/ - 2024-12-03T11:05:41.258Z + 2024-12-03T15:57:08.293Z weekly 0.5 https://leilukin.com/shrines/cassettebeasts/resources/ - 2024-12-03T11:05:41.258Z + 2024-12-03T15:57:08.293Z weekly 0.5 https://leilukin.com/shrines/starwarskotor/articles/ - 2024-12-03T11:05:41.258Z + 2024-12-03T15:57:08.293Z weekly 0.5 https://leilukin.com/shrines/starwarskotor/guides/ - 2024-12-03T11:05:41.258Z + 2024-12-03T15:57:08.293Z weekly 0.5 https://leilukin.com/shrines/starwarskotor/resources/ - 2024-12-03T11:05:41.258Z + 2024-12-03T15:57:08.293Z weekly 0.5 https://leilukin.com/shrines/starwarskotor/resources/kotor-same-gender-romance-mods/ - 2024-12-03T11:05:41.258Z + 2024-12-03T15:57:08.293Z weekly 0.5 https://leilukin.com/shrines/starwarskotor/resources/kotor2-female-exile-recruit-handmaiden-mods/ - 2024-12-03T11:05:41.258Z + 2024-12-03T15:57:08.293Z weekly 0.5 https://leilukin.com/shrines/starwarskotor/resources/tslrcm-m478ep-modules-music/ - 2024-12-03T11:05:41.258Z + 2024-12-03T15:57:08.293Z weekly 0.5 https://leilukin.com/shrines/starwarskotor/universes/ - 2024-12-03T11:05:41.258Z + 2024-12-03T15:57:08.293Z weekly 0.5 https://leilukin.com/archive/ - 2024-12-03T11:05:41.258Z + 2024-12-03T15:57:08.293Z weekly 0.5 https://leilukin.com/categories/ - 2024-12-03T11:05:41.258Z + 2024-12-03T15:57:08.293Z weekly 0.5 https://leilukin.com/changelogs/ - 2024-12-03T11:05:41.258Z + 2024-12-03T15:57:08.293Z weekly 0.5 https://leilukin.com/about/ - 2024-12-03T11:05:41.258Z + 2024-12-03T15:57:08.293Z weekly 0.5 https://leilukin.com/adoptables/ - 2024-12-03T11:05:41.258Z + 2024-12-03T15:57:08.293Z weekly 0.5 https://leilukin.com/articles/ - 2024-12-03T11:05:41.258Z + 2024-12-03T15:57:08.293Z weekly 0.5 https://leilukin.com/blog/ - 2024-12-03T11:05:41.258Z + 2024-12-03T15:57:08.293Z weekly 0.5 https://leilukin.com/guestbook/ - 2024-12-03T11:05:41.258Z + 2024-12-03T15:57:08.293Z weekly 0.5 https://leilukin.com/links/ - 2024-12-03T11:05:41.258Z + 2024-12-03T15:57:08.293Z weekly 0.5 https://leilukin.com/now/ - 2024-12-03T11:05:41.258Z + 2024-12-03T15:57:08.293Z weekly 0.5 https://leilukin.com/projects/ - 2024-12-03T11:05:41.258Z + 2024-12-03T15:57:08.293Z weekly 0.5 https://leilukin.com/shrines/ - 2024-12-03T11:05:41.258Z + 2024-12-03T15:57:08.293Z weekly 0.5 https://leilukin.com/accessibility/ - 2024-12-03T11:05:41.258Z + 2024-12-03T15:57:08.293Z weekly 0.5 https://leilukin.com/colophon/ - 2024-12-03T11:05:41.258Z + 2024-12-03T15:57:08.293Z weekly 0.5