Releases: lmce72/obsidian-local-font-loader
Releases · lmce72/obsidian-local-font-loader
Release list
1.5.5
1.5.4
1.5.3
提升与 Obsidian 的兼容性(弹出窗口、社区插件审核要求),并修复若干问题,建议更新。
1.5.2
默认字体目录改为独立的 Local-Fonts/,新安装开箱即用;同时修复若干问题,建议更新。
1.5.1
🐛 Bug 修復
-
修復數學字體度量未真正套用
@font-face宣告了不等於已載入:瀏覽器要等到有元素實際用它繪製時才會去取得字體檔- 度量檢測發生在這個載入之前,會被靜默跳過,於是在部分環境下整個度量修正形同未執行
- 現在先強制載入字體面再進行測量,並於載入後複核,確保量到的不是回退字體
-
標籤頁頭部套用 UI 字體
- 納入
.view-header-title-container、.view-header-title-parent、
.view-header-breadcrumb、.view-header-breadcrumb-separator、.view-header-title - 該區塊顯示目前筆記的資料夾路徑與標題,屬於介面外殼而非文件內容
- 納入
1.5.0
✨ 新增
-
自訂數學字體改為修正 MathJax 的度量表
- MathJax 不在執行時讀取字體檔,而是用一張離線預製的度量表排版,它產生的 CSS
只是這張表的投影。過去只換了「用哪個字體畫字形」,沒換「按什麼尺寸排」,
導致字形來自使用者的字體、幾何卻來自 MathJax 的字體 - 現在改用 canvas 逐字量出所選字體實際渲染的度量,寫回
MathJax.config.chtml.font(24 個變體、3391 個字形)與delimiters的 HDW,
再讓 MathJax 用它自己的機制重算幾何 - 度量只隨字體變更計算一次,之後渲染不增加任何額外開銷
- 外掛卸載或更換字體時會還原 MathJax 的原始度量(該物件為全域共用)
- MathJax 不在執行時讀取字體檔,而是用一張離線預製的度量表排版,它產生的 CSS
-
數學字體合規檢測
- 設定頁在數學字體旁顯示警告圖示,並以警告框列出偏離的度量項目
- 判據取自 MathJax 自帶 TeX 字體的度量(Computer Modern 體系)
-
筆記標題與屬性面板套用 UI 字體
.inline-title、筆記屬性面板與標籤一併納入 UI 字體範圍
🐛 Bug 修復
-
修復根號橫槓與鉤子脫開
- MathJax 為
√預留的空間(上下各 0.8em / 0.2em)是照它自己字體的墨跡算的 - 換字體後墨跡高度不同,橫槓因此浮在鉤子上方
- 度量表修正後,預留空間等於字體實際墨跡
- MathJax 為
-
修復上下標與底數浮離
- 排版依度量表為每個斜體變數預留寬度,換字體後寬度不符,上下標逐層累積偏移
-
修復下花括號斷成一串方塊
- 拉伸分隔符由私有區碼位拼成(如
\underbrace使用 U+E152/E153/E154/E156) - 這些字形只存在於 MathJax 的 TeX 字體,任何一般數學字體都沒有
- 改為讓拼接件維持 MathJax 自身的字體
- 拉伸分隔符由私有區碼位拼成(如
-
修復重新掃描/轉換字體後下拉選單不更新
- 兩個操作只更新了資料卻未重繪設定頁,新字體因此不出現在選單中
🔧 其他
- 拉伸尺寸變體(TEX-S1 ~ TEX-S4)不再被字體覆寫規則命中,以免高伸內容的幾何被破壞
- UI 字體規則涵蓋元素由 16 個增至 27 個以上
1.4.0
✨ 新增
-
設備預設命名改用「設備本身叫什麼」
- 桌面端使用系統主機名,行動端使用機型(如
PJZ110、iPad) - 原本多台機器一律顯示為
Desktop-Linux、Mobile-Android,無法分辨 - 兩者皆取不到時才回退為「平台 + 系統」形式
- 僅自動生成的名稱會隨規則更新,使用者自訂的名稱永不被覆蓋
- 桌面端使用系統主機名,行動端使用機型(如
-
設備副行顯示主機名/機型
- 即使設備已被重新命名,仍能看出它實際是哪一台機器
- 顯示名若已等於該標識則不重複顯示
-
新增 iPadOS 識別
- 系統判定區分為 iOS、iPadOS、macOS 三態,並各自對應圖示
- 使用 Obsidian 的
Platform.isIosApp與Platform.isTablet,而非 UA 嗅探 - iPadOS 13 起 iPad 會自報桌面級
MacintoshUA,純 UA 嗅探必然誤判為 macOS
🐛 Bug 修復
-
修復通知(Notice)等浮動 UI 未套用 UI 字體
.notice不在 UI 字體規則內,走繼承鏈落到 Obsidian 核心介面字體- 同類浮動 UI 一併納入:tooltip、命令面板、補全建議、懸浮預覽、編輯器補全面板
-
修復 Android 無機型 UA 被誤解析出
Linux- 原解析倒序掃描區塊,把同區塊中的
Linux當成機型 - 改為錨定
Android <版本>段,取其後首個有效段(跳過語言標記與wv)
- 原解析倒序掃描區塊,把同區塊中的
-
修復同型號設備可能共用同一設備 ID
- 指紋由 UA、解析度、時區、語言、核心數雜湊而成,同型號設備完全相同
- 遷移時兩台設備會認領到同一 ID 並永久混為一台
- 改為「認領即封口」:設備取得 ID 後,帳本中指向該 ID 的條目立即刪除
- 已持有 ID 的設備在啟動時同樣封口,避免舊版本遺留條目被他人認領
-
修復設備本地 ID 寫入失敗未被察覺
- 寫入後未校驗,靜默失敗會導致每次啟動都換新 ID
- 現在寫入後立即回讀比對,不一致則明確輸出錯誤
-
修復元信息中已廢棄欄位永不清除
- 結構變更(如移除
osVersion)不再參與比較,舊欄位會永久殘留 - 現在鍵集合不一致即視為變更並重寫
- 結構變更(如移除
🔧 其他
- 移除系統版本號:不再偵測、儲存或顯示,升級系統不會再造成元信息變動
- UI 字體規則統一為共用模板
_buildUiFontRules(),覆蓋元素由 16 個增至 27 個 - 設備身份改以唯一標識為唯一判準,名稱/機型僅用於顯示,不參與匹配
1.3.0
1.2.4
fix: 修復多項 Bug 並新增字體缺失偵測,版本升級至 1.2.4 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
1.2.1
chore: 版本號調整為 1.2.1,重新打包正式版本 - 修復既有 v1.2.0 Release 資產過期(建立於設備管理重構之前) - v1.2.1 重新打包全部最新程式碼並附來源證明 - CHANGELOG 新增 1.2.1 條目 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>