部落格翻修
拖延非常多年之後,我終於振作起來翻修這個部落格的前端設計。主要的工作內容為:
- 從 XHTML 1.1 改成 HTML 5。我在這一步偷懶採用 HTML5 Boilerplate 的基礎。
- 手工重構所有模版,大致的結構跟錨點皆沿用先前設計,確保內容段落的靜態鏈結仍然有效,但是藉由 HTML 5 讓語意更明確,盡可能刪減不必要的、當年純粹為了排版而添加的
<div>
等標籤,改用<main>
,<header>
,<footer>
,<aside>
等地標標籤,以及<article>
,<section>
,<address>
,<time>
等語意標籤。現在<h*>
標題標籤的階層排序終於合理了! - 使用 PayPal 提供的 SkipTo 實作「跳到主要內容」的功能,兼作頁面內導覽功能;除了少數頁面先隱藏這個功能選單(第一個 Tab 就可以叫出來),多數頁面都直接顯現以便操作。
- 迴響表單以純粹的 HTML 及 CSS 製作簡易格式檢查及必填欄位檢查功能,以及設定適合輸入的行動裝置軟體鍵盤類型。
- 以往「相關文章」、「歷史上的今天」等內容可能很長,現在使用
<details>
讓他們可以收折起來,並且搭配 CSS 3 的:empty
選擇符來處理沒內容的情況。 - 以 CSS 3 的 Grid、Flexbox、Multiple column 處理版面布局,現在應該比較響應了!
- 以 CSS 3
@media
的prefers-color-scheme
及prefers-contrast
搭配 CSS Variables,根據使用者的系統設定自動切換配色,不喜歡先前強迫暗色系的讀者應該會比較開心。可能的配色有四種,分別是 Bluloco Light(☀亮色系)、Tomorrow Night(☽暗色系)、Solarized Light(☼較低對比)、Tomorrow Night Bright(★較高對比);我參考 Alexander Sandberg 的做法,弄了個目前配色指示器兼強制切換到☽暗色系配色的開關。目前還沒有(暫時也不打算)特別處理 Windows 高對比模式。 - 試用
:has()
選擇符,在已經支援的瀏覽器上可以得到稍微再好一點的使用感受。 - 調整文章版本變更比對功能的呈現方式與說明。
- 彙整清單終於採用比較正確的反向排序編號。
- 微調日期時間的呈現格式以及部分工具性的文字內容。
- 重新設計及製作履歷,照片換了張稍微新一點的,跟前一張同樣採用 Fawkes 處理過。
- 把搜尋功能加到 404, 403 等錯誤訊息頁面。
- Atom feed 更新到 1.0 版格式。
- 稍微調整 CAPTCHA 的做法。請務必仔細閱讀相關說明。目前這種做法以專業術語來說,大概是邏輯謎題加誘捕系統加廣告過濾系統(實際上用了兩層,一層是熱詞正規表示式比對,另一層是 Bayesian 過濾器)的組合。
- 仍然採用漢字標準格式排版框架,這部份沒有變動。
- 以 Bunny Fonts 提供網頁字型,主要使用 Noto Sans 跟 Noto Serif,另外也使用 Noto Color Emoji 來達成一致的小圖案(例如我用來表示 Twitter 的 🐦 和用來表示 Mastodon 的 🦣,以及表達頁面間關連導覽的箭頭),額外好處是在較舊的作業系統上也能正確顯示。唯一自己放的網頁字型是 Adobe Blank 2。(2023-09-18 更新)
- HTTPS 回來啦!原本迴響表單「網頁網址」欄位填寫 https 連結會異常的問題也一起修好了(吧)。
這次畢竟是從很陳舊的版本翻修,萬一發現奇怪的情況,再來著手修正吧。(註:雖然本文日期是 2022-09-01,實際大約從 2022-08-23 一路處理到 2022-09-21)