Skip to content

Commit 1b757a8

Browse files
authored
Merge pull request #28 from f-dong/dev
V1.3.6
2 parents 82e91a0 + 802ed84 commit 1b757a8

File tree

14 files changed

+239
-140
lines changed

14 files changed

+239
-140
lines changed

.eslintignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,4 @@ source/js/gitalk.min.js
33
source/js/jquery.fancybox.min.js
44
source/js/jquery.min.js
55
source/js/simple-lightbox.min.js
6+
source/js/twikoo.min.js

_config.yml

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -41,16 +41,21 @@ ga:
4141

4242
# 百度统计 The baidu web analytics
4343
baidu_tongji:
44-
45-
# Gittalk 评论组件
46-
# See: https://github.com/gitalk/gitalk/
47-
gitalk:
44+
45+
comment:
4846
enable: false
49-
clientId:
50-
clientSecret:
51-
repository: # 仓库名
52-
owner: # 仓库所有者
53-
createIssueManually: false # 如果当前页面没有相应的 isssue 且登录的用户属于 admin,则会自动创建 issue。如果设置为 true,则显示一个初始化页面,创建 issue 需要点击 init 按钮。
47+
system: twikoo # 可选 gitalk、twikoo
48+
config:
49+
gitalk:
50+
clientId:
51+
clientSecret:
52+
repository: # 仓库名
53+
owner: # 仓库所有者
54+
createIssueManually: false # 如果当前页面没有相应的 isssue 且登录的用户属于 admin,则会自动创建 issue。如果设置为 true,则显示一个初始化页面,创建 issue 需要点击 init 按钮。
55+
twikoo:
56+
envId: # 腾讯云环境填 envId;Vercel 环境填地址(https://xxx.vercel.app)
57+
region: # 环境地域,腾讯云传
58+
mark: # 一个twikoo服务端应用于多个内容时,可填写此项
5459

5560
# 底部链接
5661
bottom_link:

layout/includes/comment.ejs

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
<% if (theme.comment.enable) { %>
2+
<div id="gitalk-container"></div>
3+
<% } %>
4+
5+
<% if (theme.comment.enable && theme.comment.system === 'gitalk') { %>
6+
<link rel="stylesheet" href="<%= css_link('gitalk') %>"/>
7+
<script src="<%= js_link('gitalk') %>"></script>
8+
<script>
9+
const config = <%- JSON.stringify(theme.comment.config.gitalk) %>;
10+
const gitalk = new Gitalk({
11+
clientID: '<%= config.clientId %>',
12+
clientSecret: '<%= config.clientSecret %>',
13+
repo: '<%= config.repository %>',
14+
owner: '<%= config.owner %>',
15+
admin: ['<%= config.owner %>'],
16+
id: location.pathname.slice(1, location.pathname.lastIndexOf('/')).substring(0, 49), // Ensure uniqueness and length less than 50
17+
distractionFreeMode: false, // Facebook-like distraction free mode
18+
createIssueManually: <%= config.createIssueManually %>
19+
});
20+
21+
gitalk.render('gitalk-container')
22+
23+
</script>
24+
<% } %>
25+
26+
27+
<% if (theme.comment.enable && theme.comment.system === 'twikoo') { %>
28+
<script>
29+
(function () {
30+
const jq = document.createElement('script');
31+
jq.src = "<%= js_link('twikoo') %>";
32+
document.getElementsByTagName('body')[0].appendChild(jq);
33+
34+
const config = <%- JSON.stringify(theme.comment.config.twikoo) %>;
35+
jq.onload = function () {
36+
twikoo.init({
37+
envId: config.envId,
38+
el: '#gitalk-container',
39+
region: config.region,
40+
path: location.pathname + (config.mark ? '?mark=' + config.mark : ''),
41+
lang: "<%= config.language %>",
42+
});
43+
}
44+
})()
45+
</script>
46+
<% } %>

