- fix: 修正 Umami Analytics API 參數與資料處理邏輯

- style: 最佳化程式碼高亮工具列顯示與間距設定
- improve: 改善複製工具提示的定位邏輯
- bump: 版本號更新至 5.5.3
This commit is contained in:
Jerry
2025-11-17 15:42:00 +08:00
parent bdf77e328d
commit 7985bdda9e
4 changed files with 17 additions and 8 deletions

View File

@@ -31,7 +31,7 @@ script.
const getData = async (isPost) => {
try {
const now = Date.now()
const keyUrl = isPost ? `&path=${window.location.pathname}` : ''
const keyUrl = isPost ? `&url=${window.location.pathname}` : ''
const headerList = { 'Accept': 'application/json' }
if (!{isServerURL}) {
@@ -63,7 +63,7 @@ script.
if (pagePV) {
const data = await getData(true)
if (data && data.pageviews) {
pagePV.textContent = data.pageviews
pagePV.textContent = typeof data.pageviews.value !== 'undefined' ? data.pageviews.value : data.pageviews
} else {
console.warn('Umami Analytics: Invalid page view data received')
}
@@ -76,7 +76,7 @@ script.
if (config.site_uv) {
const siteUV = document.getElementById('umami-site-uv')
if (siteUV && data && data.visitors) {
siteUV.textContent = data.visitors
siteUV.textContent = typeof data.visitors.value !== 'undefined' ? data.visitors.value : data.visitors
} else if (siteUV) {
console.warn('Umami Analytics: Invalid site UV data received')
}
@@ -85,7 +85,7 @@ script.
if (config.site_pv) {
const sitePV = document.getElementById('umami-site-pv')
if (sitePV && data && data.pageviews) {
sitePV.textContent = data.pageviews
sitePV.textContent = typeof data.pageviews.value !== 'undefined' ? data.pageviews.value : data.pageviews
} else if (sitePV) {
console.warn('Umami Analytics: Invalid site PV data received')
}

View File

@@ -1,6 +1,6 @@
{
"name": "hexo-theme-butterfly",
"version": "5.5.2",
"version": "5.5.3-b1",
"description": "A Simple and Card UI Design theme for Hexo",
"main": "package.json",
"scripts": {

View File

@@ -113,6 +113,10 @@ $code-block
margin: 2px
i
display: inline-flex
justify-content: center
align-items: center
padding: 5px
cursor: pointer
transition: all .3s
@@ -128,7 +132,7 @@ $code-block
if !$highlight_macstyle
& > .macStyle
padding: 0
margin: 0
.code-lang
flex: 1 1 auto
@@ -182,6 +186,7 @@ if $highlight_macstyle
.highlight-tools
.macStyle
display: flex
padding: 3px
& > *
margin-right: 8px

View File

@@ -84,10 +84,13 @@ document.addEventListener('DOMContentLoaded', () => {
const buttonRect = ele.getBoundingClientRect()
const scrollTop = window.pageYOffset || document.documentElement.scrollTop
const scrollLeft = window.pageXOffset || document.documentElement.scrollLeft
const finalTop = buttonRect.top + scrollTop - 40
const finalLeft = buttonRect.left + scrollLeft + buttonRect.width / 2
const topValue = ele.closest('figure.highlight').classList.contains('code-fullpage') ? finalTop + 60 : finalTop
// Show tooltip below button if too close to top
const normalTop = buttonRect.top + scrollTop - 40
const shouldShowBelow = buttonRect.top < 60 || normalTop < 10
const topValue = shouldShowBelow ? buttonRect.top + scrollTop + buttonRect.height + 10 : normalTop
newEle.style.cssText = `
top: ${topValue + 10}px;
@@ -111,6 +114,7 @@ document.addEventListener('DOMContentLoaded', () => {
}, 800)
}
}
const copy = async (text, ctx) => {
try {
await navigator.clipboard.writeText(text)