惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Jina AI
Jina AI
V
Visual Studio Blog
博客园 - 司徒正美
TaoSecurity Blog
TaoSecurity Blog
博客园 - 聂微东
IT之家
IT之家
博客园_首页
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
C
Cyber Attacks, Cyber Crime and Cyber Security
博客园 - Franky
雷峰网
雷峰网
罗磊的独立博客
S
Schneier on Security
C
Cybersecurity and Infrastructure Security Agency CISA
The Cloudflare Blog
T
Tailwind CSS Blog
B
Blog RSS Feed
H
Help Net Security
T
The Blog of Author Tim Ferriss
C
CXSECURITY Database RSS Feed - CXSecurity.com
T
Threatpost
C
CERT Recently Published Vulnerability Notes
博客园 - 三生石上(FineUI控件)
P
Palo Alto Networks Blog
I
Intezer
G
GRAHAM CLULEY
Engineering at Meta
Engineering at Meta
S
Securelist
J
Java Code Geeks
V
V2EX
Y
Y Combinator Blog
Simon Willison's Weblog
Simon Willison's Weblog
L
LINUX DO - 热门话题
云风的 BLOG
云风的 BLOG
Spread Privacy
Spread Privacy
MongoDB | Blog
MongoDB | Blog
P
Privacy International News Feed
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
B
Blog
Forbes - Security
Forbes - Security
Google Online Security Blog
Google Online Security Blog
Help Net Security
Help Net Security
S
SegmentFault 最新的问题
N
Netflix TechBlog - Medium
Webroot Blog
Webroot Blog
Microsoft Security Blog
Microsoft Security Blog
SecWiki News
SecWiki News
Scott Helme
Scott Helme
aimingoo的专栏
aimingoo的专栏
N
News and Events Feed by Topic

Butterfly

香港銀行開戶推薦 (附邀請碼) Butterfly 5.5 更新日誌 Butterfly 5.4 更新日誌 Butterfly 5.3 更新日誌 Butterfly 5.2 更新日誌 Butterfly 5.1 更新日誌 Butterfly 5.0 更新日誌 Butterfly 4.13 更新日誌 Butterfly 4.12 更新日誌 Butterfly 4.11 更新日誌 Butterfly 4.10 更新日誌 自定義側邊欄 當設置 top_img 為 false 時 Butterfly添加全局吸底Aplayer教程 自定義代碼配色 Butterfly 打賞 Butterfly 更新日誌 Butterfly 文檔(六) 進階教程 Butterfly 文檔(五) 主題問答 Butterfly 文檔(四) 標簽外挂 Butterfly 文檔(三) 主題配置 Butterfly 文檔(二) 主題頁面 Butterfly 文檔(一) 快速開始 沒有封面 標籤外掛(Tag Plugins) Markdown Style test
Butterfly 5.6 更新日誌
Jerry · 2026-07-16 · via Butterfly

New Features

  • 新增 Knocket 聊天功能,新增對應的 pug 模板 knocket.pug,在聊天配置中新增 knocket 選項
  • 新增腳本和樣式表緩存機制(scriptCache / cssCache),避免重複加載相同資源
  • 新增 rafThrottle 工具函數,基於 requestAnimationFrame 實現節流
  • 新增 HTML 轉義函數(sanitizeString),防範 XSS 注入

Performance

  • TOC 滾動改用 IntersectionObserver 取代原本的 throttle + 遍歷方式,大幅減少滾動事件計算量
  • 滾動處理從 btf.throttle 改為 btf.rafThrottle,與瀏覽器渲染幀率同步
  • resize 事件處理加入 rafThrottle 節流
  • scrollToDest 平滑滾動改用 easeOutQuart 緩動曲線,取代原本的線性插值
  • rightsideScrollPercentgoUpElement / scrollPercentElement 改為閉包緩存,避免每次滾動都查詢 DOM
  • overflowPaddingRpage-header / menus 元素改為閉包緩存
  • 漢堡選單切換時 document.getElementById 查詢結果緩存到 sidebarFn
  • adjustMenuclassList.toggle 包裹在 requestAnimationFrame
  • forPostFn 改為接收 $article 參數,內部所有函數(addHighlightTooladdPhotoFigcaptionrunLightboxscrollFnToDoaddTableWrapclickFnOfTagHidetabsFn)統一使用傳入的 $article 查詢,避免重複 document.getElementById('article-container')
  • tabsFn 改為事件委託,將點擊監聽綁在 $article 上而非每個 .tabs 元素
  • clickFnOfTagHide 改為事件委託,綁在 $article 上而非逐個 .hide-button 綁定
  • getActualHeight 改用 cloneNode(true) + 隱藏插入測量,取代原本遍歷父節點修改 style 的方式
  • 簡繁轉換的查找從 indexOf 改為 Map.has / Map.get,O(1) 查找
  • 簡繁字對映改為延遲初始化(getMaps),避免不必要的計算
  • tw_cn.jstranslateButtonObject 改為 let,支持 pjax 後重新查詢
  • Mermaid 手勢系統重構:用 AbortController 管理事件監聽生命週期,避免重複綁定;wheel 事件加入 stopPropagation 防止穿透滾動;getBoundingClientRect 加入 dirty flag 緩存;DOM 更新改為 requestAnimationFrame 批次處理;deltaMode 正規化處理跨瀏覽器差異
  • Mermaid 圖片預覽 URL 的 revokeObjectURL 超時從 30 秒縮短為 5 秒
  • MathJax 改用 ui/lazy 模組實現延遲渲染,移除原本的 renderActions.findScript hack
  • MathJax 重新渲染改用 typesetClear + typesetPromise,取代 texReset
  • random_cover.jsresolvePostAsset 提取為獨立函數,減少重複邏輯
  • page.jsgetVersion 改為直接引用模組頂部 requirethemeVersion,避免每次呼叫都重複讀取 package.json
  • inject_head_js.js 的 darkmode 判斷邏輯修復了 start > end(跨午夜)的時段判斷錯誤