layout/includes/head.ejs

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
<%
22
var title = page.title;
33
// tags, categories, about pages title
4-
if (title == 'tags') {
4+
if (title === 'tags') {
55
title = '标签 | '+ config.title;
6-
} else if (title == 'categories') {
6+
} else if (title === 'categories') {
77
title = '分类归档 | '+ config.title;
8-
} else if (title == 'about') {
8+
} else if (title === 'about') {
99
title = '关于 | '+ config.title;
1010
} else if (!title) {
1111
title = config.title;
@@ -45,10 +45,8 @@
4545
<meta name="apple-mobile-web-app-capable" content="yes">
4646
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
4747
<meta name="viewport" content="width=device-width, initial-scale=1">
48+
<meta property="og:title" content="<%= title %>">
49+
<meta property="og:description" content="<%- description %>">
50+
<% if (page.img && page.img !== '') { %><meta property="og:image" content="<%= full_url_for(page.img) %>"><% } %>
4851
<link rel="shortcut icon" href="<%= url_for('/favicon.ico') %>">
4952
<link rel="stylesheet" href="<%= url_for('/style/main.css') %>">
50-
51-
52-
<% if (theme.gitalk.enable && is_post()) { %>
53-
<link rel="stylesheet" href="<%= css_link('gitalk') %>"/>
54-
<% } %>

layout/includes/scripts.ejs

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -3,25 +3,6 @@
33

44
<script src="<%= js_link('theme_main') %>"></script>
55

6-
<% if (theme.gitalk.enable && is_post()) { %>
7-
<script src="<%= js_link('gitalk') %>"></script>
8-
<script>
9-
var gitalk = new Gitalk({
10-
clientID: '<%= theme.gitalk.clientId %>',
11-
clientSecret: '<%= theme.gitalk.clientSecret %>',
12-
repo: '<%= theme.gitalk.repository %>',
13-
owner: '<%= theme.gitalk.owner %>',
14-
admin: ['<%= theme.gitalk.owner %>'],
15-
id: location.pathname.slice(1, location.pathname.lastIndexOf('/')).substring(0, 49), // Ensure uniqueness and length less than 50
16-
distractionFreeMode: false, // Facebook-like distraction free mode
17-
createIssueManually: <%= theme.gitalk.createIssueManually %>
18-
});
19-
20-
gitalk.render('gitalk-container')
21-
22-
</script>
23-
<% } %>
24-
256
<% if (theme.ga) { %>
267
<script async src="https://www.googletagmanager.com/gtag/js?id=<%= theme.ga %>"></script>
278
<script>

layout/post.ejs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
<div class="content-container">
44
<div class="post-detail">
5-
<% if (page.img && page.img != '') { %>
5+
<% if (page.img && page.img !== '') { %>
66
<div class="feature-container" style="background-image: url('<%= page.img %>')">
77
</div>
88
<% } %>
@@ -44,9 +44,7 @@
4444
<% } %>
4545
</div>
4646

47-
<% if (theme.gitalk.enable) { %>
48-
<div id="gitalk-container"></div>
49-
<% } %>
47+
<%- include('./includes/comment') %>
5048

5149

5250
<%- include('./includes/footer') %>

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "hexo-theme-minimalism",
3-
"version": "1.3.5",
3+
"version": "1.3.6",
44
"private": false,
55
"description": "a minimalist Hexo theme that is simple yet elegant, enabling your blog content to shine. Its powerful features also help you create a personalized blog that truly stands out.",
66
"scripts": {
@@ -28,7 +28,7 @@
2828
"engines": {
2929
"node": ">=12.4.0"
3030
},
31-
"homepage": "https://github.com/f-dong/hexo-theme-minimalism#readme",
31+
"homepage": "https://minimalism.codeover.cn",
3232
"devDependencies": {
3333
"eslint": "^8.34.0",
3434
"eslint-config-hexo": "^5.0.0",

scripts/events/config.js

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
/* global hexo */
2+
3+
'use strict';
4+
5+
function isObject(item) {
6+
return item && typeof item === 'object' && !Array.isArray(item);
7+
}
8+
9+
function merge(target, source) {
10+
for (const key in source) {
11+
if (isObject(target[key]) && isObject(source[key]) && key !== 'menu') {
12+
merge(target[key], source[key]);
13+
} else {
14+
target[key] = source[key];
15+
}
16+
}
17+
return target;
18+
}
19+
20+
hexo.on('generateBefore', () => {
21+
merge(hexo.theme.config, hexo.config.theme_config);
22+
23+
hexo.theme.config.highlight = hexo.config.highlight.enable ? {enable: true} : {enable: false};
24+
hexo.theme.config.prismjs = hexo.config.prismjs.enable ? {enable: true} : {enable: false};
25+
26+
// 评论系统,旧配置兼容
27+
if (typeof hexo.theme.config.comment !== 'object' && hexo.theme.config.gitalk) {
28+
hexo.theme.config.comment = {
29+
enable: hexo.theme.config.gitalk.enable,
30+
type: 'gitalk',
31+
config: {
32+
gitalk: hexo.theme.config.gitalk
33+
}
34+
};
35+
}
36+
37+
});

scripts/helper/export-config.js

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,6 @@ hexo.extend.helper.register('export_config', function() {
99

1010
const {theme} = this;
1111

12-
theme.highlight = this.config.highlight.enable ? {enable: true} : {enable: false};
13-
theme.prismjs = this.config.prismjs.enable ? {enable: true} : {enable: false};
14-
1512
const { image } = Object.assign({image: {
1613
lazyload_enable: true,
1714
photo_zoom: 'simple-lightbox'

scripts/helper/start-path.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,15 +57,17 @@ hexo.extend.helper.register('js_link', name => {
5757
'jquery.fancybox': '/js/jquery.fancybox.min.js',
5858
'theme_main': '/js/main.js',
5959
'gitalk': '/js/gitalk.min.js',
60-
'simple-lightbox': '/js/simple-lightbox.min.js'
60+
'simple-lightbox': '/js/simple-lightbox.min.js',
61+
'twikoo': '/js/twikoo.min.js'
6162
};
6263

6364
const boot_js_list = {
6465
'jquery': 'https://cdn.bootcdn.net/ajax/libs/jquery/1.8.0/jquery.min.js',
6566
'jquery.fancybox': 'https://cdn.bootcdn.net/ajax/libs/fancybox/3.5.7/jquery.fancybox.min.js',
6667
'theme_main': '/js/main.js',
6768
'gitalk': 'https://cdn.bootcdn.net/ajax/libs/gitalk/1.7.2/gitalk.min.js',
68-
'simple-lightbox': 'https://cdn.bootcdn.net/ajax/libs/simplelightbox/2.13.0/simple-lightbox.min.js'
69+
'simple-lightbox': 'https://cdn.bootcdn.net/ajax/libs/simplelightbox/2.13.0/simple-lightbox.min.js',
70+
'twikoo': 'https://cdn.bootcdn.net/ajax/libs/twikoo/1.6.16/twikoo.min.js'
6971
};
7072

7173
let path = renderPath(js_list[name] ? js_list[name] : name);

0 commit comments

Comments
 (0)