update theme
This commit is contained in:
@@ -6,4 +6,6 @@ if use
|
||||
when 'addtoany'
|
||||
!=partial('includes/third-party/share/addtoany', {}, {cache: true})
|
||||
when 'sharejs'
|
||||
include ./share-js.pug
|
||||
include ./share-js.pug
|
||||
when 'web_share'
|
||||
include ./web_share.pug
|
||||
53
themes/butterfly/layout/includes/third-party/share/web_share.pug
vendored
Normal file
53
themes/butterfly/layout/includes/third-party/share/web_share.pug
vendored
Normal file
@@ -0,0 +1,53 @@
|
||||
//- web_share.pug
|
||||
|
||||
style.
|
||||
#web-share-btn {
|
||||
background: var(--btn-bg);
|
||||
color: var(--btn-color);
|
||||
border: none;
|
||||
padding: 0.5rem 1rem;
|
||||
border-radius: 8px;
|
||||
cursor: pointer;
|
||||
transition: all 0.3s;
|
||||
}
|
||||
#web-share-btn:hover {
|
||||
background: var(--btn-hover-color);
|
||||
}
|
||||
|
||||
#web-share-component
|
||||
button#web-share-btn(title='分享本文')
|
||||
i.fas.fa-share-alt
|
||||
span= ' ' + _p('分享')
|
||||
|
||||
script.
|
||||
(() => {
|
||||
const setupWebShare = () => {
|
||||
const btn = document.getElementById('web-share-btn')
|
||||
if (!btn) return
|
||||
|
||||
// 点击事件处理
|
||||
btn.addEventListener('click', async () => {
|
||||
if (navigator.share) {
|
||||
try {
|
||||
await navigator.share({
|
||||
title: '!{page.title || config.title}',
|
||||
text: '!{truncate(strip_html(page.content), {length: 100})}',
|
||||
url: window.location.href
|
||||
})
|
||||
} catch (err) {
|
||||
console.log('分享取消或失败', err)
|
||||
}
|
||||
} else {
|
||||
// 降级处理:比如弹出提示或复制链接
|
||||
const shareData = window.location.href
|
||||
navigator.clipboard.writeText(shareData).then(() => {
|
||||
btf.snackbarShow('系统不支持分享,已将链接复制到剪贴板')
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// 考虑到 Butterfly 的 Pjax 跳转,需要重新绑定
|
||||
setupWebShare()
|
||||
document.addEventListener('pjax:complete', setupWebShare)
|
||||
})()
|
||||
Reference in New Issue
Block a user