hexo-theme-shokax 0.4.0-alpha.2 → 0.4.0-alpha.3
Sign up to get free protection for your applications and to get access to all the features.
- package/languages/README.md +22 -0
- package/languages/ar.yml +153 -0
- package/languages/de.yml +153 -0
- package/languages/es.yml +153 -0
- package/languages/fr.yml +153 -0
- package/languages/hi.yml +153 -0
- package/languages/id.yml +153 -0
- package/languages/it.yml +153 -0
- package/languages/ko.yml +153 -0
- package/languages/nl.yml +153 -0
- package/languages/pl.yml +153 -0
- package/languages/pt.yml +153 -0
- package/languages/ru.yml +153 -0
- package/languages/tr.yml +153 -0
- package/languages/vi.yml +153 -0
- package/layout/_mixin/comment.pug +2 -37
- package/layout/_partials/head/head.pug +0 -2
- package/layout/_partials/layout.pug +1 -0
- package/layout/_partials/post/footer.pug +0 -8
- package/package.json +2 -1
- package/scripts/generaters/script.js +20 -2
- package/scripts/helpers/asset.js +2 -71
- package/source/js/_app/components/comments.ts +29 -2
- package/source/js/_app/components/tcomments.ts +41 -0
- package/source/js/_app/library/declare.d.ts +7 -0
- package/source/js/_app/library/proto.ts +3 -3
- package/source/js/_app/pjax/refresh.ts +15 -0
package/languages/tr.yml
ADDED
@@ -0,0 +1,153 @@
|
|
1
|
+
---
|
2
|
+
name: Türkçe
|
3
|
+
favicon:
|
4
|
+
show: (●´3`●) İşte yine başlıyoruz.
|
5
|
+
hide: (´Д`) Bu bir felaket!
|
6
|
+
|
7
|
+
title:
|
8
|
+
archive: Arşiv
|
9
|
+
category: Kategori
|
10
|
+
tag: Etiket
|
11
|
+
all: Hepsi
|
12
|
+
not_found: Σ( ° △ °|||)︴404! Hiçbir şey görünmüyor
|
13
|
+
category_in: "%s" kategorisindeki makaleler
|
14
|
+
tag_in: "%s" etiketiyle makaleler
|
15
|
+
archive_in: "%s" tarihinde yayınlanan makaleler
|
16
|
+
|
17
|
+
menu:
|
18
|
+
home: Ana Sayfa
|
19
|
+
posts: Gönderiler
|
20
|
+
archives: Arşivler
|
21
|
+
categories: Kategoriler
|
22
|
+
tags: Etiketler
|
23
|
+
about: Hakkında
|
24
|
+
search: Ara
|
25
|
+
census: Blog ziyaret istatistikleri
|
26
|
+
aboutsite: Bu site hakkında
|
27
|
+
updata: Güncelleme günlüğü
|
28
|
+
statistics: İstatistikler
|
29
|
+
admiration: Takdir
|
30
|
+
friends: Arkadaşlar
|
31
|
+
privacy: Gizlilik Politikası
|
32
|
+
|
33
|
+
sidebar:
|
34
|
+
overview: Genel Bakış
|
35
|
+
toc: İçindekiler
|
36
|
+
related: İlgili makaleler
|
37
|
+
|
38
|
+
index:
|
39
|
+
sticky: Sabitlenmiş gönderiler
|
40
|
+
category: Seçili kategoriler
|
41
|
+
posts: Gönderi listesi
|
42
|
+
random_posts: Rastgele gönderiler
|
43
|
+
recent_comments: Son yorumlar
|
44
|
+
|
45
|
+
post:
|
46
|
+
posted: Yayınlandı
|
47
|
+
edited: Düzenlendi
|
48
|
+
created: Oluşturuldu
|
49
|
+
modified: Değiştirildi
|
50
|
+
edit: Düzenle
|
51
|
+
in: içinde
|
52
|
+
read_more: Daha fazla oku
|
53
|
+
untitled: Başlıksız
|
54
|
+
sticky: Sabitlenmiş
|
55
|
+
views: Görüntülenme
|
56
|
+
related_posts: İlgili gönderiler
|
57
|
+
next: Sonraki gönderi
|
58
|
+
prev: Önceki gönderi
|
59
|
+
copyright:
|
60
|
+
author: Gönderinin yazarı
|
61
|
+
link: Gönderi bağlantısı
|
62
|
+
license_title: Telif hakkı bildirimi
|
63
|
+
license_content: "Bu blogdaki tüm gönderiler, aksi belirtilmedikçe %s altında lisanslanmıştır."
|
64
|
+
nocopy: "<span class=\"red\">Bu sayfanın yeniden basılması yasaktır.</span>"
|
65
|
+
|
66
|
+
footer:
|
67
|
+
powered: "%s tarafından desteklenmektedir"
|
68
|
+
total_views: Toplam görüntülenme
|
69
|
+
total_visitors: Toplam ziyaretçi
|
70
|
+
|
71
|
+
counter:
|
72
|
+
index:
|
73
|
+
post: "Toplam %d gönderi"
|
74
|
+
category: "Toplam %d alt kategori, "
|
75
|
+
tag_cloud:
|
76
|
+
zero: Etiket yok
|
77
|
+
one: Toplam 1 etiket
|
78
|
+
other: "Toplam %d etiket"
|
79
|
+
categories:
|
80
|
+
zero: Kategori yok
|
81
|
+
one: Toplam 1 kategori
|
82
|
+
other: "Toplam %d kategori"
|
83
|
+
archive_posts:
|
84
|
+
zero: Gönderi yok.
|
85
|
+
one: 1 gönderi.
|
86
|
+
other: "Toplam %d gönderi."
|
87
|
+
|
88
|
+
state:
|
89
|
+
posts: Gönderiler
|
90
|
+
tags: Etiketler
|
91
|
+
categories: Kategoriler
|
92
|
+
|
93
|
+
search:
|
94
|
+
placeholder: Gönderileri ara
|
95
|
+
empty: "\"${query}\" için arama sonucu bulunamadı"
|
96
|
+
stats: "${time} ms içinde ${hits} sonuç bulundu"
|
97
|
+
|
98
|
+
cheers:
|
99
|
+
um: Hmm..
|
100
|
+
ok: Tamam
|
101
|
+
nice: Güzel
|
102
|
+
good: İyi
|
103
|
+
great: Harika
|
104
|
+
excellent: Mükemmel
|
105
|
+
|
106
|
+
keep_on: Göndermeye devam edin.
|
107
|
+
|
108
|
+
symbol:
|
109
|
+
comma: ", "
|
110
|
+
period: ". "
|
111
|
+
colon: ": "
|
112
|
+
year: "Y"
|
113
|
+
month: "A"
|
114
|
+
|
115
|
+
reward:
|
116
|
+
donate: Bağış yap
|
117
|
+
text: Bana bir fincan [kahve] ısmarla~( ̄▽ ̄)~*
|
118
|
+
wechatpay: WeChat Pay
|
119
|
+
alipay: Alipay
|
120
|
+
paypal: PayPal
|
121
|
+
bitcoin: Bitcoin
|
122
|
+
|
123
|
+
follow_me:
|
124
|
+
welcome: Diğer yayın kanallarıma hoş geldiniz
|
125
|
+
|
126
|
+
accessibility:
|
127
|
+
nav_toggle: Gezinti çubuğunu aç/kapat
|
128
|
+
prev_page: Önceki sayfa
|
129
|
+
next_page: Sonraki sayfa
|
130
|
+
|
131
|
+
symbols_count_time:
|
132
|
+
count: Gönderideki sembol sayısı
|
133
|
+
count_total: Toplam sembol sayısı
|
134
|
+
time: Okuma süresi
|
135
|
+
time_total: Toplam okuma süresi
|
136
|
+
time_minutes: dk.
|
137
|
+
word: kelimeler
|
138
|
+
view: kez
|
139
|
+
|
140
|
+
tips:
|
141
|
+
copyright: "Başarıyla panoya kopyalandı! <br> Bu blogdaki tüm gönderiler, aksi belirtilmedikçe %s altında lisanslanmıştır."
|
142
|
+
nocopy: "Panoya kopyalama başarısız oldu! Bu sayfanın yeniden basılması yasaktır."
|
143
|
+
|
144
|
+
quiz:
|
145
|
+
choice: Çoktan seçmeli soru
|
146
|
+
multiple: Çoklu yanıt sorusu
|
147
|
+
true_false: Doğru/Yanlış sorusu
|
148
|
+
essay: Açık uçlu sorular
|
149
|
+
gap_fill: Boşluk doldurma sorusu
|
150
|
+
mistake: Yanlış yanıt notu
|
151
|
+
|
152
|
+
outime:
|
153
|
+
template: "<div class=\"note warning\"><p><span class=\"label warning\">Makale zaman uygunluğu uyarısı</span><br>Bu, {{publish}} gün önce yayınlanan ve son olarak {{updated}} gün önce güncellenen bir makaledir. Bazı bilgiler değişmiş olabilir, bu yüzden kontrol ederken dikkatli olun.</p></div>"
|
package/languages/vi.yml
ADDED
@@ -0,0 +1,153 @@
|
|
1
|
+
---
|
2
|
+
name: Tiếng Việt
|
3
|
+
favicon:
|
4
|
+
show: (●´3`●) Hãy bắt đầu lại.
|
5
|
+
hide: (´Д`) Đây là một thảm họa!
|
6
|
+
|
7
|
+
title:
|
8
|
+
archive: Lưu trữ
|
9
|
+
category: Danh mục
|
10
|
+
tag: Thẻ
|
11
|
+
all: Tất cả
|
12
|
+
not_found: Σ( ° △ °|||)︴404! Không thấy gì cả
|
13
|
+
category_in: Bài viết trong danh mục "%s"
|
14
|
+
tag_in: Bài viết với thẻ "%s"
|
15
|
+
archive_in: Bài viết được đăng vào "%s"
|
16
|
+
|
17
|
+
menu:
|
18
|
+
home: Trang chủ
|
19
|
+
posts: Bài đăng
|
20
|
+
archives: Lưu trữ
|
21
|
+
categories: Danh mục
|
22
|
+
tags: Thẻ
|
23
|
+
about: Về chúng tôi
|
24
|
+
search: Tìm kiếm
|
25
|
+
census: Thống kê lượt truy cập blog
|
26
|
+
aboutsite: Về trang web này
|
27
|
+
updata: Nhật ký cập nhật
|
28
|
+
statistics: Thống kê
|
29
|
+
admiration: Ngưỡng mộ
|
30
|
+
friends: Bạn bè
|
31
|
+
privacy: Chính sách bảo mật
|
32
|
+
|
33
|
+
sidebar:
|
34
|
+
overview: Tổng quan
|
35
|
+
toc: Mục lục
|
36
|
+
related: Bài viết liên quan
|
37
|
+
|
38
|
+
index:
|
39
|
+
sticky: Bài đăng được ghim
|
40
|
+
category: Danh mục được chọn
|
41
|
+
posts: Danh sách bài đăng
|
42
|
+
random_posts: Bài đăng ngẫu nhiên
|
43
|
+
recent_comments: Bình luận gần đây
|
44
|
+
|
45
|
+
post:
|
46
|
+
posted: Được đăng
|
47
|
+
edited: Được chỉnh sửa
|
48
|
+
created: Được tạo
|
49
|
+
modified: Được sửa đổi
|
50
|
+
edit: Chỉnh sửa
|
51
|
+
in: Trong
|
52
|
+
read_more: Đọc thêm
|
53
|
+
untitled: Không tiêu đề
|
54
|
+
sticky: Được ghim
|
55
|
+
views: Lượt xem
|
56
|
+
related_posts: Bài đăng liên quan
|
57
|
+
next: Bài đăng tiếp theo
|
58
|
+
prev: Bài đăng trước
|
59
|
+
copyright:
|
60
|
+
author: Tác giả bài đăng
|
61
|
+
link: Liên kết bài đăng
|
62
|
+
license_title: Thông báo bản quyền
|
63
|
+
license_content: "Tất cả các bài đăng trên blog này được cấp phép theo %s, trừ khi có ghi chú khác."
|
64
|
+
nocopy: '<span class="red">Trang này bị cấm in lại.</span>'
|
65
|
+
|
66
|
+
footer:
|
67
|
+
powered: "Được hỗ trợ bởi %s"
|
68
|
+
total_views: Tổng số lượt xem
|
69
|
+
total_visitors: Tổng số khách truy cập
|
70
|
+
|
71
|
+
counter:
|
72
|
+
index:
|
73
|
+
post: "Tổng cộng %d bài đăng"
|
74
|
+
category: "Tổng cộng %d tiểu mục, "
|
75
|
+
tag_cloud:
|
76
|
+
zero: Không có thẻ
|
77
|
+
one: Tổng cộng 1 thẻ
|
78
|
+
other: "Tổng cộng %d thẻ"
|
79
|
+
categories:
|
80
|
+
zero: Không có danh mục
|
81
|
+
one: Tổng cộng 1 danh mục
|
82
|
+
other: "Tổng cộng %d danh mục"
|
83
|
+
archive_posts:
|
84
|
+
zero: Không có bài đăng.
|
85
|
+
one: 1 bài đăng.
|
86
|
+
other: "Tổng cộng %d bài đăng."
|
87
|
+
|
88
|
+
state:
|
89
|
+
posts: Bài đăng
|
90
|
+
tags: Thẻ
|
91
|
+
categories: Danh mục
|
92
|
+
|
93
|
+
search:
|
94
|
+
placeholder: Tìm kiếm bài đăng
|
95
|
+
empty: "Chúng tôi không tìm thấy kết quả nào cho tìm kiếm: ${query}"
|
96
|
+
stats: "Tìm thấy ${hits} kết quả trong ${time} ms"
|
97
|
+
|
98
|
+
cheers:
|
99
|
+
um: Ừm..
|
100
|
+
ok: Được
|
101
|
+
nice: Tốt
|
102
|
+
good: Tốt
|
103
|
+
great: Tuyệt vời
|
104
|
+
excellent: Xuất sắc
|
105
|
+
|
106
|
+
keep_on: Tiếp tục đăng.
|
107
|
+
|
108
|
+
symbol:
|
109
|
+
comma: ", "
|
110
|
+
period: ". "
|
111
|
+
colon: ": "
|
112
|
+
year: "N"
|
113
|
+
month: "T"
|
114
|
+
|
115
|
+
reward:
|
116
|
+
donate: Quyên góp
|
117
|
+
text: Mua cho tôi một cốc [cà phê]~( ̄▽ ̄)~*
|
118
|
+
wechatpay: WeChat Pay
|
119
|
+
alipay: Alipay
|
120
|
+
paypal: PayPal
|
121
|
+
bitcoin: Bitcoin
|
122
|
+
|
123
|
+
follow_me:
|
124
|
+
welcome: Chào mừng bạn đến với các kênh xuất bản khác của tôi
|
125
|
+
|
126
|
+
accessibility:
|
127
|
+
nav_toggle: Chuyển đổi thanh điều hướng
|
128
|
+
prev_page: Trang trước
|
129
|
+
next_page: Trang tiếp theo
|
130
|
+
|
131
|
+
symbols_count_time:
|
132
|
+
count: Số ký tự trong bài đăng
|
133
|
+
count_total: Tổng số ký tự
|
134
|
+
time: Thời gian đọc
|
135
|
+
time_total: Tổng thời gian đọc
|
136
|
+
time_minutes: phút.
|
137
|
+
word: từ
|
138
|
+
view: lần
|
139
|
+
|
140
|
+
tips:
|
141
|
+
copyright: "Đã sao chép thành công vào khay nhớ tạm! <br> Tất cả các bài đăng trên blog này được cấp phép theo %s."
|
142
|
+
nocopy: "Sao chép vào khay nhớ tạm không thành công! Trang này bị cấm in lại."
|
143
|
+
|
144
|
+
quiz:
|
145
|
+
choice: Câu hỏi lựa chọn
|
146
|
+
multiple: Câu hỏi trả lời nhiều
|
147
|
+
true_false: Câu hỏi đúng/sai
|
148
|
+
essay: Câu hỏi
|
149
|
+
gap_fill: Câu hỏi điền vào chỗ trống
|
150
|
+
mistake: Ghi chú về câu trả lời sai
|
151
|
+
|
152
|
+
outime:
|
153
|
+
template: '<div class="note warning"><p><span class="label warning">Cảnh báo về thời gian của bài viết</span><br>Đây là một bài viết được đăng {{publish}} ngày trước và lần cuối cùng được cập nhật {{updated}} ngày trước. Một số thông tin có thể đã thay đổi, vì vậy hãy cẩn thận khi kiểm tra.</p></div>'
|
@@ -1,41 +1,6 @@
|
|
1
1
|
mixin CommentRender()
|
2
2
|
!= shokax_inject('comment')
|
3
|
-
|
4
|
-
|
5
|
-
if tk
|
6
|
-
div(class="wrap" id="comments")
|
7
|
-
script(type="text/javascript" data-pjax).
|
8
|
-
setTimeout(function () {
|
9
|
-
twikoo.init({
|
10
|
-
envId: '#{ theme.twikoo.envId }',
|
11
|
-
el: '#comments',
|
12
|
-
region: '#{theme.twikoo.region}'
|
13
|
-
})
|
14
|
-
}, 1000)
|
15
|
-
else if wl
|
16
|
-
div(class="wrap" id="comments")
|
17
|
-
- var locale = JSON.stringify(theme.waline.locale)
|
18
|
-
- var emoji = JSON.stringify(theme.waline.emoji)
|
19
|
-
- var meta = JSON.stringify(theme.waline.meta)
|
20
|
-
- var requiredMeta = JSON.stringify(theme.waline.requiredMeta)
|
21
|
-
script(type="module" data-pjax).
|
22
|
-
import { init } from 'https://npm.webcache.cn/@waline/client@v2/dist/waline.mjs';
|
23
|
-
|
24
|
-
setTimeout(function () {
|
25
|
-
init({
|
26
|
-
el: '#comments',
|
27
|
-
serverURL: '#{theme.waline.serverURL.replace(/\/+$/, '')}',
|
28
|
-
lang: '#{theme.waline.lang}',
|
29
|
-
locale: !{locale},
|
30
|
-
emoji: !{emoji},
|
31
|
-
meta: !{meta},
|
32
|
-
requiredMeta: !{requiredMeta},
|
33
|
-
wordLimit: #{theme.waline.wordLimit},
|
34
|
-
pageSize: #{theme.waline.pageSize},
|
35
|
-
pageview: #{theme.waline.pageview},
|
36
|
-
path: window.location.pathname,
|
37
|
-
dark: 'html[data-theme="dark"]'
|
38
|
-
});
|
39
|
-
}, 1000)
|
3
|
+
if page.comment !== false
|
4
|
+
div(class="wrap" id="comments")
|
40
5
|
|
41
6
|
|
@@ -50,8 +50,6 @@ if theme.polyfill.enable
|
|
50
50
|
!= _js('siteInit.js')
|
51
51
|
|
52
52
|
include pwa.pug
|
53
|
-
if tk
|
54
|
-
script(src=theme.twikoo.link )
|
55
53
|
else if wl
|
56
54
|
link(rel="stylesheet" href="https://npm.webcache.cn/@waline/client@v2/dist/waline.css" media="none" onload="this.media='all'")
|
57
55
|
|
@@ -12,13 +12,5 @@ div(class="meta")
|
|
12
12
|
!= __('post.edited')
|
13
13
|
time(title=__('post.modified') + __('symbol.colon') + full_date(post.updated) itemprop="dateModified" datetime=moment(post.updated).format())
|
14
14
|
!= date(post.updated)
|
15
|
-
if theme.waline.pageview && !theme.waline.enable && !theme.twikoo.enable
|
16
|
-
script(type = "module" data-pjax).
|
17
|
-
import { pageviewCount } from 'https://unpkg.com/@waline/client@2/dist/pageview.mjs';
|
18
|
-
|
19
|
-
pageviewCount({
|
20
|
-
serverURL: '#{theme.waline.serverURL}',
|
21
|
-
path: window.location.pathname,
|
22
|
-
});
|
23
15
|
|
24
16
|
!= shokax_inject('postMeta')
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "hexo-theme-shokax",
|
3
|
-
"version": "0.4.0-alpha.
|
3
|
+
"version": "0.4.0-alpha.3",
|
4
4
|
"description": "a hexo theme based on shoka",
|
5
5
|
"main": "index.js",
|
6
6
|
"repository": "https://github.com/theme-shoka-x/hexo-theme-shokaX",
|
@@ -43,6 +43,7 @@
|
|
43
43
|
"quicklink": "^2.3.0",
|
44
44
|
"theme-shokax-anime": "^0.0.6",
|
45
45
|
"theme-shokax-pjax": "^0.0.3",
|
46
|
+
"twikoo": "^1.6.31",
|
46
47
|
"unlazy": "^0.10.4"
|
47
48
|
},
|
48
49
|
"engines": {
|
@@ -47,7 +47,22 @@ hexo.extend.generator.register('script', function (locals) {
|
|
47
47
|
audio: undefined,
|
48
48
|
fireworks: (theme.fireworks && theme.fireworks.enable && theme.fireworks.options)
|
49
49
|
? theme.fireworks.options
|
50
|
-
: undefined
|
50
|
+
: undefined,
|
51
|
+
waline: {
|
52
|
+
serverURL: theme.waline.serverURL,
|
53
|
+
lang: theme.waline.lang,
|
54
|
+
locale: theme.waline.locale,
|
55
|
+
emoji: theme.waline.emoji,
|
56
|
+
meta: theme.waline.meta,
|
57
|
+
requiredMeta: theme.waline.requiredMeta,
|
58
|
+
wordLimit: theme.waline.wordLimit,
|
59
|
+
pageSize: theme.waline.pageSize,
|
60
|
+
pageview: theme.waline.pageview
|
61
|
+
},
|
62
|
+
twikoo: {
|
63
|
+
envId: theme.twikoo.envId,
|
64
|
+
region: theme.twikoo.region
|
65
|
+
},
|
51
66
|
};
|
52
67
|
if (config?.algolia) {
|
53
68
|
siteConfig.search = {
|
@@ -98,7 +113,10 @@ hexo.extend.generator.register('script', function (locals) {
|
|
98
113
|
__shokax_tabs__: theme.modules.tabs ? 'true' : 'false',
|
99
114
|
__shokax_quiz__: theme.modules.quiz ? 'true' : 'false',
|
100
115
|
__shokax_fancybox__: theme.modules.fancybox ? 'true' : 'false',
|
101
|
-
|
116
|
+
__shokax_waline__: theme.waline.enable ? 'true' : 'false',
|
117
|
+
__shokax_twikoo__: theme.twikoo.enable ? 'true' : 'false',
|
118
|
+
shokax_CONFIG: JSON.stringify(siteConfig),
|
119
|
+
shokax_siteURL: "'" + config.url + "'"
|
102
120
|
},
|
103
121
|
alias: {
|
104
122
|
'algoliasearch/lite': 'algoliasearch/dist/algoliasearch-lite.esm.browser.js'
|
package/scripts/helpers/asset.js
CHANGED
@@ -7,78 +7,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
const package_json_1 = __importDefault(require("../../package.json"));
|
8
8
|
const hexo_util_1 = require("hexo-util");
|
9
9
|
const utils_1 = require("../utils");
|
10
|
+
// TODO 弃用函数
|
10
11
|
hexo.extend.helper.register('_new_comments', function (mode) {
|
11
|
-
|
12
|
-
if (mode === 'twikoo') {
|
13
|
-
return `<script data-pjax type="module">
|
14
|
-
let comments = []
|
15
|
-
twikoo.getRecentComments({
|
16
|
-
envId: "${hexo.theme.config?.twikoo?.envId}",
|
17
|
-
pageSize: 10
|
18
|
-
}).then(function (res) {
|
19
|
-
res.forEach(function (item) {
|
20
|
-
let cText = item.commentText
|
21
|
-
if (item.commentText.length > 50) {
|
22
|
-
cText = item.commentText.substring(0,50)+'...'
|
23
|
-
}
|
24
|
-
const siteLink = item.url + "#" + item.id
|
25
|
-
comments.push({
|
26
|
-
href: siteLink,
|
27
|
-
nick: item.nick,
|
28
|
-
time: item.relativeTime,
|
29
|
-
text: cText
|
30
|
-
})
|
31
|
-
});
|
32
|
-
Vue.createApp({
|
33
|
-
data() {
|
34
|
-
return {
|
35
|
-
coms: comments,
|
36
|
-
root: '${root}'
|
37
|
-
}
|
38
|
-
}
|
39
|
-
}).mount('#new-comment')
|
40
|
-
}).catch(function (err) {
|
41
|
-
console.error(err)
|
42
|
-
})
|
43
|
-
</script>`;
|
44
|
-
}
|
45
|
-
else if (mode === 'waline') {
|
46
|
-
return `
|
47
|
-
<script type="module" data-pjax>
|
48
|
-
let items = []
|
49
|
-
import { RecentComments } from 'https://npm.webcache.cn/@waline/client@v2/dist/waline.mjs'
|
50
|
-
RecentComments({
|
51
|
-
serverURL: '${hexo.theme.config.waline.serverURL.replace(/\/+$/, '')}',
|
52
|
-
count: 10,
|
53
|
-
}).then(({ comments }) => {
|
54
|
-
comments.forEach(function (item) {
|
55
|
-
let cText = (item.orig.length > 50) ? item.orig.substring(0,50)+'...' : item.orig
|
56
|
-
item.url = item.url.startsWith('/') ? item.url : '/' + item.url;
|
57
|
-
const siteLink = item.url + "#" + item.objectId
|
58
|
-
items.push({
|
59
|
-
href: siteLink,
|
60
|
-
nick: item.nick,
|
61
|
-
time: item.insertedAt.split('T').shift(),
|
62
|
-
text: cText
|
63
|
-
})
|
64
|
-
})
|
65
|
-
Vue.createApp({
|
66
|
-
data() {
|
67
|
-
return {
|
68
|
-
coms: items,
|
69
|
-
root: '${root}'
|
70
|
-
}
|
71
|
-
}
|
72
|
-
}).mount('#new-comment')
|
73
|
-
}).catch(function (err) {
|
74
|
-
console.error(err)
|
75
|
-
})
|
76
|
-
</script>
|
77
|
-
`;
|
78
|
-
}
|
79
|
-
else {
|
80
|
-
console.log(`${mode} is not supported recent comment`);
|
81
|
-
}
|
12
|
+
return '';
|
82
13
|
});
|
83
14
|
hexo.extend.helper.register('_safedump', (source) => {
|
84
15
|
return JSON.stringify(source);
|
@@ -1,5 +1,7 @@
|
|
1
1
|
import { CONFIG } from '../globals/globalVars'
|
2
|
-
import { init, pageviewCount } from '@waline/client'
|
2
|
+
import { init, pageviewCount, RecentComments } from '@waline/client'
|
3
|
+
|
4
|
+
import { createApp } from 'vue'
|
3
5
|
|
4
6
|
// await import('@waline/client/style')
|
5
7
|
// fixme 处理样式引入问题
|
@@ -29,5 +31,30 @@ export const walinePageview = function () {
|
|
29
31
|
}
|
30
32
|
|
31
33
|
export const walineRecentComments = async function () {
|
32
|
-
|
34
|
+
const root = shokax_siteURL.replace(/^(https?:\/\/)?[^/]*/, '')
|
35
|
+
let items = []
|
36
|
+
const { comments } = await RecentComments({
|
37
|
+
serverURL: CONFIG.waline.serverURL.replace(/\/+$/, ''),
|
38
|
+
count: 10
|
39
|
+
})
|
40
|
+
comments.forEach(function (item) {
|
41
|
+
let cText = (item.orig.length > 50) ? item.orig.substring(0, 50) + '...' : item.orig
|
42
|
+
item.url = item.url.startsWith('/') ? item.url : '/' + item.url
|
43
|
+
const siteLink = item.url + '#' + item.objectId
|
44
|
+
items.push({
|
45
|
+
href: siteLink,
|
46
|
+
nick: item.nick,
|
47
|
+
// @ts-ignore
|
48
|
+
time: item.insertedAt.split('T').shift(),
|
49
|
+
text: cText
|
50
|
+
})
|
51
|
+
})
|
52
|
+
createApp({
|
53
|
+
data () {
|
54
|
+
return {
|
55
|
+
coms: items,
|
56
|
+
root
|
57
|
+
}
|
58
|
+
}
|
59
|
+
}).mount('#new-comment')
|
33
60
|
}
|
@@ -0,0 +1,41 @@
|
|
1
|
+
import twikoo from 'twikoo'
|
2
|
+
import { CONFIG } from '../globals/globalVars'
|
3
|
+
import { createApp } from 'vue'
|
4
|
+
|
5
|
+
export const twikooComment = function () {
|
6
|
+
twikoo.init({
|
7
|
+
envId: CONFIG.twikoo.envId,
|
8
|
+
el: '#comments',
|
9
|
+
region: CONFIG.twikoo.region
|
10
|
+
})
|
11
|
+
}
|
12
|
+
|
13
|
+
export const twikooRecentComments = async function () {
|
14
|
+
let comments = []
|
15
|
+
const root = shokax_siteURL.replace(/^(https?:\/\/)?[^/]*/, '')
|
16
|
+
const res = await twikoo.getRecentComments({
|
17
|
+
envId: CONFIG.twikoo.envId,
|
18
|
+
pageSize: 10
|
19
|
+
})
|
20
|
+
res.forEach(function (item) {
|
21
|
+
let cText = item.commentText
|
22
|
+
if (item.commentText.length > 50) {
|
23
|
+
cText = item.commentText.substring(0, 50) + '...'
|
24
|
+
}
|
25
|
+
const siteLink = item.url + '#' + item.id
|
26
|
+
comments.push({
|
27
|
+
href: siteLink,
|
28
|
+
nick: item.nick,
|
29
|
+
time: item.relativeTime,
|
30
|
+
text: cText
|
31
|
+
})
|
32
|
+
})
|
33
|
+
createApp({
|
34
|
+
data () {
|
35
|
+
return {
|
36
|
+
coms: comments,
|
37
|
+
root
|
38
|
+
}
|
39
|
+
}
|
40
|
+
}).mount('#new-comment')
|
41
|
+
}
|
@@ -30,6 +30,7 @@ declare interface EventTarget {
|
|
30
30
|
type walineMeta = 'nick'|'mail'|'link'
|
31
31
|
|
32
32
|
declare const LOCAL: {
|
33
|
+
ispost: boolean;
|
33
34
|
path: string;
|
34
35
|
ignores: Array<(uri:string)=>boolean>;
|
35
36
|
audio: string[];
|
@@ -105,6 +106,10 @@ interface configType {
|
|
105
106
|
pageSize: number
|
106
107
|
pageview: boolean
|
107
108
|
}
|
109
|
+
twikoo: {
|
110
|
+
envId: string
|
111
|
+
region: string
|
112
|
+
}
|
108
113
|
walinePageView: boolean
|
109
114
|
quicklink: {
|
110
115
|
ignores: any
|
@@ -123,4 +128,6 @@ declare const __shokax_tabs__: boolean
|
|
123
128
|
declare const __shokax_quiz__: boolean
|
124
129
|
declare const __shokax_fancybox__: boolean
|
125
130
|
declare const __shokax_waline__:boolean
|
131
|
+
declare const __shokax_twikoo__:boolean
|
126
132
|
declare const shokax_CONFIG:configType
|
133
|
+
declare const shokax_siteURL:string
|
@@ -37,9 +37,9 @@ export const createChild = function (parent: HTMLElement, tag: string, obj: obje
|
|
37
37
|
export const wrapObject = function (parent: HTMLElement, obj: any): void {
|
38
38
|
const box = document.createElement('div')
|
39
39
|
Object.assign(box, obj)
|
40
|
-
parent.insertBefore(box,
|
41
|
-
parent.removeChild(
|
42
|
-
box.appendChild(
|
40
|
+
parent.parentNode.insertBefore(box, parent)
|
41
|
+
parent.parentNode.removeChild(parent)
|
42
|
+
box.appendChild(parent)
|
43
43
|
}
|
44
44
|
|
45
45
|
export const getHeight = function (el: HTMLElement): number {
|
@@ -57,6 +57,21 @@ export const siteRefresh = (reload) => {
|
|
57
57
|
postBeauty()
|
58
58
|
})
|
59
59
|
|
60
|
+
if (__shokax_waline__ && LOCAL.ispost) {
|
61
|
+
import('../components/comments').then(async ({ walineComment, walinePageview, walineRecentComments }) => {
|
62
|
+
walineComment()
|
63
|
+
walinePageview()
|
64
|
+
await walineRecentComments()
|
65
|
+
})
|
66
|
+
}
|
67
|
+
|
68
|
+
if (__shokax_twikoo__ && LOCAL.ispost) {
|
69
|
+
import('../components/tcomments').then(async ({ twikooComment, twikooRecentComments }) => {
|
70
|
+
twikooComment()
|
71
|
+
await twikooRecentComments()
|
72
|
+
})
|
73
|
+
}
|
74
|
+
|
60
75
|
if (__shokax_tabs__) {
|
61
76
|
tabFormat()
|
62
77
|
}
|