From 603c444f9aca443163ac43d2a61b36cbc9dd081d Mon Sep 17 00:00:00 2001 From: lee Date: Mon, 22 Dec 2025 13:54:28 +0900 Subject: [PATCH 01/14] Extracted reusable components into a new root layout and implemented HTML `lang` attribute transformation for improved accessibility and localization. --- _layouts/default.html | 234 ++++++++++++++++++++--------------------- _layouts/homepage.html | 164 ++++++++++++++--------------- _layouts/root.html | 8 ++ _plugins/html_lang.rb | 24 +++++ 4 files changed, 231 insertions(+), 199 deletions(-) create mode 100644 _layouts/root.html create mode 100644 _plugins/html_lang.rb diff --git a/_layouts/default.html b/_layouts/default.html index 6e837cfa8d..5f5506aa5c 100644 --- a/_layouts/default.html +++ b/_layouts/default.html @@ -1,125 +1,125 @@ - - - - - - {% if page.title != null %} - {% capture homepage_path %}/{{ page.lang }}/{% endcapture %} - {% if page.url == homepage_path %} - {{ page.title }} - {% else %} - {{ page.title }} | Ruby - {% endif %} - {% else %} - Ruby Programming Language - {% endif %} - - +--- +layout: root +--- + + + {% if page.title != null %} {% capture homepage_path %}/{{ page.lang }}/{% endcapture %} {% if page.url == homepage_path %} - {% assign meta_description = "A Programmer's Best Friend" %} - {% elsif page.description %} - {% assign meta_description = page.description %} - {% elsif page.excerpt %} - {% assign meta_description = page.excerpt | strip_html | strip_newlines | truncate: 160 %} + {{ page.title }} {% else %} - {% assign meta_description = page.content | strip_html | strip_newlines | truncate: 160 %} + {{ page.title }} | Ruby {% endif %} - - {% if page.title %} - {% if page.url == homepage_path %} - {% assign meta_title = page.title %} - {% else %} - {% assign meta_title = page.title | append: " | Ruby" %} - {% endif %} + {% else %} + Ruby Programming Language + {% endif %} + + + + {% capture homepage_path %}/{{ page.lang }}/{% endcapture %} + {% if page.url == homepage_path %} + {% assign meta_description = "A Programmer's Best Friend" %} + {% elsif page.description %} + {% assign meta_description = page.description %} + {% elsif page.excerpt %} + {% assign meta_description = page.excerpt | strip_html | strip_newlines | truncate: 160 %} + {% else %} + {% assign meta_description = page.content | strip_html | strip_newlines | truncate: 160 %} + {% endif %} + + {% if page.title %} + {% if page.url == homepage_path %} + {% assign meta_title = page.title %} {% else %} - {% assign meta_title = "Ruby Programming Language" %} + {% assign meta_title = page.title | append: " | Ruby" %} {% endif %} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {% include rss_discovery.html %} - - - - - - + + + - - - - - - {% if layout.javascript != null %} - {% for javascript in layout.javascript %} - - {% endfor %} - {% endif %} - - - {% capture homepage_url %}/{{ page.lang }}/{% endcapture %} - - - {% include header.html %} - -
- {{ content }} -
- - {% include footer.html %} - - + }).catch(function() { + document.documentElement.classList.add('fonts-loaded'); + }); + } else { + document.documentElement.classList.add('fonts-loaded'); + } + })(); + + + + + + + {% if layout.javascript != null %} + {% for javascript in layout.javascript %} + + {% endfor %} + {% endif %} + + +{% capture homepage_url %}/{{ page.lang }}/{% endcapture %} + + + {% include header.html %} + +
+ {{ content }} +
+ + {% include footer.html %} + \ No newline at end of file diff --git a/_layouts/homepage.html b/_layouts/homepage.html index 484f9caf06..5fceaeaecf 100644 --- a/_layouts/homepage.html +++ b/_layouts/homepage.html @@ -1,98 +1,98 @@ - - - - +--- +layout: root +--- + + - {% if page.title != null %} - {{ page.title }} - {% else %} - Ruby Programming Language - {% endif %} + {% if page.title != null %} + {{ page.title }} + {% else %} + Ruby Programming Language + {% endif %} - + - {% assign meta_description = "A Programmer's Best Friend" %} - {% assign meta_title = page.title | default: "Ruby Programming Language" %} + {% assign meta_description = "A Programmer's Best Friend" %} + {% assign meta_title = page.title | default: "Ruby Programming Language" %} - + - - - - - - - - + + + + + + + + - - - - - - + + + + + + - - - - + + + + - - - - - + + + + + - - - - {% include rss_discovery.html %} + + + + {% include rss_discovery.html %} - - + + - - + }).catch(function() { + document.documentElement.classList.add('fonts-loaded'); + }); + } else { + document.documentElement.classList.add('fonts-loaded'); + } + })(); + - - - - - - - + + + + + + + - - {% include header.html %} + + {% include header.html %} -
- - {{ content }} -
+
+ + {{ content }} +
- {% include footer.html %} - - + {% include footer.html %} + diff --git a/_layouts/root.html b/_layouts/root.html new file mode 100644 index 0000000000..b5401a7f45 --- /dev/null +++ b/_layouts/root.html @@ -0,0 +1,8 @@ + +{% if page.lang != null %} + +{% else %} + +{% endif %} + {{ content }} + \ No newline at end of file diff --git a/_plugins/html_lang.rb b/_plugins/html_lang.rb new file mode 100644 index 0000000000..10ecf57ed2 --- /dev/null +++ b/_plugins/html_lang.rb @@ -0,0 +1,24 @@ +module Jekyll + module HtmlLangFilter + # Converts Jekyll locale code to valid HTML lang attribute format + # + # The HTML lang attribute requires BCP 47 language tags, which use + # hyphens as separators and uppercase region codes. + # + # Examples: + # "en" => "en" + # "zh_cn" => "zh-CN" + # "zh_tw" => "zh-TW" + # + # @param input [String] Jekyll locale code (e.g., "zh_cn") + # @return [String] HTML lang attribute value (e.g., "zh-CN") + def to_html_lang(input) + return input unless input.is_a?(String) + + # Replace underscore with hyphen and uppercase the region code + input.gsub(/_([a-z]+)/) { "-#{$1.upcase}" } + end + end +end + +Liquid::Template.register_filter(Jekyll::HtmlLangFilter) From 7e317014eb1fdf7ea4fdb8d76e3c0e1736daa13d Mon Sep 17 00:00:00 2001 From: lee Date: Mon, 22 Dec 2025 14:13:03 +0900 Subject: [PATCH 02/14] Implemented language-specific font settings for improved localization and updated default font stacks for consistency. --- stylesheets/compiled.css | 40 ++++++++++++++++++++++++++++++++++++---- stylesheets/tailwind.css | 16 ++++++++++++++++ tailwind.config.js | 4 ++-- 3 files changed, 54 insertions(+), 6 deletions(-) diff --git a/stylesheets/compiled.css b/stylesheets/compiled.css index 215f00763c..cda43ed850 100644 --- a/stylesheets/compiled.css +++ b/stylesheets/compiled.css @@ -1498,7 +1498,7 @@ a .icon-external::before { --tw-contain-style: ; } -/* ! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com */ +/* ! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com */ /* 1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4) @@ -1944,10 +1944,26 @@ video { display: none; } + html:lang(zh-Hans) body { + font-family: "Plus Jakarta Sans", "Noto Sans SC", -apple-system, BlinkMacSystemFont, sans-serif; +} + + html:lang(zh-TW) body { + font-family: "Plus Jakarta Sans", "Noto Sans TC", -apple-system, BlinkMacSystemFont, sans-serif; +} + + html:lang(ko) body { + font-family: "Plus Jakarta Sans", "Noto Sans KR", -apple-system, BlinkMacSystemFont, sans-serif; +} + + html:lang(ja) body { + font-family: "Plus Jakarta Sans", "Noto Sans JP", -apple-system, BlinkMacSystemFont, sans-serif; +} + body{ --tw-bg-opacity: 1; background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1)); - font-family: "Plus Jakarta Sans", "Noto Sans JP", ui-sans-serif, system-ui, -apple-system, sans-serif; + font-family: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, sans-serif; font-size: 1rem; line-height: 1.7; line-height: 1.25rem; @@ -1962,6 +1978,22 @@ body:is(.dark *){ color: rgb(250 250 249 / var(--tw-text-opacity, 1)); } +:root:lang(zh-CN), body:lang(zh-CN), html:lang(zh-Hans) .font-default { + font-family: "Plus Jakarta Sans", "Noto Sans SC", -apple-system, BlinkMacSystemFont, sans-serif; +} + +:root:lang(zh-TW), html:lang(zh-TW) .font-default { + font-family: "Plus Jakarta Sans", "Noto Sans TC", -apple-system, BlinkMacSystemFont, sans-serif; +} + +:root:lang(ko), html:lang(ko) .font-default { + font-family: "Plus Jakarta Sans", "Noto Sans KR", -apple-system, BlinkMacSystemFont, sans-serif; +} + +:root:lang(ja), html:lang(ja) .font-default { + font-family: "Plus Jakarta Sans", "Noto Sans JP", -apple-system, BlinkMacSystemFont, sans-serif; +} + .container{ width: 100%; margin-right: auto; @@ -4363,7 +4395,7 @@ body:is(.dark *){ } .font-default{ - font-family: "Plus Jakarta Sans", "Noto Sans JP", ui-sans-serif, system-ui, -apple-system, sans-serif; + font-family: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, sans-serif; } .font-handwritten{ @@ -4371,7 +4403,7 @@ body:is(.dark *){ } .font-logo{ - font-family: "Plus Jakarta Sans", "Noto Sans JP", ui-sans-serif, system-ui, -apple-system, sans-serif; + font-family: "Plus Jakarta Sans", "Noto Sans JP", -apple-system, BlinkMacSystemFont, sans-serif; } .font-mono{ diff --git a/stylesheets/tailwind.css b/stylesheets/tailwind.css index 1affbfac51..788db298f2 100644 --- a/stylesheets/tailwind.css +++ b/stylesheets/tailwind.css @@ -23,4 +23,20 @@ @apply bg-white text-stone-900 text-base leading-5 font-default; @apply dark:bg-stone-900 dark:text-stone-50; } + + :root:lang(zh-CN), body:lang(zh-CN), html:lang(zh-Hans) .font-default { + font-family: "Plus Jakarta Sans", "Noto Sans SC", -apple-system, BlinkMacSystemFont, sans-serif; + } + + :root:lang(zh-TW), html:lang(zh-TW) .font-default { + font-family: "Plus Jakarta Sans", "Noto Sans TC", -apple-system, BlinkMacSystemFont, sans-serif; + } + + :root:lang(ko), html:lang(ko) .font-default { + font-family: "Plus Jakarta Sans", "Noto Sans KR", -apple-system, BlinkMacSystemFont, sans-serif; + } + + :root:lang(ja), html:lang(ja) .font-default { + font-family: "Plus Jakarta Sans", "Noto Sans JP", -apple-system, BlinkMacSystemFont, sans-serif; + } } diff --git a/tailwind.config.js b/tailwind.config.js index 66c25e0277..a0fa068488 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -270,8 +270,8 @@ module.exports = { } }, fontFamily: { - 'default': ['"Plus Jakarta Sans"', '"Noto Sans JP"', 'ui-sans-serif', 'system-ui', '-apple-system', 'sans-serif'], - 'logo': ['"Plus Jakarta Sans"', '"Noto Sans JP"', 'ui-sans-serif', 'system-ui', '-apple-system', 'sans-serif'], + 'default': ['"Plus Jakarta Sans"', '-apple-system', 'BlinkMacSystemFont', 'sans-serif'], + 'logo': ['"Plus Jakarta Sans"', '"Noto Sans JP"', '-apple-system', 'BlinkMacSystemFont', 'sans-serif'], 'code': ['ui-monospace', 'SFMono-Regular', 'Menlo', 'Monaco', 'Consolas', '"Liberation Mono"', '"Courier New"', 'monospace'], 'icon': ['"Material Icons"', 'sans-serif'], 'handwritten': ['"Rock Salt"', 'cursive'], From 5dd0aa63627b68308ae1a9ef53457205185b4938 Mon Sep 17 00:00:00 2001 From: lee Date: Mon, 22 Dec 2025 14:23:04 +0900 Subject: [PATCH 03/14] Enhanced accessibility in the language selector by adding `lang` attributes for native names and language codes. --- _includes/language_selector.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_includes/language_selector.html b/_includes/language_selector.html index 58ad5e1e77..be50b0988c 100644 --- a/_includes/language_selector.html +++ b/_includes/language_selector.html @@ -31,7 +31,7 @@ {% for lang in site.data.languages %} - {{ lang.native_name }} ({{ lang.code }}) + {{ lang.native_name }} ({{ lang.code }}) {% if lang.code == current_lang %} {% endif %} From 321a039e5e6f4147c78e3af5196ce8703c348bb6 Mon Sep 17 00:00:00 2001 From: lee Date: Mon, 22 Dec 2025 14:34:54 +0900 Subject: [PATCH 04/14] Updated font imports to include broader weight ranges and additional language-specific fonts for improved localization support. --- _layouts/default.html | 2 +- _layouts/homepage.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/_layouts/default.html b/_layouts/default.html index 5f5506aa5c..d638681ed0 100644 --- a/_layouts/default.html +++ b/_layouts/default.html @@ -64,7 +64,7 @@ - + diff --git a/_layouts/homepage.html b/_layouts/homepage.html index 5fceaeaecf..944ebbe527 100644 --- a/_layouts/homepage.html +++ b/_layouts/homepage.html @@ -41,7 +41,7 @@ - + From 9d77afc89a5a65230352ce8c4800035e5560ac55 Mon Sep 17 00:00:00 2001 From: lee Date: Mon, 22 Dec 2025 14:53:33 +0900 Subject: [PATCH 05/14] Refined language-specific font rules by adjusting `lang` selectors for better compatibility and consistency. --- stylesheets/compiled.css | 16 ++++++++-------- stylesheets/tailwind.css | 8 ++++---- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/stylesheets/compiled.css b/stylesheets/compiled.css index cda43ed850..bc8d3e7aa9 100644 --- a/stylesheets/compiled.css +++ b/stylesheets/compiled.css @@ -1944,19 +1944,19 @@ video { display: none; } - html:lang(zh-Hans) body { +body:lang(zh-Hans) { font-family: "Plus Jakarta Sans", "Noto Sans SC", -apple-system, BlinkMacSystemFont, sans-serif; } - html:lang(zh-TW) body { +body:lang(zh-TW) { font-family: "Plus Jakarta Sans", "Noto Sans TC", -apple-system, BlinkMacSystemFont, sans-serif; } - html:lang(ko) body { +body:lang(ko) { font-family: "Plus Jakarta Sans", "Noto Sans KR", -apple-system, BlinkMacSystemFont, sans-serif; } - html:lang(ja) body { +body:lang(ja) { font-family: "Plus Jakarta Sans", "Noto Sans JP", -apple-system, BlinkMacSystemFont, sans-serif; } @@ -1978,19 +1978,19 @@ body:is(.dark *){ color: rgb(250 250 249 / var(--tw-text-opacity, 1)); } -:root:lang(zh-CN), body:lang(zh-CN), html:lang(zh-Hans) .font-default { +:root:lang(zh-CN), body:lang(zh-CN), .font-default:lang(zh-Hans) { font-family: "Plus Jakarta Sans", "Noto Sans SC", -apple-system, BlinkMacSystemFont, sans-serif; } -:root:lang(zh-TW), html:lang(zh-TW) .font-default { +:root:lang(zh-TW), body:lang(zh-TW), .font-default:lang(zh-TW) { font-family: "Plus Jakarta Sans", "Noto Sans TC", -apple-system, BlinkMacSystemFont, sans-serif; } -:root:lang(ko), html:lang(ko) .font-default { +:root:lang(ko), body:lang(ko), .font-default:lang(ko) { font-family: "Plus Jakarta Sans", "Noto Sans KR", -apple-system, BlinkMacSystemFont, sans-serif; } -:root:lang(ja), html:lang(ja) .font-default { +:root:lang(ja), body:lang(ja), .font-default:lang(ja) { font-family: "Plus Jakarta Sans", "Noto Sans JP", -apple-system, BlinkMacSystemFont, sans-serif; } diff --git a/stylesheets/tailwind.css b/stylesheets/tailwind.css index 788db298f2..8b282c5010 100644 --- a/stylesheets/tailwind.css +++ b/stylesheets/tailwind.css @@ -24,19 +24,19 @@ @apply dark:bg-stone-900 dark:text-stone-50; } - :root:lang(zh-CN), body:lang(zh-CN), html:lang(zh-Hans) .font-default { + :root:lang(zh-CN), body:lang(zh-CN), .font-default:lang(zh-Hans) { font-family: "Plus Jakarta Sans", "Noto Sans SC", -apple-system, BlinkMacSystemFont, sans-serif; } - :root:lang(zh-TW), html:lang(zh-TW) .font-default { + :root:lang(zh-TW), body:lang(zh-TW), .font-default:lang(zh-TW) { font-family: "Plus Jakarta Sans", "Noto Sans TC", -apple-system, BlinkMacSystemFont, sans-serif; } - :root:lang(ko), html:lang(ko) .font-default { + :root:lang(ko), body:lang(ko), .font-default:lang(ko) { font-family: "Plus Jakarta Sans", "Noto Sans KR", -apple-system, BlinkMacSystemFont, sans-serif; } - :root:lang(ja), html:lang(ja) .font-default { + :root:lang(ja), body:lang(ja), .font-default:lang(ja) { font-family: "Plus Jakarta Sans", "Noto Sans JP", -apple-system, BlinkMacSystemFont, sans-serif; } } From d1a86eb2db2f8a7c21ee6d773f63cd619e444038 Mon Sep 17 00:00:00 2001 From: lee Date: Mon, 22 Dec 2025 14:57:42 +0900 Subject: [PATCH 06/14] Updated `lang` selectors from `:root` to `html` for improved specificity and consistency in language-specific font rules. --- stylesheets/tailwind.css | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/stylesheets/tailwind.css b/stylesheets/tailwind.css index 8b282c5010..70e6bc5606 100644 --- a/stylesheets/tailwind.css +++ b/stylesheets/tailwind.css @@ -24,19 +24,19 @@ @apply dark:bg-stone-900 dark:text-stone-50; } - :root:lang(zh-CN), body:lang(zh-CN), .font-default:lang(zh-Hans) { + html:lang(zh-CN), body:lang(zh-CN), .font-default:lang(zh-Hans) { font-family: "Plus Jakarta Sans", "Noto Sans SC", -apple-system, BlinkMacSystemFont, sans-serif; } - :root:lang(zh-TW), body:lang(zh-TW), .font-default:lang(zh-TW) { + html:lang(zh-TW), body:lang(zh-TW), .font-default:lang(zh-TW) { font-family: "Plus Jakarta Sans", "Noto Sans TC", -apple-system, BlinkMacSystemFont, sans-serif; } - :root:lang(ko), body:lang(ko), .font-default:lang(ko) { + html:lang(ko), body:lang(ko), .font-default:lang(ko) { font-family: "Plus Jakarta Sans", "Noto Sans KR", -apple-system, BlinkMacSystemFont, sans-serif; } - :root:lang(ja), body:lang(ja), .font-default:lang(ja) { + html:lang(ja), body:lang(ja), .font-default:lang(ja) { font-family: "Plus Jakarta Sans", "Noto Sans JP", -apple-system, BlinkMacSystemFont, sans-serif; } } From 8d0f7d06db8f060cb0359f071f6e595d8fe24b3b Mon Sep 17 00:00:00 2001 From: user Date: Mon, 22 Dec 2025 15:25:17 +0900 Subject: [PATCH 07/14] Update language-specific font definitions for improved compatibility --- stylesheets/compiled.css | 10 +++++----- stylesheets/tailwind.css | 8 ++++---- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/stylesheets/compiled.css b/stylesheets/compiled.css index bc8d3e7aa9..b3c6c0f272 100644 --- a/stylesheets/compiled.css +++ b/stylesheets/compiled.css @@ -1944,7 +1944,7 @@ video { display: none; } -body:lang(zh-Hans) { +body:lang(zh-CN) { font-family: "Plus Jakarta Sans", "Noto Sans SC", -apple-system, BlinkMacSystemFont, sans-serif; } @@ -1978,19 +1978,19 @@ body:is(.dark *){ color: rgb(250 250 249 / var(--tw-text-opacity, 1)); } -:root:lang(zh-CN), body:lang(zh-CN), .font-default:lang(zh-Hans) { +html:lang(zh-CN), body:lang(zh-CN), .font-default:lang(zh-CN), .font-sans:lang(zh-CN) { font-family: "Plus Jakarta Sans", "Noto Sans SC", -apple-system, BlinkMacSystemFont, sans-serif; } -:root:lang(zh-TW), body:lang(zh-TW), .font-default:lang(zh-TW) { +html:lang(zh-TW), body:lang(zh-TW), .font-default:lang(zh-TW), .font-sans:lang(zh-TW) { font-family: "Plus Jakarta Sans", "Noto Sans TC", -apple-system, BlinkMacSystemFont, sans-serif; } -:root:lang(ko), body:lang(ko), .font-default:lang(ko) { +html:lang(ko), body:lang(ko), .font-default:lang(ko), .font-sans:lang(ko) { font-family: "Plus Jakarta Sans", "Noto Sans KR", -apple-system, BlinkMacSystemFont, sans-serif; } -:root:lang(ja), body:lang(ja), .font-default:lang(ja) { +html:lang(ja), body:lang(ja), .font-default:lang(ja), .font-sans:lang(ja) { font-family: "Plus Jakarta Sans", "Noto Sans JP", -apple-system, BlinkMacSystemFont, sans-serif; } diff --git a/stylesheets/tailwind.css b/stylesheets/tailwind.css index 70e6bc5606..891a86e432 100644 --- a/stylesheets/tailwind.css +++ b/stylesheets/tailwind.css @@ -24,19 +24,19 @@ @apply dark:bg-stone-900 dark:text-stone-50; } - html:lang(zh-CN), body:lang(zh-CN), .font-default:lang(zh-Hans) { + html:lang(zh-CN), body:lang(zh-CN), .font-default:lang(zh-CN), .font-sans:lang(zh-CN) { font-family: "Plus Jakarta Sans", "Noto Sans SC", -apple-system, BlinkMacSystemFont, sans-serif; } - html:lang(zh-TW), body:lang(zh-TW), .font-default:lang(zh-TW) { + html:lang(zh-TW), body:lang(zh-TW), .font-default:lang(zh-TW), .font-sans:lang(zh-TW) { font-family: "Plus Jakarta Sans", "Noto Sans TC", -apple-system, BlinkMacSystemFont, sans-serif; } - html:lang(ko), body:lang(ko), .font-default:lang(ko) { + html:lang(ko), body:lang(ko), .font-default:lang(ko), .font-sans:lang(ko) { font-family: "Plus Jakarta Sans", "Noto Sans KR", -apple-system, BlinkMacSystemFont, sans-serif; } - html:lang(ja), body:lang(ja), .font-default:lang(ja) { + html:lang(ja), body:lang(ja), .font-default:lang(ja), .font-sans:lang(ja) { font-family: "Plus Jakarta Sans", "Noto Sans JP", -apple-system, BlinkMacSystemFont, sans-serif; } } From de5424de6e9bba6ac4304c73a4d1ca9a4bd4c592 Mon Sep 17 00:00:00 2001 From: lee Date: Mon, 22 Dec 2025 15:42:48 +0900 Subject: [PATCH 08/14] Added `sans` font stack to Tailwind config for consistency with default font settings. --- tailwind.config.js | 1 + 1 file changed, 1 insertion(+) diff --git a/tailwind.config.js b/tailwind.config.js index a0fa068488..4a80bb886c 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -271,6 +271,7 @@ module.exports = { }, fontFamily: { 'default': ['"Plus Jakarta Sans"', '-apple-system', 'BlinkMacSystemFont', 'sans-serif'], + 'sans': ['"Plus Jakarta Sans"', '-apple-system', 'BlinkMacSystemFont', 'sans-serif'], 'logo': ['"Plus Jakarta Sans"', '"Noto Sans JP"', '-apple-system', 'BlinkMacSystemFont', 'sans-serif'], 'code': ['ui-monospace', 'SFMono-Regular', 'Menlo', 'Monaco', 'Consolas', '"Liberation Mono"', '"Courier New"', 'monospace'], 'icon': ['"Material Icons"', 'sans-serif'], From 2b1935da1779179a56c78fea692e34bc880b4671 Mon Sep 17 00:00:00 2001 From: lee Date: Mon, 22 Dec 2025 15:46:49 +0900 Subject: [PATCH 09/14] Updated default font stack to use "Plus Jakarta Sans" for improved design consistency. --- stylesheets/compiled.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stylesheets/compiled.css b/stylesheets/compiled.css index b3c6c0f272..eb83d32316 100644 --- a/stylesheets/compiled.css +++ b/stylesheets/compiled.css @@ -1544,7 +1544,7 @@ html, -o-tab-size: 4; tab-size: 4; /* 3 */ - font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + font-family: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, sans-serif; /* 4 */ font-feature-settings: normal; /* 5 */ From 7e16c023c0a2499b282a5ccc15ccc4f0e858a73f Mon Sep 17 00:00:00 2001 From: user Date: Mon, 22 Dec 2025 21:21:04 +0900 Subject: [PATCH 10/14] Add missing newline at end of root layout file --- _layouts/root.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_layouts/root.html b/_layouts/root.html index b5401a7f45..87707b56ce 100644 --- a/_layouts/root.html +++ b/_layouts/root.html @@ -5,4 +5,4 @@ {% endif %} {{ content }} - \ No newline at end of file + From 102401a33d61047db163570ef538288693cfa357 Mon Sep 17 00:00:00 2001 From: user Date: Mon, 22 Dec 2025 22:23:52 +0900 Subject: [PATCH 11/14] Refactor language-specific font definitions to use CSS variables for improved readability and maintainability --- stylesheets/compiled.css | 51 +++++++++++++++++++++++----------------- stylesheets/tailwind.css | 35 ++++++++++++++++++++------- 2 files changed, 56 insertions(+), 30 deletions(-) diff --git a/stylesheets/compiled.css b/stylesheets/compiled.css index eb83d32316..1f825b5e35 100644 --- a/stylesheets/compiled.css +++ b/stylesheets/compiled.css @@ -1944,20 +1944,8 @@ video { display: none; } -body:lang(zh-CN) { - font-family: "Plus Jakarta Sans", "Noto Sans SC", -apple-system, BlinkMacSystemFont, sans-serif; -} - -body:lang(zh-TW) { - font-family: "Plus Jakarta Sans", "Noto Sans TC", -apple-system, BlinkMacSystemFont, sans-serif; -} - -body:lang(ko) { - font-family: "Plus Jakarta Sans", "Noto Sans KR", -apple-system, BlinkMacSystemFont, sans-serif; -} - -body:lang(ja) { - font-family: "Plus Jakarta Sans", "Noto Sans JP", -apple-system, BlinkMacSystemFont, sans-serif; +body:lang(ja),body:lang(ko),body:lang(zh-CN),body:lang(zh-TW) { + font-family: "Plus Jakarta Sans", var(--noto-sans-subset), -apple-system, BlinkMacSystemFont, sans-serif; } body{ @@ -1978,20 +1966,39 @@ body:is(.dark *){ color: rgb(250 250 249 / var(--tw-text-opacity, 1)); } -html:lang(zh-CN), body:lang(zh-CN), .font-default:lang(zh-CN), .font-sans:lang(zh-CN) { - font-family: "Plus Jakarta Sans", "Noto Sans SC", -apple-system, BlinkMacSystemFont, sans-serif; +html:lang(zh-CN), [lang="zh-CN"] { + --noto-sans-subset: "Noto Sans SC"; } -html:lang(zh-TW), body:lang(zh-TW), .font-default:lang(zh-TW), .font-sans:lang(zh-TW) { - font-family: "Plus Jakarta Sans", "Noto Sans TC", -apple-system, BlinkMacSystemFont, sans-serif; +html:lang(zh-TW), [lang="zh-TW"] { + --noto-sans-subset: "Noto Sans TC"; } -html:lang(ko), body:lang(ko), .font-default:lang(ko), .font-sans:lang(ko) { - font-family: "Plus Jakarta Sans", "Noto Sans KR", -apple-system, BlinkMacSystemFont, sans-serif; +html:lang(ko), [lang="ko"] { + --noto-sans-subset: "Noto Sans KR"; } -html:lang(ja), body:lang(ja), .font-default:lang(ja), .font-sans:lang(ja) { - font-family: "Plus Jakarta Sans", "Noto Sans JP", -apple-system, BlinkMacSystemFont, sans-serif; +html:lang(ja), [lang="ja"] { + --noto-sans-subset: "Noto Sans JP"; +} + +html:lang(ja), + body:lang(ja), + .font-default:lang(ja), + .font-sans:lang(ja), + html:lang(ko), + body:lang(ko), + .font-default:lang(ko), + .font-sans:lang(ko), + html:lang(zh-CN), + body:lang(zh-CN), + .font-default:lang(zh-CN), + .font-sans:lang(zh-CN), + html:lang(zh-TW), + body:lang(zh-TW), + .font-default:lang(zh-TW), + .font-sans:lang(zh-TW) { + font-family: "Plus Jakarta Sans", var(--noto-sans-subset), -apple-system, BlinkMacSystemFont, sans-serif; } .container{ diff --git a/stylesheets/tailwind.css b/stylesheets/tailwind.css index 891a86e432..1d00cb1eb9 100644 --- a/stylesheets/tailwind.css +++ b/stylesheets/tailwind.css @@ -24,19 +24,38 @@ @apply dark:bg-stone-900 dark:text-stone-50; } - html:lang(zh-CN), body:lang(zh-CN), .font-default:lang(zh-CN), .font-sans:lang(zh-CN) { - font-family: "Plus Jakarta Sans", "Noto Sans SC", -apple-system, BlinkMacSystemFont, sans-serif; + html:lang(zh-CN), [lang="zh-CN"] { + --noto-sans-subset: "Noto Sans SC"; } - html:lang(zh-TW), body:lang(zh-TW), .font-default:lang(zh-TW), .font-sans:lang(zh-TW) { - font-family: "Plus Jakarta Sans", "Noto Sans TC", -apple-system, BlinkMacSystemFont, sans-serif; + html:lang(zh-TW), [lang="zh-TW"] { + --noto-sans-subset: "Noto Sans TC"; } - html:lang(ko), body:lang(ko), .font-default:lang(ko), .font-sans:lang(ko) { - font-family: "Plus Jakarta Sans", "Noto Sans KR", -apple-system, BlinkMacSystemFont, sans-serif; + html:lang(ko), [lang="ko"] { + --noto-sans-subset: "Noto Sans KR"; } - html:lang(ja), body:lang(ja), .font-default:lang(ja), .font-sans:lang(ja) { - font-family: "Plus Jakarta Sans", "Noto Sans JP", -apple-system, BlinkMacSystemFont, sans-serif; + html:lang(ja), [lang="ja"] { + --noto-sans-subset: "Noto Sans JP"; + } + + html:lang(ja), + body:lang(ja), + .font-default:lang(ja), + .font-sans:lang(ja), + html:lang(ko), + body:lang(ko), + .font-default:lang(ko), + .font-sans:lang(ko), + html:lang(zh-CN), + body:lang(zh-CN), + .font-default:lang(zh-CN), + .font-sans:lang(zh-CN), + html:lang(zh-TW), + body:lang(zh-TW), + .font-default:lang(zh-TW), + .font-sans:lang(zh-TW) { + font-family: "Plus Jakarta Sans", var(--noto-sans-subset), -apple-system, BlinkMacSystemFont, sans-serif; } } From abbbbe163e7a8969e6ca4311a848ddc8ca31d358 Mon Sep 17 00:00:00 2001 From: user Date: Mon, 22 Dec 2025 22:25:54 +0900 Subject: [PATCH 12/14] Add [lang="..."] selectors to language-specific font definitions for improved compatibility --- stylesheets/compiled.css | 6 +++++- stylesheets/tailwind.css | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/stylesheets/compiled.css b/stylesheets/compiled.css index 1f825b5e35..d0b2b3bdd0 100644 --- a/stylesheets/compiled.css +++ b/stylesheets/compiled.css @@ -1986,18 +1986,22 @@ html:lang(ja), body:lang(ja), .font-default:lang(ja), .font-sans:lang(ja), + [lang="ja"], html:lang(ko), body:lang(ko), .font-default:lang(ko), .font-sans:lang(ko), + [lang="ko"], html:lang(zh-CN), body:lang(zh-CN), .font-default:lang(zh-CN), .font-sans:lang(zh-CN), + [lang="zh-CN"], html:lang(zh-TW), body:lang(zh-TW), .font-default:lang(zh-TW), - .font-sans:lang(zh-TW) { + .font-sans:lang(zh-TW), + [lang="zh-TW"] { font-family: "Plus Jakarta Sans", var(--noto-sans-subset), -apple-system, BlinkMacSystemFont, sans-serif; } diff --git a/stylesheets/tailwind.css b/stylesheets/tailwind.css index 1d00cb1eb9..181d8d3a14 100644 --- a/stylesheets/tailwind.css +++ b/stylesheets/tailwind.css @@ -44,18 +44,22 @@ body:lang(ja), .font-default:lang(ja), .font-sans:lang(ja), + [lang="ja"], html:lang(ko), body:lang(ko), .font-default:lang(ko), .font-sans:lang(ko), + [lang="ko"], html:lang(zh-CN), body:lang(zh-CN), .font-default:lang(zh-CN), .font-sans:lang(zh-CN), + [lang="zh-CN"], html:lang(zh-TW), body:lang(zh-TW), .font-default:lang(zh-TW), - .font-sans:lang(zh-TW) { + .font-sans:lang(zh-TW), + [lang="zh-TW"] { font-family: "Plus Jakarta Sans", var(--noto-sans-subset), -apple-system, BlinkMacSystemFont, sans-serif; } } From 287423c781aee28649df6caa61d32b0b99c85698 Mon Sep 17 00:00:00 2001 From: user Date: Mon, 22 Dec 2025 22:51:02 +0900 Subject: [PATCH 13/14] Refactor language-specific font definitions to consolidate into `:root` selectors for improved maintainability and readability --- stylesheets/compiled.css | 34 +++++++++++++++++++--------------- stylesheets/tailwind.css | 17 +---------------- stylesheets/variables.css | 17 +++++++++++++++++ 3 files changed, 37 insertions(+), 31 deletions(-) diff --git a/stylesheets/compiled.css b/stylesheets/compiled.css index d0b2b3bdd0..636161f883 100644 --- a/stylesheets/compiled.css +++ b/stylesheets/compiled.css @@ -125,6 +125,24 @@ --color-icon-default: #a8a29e; } +/* Language-specific font subsets */ + +:root:lang(zh-CN), [lang="zh-CN"] { + --noto-sans-subset: "Noto Sans SC"; +} + +:root:lang(zh-TW), [lang="zh-TW"] { + --noto-sans-subset: "Noto Sans TC"; +} + +:root:lang(ko), [lang="ko"] { + --noto-sans-subset: "Noto Sans KR"; +} + +:root:lang(ja), [lang="ja"] { + --noto-sans-subset: "Noto Sans JP"; +} + /* Custom fonts if needed */ /* Import component styles */ @@ -1966,21 +1984,7 @@ body:is(.dark *){ color: rgb(250 250 249 / var(--tw-text-opacity, 1)); } -html:lang(zh-CN), [lang="zh-CN"] { - --noto-sans-subset: "Noto Sans SC"; -} - -html:lang(zh-TW), [lang="zh-TW"] { - --noto-sans-subset: "Noto Sans TC"; -} - -html:lang(ko), [lang="ko"] { - --noto-sans-subset: "Noto Sans KR"; -} - -html:lang(ja), [lang="ja"] { - --noto-sans-subset: "Noto Sans JP"; -} +/* CJK fonts */ html:lang(ja), body:lang(ja), diff --git a/stylesheets/tailwind.css b/stylesheets/tailwind.css index 181d8d3a14..282837c58e 100644 --- a/stylesheets/tailwind.css +++ b/stylesheets/tailwind.css @@ -24,22 +24,7 @@ @apply dark:bg-stone-900 dark:text-stone-50; } - html:lang(zh-CN), [lang="zh-CN"] { - --noto-sans-subset: "Noto Sans SC"; - } - - html:lang(zh-TW), [lang="zh-TW"] { - --noto-sans-subset: "Noto Sans TC"; - } - - html:lang(ko), [lang="ko"] { - --noto-sans-subset: "Noto Sans KR"; - } - - html:lang(ja), [lang="ja"] { - --noto-sans-subset: "Noto Sans JP"; - } - + /* CJK fonts */ html:lang(ja), body:lang(ja), .font-default:lang(ja), diff --git a/stylesheets/variables.css b/stylesheets/variables.css index e7853f2bc9..cbd293f0ad 100644 --- a/stylesheets/variables.css +++ b/stylesheets/variables.css @@ -117,3 +117,20 @@ /* Icon colors */ --color-icon-default: #a8a29e; } + +/* Language-specific font subsets */ +:root:lang(zh-CN), [lang="zh-CN"] { + --noto-sans-subset: "Noto Sans SC"; +} + +:root:lang(zh-TW), [lang="zh-TW"] { + --noto-sans-subset: "Noto Sans TC"; +} + +:root:lang(ko), [lang="ko"] { + --noto-sans-subset: "Noto Sans KR"; +} + +:root:lang(ja), [lang="ja"] { + --noto-sans-subset: "Noto Sans JP"; +} From a725e45bef19db28b54c4a455ded410aad6b463b Mon Sep 17 00:00:00 2001 From: lee Date: Tue, 23 Dec 2025 13:09:49 +0900 Subject: [PATCH 14/14] Refactored language selector markup for improved readability and semantic structure. --- _includes/language_selector.html | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/_includes/language_selector.html b/_includes/language_selector.html index be50b0988c..dab2919d9a 100644 --- a/_includes/language_selector.html +++ b/_includes/language_selector.html @@ -31,7 +31,10 @@ {% for lang in site.data.languages %} - {{ lang.native_name }} ({{ lang.code }}) + + {{ lang.native_name }} + ({{ lang.code }}) + {% if lang.code == current_lang %} {% endif %}