Bug Fixes

  • 修復 pjax 下簡繁轉換按鈕文字不會更新的問題(translateButtonObject 改為 let 並在 translateInitialization 中重新查詢)
  • 修復 pjax 完成時 script[data-pjax] 替換失敗的問題(加入 item.parentNode 存在性檢查)
  • 修復 pjax 錯誤處理中 responseURL 可能為 undefined 的問題,加入空值檢查
  • 修復 handleThemeChangethemeChange 可能不是物件的問題(加入 typeof fn !== 'function' 檢查)
  • 修復 scrollFncheckDocumentHeight() 在初始化時過早 return 導致滾動事件未綁定的問題
  • 修復 Mermaid 在 Chrome 上滾動時圖表亂跳的問題(svg.style.touchAction = 'none' + wheel 事件 preventDefault + stopPropagation
  • 修復 Mermaid 手勢在 themeChange/pjax 後重複綁定的問題(AbortController 清理 + __mermaidGestureBound 移除改用 __mermaidAbortController
  • 修復 Mermaid 配置解析失敗時無錯誤回報的問題(加入 try/catch)
  • 修復 gallery.jsIMAGE_REGEX 在多次呼叫時 lastIndex 未重置的 bug
  • 修復 flink.jsbutton.js 缺少 HTML escape 導致的 XSS 風險
  • 修復 hide.jsparseArgs 缺少 trim 導致參數帶有前導空格
  • 修復 series.js 模組級可變狀態 groups 在多次 build 時累積過期資料(加入 before_generate 清理)
  • 修復 score.js 重複實現 escapeHTML,改用 hexo-utilescapeHTML + 額外處理 {}
  • 修復 getArchiveLength.jsmonthly 模式下 year 計數未累加的問題(year 計數改為始終執行)
  • 修復 getArchiveLength.js 中 key 選取邏輯,daily 模式下也能正確取得月份計數
  • 修復 related_post.jspostDesc 被提前計算的問題,改為在渲染時才取值
  • 修復 page.jsshuoshuoFN 時區轉換的變數作用域問題
  • 修復 page.jscloudTags 多餘的 colorClass 變數和 class
  • 修復 page.jsfindArchivesTitle 遞迴時 m[key] 可能不是字串的問題
  • 修復 main.jsfetchUrl 在 HTTP 失敗時靜默返回空數組的問題,改為 throw 錯誤
  • 修復 main.jsrunJustifiedGallerylimit / firstLimit 為非法值時的邊界處理
  • 修復 main.jsaddJustifiedGallerydata 非陣列時的錯誤處理
  • 修復 main.jssanitizeString 從只替換 " 改為替換 &"'<> 五種字符
  • 修復 main.jsforPostFnhbe-container 存在時跳過初始化
  • 修復 main.jsgallery 空數據時顯示載入動畫的問題

Changed

  • Mermaid 手勢縮放從固定倍率(1.1/0.9)改為連續倍率(Math.pow(1.001, delta)),操作更平滑
  • Mermaid 手勢的 viewBox 範圍限制從每次計算改為預計算 minW/maxW/minH/maxH
  • Mermaid openSvgInNewTab 移除了不再需要的 typeof svg === 'string' 分支
  • MathJax 的 lazyMargin 設為 200px
  • adjustMenuhideMenuIndex 改為先宣告再賦值
  • scrollFnisChatBtn 改為 typeof window.chatBtn !== 'undefined'
  • scrollFninnerHeight 改為每次滾動時動態計算 window.innerHeight + 56

版權聲明: 除特別聲明外,本博客所有文章均採用CC BY-NC-SA 4.0 授權協議。轉載請註明出處:Butterfly

avatar

Jerry

A Simple and Card UI Design theme for Hexo

主題 GitHub