Skip to content

Commit

Permalink
feat: 更新 lazyload 配置,支持原生 lazyload 功能
Browse files Browse the repository at this point in the history
feat: 代碼優化
feat: 優化 pageType 邏輯
fix: 修復解密文章後, chartjs 沒有加載的 bug
  • Loading branch information
jerryc127 committed Nov 30, 2024
1 parent f7483d5 commit 247c1b6
Show file tree
Hide file tree
Showing 45 changed files with 138 additions and 132 deletions.
4 changes: 2 additions & 2 deletions layout/includes/additional-js.pug
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ div
if theme.instantpage
script(src=url_for(theme.asset.instantpage), type='module')

if theme.lazyload.enable
if theme.lazyload.enable && !theme.lazyload.native
script(src=url_for(theme.asset.lazyload))

if theme.snackbar.enable
Expand All @@ -33,7 +33,7 @@ div
!= partial("includes/third-party/prismjs", {}, { cache: true })

if theme.aside.enable && theme.aside.card_newest_comments.enable
if theme.pjax.enable || (!is_post() && page.aside !== false)
if theme.pjax.enable || (globalPageType !== 'post' && page.aside !== false)
!= partial("includes/third-party/newest-comments/index", {}, { cache: true })

!= fragment_cache('injectBottom', function(){return injectHtml(theme.inject.bottom)})
Expand Down
18 changes: 12 additions & 6 deletions layout/includes/head.pug
Original file line number Diff line number Diff line change
@@ -1,12 +1,18 @@
- var pageTitle
- is_archive() ? page.title = findArchivesTitle(page, theme.menu, date) : ''
- if (is_tag()) pageTitle = _p('page.tag') + ': ' + page.tag
- else if (is_category()) pageTitle = _p('page.category') + ': ' + page.category
- else if (is_current('/404.html', [strict])) pageTitle = _p('error404')
- else pageTitle = page.title || config.title || ''
- globalPageType === 'archive' ? page.title = findArchivesTitle(page, theme.menu, date) : ''
case globalPageType
when 'tag'
- pageTitle = _p('page.tag') + ': ' + page.tag
when 'category'
- pageTitle = _p('page.category') + ': ' + page.category
when '404'
- pageTitle = _p('error404')
default
- pageTitle = page.title || config.title || ''


