mirror of
https://github.com/jerryc127/hexo-theme-butterfly.git
synced 2025-09-15 12:58:48 +08:00
feat: 在綫聊天新增facebook洽談外掛程式 closed #918
feat: 添加artalk評論 closed #933 fix: 修復 開啟 archor 後, facebook評論加載不正確的 bug fix: 修復 facebook 評論數無法加載的 bug
This commit is contained in:
parent
dbb31dec99
commit
a36c9ca6d2
23
_config.yml
23
_config.yml
@ -259,7 +259,7 @@ addtoany:
|
|||||||
|
|
||||||
comments:
|
comments:
|
||||||
# Up to two comments system, the first will be shown as default
|
# Up to two comments system, the first will be shown as default
|
||||||
# Choose: Disqus/Disqusjs/Livere/Gitalk/Valine/Waline/Utterances/Facebook Comments/Twikoo/Giscus/Remark42
|
# Choose: Disqus/Disqusjs/Livere/Gitalk/Valine/Waline/Utterances/Facebook Comments/Twikoo/Giscus/Remark42/Artalk
|
||||||
use: # Valine,Disqus
|
use: # Valine,Disqus
|
||||||
text: true # Display the comment name next to the button
|
text: true # Display the comment name next to the button
|
||||||
# lazyload: The comment system will be load when comment element enters the browser's viewport.
|
# lazyload: The comment system will be load when comment element enters the browser's viewport.
|
||||||
@ -333,7 +333,7 @@ facebook_comments:
|
|||||||
user_id: # optional
|
user_id: # optional
|
||||||
pageSize: 10 # The number of comments to show
|
pageSize: 10 # The number of comments to show
|
||||||
order_by: social # social/time/reverse_time
|
order_by: social # social/time/reverse_time
|
||||||
lang: en_US # Language en_US/zh_CN/zh_TW and so on
|
lang: zh_TW # Language en_US/zh_CN/zh_TW and so on
|
||||||
|
|
||||||
# Twikoo
|
# Twikoo
|
||||||
# https://github.com/imaegoo/twikoo
|
# https://github.com/imaegoo/twikoo
|
||||||
@ -361,6 +361,14 @@ remark42:
|
|||||||
siteId: # Your Site ID
|
siteId: # Your Site ID
|
||||||
option:
|
option:
|
||||||
|
|
||||||
|
# Artalk
|
||||||
|
# https://artalk.js.org/guide/frontend/config.html
|
||||||
|
artalk:
|
||||||
|
server:
|
||||||
|
site:
|
||||||
|
visitor: false
|
||||||
|
option:
|
||||||
|
|
||||||
# Chat Services
|
# Chat Services
|
||||||
# --------------------------------------
|
# --------------------------------------
|
||||||
|
|
||||||
@ -401,6 +409,13 @@ crisp:
|
|||||||
enable: false
|
enable: false
|
||||||
website_id:
|
website_id:
|
||||||
|
|
||||||
|
# messenger
|
||||||
|
# https://developers.facebook.com/docs/messenger-platform/discovery/facebook-chat-plugin/
|
||||||
|
messenger:
|
||||||
|
enable: false
|
||||||
|
pageID:
|
||||||
|
lang: zh_TW # Language en_US/zh_CN/zh_TW and so on
|
||||||
|
|
||||||
# Footer Settings
|
# Footer Settings
|
||||||
# --------------------------------------
|
# --------------------------------------
|
||||||
footer:
|
footer:
|
||||||
@ -911,4 +926,6 @@ CDN:
|
|||||||
# meting_js:
|
# meting_js:
|
||||||
# prismjs_js:
|
# prismjs_js:
|
||||||
# prismjs_lineNumber_js:
|
# prismjs_lineNumber_js:
|
||||||
# prismjs_autoloader:
|
# prismjs_autoloader:
|
||||||
|
# artalk_js:
|
||||||
|
# artalk_css:
|
||||||
@ -75,6 +75,10 @@
|
|||||||
+pvBlock('','','')
|
+pvBlock('','','')
|
||||||
span#twikoo_visitors
|
span#twikoo_visitors
|
||||||
i.fa-solid.fa-spinner.fa-spin
|
i.fa-solid.fa-spinner.fa-spin
|
||||||
|
else if commentUse[0] === 'Artalk' && theme.artalk.visitor
|
||||||
|
+pvBlock('','','')
|
||||||
|
span#ArtalkPV
|
||||||
|
i.fa-solid.fa-spinner.fa-spin
|
||||||
else if theme.busuanzi.page_pv
|
else if theme.busuanzi.page_pv
|
||||||
+pvBlock('','post-meta-pv-cv','')
|
+pvBlock('','post-meta-pv-cv','')
|
||||||
span#busuanzi_value_page_pv
|
span#busuanzi_value_page_pv
|
||||||
@ -130,9 +134,13 @@
|
|||||||
+countBlock
|
+countBlock
|
||||||
a(href=url_for(page.path) + '#post-comment')
|
a(href=url_for(page.path) + '#post-comment')
|
||||||
span.fb-comments-count(data-href=urlNoIndex())
|
span.fb-comments-count(data-href=urlNoIndex())
|
||||||
i.fa-solid.fa-spinner.fa-spin
|
|
||||||
when 'Remark42'
|
when 'Remark42'
|
||||||
+countBlock
|
+countBlock
|
||||||
a(href=url_for(page.path) + '#post-comment')
|
a(href=url_for(page.path) + '#post-comment')
|
||||||
span.remark42__counter(data-url=urlNoIndex())
|
span.remark42__counter(data-url=urlNoIndex())
|
||||||
|
i.fa-solid.fa-spinner.fa-spin
|
||||||
|
when 'Artalk'
|
||||||
|
+countBlock
|
||||||
|
a(href=url_for(page.path) + '#post-comment')
|
||||||
|
span.artalk-count
|
||||||
i.fa-solid.fa-spinner.fa-spin
|
i.fa-solid.fa-spinner.fa-spin
|
||||||
@ -96,12 +96,16 @@ mixin postUI(posts)
|
|||||||
+countBlockInIndex
|
+countBlockInIndex
|
||||||
a(href=url_for(link) + '#post-comment')
|
a(href=url_for(link) + '#post-comment')
|
||||||
span.fb-comments-count(data-href=urlNoIndex(article.permalink))
|
span.fb-comments-count(data-href=urlNoIndex(article.permalink))
|
||||||
i.fa-solid.fa-spinner.fa-spin
|
|
||||||
when 'Remark42'
|
when 'Remark42'
|
||||||
+countBlockInIndex
|
+countBlockInIndex
|
||||||
a(href=url_for(link) + '#post-comment')
|
a(href=url_for(link) + '#post-comment')
|
||||||
span.remark42__counter(data-url=urlNoIndex(article.permalink))
|
span.remark42__counter(data-url=urlNoIndex(article.permalink))
|
||||||
i.fa-solid.fa-spinner.fa-spin
|
i.fa-solid.fa-spinner.fa-spin
|
||||||
|
when 'Artalk'
|
||||||
|
+countBlockInIndex
|
||||||
|
a(href=url_for(link) + '#post-comment')
|
||||||
|
span.artalk-count(data-page-key=url_for(link))
|
||||||
|
i.fa-solid.fa-spinner.fa-spin
|
||||||
|
|
||||||
//- Display the article introduction on homepage
|
//- Display the article introduction on homepage
|
||||||
case theme.index_post_content.method
|
case theme.index_post_content.method
|
||||||
|
|||||||
20
layout/includes/third-party/card-post-count/artalk.pug
vendored
Normal file
20
layout/includes/third-party/card-post-count/artalk.pug
vendored
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
- const { server, site } = theme.artalk
|
||||||
|
|
||||||
|
script.
|
||||||
|
(() => {
|
||||||
|
const getArtalkCount = () => {
|
||||||
|
const runWidget = () => {
|
||||||
|
Artalk.LoadCountWidget({
|
||||||
|
server: '!{server}',
|
||||||
|
site: '!{site}',
|
||||||
|
countEl: '.artalk-count'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
if (typeof Artalk === 'function') runWidget()
|
||||||
|
else getScript('!{theme.asset.artalk_js}').then(runWidget)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
window.pjax ? getArtalkCount() : window.addEventListener('load', getArtalkCount)
|
||||||
|
})()
|
||||||
@ -1,10 +1,13 @@
|
|||||||
|
- const fbSDKVer = 'v14.0'
|
||||||
|
- const fbSDK = theme.messenger.enable ? `https://connect.facebook.net/${theme.facebook_comments.lang}/sdk/xfbml.customerchat.js#xfbml=1&version=${fbSDKVer}` : `https://connect.facebook.net/${theme.facebook_comments.lang}/sdk.js#xfbml=1&version=${fbSDKVer}`
|
||||||
|
|
||||||
script.
|
script.
|
||||||
(()=>{
|
(()=>{
|
||||||
function loadFBComment () {
|
function loadFBComment () {
|
||||||
if (typeof FB === 'object') FB.XFBML.parse()
|
if (typeof FB === 'object') FB.XFBML.parse(document.getElementById('recent-posts'))
|
||||||
else {
|
else {
|
||||||
let ele = document.createElement('script')
|
let ele = document.createElement('script')
|
||||||
ele.setAttribute('src','https://connect.facebook.net/!{theme.facebook_comments.lang}/sdk.js#xfbml=1&version=v9.0')
|
ele.setAttribute('src','!{fbSDK}')
|
||||||
ele.setAttribute('async', 'true')
|
ele.setAttribute('async', 'true')
|
||||||
ele.setAttribute('defer', 'true')
|
ele.setAttribute('defer', 'true')
|
||||||
ele.setAttribute('crossorigin', 'anonymous')
|
ele.setAttribute('crossorigin', 'anonymous')
|
||||||
|
|||||||
@ -11,4 +11,6 @@ case theme.comments.use[0]
|
|||||||
when 'Facebook Comments'
|
when 'Facebook Comments'
|
||||||
include ./fb.pug
|
include ./fb.pug
|
||||||
when 'Remark42'
|
when 'Remark42'
|
||||||
include ./remark42.pug
|
include ./remark42.pug
|
||||||
|
when 'Artalk'
|
||||||
|
include ./artalk.pug
|
||||||
4
layout/includes/third-party/chat/index.pug
vendored
4
layout/includes/third-party/chat/index.pug
vendored
@ -7,4 +7,6 @@ else if theme.daovoice && theme.daovoice.enable
|
|||||||
else if theme.gitter && theme.gitter.enable
|
else if theme.gitter && theme.gitter.enable
|
||||||
include ./gitter.pug
|
include ./gitter.pug
|
||||||
else if theme.crisp && theme.crisp.enable
|
else if theme.crisp && theme.crisp.enable
|
||||||
include ./crisp.pug
|
include ./crisp.pug
|
||||||
|
else if theme.messenger && theme.messenger.enable
|
||||||
|
include ./messenger.pug
|
||||||
42
layout/includes/third-party/chat/messenger.pug
vendored
Normal file
42
layout/includes/third-party/chat/messenger.pug
vendored
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
- let { pageID, lang } = theme.messenger
|
||||||
|
- lang = theme.comments.use && theme.comments.use.includes('Facebook Comments') ? theme.facebook_comments.lang : lang
|
||||||
|
|
||||||
|
#fb-customer-chat.fb-customerchat(page_id=pageID attribution='biz_inbox')
|
||||||
|
|
||||||
|
script.
|
||||||
|
document.getElementById('fb-root') ? '' : document.body.insertAdjacentHTML('afterend', '<div id="fb-root"></div>')
|
||||||
|
|
||||||
|
window.fbAsyncInit = function() {
|
||||||
|
FB.init({
|
||||||
|
xfbml: true,
|
||||||
|
version: 'v14.0'
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
(function(d, s, id) {
|
||||||
|
var js, fjs = d.getElementsByTagName(s)[0];
|
||||||
|
if (d.getElementById(id)) return;
|
||||||
|
js = d.createElement(s); js.id = id;
|
||||||
|
js.src = 'https://connect.facebook.net/!{lang}/sdk/xfbml.customerchat.js';
|
||||||
|
fjs.parentNode.insertBefore(js, fjs);
|
||||||
|
}(document, 'script', 'facebook-jssdk'));
|
||||||
|
|
||||||
|
if (!{theme.chat_btn}) {
|
||||||
|
var chatBtnFn = () => {
|
||||||
|
var chatBtn = document.getElementById("chat_btn")
|
||||||
|
chatBtn.addEventListener("click", function(){
|
||||||
|
FB.CustomerChat.show();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
chatBtnFn()
|
||||||
|
} else {
|
||||||
|
if (!{theme.chat_hide_show}) {
|
||||||
|
function chatBtnHide () {
|
||||||
|
FB.CustomerChat.hide()
|
||||||
|
}
|
||||||
|
function chatBtnShow () {
|
||||||
|
FB.CustomerChat.show(false)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
45
layout/includes/third-party/comments/artalk.pug
vendored
Normal file
45
layout/includes/third-party/comments/artalk.pug
vendored
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
- const { server, site } = theme.artalk
|
||||||
|
|
||||||
|
script.
|
||||||
|
function addArtalkSource () {
|
||||||
|
const ele = document.createElement('link')
|
||||||
|
ele.rel = 'stylesheet'
|
||||||
|
ele.href= '!{theme.asset.artalk_css}'
|
||||||
|
document.getElementsByTagName('head')[0].appendChild(ele)
|
||||||
|
}
|
||||||
|
|
||||||
|
function loadArtalk () {
|
||||||
|
function initArtalk () {
|
||||||
|
window.artalkItem = new Artalk({
|
||||||
|
el: '#artalk-wrap',
|
||||||
|
server: '!{server}',
|
||||||
|
site: '!{site}',
|
||||||
|
pageKey: location.pathname,
|
||||||
|
darkMode: document.documentElement.getAttribute('data-theme') === 'dark',
|
||||||
|
countEl: '.artalk-count'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
if (typeof window.artalkItem === 'object') setTimeout(()=>{initArtalk()},200)
|
||||||
|
else {
|
||||||
|
addArtalkSource()
|
||||||
|
typeof Artalk !== 'function' ? getScript('!{theme.asset.artalk_js}').then(initArtalk)
|
||||||
|
: setTimeout(()=>{initArtalk()},200)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
document.getElementById('darkmode').addEventListener('click',()=> {
|
||||||
|
if (typeof window.artalkItem !== 'object') return
|
||||||
|
let isDark = document.documentElement.getAttribute('data-theme') === 'dark'
|
||||||
|
window.artalkItem.setDarkMode(!isDark)
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
if ('!{theme.comments.use[0]}' === 'Artalk' || !!{theme.comments.lazyload}) {
|
||||||
|
if (!{theme.comments.lazyload}) btf.loadComment(document.getElementById('artalk-wrap'), loadArtalk)
|
||||||
|
else loadArtalk()
|
||||||
|
} else {
|
||||||
|
function loadOtherComment () {
|
||||||
|
loadArtalk()
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,16 +1,26 @@
|
|||||||
#fb-root
|
- const fbSDKVer = 'v14.0'
|
||||||
|
- const fbSDK = theme.messenger.enable ? `https://connect.facebook.net/${theme.facebook_comments.lang}/sdk/xfbml.customerchat.js#xfbml=1&version=${fbSDKVer}` : `https://connect.facebook.net/${theme.facebook_comments.lang}/sdk.js#xfbml=1&version=${fbSDKVer}`
|
||||||
|
|
||||||
script.
|
script.
|
||||||
function loadFBComment () {
|
function loadFBComment () {
|
||||||
var themeNow = document.documentElement.getAttribute('data-theme') === 'dark' ? 'dark' : 'light'
|
document.getElementById('fb-root') ? '' : document.body.insertAdjacentHTML('afterend', '<div id="fb-root"></div>')
|
||||||
document.getElementsByClassName('fb-comments')[0].setAttribute('data-colorscheme',themeNow)
|
|
||||||
|
|
||||||
if (typeof FB === 'object') FB.XFBML.parse()
|
const themeNow = document.documentElement.getAttribute('data-theme') === 'dark' ? 'dark' : 'light'
|
||||||
|
const $fbComment = document.getElementsByClassName('fb-comments')[0]
|
||||||
|
$fbComment.setAttribute('data-colorscheme',themeNow)
|
||||||
|
$fbComment.setAttribute('data-href', '!{urlNoIndex(page.permalink)}')
|
||||||
|
|
||||||
|
if (typeof FB === 'object') {
|
||||||
|
FB.XFBML.parse(document.getElementsByClassName('post-meta-commentcount')[0])
|
||||||
|
FB.XFBML.parse(document.getElementById('post-comment'))
|
||||||
|
}
|
||||||
else {
|
else {
|
||||||
let ele = document.createElement('script')
|
let ele = document.createElement('script')
|
||||||
ele.setAttribute('src','https://connect.facebook.net/!{theme.facebook_comments.lang}/sdk.js#xfbml=1&version=v13.0&appId=!{theme.facebook_comments.app_id}&autoLogAppEvents=1')
|
ele.setAttribute('src','!{fbSDK}')
|
||||||
ele.setAttribute('async', 'true')
|
ele.setAttribute('async', 'true')
|
||||||
ele.setAttribute('defer', 'true')
|
ele.setAttribute('defer', 'true')
|
||||||
ele.setAttribute('crossorigin', 'anonymous')
|
ele.setAttribute('crossorigin', 'anonymous')
|
||||||
|
ele.setAttribute('id', 'facebook-jssdk')
|
||||||
document.getElementById('fb-root').insertAdjacentElement('afterbegin',ele)
|
document.getElementById('fb-root').insertAdjacentElement('afterbegin',ele)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -42,3 +42,5 @@ hr
|
|||||||
data-width="100%")
|
data-width="100%")
|
||||||
when 'Remark42'
|
when 'Remark42'
|
||||||
#remark42
|
#remark42
|
||||||
|
when 'Artalk'
|
||||||
|
#artalk-wrap
|
||||||
|
|||||||
4
layout/includes/third-party/comments/js.pug
vendored
4
layout/includes/third-party/comments/js.pug
vendored
@ -19,6 +19,8 @@ each name in theme.comments.use
|
|||||||
when 'Giscus'
|
when 'Giscus'
|
||||||
!=partial('includes/third-party/comments/giscus', {}, {cache: true})
|
!=partial('includes/third-party/comments/giscus', {}, {cache: true})
|
||||||
when 'Facebook Comments'
|
when 'Facebook Comments'
|
||||||
!=partial('includes/third-party/comments/facebook_comments', {}, {cache: true})
|
include ./facebook_comments.pug
|
||||||
when 'Remark42'
|
when 'Remark42'
|
||||||
!=partial('includes/third-party/comments/remark42', {}, {cache: true})
|
!=partial('includes/third-party/comments/remark42', {}, {cache: true})
|
||||||
|
when 'Artalk'
|
||||||
|
!=partial('includes/third-party/comments/artalk', {}, {cache: true})
|
||||||
82
layout/includes/third-party/newest-comments/artalk.pug
vendored
Normal file
82
layout/includes/third-party/newest-comments/artalk.pug
vendored
Normal file
@ -0,0 +1,82 @@
|
|||||||
|
- const { server, option } = theme.artalk
|
||||||
|
- const avatarCdn = option !== null && option.gravatar ? option.gravatar.mirror : 'https://sdn.geekzu.org/avatar/'
|
||||||
|
- const avatarDefault = option !== null && option.gravatar ? option.gravatar.default : 'mp'
|
||||||
|
|
||||||
|
script.
|
||||||
|
window.addEventListener('load', () => {
|
||||||
|
const changeContent = (content) => {
|
||||||
|
if (content === '') return content
|
||||||
|
|
||||||
|
content = content.replace(/<img.*?src="(.*?)"?[^\>]+>/ig, '[!{_p("aside.card_newest_comments.image")}]') // replace image link
|
||||||
|
content = content.replace(/<a[^>]+?href=["']?([^"']+)["']?[^>]*>([^<]+)<\/a>/gi, '[!{_p("aside.card_newest_comments.link")}]') // replace url
|
||||||
|
content = content.replace(/<pre><code>.*?<\/pre>/gi, '[!{_p("aside.card_newest_comments.code")}]') // replace code
|
||||||
|
content = content.replace(/<[^>]+>/g,"") // remove html tag
|
||||||
|
|
||||||
|
if (content.length > 150) {
|
||||||
|
content = content.substring(0,150) + '...'
|
||||||
|
}
|
||||||
|
return content
|
||||||
|
}
|
||||||
|
|
||||||
|
const generateHtml = array => {
|
||||||
|
let result = ''
|
||||||
|
|
||||||
|
if (array.length) {
|
||||||
|
for (let i = 0; i < array.length; i++) {
|
||||||
|
result += '<div class=\'aside-list-item\'>'
|
||||||
|
|
||||||
|
if (!{theme.newest_comments.avatar}) {
|
||||||
|
const name = '!{theme.lazyload.enable ? "data-lazy-src" : "src"}'
|
||||||
|
result += `<a href='${array[i].url}' class='thumbnail'><img ${name}='${array[i].avatar}' alt='${array[i].nick}'></a>`
|
||||||
|
}
|
||||||
|
|
||||||
|
result += `<div class='content'>
|
||||||
|
<a class='comment' href='${array[i].url}' title='${array[i].content}'>${array[i].content}</a>
|
||||||
|
<div class='name'><span>${array[i].nick} / </span><time datetime="${array[i].date}">${btf.diffDate(array[i].date, true)}</time></div>
|
||||||
|
</div></div>`
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
result += '!{_p("aside.card_newest_comments.zero")}'
|
||||||
|
}
|
||||||
|
|
||||||
|
let $dom = document.querySelector('#card-newest-comments .aside-list')
|
||||||
|
$dom.innerHTML= result
|
||||||
|
window.lazyLoadInstance && window.lazyLoadInstance.update()
|
||||||
|
window.pjax && window.pjax.refresh($dom)
|
||||||
|
}
|
||||||
|
|
||||||
|
const getComment = () => {
|
||||||
|
fetch('!{server}/api/stat?type=latest_comments&limit=!{theme.newest_comments.limit}',{method: "POST"})
|
||||||
|
.then(response => response.json())
|
||||||
|
.then(d => {
|
||||||
|
const artalk = d.data.map(function (e) {
|
||||||
|
return {
|
||||||
|
'avatar': '!{avatarCdn}' + e.email_encrypted + '?d=!{avatarDefault}',
|
||||||
|
'content': changeContent(e.content_marked),
|
||||||
|
'nick': e.nick,
|
||||||
|
'url': e.page_url,
|
||||||
|
'date': e.date,
|
||||||
|
}
|
||||||
|
})
|
||||||
|
saveToLocal.set('artalk-newest-comments', JSON.stringify(artalk), !{theme.newest_comments.storage}/(60*24))
|
||||||
|
generateHtml(artalk)
|
||||||
|
}).catch(e => {
|
||||||
|
const $dom = document.querySelector('#card-newest-comments .aside-list')
|
||||||
|
$dom.innerHTML= "!{_p('aside.card_newest_comments.error')}"
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
const newestCommentInit = () => {
|
||||||
|
if (document.querySelector('#card-newest-comments .aside-list')) {
|
||||||
|
const data = saveToLocal.get('artalk-newest-comments')
|
||||||
|
if (data) {
|
||||||
|
generateHtml(JSON.parse(data))
|
||||||
|
} else {
|
||||||
|
getComment()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
newestCommentInit()
|
||||||
|
document.addEventListener('pjax:complete', newestCommentInit)
|
||||||
|
})
|
||||||
@ -25,4 +25,6 @@ if use
|
|||||||
- userRepo = theme.utterances.repo
|
- userRepo = theme.utterances.repo
|
||||||
include ./github-issues.pug
|
include ./github-issues.pug
|
||||||
when 'Remark42'
|
when 'Remark42'
|
||||||
include ./remark42.pug
|
include ./remark42.pug
|
||||||
|
when 'Artalk'
|
||||||
|
include ./artalk.pug
|
||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "hexo-theme-butterfly",
|
"name": "hexo-theme-butterfly",
|
||||||
"version": "4.3.1",
|
"version": "4.4.0-b1",
|
||||||
"description": "A Simple and Card UI Design theme for Hexo",
|
"description": "A Simple and Card UI Design theme for Hexo",
|
||||||
"main": "package.json",
|
"main": "package.json",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|||||||
20
plugins.yml
20
plugins.yml
@ -5,7 +5,7 @@ algolia_search_v4:
|
|||||||
instantsearch_v4:
|
instantsearch_v4:
|
||||||
name: instantsearch.js
|
name: instantsearch.js
|
||||||
file: dist/instantsearch.production.min.js
|
file: dist/instantsearch.production.min.js
|
||||||
version: 4.42.0
|
version: 4.43.1
|
||||||
pjax:
|
pjax:
|
||||||
name: pjax
|
name: pjax
|
||||||
file: pjax.min.js
|
file: pjax.min.js
|
||||||
@ -25,7 +25,7 @@ blueimp_md5:
|
|||||||
valine:
|
valine:
|
||||||
name: valine
|
name: valine
|
||||||
file: dist/Valine.min.js
|
file: dist/Valine.min.js
|
||||||
version: 1.4.18
|
version: 1.5.0
|
||||||
disqusjs:
|
disqusjs:
|
||||||
name: disqusjs
|
name: disqusjs
|
||||||
file: dist/browser/disqusjs.es2015.umd.min.js
|
file: dist/browser/disqusjs.es2015.umd.min.js
|
||||||
@ -73,7 +73,7 @@ katex_copytex:
|
|||||||
mermaid:
|
mermaid:
|
||||||
name: mermaid
|
name: mermaid
|
||||||
file: dist/mermaid.min.js
|
file: dist/mermaid.min.js
|
||||||
version: 9.1.2
|
version: 9.1.3
|
||||||
canvas_ribbon:
|
canvas_ribbon:
|
||||||
name: butterfly-extsrc
|
name: butterfly-extsrc
|
||||||
file: dist/canvas-ribbon.min.js
|
file: dist/canvas-ribbon.min.js
|
||||||
@ -105,11 +105,11 @@ ClickShowText:
|
|||||||
lazyload:
|
lazyload:
|
||||||
name: vanilla-lazyload
|
name: vanilla-lazyload
|
||||||
file: dist/lazyload.iife.min.js
|
file: dist/lazyload.iife.min.js
|
||||||
version: 17.3.1
|
version: 17.8.2
|
||||||
instantpage:
|
instantpage:
|
||||||
name: instant.page
|
name: instant.page
|
||||||
file: instantpage.js
|
file: instantpage.js
|
||||||
version: 5.1.0
|
version: 5.1.1
|
||||||
typed:
|
typed:
|
||||||
name: typed.js
|
name: typed.js
|
||||||
file: lib/typed.min.js
|
file: lib/typed.min.js
|
||||||
@ -179,4 +179,12 @@ prismjs_autoloader:
|
|||||||
name: prismjs
|
name: prismjs
|
||||||
file: plugins/autoloader/prism-autoloader.min.js
|
file: plugins/autoloader/prism-autoloader.min.js
|
||||||
other_name: prism
|
other_name: prism
|
||||||
version: 1.28.0
|
version: 1.28.0
|
||||||
|
artalk_js:
|
||||||
|
name: artalk
|
||||||
|
file: dist/Artalk.js
|
||||||
|
version: 2.3.4
|
||||||
|
artalk_css:
|
||||||
|
name: artalk
|
||||||
|
file: dist/Artalk.css
|
||||||
|
version: 2.3.4
|
||||||
@ -6,3 +6,12 @@ if hexo-config('chat_btn') == true && hexo-config('chatra.enable')
|
|||||||
height: 1px !important
|
height: 1px !important
|
||||||
opacity: 0 !important
|
opacity: 0 !important
|
||||||
pointer-events: none
|
pointer-events: none
|
||||||
|
|
||||||
|
if hexo-config('chat_btn') == true && hexo-config('messenger.enable')
|
||||||
|
.fb_dialog,
|
||||||
|
.fb-customerchat
|
||||||
|
visibility: hidden !important
|
||||||
|
width: 1px !important
|
||||||
|
height: 1px !important
|
||||||
|
opacity: 0 !important
|
||||||
|
pointer-events: none
|
||||||
Loading…
Reference in New Issue
Block a user