Skip to content

Commit

Permalink
Merge pull request #293 from valor-x/dev
Browse files Browse the repository at this point in the history
feat✨
  • Loading branch information
everfu committed May 31, 2024
2 parents 0c9bd62 + 5ae61fd commit 4579013
Show file tree
Hide file tree
Showing 11 changed files with 66 additions and 63 deletions.
2 changes: 1 addition & 1 deletion layout/includes/inject/head.pug
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ include ../head/pwa.pug

script.
console.log(
"%c Program: Hexo %c Theme: Solitude %c Version: v1.11.1",
"%c Program: Hexo %c Theme: Solitude %c Version: v1.11.2",
"border-radius:5px 0 0 5px;padding: 5px 10px;color:white;background:#ff3842;",
"padding: 5px 10px;color:white;background:#3e9f50;",
"padding: 5px 10px;color:white;background:#0084ff;border-radius:0 5px 5px 0",
Expand Down
4 changes: 2 additions & 2 deletions layout/includes/widgets/third-party/comments/artalk.pug
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
- const { server, site, option } = theme.artalk
- const { lazyload, count ,use} = theme.comment
- const { lazyload ,use} = theme.comment

script.
(() => {
Expand All @@ -10,7 +10,7 @@ script.
server: '!{server}',
site: "!{site}",
pageKey: location.pathname,
darkMode: document.documentElement.getAttribute('data-theme') === 'dark',
darkMode: document.documentElement.getAttribute('data-theme') === 'dark'
}, !{JSON.stringify(option)})
if (GLOBAL_CONFIG.lightbox === 'null') return
artalkItem.on('list-loaded', () => {
Expand Down
91 changes: 49 additions & 42 deletions layout/includes/widgets/third-party/news-comment/artalk.pug
Original file line number Diff line number Diff line change
@@ -1,23 +1,32 @@
- const { server, site, option } = theme.artalk
- const avatarCdn = option !== null && option.gravatar && option.gravatar.mirror
- const avatarDefault = option !== null && option.gravatar && (option.gravatar.params || option.gravatar.default)
- const avatarCdn = theme.comment.avatar

script.
window.addEventListener('load', () => {
const changeContent = content => {
if (content === '') return content
if (content === '') return content;
const replacements = [
{regex: /<img.*?src="(.*?)"?[^\>]+>/ig, replacement: '[!{_p("console.newest_comment.image")}]'},
{
regex: /<img.*?src="(.*?)"?[^\>]+>/ig,
replacement: '[!{_p("console.newest_comment.image")}]'
},
{
regex: /<a[^>]+?href=["']?([^"']+)["']?[^>]*>([^<]+)<\/a>/gi,
replacement: '[!{_p("console.newest_comment.link")}]'
},
{regex: /<pre><code>.*?<\/pre>/gi, replacement: '[!{_p("console.newest_comment.code")}]'},
{regex: /<[^>]+>/g, replacement: ''}
]
content = replacements.reduce((str, {regex, replacement}) => str.replace(regex, replacement), content)
return content.length > 150 ? content.substring(0, 150) + '...' : content
}
{
regex: /<pre><code>.*?<\/pre>/gi,
replacement: '[!{_p("console.newest_comment.code")}]'
},
{
regex: /<[^>]+>/g,
replacement: ''
}
];
content = replacements.reduce((str, {regex, replacement}) => str.replace(regex, replacement), content);
return content.length > 150 ? content.substring(0, 150) + '...' : content;
};

const generateHtml = (array, asideList) => {
asideList.innerHTML = array.length ? array.map(item => `
<div class='aside-list-item'>
Expand All @@ -30,58 +39,56 @@ script.
<time class="datetime" datetime="${item.date}"></time>
</div>
</div>
`).join('') : "!{_p('newest_comment.zero')}"
window.lazyLoadInstance?.update()
window.pjax?.refresh()
sco?.changeTimeFormat(document.querySelectorAll('.aside-list-item time'))
}
`).join('') : "!{_p('newest_comment.zero')}";
window.lazyLoadInstance?.update();
window.pjax?.refresh();
sco?.changeTimeFormat(document.querySelectorAll('.aside-list-item time'));
};

const getSetting = async () => {
try {
const res = await fetch('!{server}/api/v2/conf', {method: 'GET'})
return await res.json()
const res = await fetch('!{server}/api/v2/conf', {method: 'GET'});
return await res.json();
} catch (e) {
console.error(e)
return null
console.error(e);
return null;
}
}
};

const getComment = async (asideList) => {
const searchParams = new URLSearchParams({'site_name': "!{site}", 'limit': '6'})
const searchParams = new URLSearchParams({'site_name': "!{site}", 'limit': '6'});
await fetch(`!{server}/api/v2/stats/latest_comments?${searchParams}`, {method: 'GET'}).then(async res => {
const result = await res.json()
const avatarConfig = await getSetting()
const {mirror, params, default: defaults} = avatarConfig.frontend_conf.gravatar
const avatarCdn = !{avatarCdn} || mirror
let avatarDefault = !{avatarDefault} || params || defaults
avatarDefault = avatarDefault.startsWith('d=') ? avatarDefault : `d=${avatarDefault}`
const result = await res.json();
const avatarConfig = await getSetting();
const avatarCdn = '!{avatarCdn}' + '/avatar/';
const params = avatarConfig?.gravatar?.params || '';
const artalk = result.data.map(e => ({
avatar: `${avatarCdn}${e.email_encrypted}?${avatarDefault}`,
avatar: avatarCdn + e.email_encrypted + '?' + params,
content: changeContent(e.content_marked),
nick: e.nick,
url: e.page_key,
url: e.page_key + `#atk-comment-${e.id}`,
date: e.date,
})).slice(0, 6)
utils.saveToLocal.set('artalk-newest-comments', artalk, !{theme.comment.newest_comment.storage})
generateHtml(artalk, asideList)
})).slice(0, 6);
utils.saveToLocal.set('artalk-newest-comments', artalk, !{theme.comment.newest_comment.storage});
generateHtml(artalk, asideList);
}).catch(error => {
console.error(error);
asideList.textContent = "!{_p('newest_comment.error')}"
})
}
asideList.textContent = "!{_p('newest_comment.error')}";
});
};

