mirror of
https://github.com/jerryc127/hexo-theme-butterfly.git
synced 2025-09-15 12:58:48 +08:00
feat: toc改為aside顯示,去掉sidebar feat: 手機toc ui 修改 feat: 去掉 toc auto_open 配置 feat: 文章標題改為居中 improvement: 完善note標籤在readmode上的顯示 improvement: 精簡css 和 js improvement: pjax 優化 fix: 修復當文章頁top_img設為false時,閲讀模式下文章內容不顯示的bugs
161 lines
4.8 KiB
Plaintext
161 lines
4.8 KiB
Plaintext
-
|
|
let algolia = 'undefined';
|
|
let env = process.env;
|
|
if (theme.algolia_search.enable) {
|
|
algolia = JSON.stringify({
|
|
appId: env.ALGOLIA_APP_ID || config.algolia.appId || config.algolia.applicationID,
|
|
apiKey: env.ALGOLIA_API_KEY || config.algolia.apiKey,
|
|
indexName: env.ALGOLIA_INDEX_NAME || config.algolia.indexName,
|
|
hits: theme.algolia_search.hits,
|
|
// search languages
|
|
languages: {
|
|
input_placeholder: _p("algolia_search.input_placeholder"),
|
|
hits_empty: _p("algolia_search.hits_empty"),
|
|
hits_stats: _p("algolia_search.hits_stats")
|
|
}
|
|
})
|
|
}
|
|
|
|
let localSearch = 'undefined';
|
|
if (theme.local_search && theme.local_search.enable) {
|
|
localSearch = JSON.stringify({
|
|
path: config.search.path,
|
|
languages: {
|
|
// search languages
|
|
hits_empty: _p("local_search.hits_empty")
|
|
}
|
|
})
|
|
}
|
|
|
|
let translate = 'undefined';
|
|
if (theme.translate && theme.translate.enable){
|
|
translate = JSON.stringify({
|
|
defaultEncoding: theme.translate.defaultEncoding,
|
|
translateDelay: theme.translate.translateDelay,
|
|
msgToTraditionalChinese: theme.translate.msgToTraditionalChinese,
|
|
msgToSimplifiedChinese: theme.translate.msgToSimplifiedChinese
|
|
})
|
|
}
|
|
|
|
let copyright = 'undefined';
|
|
if (theme.copy.enable && theme.copy.copyright.enable){
|
|
copyright = JSON.stringify({
|
|
limitCount: theme.copy.copyright.limit_count,
|
|
languages: {
|
|
author: _p("copy_copyright.author") + ': ' + config.author,
|
|
link: _p("copy_copyright.link") + ': ',
|
|
source: _p("copy_copyright.source") + ': ' + config.title,
|
|
info: _p("copy_copyright.info")
|
|
}
|
|
})
|
|
}
|
|
|
|
let ClickShowText = 'undefined';
|
|
if (theme.ClickShowText && theme.ClickShowText.enable) {
|
|
ClickShowText = JSON.stringify({
|
|
text: theme.ClickShowText.text.join(","),
|
|
fontSize: theme.ClickShowText.fontSize
|
|
})
|
|
}
|
|
|
|
let Snackbar = 'undefined';
|
|
if (theme.snackbar && theme.snackbar.enable) {
|
|
Snackbar = JSON.stringify({
|
|
chs_to_cht: _p("Snackbar.chs_to_cht"),
|
|
cht_to_chs: _p("Snackbar.cht_to_chs"),
|
|
day_to_night: _p("Snackbar.day_to_night"),
|
|
night_to_day: _p("Snackbar.night_to_day"),
|
|
bgLight: theme.snackbar.bg_light,
|
|
bgDark: theme.snackbar.bg_dark,
|
|
position: theme.snackbar.position,
|
|
})
|
|
}
|
|
|
|
let noticeOutdate = 'undefined';
|
|
if (theme.noticeOutdate && theme.noticeOutdate.enable) {
|
|
noticeOutdate = JSON.stringify({
|
|
limitDay: theme.noticeOutdate.limit_day,
|
|
position: theme.noticeOutdate.position,
|
|
messagePrev: theme.noticeOutdate.message_prev,
|
|
messageNext: theme.noticeOutdate.message_next,
|
|
})
|
|
}
|
|
|
|
let highlight = 'undefined';
|
|
if ((config.highlight && config.highlight.enable) || (config.prismjs && config.prismjs.enable)) {
|
|
highlight = JSON.stringify({
|
|
plugin: config.highlight.enable ? 'highlighjs' : 'prismjs',
|
|
highlightCopy: theme.highlight_copy,
|
|
highlightLang: theme.highlight_lang
|
|
})
|
|
}
|
|
|
|
script.
|
|
var GLOBAL_CONFIG = {
|
|
root: '!{config.root}',
|
|
algolia: !{algolia},
|
|
localSearch: !{localSearch},
|
|
translate: !{translate},
|
|
noticeOutdate: !{noticeOutdate},
|
|
highlight: !{highlight},
|
|
copy: {
|
|
success: '!{_p("copy.success")}',
|
|
error: '!{_p("copy.error")}',
|
|
noSupport: '!{_p("copy.noSupport")}'
|
|
},
|
|
relativeDate: {
|
|
homepage: !{theme.post_meta.page.date_format === 'relative'},
|
|
post: !{theme.post_meta.post.date_format === 'relative'}
|
|
},
|
|
runtime: '!{theme.runtimeshow.enable ? _p("aside.card_webinfo.runtime.unit") : ""}',
|
|
date_suffix: {
|
|
just: '!{_p("date_suffix.just")}',
|
|
min: '!{_p("date_suffix.min")}',
|
|
hour: '!{_p("date_suffix.hour")}',
|
|
day: '!{_p("date_suffix.day")}',
|
|
month: '!{_p("date_suffix.month")}'
|
|
},
|
|
copyright: !{copyright},
|
|
ClickShowText: !{ClickShowText},
|
|
lightbox: '!{ theme.medium_zoom ? "mediumZoom" : (theme.fancybox ? "fancybox" : "null" )}',
|
|
Snackbar: !{Snackbar},
|
|
justifiedGallery: {
|
|
js: '!{theme.CDN.justifiedGallery_js}',
|
|
css: '!{theme.CDN.justifiedGallery_css}'
|
|
},
|
|
isPhotoFigcaption: !{theme.photofigcaption},
|
|
islazyload: !{theme.lazyload.enable},
|
|
isanchor: !{theme.anchor}
|
|
};
|
|
|
|
var saveToLocal = {
|
|
set: function setWithExpiry(key, value, ttl) {
|
|
const now = new Date()
|
|
const expiryDay = ttl * 86400000
|
|
const item = {
|
|
value: value,
|
|
expiry: now.getTime() + expiryDay,
|
|
}
|
|
localStorage.setItem(key, JSON.stringify(item))
|
|
},
|
|
|
|
get: function getWithExpiry(key) {
|
|
const itemStr = localStorage.getItem(key)
|
|
|
|
if (!itemStr) {
|
|
return undefined
|
|
}
|
|
const item = JSON.parse(itemStr)
|
|
const now = new Date()
|
|
|
|
if (now.getTime() > item.expiry) {
|
|
localStorage.removeItem(key)
|
|
return undefined
|
|
}
|
|
return item.value
|
|
}
|
|
}
|
|
|
|
|
|
|