- var isSubtitle = config.subtitle ? ' - ' + config.subtitle : ''
- var tabTitle = is_home() || !pageTitle ? config.title + isSubtitle : pageTitle + ' | ' + config.title
- var tabTitle = globalPageType === 'home' || !pageTitle ? config.title + isSubtitle : pageTitle + ' | ' + config.title
- var pageAuthor = config.email ? config.author + ',' + config.email : config.author
- var pageCopyright = config.copyright || config.author
- var themeColorLight = theme.theme_color && theme.theme_color.enable && theme.theme_color.meta_theme_color_light || '#ffffff'
Expand Down
2 changes: 1 addition & 1 deletion layout/includes/head/Open_Graph.pug
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ if theme.Open_Graph_meta.enable
-
const coverVal = page.cover_type === 'img' ? page.cover : theme.avatar.img
let ogOption = Object.assign({
type: is_post() ? 'article' : 'website',
type: globalPageType === 'post' ? 'article' : 'website',
image: coverVal ? full_url_for(coverVal) : '',
fb_admins: theme.facebook_comments.user_id || '',
fb_app_id: theme.facebook_comments.app_id || '',
Expand Down
2 changes: 1 addition & 1 deletion layout/includes/head/analytics.pug
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ if theme.baidu_analytics
(function() {
var hm = document.createElement("script");
hm.src = "https://hm.baidu.com/hm.js?!{theme.baidu_analytics}";
var s = document.getElementsByTagName("script")[0];
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
btf.addGlobalFn('pjaxComplete', () => {
Expand Down
2 changes: 1 addition & 1 deletion layout/includes/head/config.pug
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ script.
buttonText: '!{_p("load_more")}'
},
isPhotoFigcaption: !{theme.photofigcaption},
islazyload: !{theme.lazyload.enable},
islazyloadPlugin: !{theme.lazyload.enable && !theme.lazyload.native},
isAnchor: !{theme.anchor.auto_update || false},
percent: {
toc: !{theme.toc.scroll_percent},
Expand Down
8 changes: 3 additions & 5 deletions layout/includes/head/config_site.pug
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@
var showToc = false
if (theme.aside.enable && page.aside !== false) {
let tocEnable = false
if (is_post() && theme.toc.post) tocEnable = true
else if (is_page() && theme.toc.page) tocEnable = true
if (globalPageType === 'post' && theme.toc.post) tocEnable = true
else if (globalPageType === 'page' && theme.toc.page) tocEnable = true
const pageToc = typeof page.toc === 'boolean' ? page.toc : tocEnable
showToc = pageToc && (toc(page.content) !== '' || page.encrypt === true)
}
Expand All @@ -19,9 +19,7 @@
script#config-diff.
var GLOBAL_CONFIG_SITE = {
title: '!{titleVal}',
isPost: !{is_post()},
isHome: !{is_home()},
isHighlightShrink: !{isHighlightShrink},
isToc: !{showToc},
isShuoshuo: !{page.type == 'shuoshuo'}
pageType: '!{page.type == 'shuoshuo' ? 'shuoshuo' : globalPageType}'
}
2 changes: 1 addition & 1 deletion layout/includes/head/preconnect.pug
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
if internal_provider === third_party_provider && internal_provider !== 'local'
link(rel="preconnect" href=providers[internal_provider])
else
else
if internal_provider !== 'local'
link(rel="preconnect" href=providers[internal_provider])
if third_party_provider !== 'local'
Expand Down
41 changes: 20 additions & 21 deletions layout/includes/header/index.pug
Original file line number Diff line number Diff line change
Expand Up @@ -6,33 +6,32 @@
var bg_img = ''
if !theme.disable_top_img && page.top_img !== false
if is_post()
- top_img = page.top_img || page.cover || theme.default_top_img
else if is_page()
- top_img = page.top_img || theme.default_top_img
else if is_tag()
- top_img = theme.tag_per_img && theme.tag_per_img[page.tag]
- top_img = top_img || returnTopImg(theme.tag_img)
else if is_category()
- top_img = theme.category_per_img && theme.category_per_img[page.category]
- top_img = top_img || returnTopImg(theme.category_img)
else if is_home()
- top_img = returnTopImg(theme.index_img)
else if is_archive()
- top_img = returnTopImg(theme.archive_img)
else
- top_img = page.top_img || theme.default_top_img
case globalPageType
when 'post'
- top_img = page.top_img || page.cover || theme.default_top_img
when 'page'
- top_img = page.top_img || theme.default_top_img
when 'tag'
- top_img = theme.tag_per_img && theme.tag_per_img[page.tag] || returnTopImg(theme.tag_img)
when 'category'
- top_img = theme.category_per_img && theme.category_per_img[page.category] || returnTopImg(theme.category_img)
when 'home'
- top_img = returnTopImg(theme.index_img)
when 'archive'
- top_img = returnTopImg(theme.archive_img)
default
- top_img = page.top_img || theme.default_top_img

if top_img !== false
- bg_img = getBgPath(top_img)
- headerClassName = is_home() ? 'full_page' : is_post() ? 'post-bg' : 'not-home-page'
- headerClassName = globalPageType === 'home' ? 'full_page' : globalPageType === 'post' ? 'post-bg' : 'not-home-page'

header#page-header(class=`${headerClassName + isFixedClass}` style=bg_img)
include ./nav.pug
if top_img !== false
if is_post()
if globalPageType === 'post'
include ./post-info.pug
else if is_home()
else if globalPageType === 'home'
#site-info
h1#site-title=config.title
if theme.subtitle.enable
Expand All @@ -48,6 +47,6 @@ header#page-header(class=`${headerClassName + isFixedClass}` style=bg_img)
#page-site-info
h1#site-title=page.title || page.tag || page.category
else
//- improvement seo
if !is_post()
//- improve seo
if globalPageType !== 'post'
h1.title-seo=page.title || page.tag || page.category || config.title
2 changes: 1 addition & 1 deletion layout/includes/header/nav.pug
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ nav#nav
img.site-icon(src=url_for(theme.nav.logo) alt='Logo')
if theme.nav.display_title
span.site-name=config.title
if is_post()
if globalPageType === 'post'
a.nav-page-title(href=url_for('/'))
span.site-name=(page.title || config.title)
#menus
Expand Down
7 changes: 4 additions & 3 deletions layout/includes/layout.pug
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
- var globalPageType = getPageType(page, is_home)
- var htmlClassHideAside = theme.aside.enable && theme.aside.hide ? 'hide-aside' : ''
- page.aside = is_archive() ? theme.aside.display.archive: is_category() ? theme.aside.display.category : is_tag() ? theme.aside.display.tag : page.aside
- page.aside = globalPageType === 'archive' ? theme.aside.display.archive: globalPageType === 'category' ? theme.aside.display.category : globalPageType === 'tag' ? theme.aside.display.tag : page.aside
- var hideAside = !theme.aside.enable || page.aside === false ? 'hide-aside' : ''
- var pageType = is_post() ? 'post' : 'page'
- var pageType = globalPageType === 'post' ? 'post' : 'page'
- pageType = page.type ? pageType + ' type-' + page.type : pageType

doctype html
Expand All @@ -13,7 +14,7 @@ html(lang=config.language data-theme=theme.display_mode class=htmlClassHideAside

if theme.background
#web_bg(style=getBgPath(theme.background))

!=partial('includes/sidebar', {}, {cache: true})

#body-wrap(class=pageType)
Expand Down
8 changes: 4 additions & 4 deletions layout/includes/mixins/indexPostUI.pug
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ mixin indexPostUI()
- const leftOrRight = indexLayout === 3 ? (index % 2 === 0 ? 'left' : 'right') : (indexLayout === 2 ? 'right' : '')
- const post_cover = article.cover
- const no_cover = article.cover === false || !theme.cover.index_enable ? 'no-cover' : ''

if post_cover && theme.cover.index_enable
.post_cover(class=leftOrRight)
a(href=url_for(link) title=title)
Expand All @@ -20,7 +20,7 @@ mixin indexPostUI()
div.post-bg(style=`background: ${post_cover}`)
.recent-post-info(class=no_cover)
a.article-title(href=url_for(link) title=title)
if is_home() && (article.top || article.sticky > 0)
if globalPageType === 'home' && (article.top || article.sticky > 0)
i.fas.fa-thumbtack.sticky
= title
.article-meta-wrap
Expand Down Expand Up @@ -58,7 +58,7 @@ mixin indexPostUI()
a(href=url_for(item.path)).article-meta__tags #[=item.name]
if index < article.tags.data.length - 1
span.article-meta-link #[='']

mixin countBlockInIndex
- needLoadCountJs = true
span.article-meta
Expand All @@ -67,7 +67,7 @@ mixin indexPostUI()
if block
block
span.article-meta-label= ' ' + _p('card_post_count')

if theme.comments.card_post_count && theme.comments.use
case theme.comments.use[0]
when 'Disqus'
Expand Down
6 changes: 3 additions & 3 deletions layout/includes/page/flink.pug
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
<div class="flink-item-icon">
<img class="no-lightbox" src="${lists[j].avatar}" onerror='this.onerror=null;this.src="!{url_for(theme.error_img.flink)}"' alt="${lists[j].name}" />
</div>
<div class="flink-item-name">${lists[j].name}</div>
<div class="flink-item-name">${lists[j].name}</div>
<div class="flink-item-desc" title="${lists[j].descr}">${lists[j].descr}</div>
</a>
</div>`
Expand Down Expand Up @@ -63,14 +63,14 @@
- let listResult = ""

each j in i.link_list
-
-
listResult += `
<div class="flink-list-item">
<a href="${j.link}" title="${j.name}" target="_blank">
<div class="flink-item-icon">
<img class="no-lightbox" src="${j.avatar}" onerror='this.onerror=null;this.src="${url_for(theme.error_img.flink)}"' alt="${j.name}" />
</div>
<div class="flink-item-name">${j.name}</div>
<div class="flink-item-name">${j.name}</div>
<div class="flink-item-desc" title="${j.descr}">${j.descr}</div>
</a>
</div>`
Expand Down
8 changes: 4 additions & 4 deletions layout/includes/pagination.pug
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
escape: false
}
if is_post()
if globalPageType === 'post'
- let paginationOrder = theme.post_pagination === 1 ? { prev: page.prev, next: page.next } : { prev: page.next, next: page.prev }

nav#pagination.pagination-post
Expand All @@ -15,13 +15,13 @@ if is_post()
- const getPostDesc = direction.postDesc || postDesc(direction)
- let className = key === 'prev' ? (paginationOrder.next ? '' : 'full-width') : (paginationOrder.prev ? '' : 'full-width')
- className = getPostDesc ? className : className + ' no-desc'

a.pagination-related(class=className href=url_for(direction.path) title=direction.title)
if direction.cover_type === 'img'
img.cover(src=url_for(direction.cover) onerror=`onerror=null;src='${url_for(theme.error_img.post_page)}'` alt=`cover of ${key === 'prev' ? 'previous' : 'next'} post`)
else
.cover(style=`background: ${direction.cover || 'var(--default-bg-color)'}`)

.info(class=key === 'prev' ? '' : 'text-right')
.info-1
.info-item-1=_p(`pagination.${key}`)
Expand All @@ -32,6 +32,6 @@ if is_post()
else
nav#pagination
.pagination
if is_home()
if globalPageType === 'home'
- options.format = 'page/%d/#content-inner'
!=paginator(options)
6 changes: 3 additions & 3 deletions layout/includes/rightside.pug
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ mixin rightsideItem(array)
each item in array
case item
when 'readmode'
if is_post() && readmode
if globalPageType === 'post' && readmode
button#readmode(type="button" title=_p('rightside.readmode_title'))
i.fas.fa-book-open
when 'translate'
Expand Down Expand Up @@ -35,7 +35,7 @@ mixin rightsideItem(array)
- const hideArray = enable ? hide && hide.split(',') : ['readmode','translate','darkmode','hideAside']
- const showArray = enable ? show && show.split(',') : ['toc','chat','comment']


#rightside-config-hide
if hideArray
+rightsideItem(hideArray)
Expand All @@ -45,7 +45,7 @@ mixin rightsideItem(array)
button#rightside-config(type="button" title=_p("rightside.setting"))
i.fas.fa-cog.fa-spin
else
if is_post()
if globalPageType === 'post'
if (readmode || translate.enable || (darkmode.enable && darkmode.button))
button#rightside-config(type="button" title=_p("rightside.setting"))
i.fas.fa-cog.fa-spin
Expand Down
2 changes: 1 addition & 1 deletion layout/includes/sidebar.pug
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ if theme.menu
.headline= _p('aside.tags')
.length-num= site.tags.length
a(href=url_for(config.category_dir) + '/')
.headline= _p('aside.categories')
.headline= _p('aside.categories')
.length-num= site.categories.length

!=partial('includes/header/menu_item', {}, {cache: true})
5 changes: 1 addition & 4 deletions layout/includes/third-party/abcjs/index.pug
Original file line number Diff line number Diff line change
@@ -1,6 +1,3 @@
if theme.abcjs.enable
if theme.abcjs.per_page
if is_post() || is_page()
include ./abcjs.pug
else if page.abcjs
if theme.abcjs.per_page && (['post','page'].includes(globalPageType)) || page.abcjs
include ./abcjs.pug
2 changes: 1 addition & 1 deletion layout/includes/third-party/comments/artalk.pug
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ script.
(() => {
let artalkItem = null
const option = !{JSON.stringify(option)}
const isShuoshuo = GLOBAL_CONFIG_SITE.isShuoshuo
const isShuoshuo = GLOBAL_CONFIG_SITE.pageType === 'shuoshuo'

const destroyArtalk = () => {
if (artalkItem) {
Expand Down
4 changes: 2 additions & 2 deletions layout/includes/third-party/comments/disqus.pug
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

script.
(() => {
const isShuoshuo = GLOBAL_CONFIG_SITE.isShuoshuo
const isShuoshuo = GLOBAL_CONFIG_SITE.pageType === 'shuoshuo'

const disqusReset = conf => {
window.DISQUS && window.DISQUS.reset({
Expand Down Expand Up @@ -72,7 +72,7 @@ script.
if (!{lazyload}) btf.loadComment(document.getElementById('disqus_thread'), loadDisqus)
else {
loadDisqus()
!{ count ? 'GLOBAL_CONFIG_SITE.isPost && getCount()' : '' }
!{ count ? `GLOBAL_CONFIG_SITE.pageType === 'post' && getCount()` : '' }
}
} else {
window.loadOtherComment = loadDisqus
Expand Down
4 changes: 2 additions & 2 deletions layout/includes/third-party/comments/disqusjs.pug
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

script.
(() => {
const isShuoshuo = GLOBAL_CONFIG_SITE.isShuoshuo
const isShuoshuo = GLOBAL_CONFIG_SITE.pageType === 'shuoshuo'== 'shuoshuo'
const dqOption = !{JSON.stringify(dqOption)}

const destroyDisqusjs = () => {
Expand Down Expand Up @@ -79,7 +79,7 @@ script.
if (!{theme.comments.lazyload}) btf.loadComment(document.getElementById('disqusjs-wrap'), loadDisqusjs)
else {
loadDisqusjs()
!{ theme.comments.count ? 'GLOBAL_CONFIG_SITE.isPost && getCount()' : '' }
!{ theme.comments.count ? `GLOBAL_CONFIG_SITE.pageType === 'post' && getCount()` : '' }
}
} else {
window.loadOtherComment = loadDisqusjs
Expand Down
2 changes: 1 addition & 1 deletion layout/includes/third-party/comments/facebook_comments.pug
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

script.
(()=>{
const isShuoshuo = GLOBAL_CONFIG_SITE.isShuoshuo
const isShuoshuo = GLOBAL_CONFIG_SITE.pageType === 'shuoshuo'== 'shuoshuo'

const loadFBComment = (el = document, path) => {
if (isShuoshuo) {
Expand Down
2 changes: 1 addition & 1 deletion layout/includes/third-party/comments/giscus.pug
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

script.
(() => {
const isShuoshuo = GLOBAL_CONFIG_SITE.isShuoshuo
const isShuoshuo = GLOBAL_CONFIG_SITE.pageType === 'shuoshuo'
const option = !{JSON.stringify(option)}

const getGiscusTheme = theme => theme === 'dark' ? '!{dark_theme}' : '!{light_theme}'
Expand Down
Loading

0 comments on commit 247c1b6

Please sign in to comment.