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.
@@ -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>"
@@ -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
- - var tk = theme?.twikoo?.enable,wl = theme?.waline?.enable
4
- if page.comment !== false && !theme.experiments.disableThemeComment
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
 
@@ -82,6 +82,7 @@ html(lang=page.language?page.language:config.language, style=theme.grayMode ? 'f
82
82
 
83
83
  script(data-config type="text/javascript").
84
84
  var LOCAL = {
85
+ ispost: !{is_post()},
85
86
  path: `#{_permapath(page.path)}`,
86
87
  favicon: {
87
88
  show: `#{__('favicon.show')}`,
@@ -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.2",
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
- shokax_CONFIG: JSON.stringify(siteConfig)
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'
@@ -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
- const root = this.config.url.replace(/^(https?:\/\/)?[^\/]*/, '');
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, obj)
41
- parent.removeChild(obj)
42
- box.appendChild(obj)
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
  }