* feat: add jump-to-page dialog on pagination ellipsis - Replace pagination windowing algorithm with a tighter 5-item window (curr-1 / curr / curr+1, clamped at edges) and hide-on-mobile for pages more than 1 step away from the current page - Ellipsis spans now carry the pagination-jump-trigger class and open a native <dialog> on click instead of being static decorations - Add <dialog id="pagination-jump-dialog"> with number input, Go button, and Enter-key hint; data-total / data-first-url / data-format-url attributes on <nav> give the JS all it needs to build the target URL - Add assets/ts/pagination.ts: setupPaginationJump() with Fisher-Yates backdrop-click and ESC handling, animated open/close via .closing class - Wire setupPaginationJump() into Stack.init() in main.ts - Extend pagination.scss with .hide-on-mobile, .pagination-jump-trigger hover style, and the full #pagination-jump-dialog styling + keyframe scale-up/scale-down animations - Add [pagination] i18n keys (jumpToPage / jump / pressEnter) to en / zh / zh-hant-tw / zh-hant-hk / ja * style: align pagination code with upstream conventions - pagination.html: collapse multi-line span/class/aria attrs to single lines; use HTML5 void element syntax; fix hint div indentation - pagination.scss: 2-space indent → 4-space indent - pagination.ts: tab indent → 4-space indent; export const arrow fn → export function declaration * chore: update layouts/_partials/pagination.html Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * chore: add aria-labelledby attrributes for better accesibility Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix: use { once: true } for the listener and guard against re-entry when .closing is already set. Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * style: replace hardcoded values with design tokens and improve dialog UX - Replace all hardcoded px spacing in .page-link with --spacing-* tokens - Use @include card-style in #pagination-jump-dialog; override with --shadow-l2 - Replace padding: 24px with var(--card-padding) for responsive dialog padding - Align header title/subtitle to space-between for cleaner layout - Replace hardcoded gaps/padding in form with spacing tokens - Fix input/button border-radius from 8px to 6px (better proportion for 44px height) - Fix focus ring: use color-mix(accent-color 20%) so it's visible in dark mode - Add :focus-visible + outline:none to fully suppress native browser outline - Remove translateY from button hover for more restrained interaction - Scope transition to specific properties (border-color, box-shadow, background-color) * chore: add pagination test articles for easier debugging * style: enhance backdrop animations for pagination jump dialog * style: replace pagination ellipsis spans with buttons for improved accessibility * fix: check if browser supports dialog API before continue with pagination jump setup * fix: retain focus on last active element when closing pagination jump dialog * fix: style for page-link button (pagination-jump) * style: adjust width of pagination jump dialog, add container padding * style: simplify * refactor: simplify pagination link logic --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Jimmy Cai <jimmy@cai.im>
75 lines
2.5 KiB
TOML
75 lines
2.5 KiB
TOML
toggleMenu = "メニューを開く・閉じる"
|
||
darkMode = "ダークモード"
|
||
|
||
[list]
|
||
page = "{{ .Count }} ページ目"
|
||
section = "セクション"
|
||
subsection = "サブセクション"
|
||
|
||
[article]
|
||
back = "前のページ"
|
||
tableOfContents = "目次"
|
||
relatedContent = "関連するコンテンツ"
|
||
lastUpdatedOn = "最終更新"
|
||
readingTime = "読了時間: {{ .Count }}分"
|
||
|
||
[article.alert]
|
||
note = "注記"
|
||
tip = "ヒント"
|
||
important = "重要"
|
||
warning = "警告"
|
||
caution = "注意"
|
||
|
||
[notFound]
|
||
title = "404 Not Found"
|
||
subtitle = "指定されたページは存在しません。"
|
||
|
||
[widget]
|
||
[widget.archives]
|
||
title = "アーカイブ"
|
||
more = "さらに見る"
|
||
|
||
[widget.tagCloud]
|
||
title = "タグ"
|
||
|
||
[widget.categoriesCloud]
|
||
title = "カテゴリ"
|
||
|
||
[search]
|
||
title = "検索"
|
||
placeholder = "入力..."
|
||
resultTitle = "#PAGES_COUNT 件 (#TIME_SECONDS 秒)"
|
||
|
||
[footer]
|
||
builtWith = "{{ .Generator }} で構築されています。"
|
||
designedBy = "テーマ {{ .Theme }} は {{ .DesignedBy }} によって設計されています。"
|
||
|
||
[cookies]
|
||
title = "Cookieの同意"
|
||
text = "ブラウジング体験を向上させ、サイトトラフィックを分析するためにCookieを使用しています。"
|
||
acceptAll = "すべて受け入れる"
|
||
deny = "拒否"
|
||
managePreferences = "設定を管理"
|
||
settingsTitle = "Cookie設定"
|
||
savePreferences = "設定を保存"
|
||
cancel = "キャンセル"
|
||
footerLink = "Cookie設定"
|
||
commentsDisabled = "機能的なCookieを受け入れるまで、コメントは無効になっています。"
|
||
|
||
[cookies.necessary]
|
||
title = "必須"
|
||
text = "これらのCookieはウェブサイトの機能に必要であり、無効にすることはできません。"
|
||
|
||
[cookies.analytics]
|
||
title = "分析"
|
||
text = "これらのCookieは、訪問者が当サイトとどのように対話するかを理解するのに役立ちます。"
|
||
|
||
[cookies.functional]
|
||
title = "機能的"
|
||
text = "これらのCookieは、コメントや埋め込みコンテンツなどの機能を有効にします."
|
||
|
||
[pagination]
|
||
jumpToPage = "ページにジャンプ"
|
||
jump = "ジャンプ"
|
||
pressEnter = "Enter キーでジャンプ"
|