const newestCommentInit = (asideList) => {
const data = utils.saveToLocal.get('artalk-newest-comments')
const data = utils.saveToLocal.get('artalk-newest-comments');
if (data) {
generateHtml(data, asideList)
generateHtml(data, asideList);
} else {
getComment(asideList)
getComment(asideList);
}
}
};

const $asideList = document.querySelector('#card-newest-comments .aside-list')
const $asideList = document.querySelector('#card-newest-comments .aside-list');
if ($asideList) {
newestCommentInit($asideList)
utils.addGlobalFn('pjaxComplete', () => newestCommentInit($asideList), 'artalk_newestComment')
newestCommentInit($asideList);
utils.addGlobalFn('pjaxComplete', () => newestCommentInit($asideList), 'artalk_newestComment');
}
});
2 changes: 1 addition & 1 deletion layout/post.pug
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ extends includes/layout.pug
block content
main.layout#content-inner
#post
if theme.post_ai.enable
if theme.post_ai.enable && page.ai
include includes/widgets/post/post-ai
article.post-content#article-container!= page.content
include includes/widgets/post/copyright
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "hexo-theme-solitude",
"version": "1.11.1",
"version": "1.11.2",
"description": "A beautiful, powerful, and efficient Hexo theme developed by EverFu.",
"main": "package.json",
"scripts": {
Expand Down
10 changes: 5 additions & 5 deletions plugins.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,24 +5,24 @@ algolia_search:
instantsearch:
name: instantsearch.js
file: dist/instantsearch.production.min.js
version: 4.68.1
version: 4.70.0
pjax:
name: pjax
file: pjax.min.js
version: 0.2.8
twikoo:
name: twikoo
file: dist/twikoo.all.min.js
version: 1.6.32
version: 1.6.36
waline_js:
name: '@waline/client'
file: dist/waline.js
other_name: waline
version: 3.1.3
version: 3.2.1
waline_css:
name: '@waline/client'
file: dist/waline.css
version: 3.1.3
version: 3.2.1
other_name: waline
valine:
name: valine
Expand Down Expand Up @@ -110,7 +110,7 @@ fancyapps_css:
mermaid_js:
name: mermaid
file: dist/mermaid.min.js
version: 10.9.0
version: 10.9.1
blueimp_md5:
name: blueimp-md5
file: js/md5.min.js
Expand Down
1 change: 1 addition & 0 deletions scripts/filter/default.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ hexo.extend.filter.register('after_post_render', function (data) {
data.cover = data.cover || cover[getRandomInt(0, cover?.length)]
data.excerpt = data.description || data.excerpt
data.toc = !!(config.aside.toc.post && data.toc !== false)
data.ai = data.ai !== false
}
if (data.layout === 'page') {
let {cover} = hexo.theme.config.page.default
Expand Down
1 change: 1 addition & 0 deletions source/css/_layout/console.styl
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@
margin-right .5rem
width 40%
height 100%
min-width fit-content

+maxWidth1300()
display none
Expand Down
7 changes: 1 addition & 6 deletions source/css/_layout/header.styl
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
background 0 center

#nav
z-index 998
transition .3s
background var(--efu-card-bg)

Expand Down Expand Up @@ -187,7 +186,6 @@
#nav
position fixed
top 0
z-index 103
transition .3s
box-shadow none
background var(--efu-card-bg)
Expand Down Expand Up @@ -287,7 +285,7 @@
padding 0
position absolute
top 0
z-index 90
z-index 10
display flex
flex-wrap wrap
-webkit-box-align center
Expand All @@ -307,7 +305,6 @@
top 0
transition .2s
position fixed
z-index 91
opacity 1
filter none

Expand Down Expand Up @@ -862,8 +859,6 @@ if hexo-config('nav.group')
height 35px
line-height 35px
border-radius 40px
if hexo-config('language') == 'en'
letter-spacing 0

#travellings_button
display inline
Expand Down
1 change: 0 additions & 1 deletion source/js/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -400,7 +400,6 @@ let sco = {
for (let key of keys) {
const data = localStorage.getItem(key);
if (data) {
console.log(key, data);
return JSON.parse(data);
}
}
Expand Down
Loading

0 comments on commit 4579013

Please sign in to comment.