hexo-theme-solitude 1.8.4 → 1.8.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- 简体中文丨[繁体中文](README_zh-tw.md)丨[English](README_en.md)
1
+ 简体中文丨[繁体中文](README_zh-Hant.md)丨[English](README_en-US.md)丨[Français](README_fr.md)丨[日本語](README_ja.md)
2
2
 
3
3
  <div align="center">
4
4
 
@@ -1,4 +1,4 @@
1
- [简体中文](README.md)丨[繁体中文](README_zh-tw.md)丨English
1
+ [简体中文](README.md)丨[繁体中文](README_zh-Hant.md)丨English丨[Français](README_fr.md)丨[日本語](README_ja.md)
2
2
 
3
3
  <div align="center">
4
4
 
package/README_fr.md ADDED
@@ -0,0 +1,90 @@
1
+ [简体中文](README.md)丨[繁体中文](README_zh-Hant.md)丨[English](README_en-US.md)丨Français丨[日本語](README_ja.md)
2
+
3
+ <div align="center">
4
+
5
+ <img src=".github/logo.svg" alt="Logo de la solitude" height="200">
6
+
7
+ <h1>Thème Hexo Solitude</h1>
8
+
9
+ Un thème Hexo élégant qui prend en charge le chargement paresseux, les PWA, le latex et les systèmes de commentaires
10
+ multiples.
11
+
12
+ Le thème se compose de [@张洪Heo](https://github.com/zhheo) Autorisation complète de l’auteur, conception !
13
+
14
+ ![npm package](https://img.shields.io/npm/v/hexo-theme-solitude?logo=npm)
15
+ ![release](https://img.shields.io/github/package-json/v/valor-x/hexo-theme-solitude/master?color=%231ab1ad&label=release)
16
+ ![license](https://img.shields.io/github/license/valor-x/hexo-theme-solitude?color=FF5531)
17
+ [![Stars](https://img.shields.io/github/stars/valor-x/hexo-theme-solitude)](https://github.com/valor-x/hexo-theme-solitude/stargazers)
18
+ [![NPM all downloads](https://img.shields.io/npm/dy/hexo-theme-solitude?color=white)](https://www.npmjs.com/package/hexo-theme-solitude)
19
+
20
+ ![hexo version](https://img.shields.io/badge/hexo-7.0.0+-blue?logo=hexo&logoColor=white)
21
+ ![node version](https://img.shields.io/badge/node-14.0.0-white?logo=node.js&logoColor=white)
22
+
23
+ ![Latex](https://img.shields.io/badge/latex-20B2AA?logo=Latex)
24
+ ![Ads](https://img.shields.io/badge/Google_Ads-black?logo=googleads)
25
+ ![algolia](https://img.shields.io/badge/algolia-457AFF?logo=algolia)
26
+
27
+ ![cdnjs](https://img.shields.io/badge/cdnjs-orange?logo=Cloudflare&logoColor=white)
28
+ ![A11y](https://img.shields.io/badge/A11y-green?logo=%C3%8Ele-de-France%20Mobilit%C3%A9s&logoColor=white)
29
+ ![mermaid](https://img.shields.io/badge/mermaid-ff3670?logo=mermaid&logoColor=white)
30
+ [![pwa](https://img.shields.io/badge/pwa-red?logo=pwa)](https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps)
31
+
32
+ [![twiter](https://img.shields.io/badge/Twitter-gray?logo=x)](https://twitter.com/efu_oo)
33
+ [![TG](https://img.shields.io/badge/Telegram-gray?logo=Telegram&logoColor=white)](https://t.me/solitudePro)
34
+ [![Discord](https://img.shields.io/discord/1218118131428495430?label=Discord&logo=Discord&labelColor=white&color=black)](https://discord.gg/Y8VEvVgW)
35
+
36
+ ![JetBrains](https://img.shields.io/badge/jetbrains-support-black?logo=jetbrains)
37
+ ![DuoLingo](https://img.shields.io/badge/duolingo-support-black?logo=duolingo&logoColor=white)
38
+
39
+ [![gitee](https://img.shields.io/badge/Gitee-red?logo=gitee)](https://gitee.com/nsjjd_w/hexo-theme-solitude)
40
+ [![gitlab](https://img.shields.io/badge/GitLab-blue?logo=gitlab)](https://gitlab.com/efu/hexo-theme-solitude)
41
+
42
+ [Aperçu](https://www.efu.me/) 丨 [documentation](https://solitude-docs.efu.me/)
43
+
44
+ </div>
45
+
46
+ ![Screenshot](.github/screenshot.png)
47
+
48
+ ## caractéristique
49
+
50
+ - Chargement paresseux de page (Pjax), chargement paresseux d’image (LazyLoad), application hors ligne (PWA)
51
+ - Commentaires (Twikoo, Waline, Valine, Artalk)
52
+ - Mode couleur
53
+ - Lightbox (zoom moyen, fancybox)
54
+ - Formules mathématiques (latex)
55
+ - Pages en vedette : Essais instantanés, Mon équipement, Outils en ligne, Galerie de musique, Étang à poissons Friend
56
+ Chain, Page d’album photo, Page Douban
57
+ - Caractéristiques de l’article : résumé de l’IA, mise en évidence du code
58
+
59
+ ## Todo
60
+
61
+ - [x] Examen d’Artalk
62
+ - [x] Double examen
63
+ - [x] album photo
64
+
65
+ > Si vous avez des questions, n’hésitez pas à les poser [issue](https://github.com/valor-x/hexo-theme-solitude/issues)
66
+
67
+ ## appliquer
68
+
69
+ 1. Utiliser le package NPM pour l’installation
70
+ ```bash
71
+ npm i hexo-theme-solitude
72
+ ```
73
+ 2. Appliquer un thème
74
+ ```yaml
75
+ theme: solitude
76
+ ```
77
+
78
+ Go to [Docs](https://solitude-docs.efu.me) for more information.
79
+
80
+ ## Sponsors
81
+
82
+ <p align="center">
83
+ <a href="https://cdn.jsdelivr.net/gh/efuo/static/sponsors.svg">
84
+ <img src='https://cdn.jsdelivr.net/gh/efuo/static/sponsors.svg'/>
85
+ </a>
86
+ </p>
87
+
88
+ ## copyright
89
+
90
+ [MIT](./LICENSE) License &copy; 2023-jusqu’ici [Efu](https://github.com/efuo)
package/README_ja.md ADDED
@@ -0,0 +1,88 @@
1
+ [简体中文](README.md)丨[繁体中文](README_zh-Hant.md)丨[English](README_en-US.md)丨[Français](README_fr.md)丨日本語
2
+
3
+ <div align="center">
4
+
5
+ <img src=".github/logo.svg" alt="Solitude logo" height="200">
6
+
7
+ <h1>ヘキソテーマソリチュード</h1>
8
+
9
+ 遅延読み込み、PWA、ラテックス、および複数のコメントシステムをサポートするエレガントなHexoテーマ。
10
+
11
+ テーマは、 [@张洪Heo](https://github.com/zhheo) 著者の完全な権限、デザイン!
12
+
13
+ ![npm package](https://img.shields.io/npm/v/hexo-theme-solitude?logo=npm)
14
+ ![release](https://img.shields.io/github/package-json/v/valor-x/hexo-theme-solitude/master?color=%231ab1ad&label=release)
15
+ ![license](https://img.shields.io/github/license/valor-x/hexo-theme-solitude?color=FF5531)
16
+ [![Stars](https://img.shields.io/github/stars/valor-x/hexo-theme-solitude)](https://github.com/valor-x/hexo-theme-solitude/stargazers)
17
+ [![NPM all downloads](https://img.shields.io/npm/dy/hexo-theme-solitude?color=white)](https://www.npmjs.com/package/hexo-theme-solitude)
18
+
19
+ ![hexo version](https://img.shields.io/badge/hexo-7.0.0+-blue?logo=hexo&logoColor=white)
20
+ ![node version](https://img.shields.io/badge/node-14.0.0-white?logo=node.js&logoColor=white)
21
+
22
+ ![Latex](https://img.shields.io/badge/latex-20B2AA?logo=Latex)
23
+ ![Ads](https://img.shields.io/badge/Google_Ads-black?logo=googleads)
24
+ ![algolia](https://img.shields.io/badge/algolia-457AFF?logo=algolia)
25
+
26
+ ![cdnjs](https://img.shields.io/badge/cdnjs-orange?logo=Cloudflare&logoColor=white)
27
+ ![A11y](https://img.shields.io/badge/A11y-green?logo=%C3%8Ele-de-France%20Mobilit%C3%A9s&logoColor=white)
28
+ ![mermaid](https://img.shields.io/badge/mermaid-ff3670?logo=mermaid&logoColor=white)
29
+ [![pwa](https://img.shields.io/badge/pwa-red?logo=pwa)](https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps)
30
+
31
+ [![twiter](https://img.shields.io/badge/Twitter-gray?logo=x)](https://twitter.com/efu_oo)
32
+ [![TG](https://img.shields.io/badge/Telegram-gray?logo=Telegram&logoColor=white)](https://t.me/solitudePro)
33
+ [![Discord](https://img.shields.io/discord/1218118131428495430?label=Discord&logo=Discord&labelColor=white&color=black)](https://discord.gg/Y8VEvVgW)
34
+
35
+ ![JetBrains](https://img.shields.io/badge/jetbrains-support-black?logo=jetbrains)
36
+ ![DuoLingo](https://img.shields.io/badge/duolingo-support-black?logo=duolingo&logoColor=white)
37
+
38
+ [![gitee](https://img.shields.io/badge/Gitee-red?logo=gitee)](https://gitee.com/nsjjd_w/hexo-theme-solitude)
39
+ [![gitlab](https://img.shields.io/badge/GitLab-blue?logo=gitlab)](https://gitlab.com/efu/hexo-theme-solitude)
40
+
41
+ [プレビュー](https://www.efu.me/) 丨 [ドキュメンテーション](https://solitude-docs.efu.me/)
42
+
43
+ </div>
44
+
45
+ ![Screenshot](.github/screenshot.png)
46
+
47
+ ## 特性
48
+
49
+ - ページ遅延読み込み(Pjax)、画像遅延読み込み(LazyLoad)、オフラインアプリケーション(PWA)
50
+ - コメント(Twikoo、Waline、Valine、Artalk)
51
+ - カラーモード
52
+ - ライトボックス(中ズーム、ファンシーボックス)
53
+ - 数式(ラテックス)
54
+ - 注目のページ:インスタントエッセイ、マイ機器、オンラインツール、ミュージックギャラリー、フレンドチェーンフィッシュポンド、フォトアルバムページ、Doubanページ
55
+ - 記事の特徴:AIの要約、コードの強調表示
56
+
57
+ ## すべての
58
+
59
+ - [x] Artalkレビュー
60
+ - [x] ダブルレビュー
61
+ - [x] 写真集
62
+
63
+ > ご不明な点がございましたら、お問い合わせください [issue](https://github.com/valor-x/hexo-theme-solitude/issues)
64
+
65
+ ## 申し込む
66
+
67
+ 1. インストールに NPM パッケージを使用する
68
+ ```bash
69
+ npm i hexo-theme-solitude
70
+ ```
71
+ 2. テーマを適用する
72
+ ```yaml
73
+ theme: solitude
74
+ ```
75
+
76
+ 詳しくは [Docs](https://solitude-docs.efu.me) をご覧ください。
77
+
78
+ ## スポンサー
79
+
80
+ <p align="center">
81
+ <a href="https://cdn.jsdelivr.net/gh/efuo/static/sponsors.svg">
82
+ <img src='https://cdn.jsdelivr.net/gh/efuo/static/sponsors.svg'/>
83
+ </a>
84
+ </p>
85
+
86
+ ## 著作権
87
+
88
+ [MIT](./LICENSE) License &copy; 2023-これまで [Efu](https://github.com/efuo)
@@ -1,4 +1,4 @@
1
- [简体中文](README.md)丨繁体中文丨[English](README_en.md)
1
+ [简体中文](README.md)丨繁体中文丨[English](README_en-US.md)丨[Français](README_fr.md)丨[日本語](README_ja.md)
2
2
 
3
3
  <div align="center">
4
4
 
@@ -0,0 +1,188 @@
1
+ more: More
2
+ star: Behold, those who found delight in this piece also perused
3
+ random: Around
4
+ upload: 'datetime: '
5
+ totalk: You don't need to delete blank lines, just type in your comments.
6
+
7
+ theme:
8
+ dark: dark
9
+ light: light
10
+
11
+ copy:
12
+ success: Copied
13
+ error: Copied failed
14
+
15
+ copy_copyright:
16
+ author: Author
17
+ link: Link
18
+ source: Source
19
+ info: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.
20
+
21
+ time:
22
+ day: " days ago"
23
+ hour: " hours ago"
24
+ just: "just"
25
+ min: " minutes ago"
26
+ month: " months ago"
27
+
28
+ page:
29
+ tag: Tags
30
+ category: Categories
31
+ tags: All tags
32
+ categories: All categories
33
+ archives: Archives
34
+ 404: Page not found
35
+
36
+ home:
37
+ home: Home
38
+ sticky: Sticky
39
+ new: New
40
+ read: Unread
41
+ recommendmore: More
42
+
43
+ post:
44
+ reprint: Reprint
45
+ original: Original
46
+ cc: This article is a ${cc} article, pay attention to the copyright.
47
+ posted: Posted on
48
+ updated: Last updated on
49
+ wordcount: Word count
50
+ minread: Reading time
51
+ ip: The author's IP belongs to
52
+ pv: PV
53
+ comment: Comments
54
+ copyright:
55
+ reprint: This article is a reproduction or translation, and the copyright belongs to the original author. Please contact the original author for permission to republish this article.
56
+ original: This piece of writing is an original article, utilizing the
57
+ original_end: Agreement. For complete reproduction, please acknowledge the source as Courtesy of
58
+
59
+ nav:
60
+ site_name_title: Back to home
61
+ backtop: Back to top
62
+ travellings: Traveling - Friends Link
63
+ search: Search
64
+ randompost: Random post
65
+ console: Console
66
+
67
+ award:
68
+ thanks: Thanks
69
+ tipping: Tipping
70
+ title: List of appreciation
71
+
72
+ search:
73
+ empty: No results found
74
+ hit: Found ${query} results for you
75
+ placeholder: Enter keywords to quickly search
76
+ count: Total <b>${count}</b> results.
77
+
78
+ head:
79
+ noscript: Please enable JavaScript to view the site
80
+
81
+ aside:
82
+ postcount: 'Posts :'
83
+ pv: 'PV :'
84
+ uv: 'UV :'
85
+ runtime: 'Runtime :'
86
+ updatetime: 'Last update :'
87
+ wordcount: 'Word count :'
88
+ toc: Table of contents
89
+ tagmore: View all
90
+ avatar: Avatar
91
+ sticker: Mood sticker
92
+ newpost: New posts
93
+
94
+ console:
95
+ comment_tip: Interaction
96
+ comment_title: Latest comments
97
+ tag_tip: Tags
98
+ tag_title: Find interesting areas
99
+ switch_darkmode: Day and night switching
100
+ switch_hideAside: Sidebar display control
101
+ switch_keyboard: Keyboard operation
102
+ switch_music: Music switch
103
+ archive_unit: Posts
104
+ newest_comment:
105
+ image: Image
106
+ link: Link
107
+ code: Code
108
+
109
+ sidebar:
110
+ function: Function
111
+ darkmode: Display mode
112
+
113
+ footer:
114
+ description: Article from ${title}
115
+ learnmore: Learn more
116
+ randomlink: Links
117
+ rss: Subscribe
118
+ theme: Theme
119
+
120
+ cookies:
121
+ title: Agreement reminder assistant
122
+ tip: Check out the efforts we make to protect your privacy
123
+ privacy: How this site protects your privacy
124
+
125
+ music:
126
+ hit: Paused
127
+
128
+ 404:
129
+ button: Back to home
130
+
131
+ link:
132
+ banner:
133
+ toComment: Application link
134
+ random: Random Visit
135
+ random: You are about to ⌈ ${name} ⌋ , security unknown.
136
+
137
+ keyboard:
138
+ title: Blog shortcuts
139
+
140
+ newest_comment:
141
+ error: Unable to get a comment, please confirm that the relevant configuration is correct.
142
+ zero: No comments.
143
+
144
+ comment:
145
+ title: ' Comment'
146
+
147
+ commentBarrage:
148
+ title: Hot
149
+
150
+ f12: Developer mode is turned on, please follow the GPL.
151
+
152
+ right_menu:
153
+ copy: Copy
154
+ paste: Paste
155
+ comment: ToTalk
156
+ new: Open
157
+ link: Copy
158
+ img: Copy
159
+ downloadImg: Download
160
+ search: Search
161
+ dark: Light
162
+ light: Dark
163
+ chs_to_cht: 轉為繁體
164
+ cht_to_chs: 转为简体
165
+ img_error: This image cannot be copied or downloaded.
166
+ barrage:
167
+ open: OpenBarrage
168
+ close: CloseBarrage
169
+ music:
170
+ start: Play
171
+ stop: Pause
172
+ back: Back
173
+ forward: Forward
174
+ copyMusicName: CopyName
175
+
176
+ about:
177
+ other:
178
+ oneself:
179
+ map_title: I live in
180
+ info_title1: Born
181
+ info_title2: Now occupational
182
+ tj:
183
+ tip: Data
184
+ title: Access statistics
185
+ post_tip: 'Stats from:'
186
+ personalities:
187
+ tip1: At
188
+ tip2: 'Learn more:'
package/languages/en.yml CHANGED
@@ -171,4 +171,18 @@ right_menu:
171
171
  stop: Pause
172
172
  back: Back
173
173
  forward: Forward
174
- copyMusicName: CopyName
174
+ copyMusicName: CopyName
175
+
176
+ about:
177
+ other:
178
+ oneself:
179
+ map_title: I live in
180
+ info_title1: Born
181
+ info_title2: Now occupational
182
+ tj:
183
+ tip: Data
184
+ title: Access statistics
185
+ post_tip: 'Stats from:'
186
+ personalities:
187
+ tip1: At
188
+ tip2: 'Learn more:'
@@ -174,3 +174,17 @@ right_menu:
174
174
  back: 切换到上一首
175
175
  forward: 切换到下一首
176
176
  copyMusicName: 复制歌名
177
+
178
+ about:
179
+ other:
180
+ oneself:
181
+ map_title: 我现在住在
182
+ info_title1: 生于
183
+ info_title2: 现在职业
184
+ tj:
185
+ tip: 数据
186
+ title: 访问统计
187
+ post_tip: 统计信息来自
188
+ personalities:
189
+ tip1: 在
190
+ tip2: 了解更多关于
@@ -173,4 +173,18 @@ right_menu:
173
173
  stop: 暫停音樂
174
174
  back: 切換到上一首
175
175
  forward: 切換到下一首
176
- copyMusicName: 複製歌名
176
+ copyMusicName: 複製歌名
177
+
178
+ about:
179
+ other:
180
+ oneself:
181
+ map_title: 我現在住在
182
+ info_title1: 生於
183
+ info_title2: 現在職業
184
+ tj:
185
+ tip: 數據
186
+ title: 訪問統計
187
+ post_tip: 統計信息來自
188
+ personalities:
189
+ tip1: 在
190
+ tip2: 瞭解更多關於
@@ -11,7 +11,7 @@ case theme.display_mode.type
11
11
  } else {
12
12
  document.documentElement.setAttribute('data-theme', cachedMode);
13
13
  }
14
- right_menu && rm.mode(cachedMode === 'dark' && isDarkMode)
14
+ is_rm && rm.mode(cachedMode === 'dark' && isDarkMode)
15
15
  }
16
16
  initTheme()
17
17
  when "dark"
@@ -22,7 +22,7 @@ case theme.display_mode.type
22
22
  document.documentElement.setAttribute('data-theme', 'dark');
23
23
  else
24
24
  document.documentElement.setAttribute('data-theme', cachedMode);
25
- right_menu && rm.mode(cachedMode === undefined || cachedMode === 'dark')
25
+ is_rm && rm.mode(cachedMode === undefined || cachedMode === 'dark')
26
26
  }
27
27
  initTheme()
28
28
  when "light"
@@ -33,6 +33,6 @@ case theme.display_mode.type
33
33
  document.documentElement.setAttribute('data-theme', 'light');
34
34
  else
35
35
  document.documentElement.setAttribute('data-theme', cachedMode);
36
- right_menu && rm.mode(cachedMode === 'dark')
36
+ is_rm && rm.mode(cachedMode === 'dark')
37
37
  }
38
38
  initTheme()
@@ -26,7 +26,7 @@
26
26
 
27
27
  let comment = false
28
28
 
29
- if (theme.comment.use) {
29
+ if (theme.comment.use && theme.comment.commentBarrage) {
30
30
  comment = {
31
31
  avatar: theme.comment.avatar,
32
32
  commentBarrage: theme.comment.commentBarrage,
@@ -6,4 +6,5 @@ script#config-diff.
6
6
  page: '!{page.type}',
7
7
  toc: !{!!page.toc},
8
8
  comment: !{!!page.comment},
9
+ ai_text: !{is_post && page.ai_text ? "'"+ page.ai_text+"'" : false},
9
10
  }
@@ -1,5 +1,6 @@
1
1
  if theme.pwa.enable
2
2
  meta(name="theme-color", content=theme.pwa.theme_color)
3
+ meta(name="apple-mobile-web-app-status-bar-style", content=theme.pwa.theme_color)
3
4
  link(rel="manifest" href=url_for(theme.pwa.manifest))
4
5
  if theme.pwa.theme_color
5
6
  meta(name="msapplication-TileColor" content=theme.pwa.theme_color)
@@ -15,5 +16,7 @@ if theme.pwa.enable
15
16
  link(rel="bookmark", href=url_for(theme.pwa.bookmark_icon))
16
17
  else
17
18
  meta(name="apple-mobile-web-app-capable", content=config.title)
19
+ meta(name="theme-color", content="var(--efu-main)")
20
+ meta(name="apple-mobile-web-app-status-bar-style", content="var(--efu-main)")
18
21
  link(rel="bookmark", href=url_for(theme.site.siteIcon))
19
22
  link(rel="apple-touch-icon", href=url_for(theme.site.siteIcon), sizes="180x180")
@@ -24,7 +24,7 @@ div
24
24
  script.
25
25
  dark()
26
26
 
27
- if theme.right_menu.translate.enable
27
+ if theme.right_menu.enable && theme.right_menu.translate.enable
28
28
  script(src=url_for(theme.cdn.translate_js))
29
29
 
30
30
  if theme.katex && theme.katex.enable
@@ -23,12 +23,11 @@ if theme.katex && theme.katex.enable
23
23
  include ../head/opengraph.pug
24
24
 
25
25
  // pwa
26
- if theme.pwa.enable
27
- include ../head/pwa.pug
26
+ include ../head/pwa.pug
28
27
 
29
28
  script.
30
29
  console.log(
31
- "%c Program: Hexo %c Theme: Solitude %c Version: v1.8.4",
30
+ "%c Program: Hexo %c Theme: Solitude %c Version: v1.8.6",
32
31
  "border-radius:5px 0 0 5px;padding: 5px 10px;color:white;background:#ff3842;",
33
32
  "padding: 5px 10px;color:white;background:#3e9f50;",
34
33
  "border-radius:0 5px 5px 0;padding: 5px 10px;background:#0084ff;color:white;"
@@ -59,7 +59,7 @@ div#rightMenu
59
59
  if theme.right_menu.commentBarrage && theme.comment.use && theme.comment.commentBarrage
60
60
  div.rightMenu-item#menu-commentBarrage(onclick="sco.switchCommentBarrage()")
61
61
  i.solitude.st-chat-fill
62
- span.menu-commentBarrage-text= _p('right_menu.barrage.open')
62
+ span.menu-commentBarrage-text= _p('right_menu.barrage.close')
63
63
  div.rightMenu-item#menu-darkmode(onclick="sco.switchDarkMode()")
64
64
  i.solitude.st-moon-clear-fill
65
65
  case theme.display_mode.type
@@ -5,11 +5,11 @@
5
5
  if tj
6
6
  .about-statistic.author-content-item(style=`background: url(${tj.img});`)
7
7
  .card-content
8
- .author-content-item-tips 数据
9
- span.author-content-item-title 访问统计
8
+ .author-content-item-tips=_p('about.other.tj.tip')
9
+ span.author-content-item-title=_p('about.other.tj.title')
10
10
  #statistic
11
11
  .post-tips
12
- | 统计信息来自
12
+ = _p('about.other.tj.post_tip')
13
13
  a(href="https://v6.51.la/") 51la网站统计
14
14
 
15
15
  script.
@@ -31,7 +31,6 @@
31
31
  s.innerHTML = html;
32
32
  });
33
33
 
34
-
35
34
  if oneself
36
35
  style.
37
36
  :root {
@@ -40,16 +39,16 @@
40
39
  }
41
40
  .author-content-item-group.column.mapAndInfo
42
41
  .author-content-item.map.single
43
- span.map-title 我现在住在 #{oneself.location}
42
+ span.map-title=_p('about.other.oneself.map_title') + oneself.location
44
43
  .author-content-item.selfInfo.single
45
44
  div
46
- span.selfInfo-title 生于
45
+ span.selfInfo-title=_p('about.other.oneself.info_title1')
47
46
  span.selfInfo-content(style="color: #43a6c6;")= oneself.birthYear
48
47
  div
49
48
  span.selfInfo-title= oneself.university
50
49
  span.selfInfo-content(style="color: #c69043;")= oneself.major
51
50
  div
52
- span.selfInfo-title 现在职业
51
+ span.selfInfo-title=_p('about.other.oneself.info_title2')
53
52
  span.selfInfo-content(style="color: #b04fe6;")= oneself.occupation
54
53
 
55
54
  - var cause = site.data.about.cause
@@ -9,9 +9,9 @@ if personalities
9
9
  .image
10
10
  img.nolazyload(src=personalities.image)
11
11
  .post-tips
12
- |
12
+ = _p('about.personalities.tip1')
13
13
  a(href="https://www.16personalities.com/")= personalities.linkText
14
- | 了解更多关于
14
+ = _p('about.personalities.tip2')
15
15
  a(href=personalities.typeLink)= personalities.typeName
16
16
  .author-content-item.myphoto
17
- img.author-content-img(src=personalities.myphoto, alt="自拍")
17
+ img.author-content-img(src=personalities.myphoto, alt="my photo")
@@ -1,3 +1,4 @@
1
+ - const {copyright} = theme.post.default
1
2
  .post-copyright
2
3
  .post-copyright__author_group
3
4
  a.post-copyright__author_img(href=url_for("/about/"))
@@ -14,7 +15,7 @@
14
15
  a.reward-link-button(href=url_for(theme.post.rss))
15
16
  i.solitude.st-plant-fill
16
17
  = _p('footer.rss')
17
- if theme.post.default.copyright.enable || page.copyright
18
+ if copyright.enable || page.copyright
18
19
  .post-copyright__notice
19
20
  span.post-copyright-info
20
21
  if page.reprint
@@ -24,4 +25,4 @@
24
25
  a(href=url_for(theme.post.default.copyright.licenurl))
25
26
  | #{theme.post.default.copyright.license}
26
27
  = _p('post.copyright.original_end')
27
- a(href=url_for("/")) #{config.title}
28
+ a(href=url_for("/")) #{config.title}
@@ -33,6 +33,8 @@ script().
33
33
  body: '.OwO-body',
34
34
  item: '.OwO-items li'
35
35
  })
36
+
37
+ barrageTwikoo()
36
38
  }
37
39
 
38
40
  const loadTwikoo = () => {
@@ -1,9 +1,11 @@
1
+ - const google_adsense = theme.google_adsense.enable
2
+
1
3
  script.
2
4
  const pjax = new Pjax({
3
5
  elements: 'a:not([target="_blank"])',
4
6
  selectors: ['title','#body-wrap','#site-config','meta[name="description"]','.js-pjax','meta[property^="og:"]','#config-diff'],
5
7
  cacheBust: false,
6
- analytics: false,
8
+ analytics: !{google_adsense},
7
9
  scrollRestoration: false
8
10
  })
9
11
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hexo-theme-solitude",
3
- "version": "1.8.4",
3
+ "version": "1.8.6",
4
4
  "description": "A beautiful, powerful, and efficient Hexo theme developed by the efu.",
5
5
  "main": "package.json",
6
6
  "scripts": {
@@ -100,7 +100,6 @@
100
100
  user-select none
101
101
 
102
102
  +maxWidth768()
103
- background linear-gradient(to top, var(--efu-main-none) 0, var(--efu-main) 100%)
104
103
  transition 0s
105
104
 
106
105
  +maxWidth1400()
@@ -131,6 +131,9 @@ if hexo-config('index_post_list.direction') == "column"
131
131
  font-size 14px
132
132
  line-height 1.8
133
133
 
134
+ +maxWidth600()
135
+ -webkit-line-clamp 1
136
+
134
137
  span.tags-punctuation
135
138
  transition .3s
136
139
 
@@ -353,6 +356,8 @@ else if hexo-config('index_post_list.direction') == "row"
353
356
  line-height 1.8
354
357
  +maxWidth768()
355
358
  -webkit-line-clamp 2
359
+ +maxWidth600()
360
+ -webkit-line-clamp 1
356
361
 
357
362
  span.tags-punctuation
358
363
  transition .3s
@@ -3,7 +3,7 @@
3
3
  bottom 0
4
4
  right 20px
5
5
  padding 0 0 20px 10px
6
- display flex
6
+ display none
7
7
  flex-direction column
8
8
  justify-content flex-end
9
9
  z-index 999
@@ -89,8 +89,10 @@ function initThemeColor() {
89
89
  }
90
90
 
91
91
  function changeThemeColor(color) {
92
- const meta = document.querySelector('meta[name="theme-color"]');
93
- if (meta) {
94
- meta.setAttribute('content', color);
92
+ if (null !== document.querySelector('meta[name="theme-color"]') && (document.querySelector('meta[name="theme-color"]').setAttribute("content", color),
93
+ document.querySelector('meta[name="apple-mobile-web-app-status-bar-style"]').setAttribute("content", color)),
94
+ window.matchMedia("(display-mode: standalone)").matches) {
95
+ const t = document.body;
96
+ t ? t.style.backgroundColor = color : console.error("document.body不存在")
95
97
  }
96
98
  }
@@ -154,8 +154,10 @@ function initThemeColor() {
154
154
  }
155
155
 
156
156
  function changeThemeColor(color) {
157
- const meta = document.querySelector('meta[name="theme-color"]');
158
- if (meta) {
159
- meta.setAttribute('content', color);
157
+ if (null !== document.querySelector('meta[name="theme-color"]') && (document.querySelector('meta[name="theme-color"]').setAttribute("content", color),
158
+ document.querySelector('meta[name="apple-mobile-web-app-status-bar-style"]').setAttribute("content", color)),
159
+ window.matchMedia("(display-mode: standalone)").matches) {
160
+ const t = document.body;
161
+ t ? t.style.backgroundColor = color : console.error("document.body not found.")
160
162
  }
161
163
  }
package/source/js/main.js CHANGED
@@ -36,11 +36,12 @@ const sidebarFn = () => {
36
36
 
37
37
  const scrollFn = function () {
38
38
  const innerHeight = window.innerHeight;
39
- const $header = document.getElementById('page-header');
40
- if (!$header || document.body.scrollHeight <= innerHeight) return;
39
+ if (document.body.scrollHeight <= innerHeight) return;
41
40
 
42
41
  let initTop = 0;
42
+ const $header = document.getElementById('page-header');
43
43
  window.addEventListener('scroll', utils.throttle(function (e) {
44
+ initThemeColor()
44
45
  const currentTop = window.scrollY || document.documentElement.scrollTop;
45
46
  const isDown = scrollDirection(currentTop);
46
47
 
@@ -52,7 +53,9 @@ const scrollFn = function () {
52
53
  }
53
54
  $header.classList.add('nav-fixed');
54
55
  } else {
56
+ if (currentTop ===0){
55
57
  $header.classList.remove('nav-fixed', 'nav-visible');
58
+ }
56
59
  }
57
60
  }, 200));
58
61
 
@@ -215,7 +218,7 @@ class toc {
215
218
 
216
219
  let lastSayHello = "";
217
220
  let wleelw_musicPlaying = false
218
- let right_menu = false
221
+ let is_rm = typeof rm !== 'undefined'
219
222
 
220
223
  let sco = {
221
224
  hideCookie: function () {
@@ -257,10 +260,10 @@ let sco = {
257
260
  $console.classList.toggle("on", wleelw_musicPlaying);
258
261
  if (wleelw_musicPlaying) {
259
262
  $meting.aplayer.play();
260
- right_menu && ($rm_text.textContent = GLOBAL_CONFIG.right_menu.music.stop) && ($rm_icon.className = 'solitude st-pause-fill')
263
+ rm?.menuItems.music[0] && ($rm_text.textContent = GLOBAL_CONFIG.right_menu.music.stop) && ($rm_icon.className = 'solitude st-pause-fill')
261
264
  } else {
262
265
  $meting.aplayer.pause();
263
- right_menu && ($rm_text.textContent = GLOBAL_CONFIG.right_menu.music.start) && ($rm_icon.className = 'solitude st-play-fill')
266
+ rm?.menuItems.music[0] && ($rm_text.textContent = GLOBAL_CONFIG.right_menu.music.start) && ($rm_icon.className = 'solitude st-play-fill')
264
267
  }
265
268
  },
266
269
  switchCommentBarrage: function () {
@@ -270,18 +273,18 @@ let sco = {
270
273
  commentBarrageElement.style.display = "none";
271
274
  document.querySelector("#consoleCommentBarrage").classList.remove("on");
272
275
  utils.saveToLocal.set("commentBarrageSwitch", false, .2);
273
- right_menu && rm.barrage(true)
276
+ rm?.menuItems.barrage && rm.barrage(true)
274
277
  } else {
275
278
  commentBarrageElement.style.display = "flex";
276
279
  document.querySelector("#consoleCommentBarrage").classList.add("on");
277
280
  utils.saveToLocal.set("commentBarrageSwitch", true, .2);
278
- right_menu && rm.barrage(false)
281
+ rm?.menuItems.barrage && rm.barrage(false)
279
282
  }
280
283
  }
281
284
  },
282
285
  switchHideAside: function () {
283
286
  const htmlClassList = document.documentElement.classList;
284
- htmlClassList.contains("hide-aside") ? utils.saveToLocal.set("aside-status", "show", 1) : saveToLocal.set("aside-status", "hide", 1)
287
+ htmlClassList.contains("hide-aside") ? utils.saveToLocal.set("aside-status", "show", 1) : utils.saveToLocal.set("aside-status", "hide", 1)
285
288
  htmlClassList.toggle("hide-aside");
286
289
  htmlClassList.contains("hide-aside") ? document.querySelector("#consoleHideAside").classList.add("on") : document.querySelector("#consoleHideAside").classList.remove("on");
287
290
  },
@@ -319,12 +322,12 @@ let sco = {
319
322
  document.documentElement.setAttribute('data-theme', 'dark')
320
323
  utils.saveToLocal.set('theme', 'dark', 0.02);
321
324
  utils.snackbarShow(GLOBAL_CONFIG.lang.theme.dark, false, 2000)
322
- right_menu && rm.mode(true)
325
+ is_rm && rm.mode(true)
323
326
  } else {
324
327
  document.documentElement.setAttribute('data-theme', 'light')
325
328
  utils.saveToLocal.set('theme', 'light', 0.02);
326
329
  utils.snackbarShow(GLOBAL_CONFIG.lang.theme.light, false, 2000)
327
- right_menu && rm.mode(false)
330
+ is_rm && rm.mode(false)
328
331
  }
329
332
  handleThemeChange(nowMode)
330
333
  },
@@ -351,7 +354,7 @@ let sco = {
351
354
  el && GLOBAL_CONFIG.runtime && (el.innerText = utils.timeDiff(new Date(GLOBAL_CONFIG.runtime), new Date()) + GLOBAL_CONFIG.lang.time.day)
352
355
  },
353
356
  toTalk: function (txt) {
354
- const inputs = ["#wl-edit", ".el-textarea__inner", "#veditor",".atk-textarea"]
357
+ const inputs = ["#wl-edit", ".el-textarea__inner", "#veditor", ".atk-textarea"]
355
358
  for (let i = 0; i < inputs.length; i++) {
356
359
  let el = document.querySelector(inputs[i])
357
360
  if (el != null) {
@@ -561,16 +564,14 @@ let sco = {
561
564
  });
562
565
  },
563
566
  addNavBackgroundInit: function () {
564
- const scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;
565
- if (scrollTop !== 0) {
566
- const pageHeader = document.getElementById("page-header");
567
- if (pageHeader) {
568
- pageHeader.classList.add("nav-fixed", "nav-visible");
569
- }
570
- const cookiesWindow = document.getElementById("cookies-window");
571
- if (cookiesWindow) {
572
- cookiesWindow.style.display = 'none';
573
- }
567
+ let e = 0
568
+ , t = 0;
569
+ document.body && (e = document.body.scrollTop),
570
+ document.documentElement && (t = document.documentElement.scrollTop),
571
+ 0 !== (e - t > 0 ? e : t) && (document.getElementById("page-header").classList.add("nav-fixed"), document.getElementById("page-header").classList.add("nav-visible"))
572
+ const cookiesWindow = document.getElementById("cookies-window");
573
+ if (cookiesWindow) {
574
+ cookiesWindow.style.display = 'none';
574
575
  }
575
576
  },
576
577
  initAdjust: function (change = false) {
@@ -686,7 +687,7 @@ let sco = {
686
687
  }
687
688
  }
688
689
  utils.addEventListenerPjax(switchBtn, 'click', handleSwitchBtn)
689
- }
690
+ },
690
691
  }
691
692
 
692
693
  const addHighlight = () => {
@@ -811,7 +812,7 @@ const addCopyright = () => {
811
812
  document.body.addEventListener('copy', handleCopy)
812
813
  }
813
814
 
814
- const asideStatus = () =>{
815
+ const asideStatus = () => {
815
816
  const asideStatus = utils.saveToLocal.get('aside-status')
816
817
  if (asideStatus !== undefined) {
817
818
  if (asideStatus === 'hide') {
@@ -889,8 +890,6 @@ window.refreshFn = () => {
889
890
  sco.switchComments()
890
891
  }
891
892
 
892
- utils.addGlobalFn('pjaxComplete', refreshFn, 'refreshFn')
893
-
894
893
  document.addEventListener('DOMContentLoaded', function () {
895
894
  sco.initAdjust()
896
895
  percent()
@@ -26,6 +26,8 @@ const rm = {
26
26
  downloadImg: document.getElementById('menu-downloadimg'),
27
27
  search: document.getElementById('menu-search'),
28
28
  barrage: document.getElementById('menu-commentBarrage'),
29
+ mode: document.getElementById('menu-darkmode'),
30
+ translate: document.getElementById('menu-translate'),
29
31
  music: [
30
32
  toggle = document.getElementById('menu-music-toggle'),
31
33
  back = document.getElementById('menu-music-back'),
@@ -131,11 +133,11 @@ window.oncontextmenu = (ele) => {
131
133
  display = true;
132
134
  rm.menuItems.copy.style.display = 'block';
133
135
  GLOBAL_CONFIG.comment && (rm.menuItems.comment.style.display = 'block');
134
- rm.menuItems.search.style.display = 'block';
136
+ rm.menuItems.search && (rm.menuItems.search.style.display = 'block');
135
137
  } else {
136
138
  rm.menuItems.copy.style.display = 'none';
137
139
  GLOBAL_CONFIG.comment && (rm.menuItems.comment.style.display = 'none');
138
- rm.menuItems.search.style.display = 'none';
140
+ rm.menuItems.search && (rm.menuItems.search.style.display = 'none');
139
141
  }
140
142
 
141
143
  if (link) {
@@ -170,7 +172,7 @@ window.oncontextmenu = (ele) => {
170
172
  display = true;
171
173
  rm.menuItems.music.forEach(item => item.style.display = 'block');
172
174
  } else {
173
- rm.menuItems.music.forEach(item => item.style.display = 'none');
175
+ rm.menuItems.music[0] && rm.menuItems.music.forEach(item => item.style.display = 'none');
174
176
  }
175
177
 
176
178
  Array.from(display ? rm.menuItems.other : rm.menuItems.plugin).forEach(item => item.style.display = 'none');
@@ -219,8 +221,8 @@ window.oncontextmenu = (ele) => {
219
221
  rm.hideRightMenu()
220
222
  })
221
223
 
222
- if(GLOBAL_CONFIG.comment.commentBarrage){
223
- rm.barrage(!utils.saveToLocal.get('commentBarrageSwitch'))
224
+ if(utils.saveToLocal.get('commentBarrageSwitch')!==null){
225
+ rm.menuItems.barrage && rm.barrage(!utils.saveToLocal.get('commentBarrageSwitch'))
224
226
  }
225
227
 
226
228
  rm.menuItems.paste.addEventListener('click', () => rm.pasteText() && rm.hideRightMenu())
@@ -230,4 +232,4 @@ window.oncontextmenu = (ele) => {
230
232
  rm.menuItems.copyImg.addEventListener('click', () => rm.copyImage() && rm.hideRightMenu())
231
233
  }()
232
234
 
233
- right_menu = true
235
+ is_rm = true
@@ -3,4 +3,4 @@
3
3
  * email: o@efu.me
4
4
  * website: https://efu.me
5
5
  */
6
- class efuAI{constructor(){this.root="https://summary.tianli0.top",this.aiTalkMode=!1,this.aiPostExplanation="",this.config=GLOBAL_CONFIG.post_ai,this.scoGPTIsRunning=!1}init(){this.scoGPTIsRunning=!1,this.generate(),this.AIEngine()}getTitleAndContent(){const e=document.getElementById("article-container"),t=document.title,n=e.getElementsByTagName("p"),i=e.querySelectorAll("h1, h2, h3, h4, h5");return(t+" "+Array.from(i).concat(Array.from(n)).map((e=>e.innerText.replace(/https?:\/\/[^\s]+/g,""))).join(" ")).slice(0,1e3)}async generate(){this.aiShowAnimation(this.fetch(document.title,this.getTitleAndContent(),this.config.key))}async fetch(e,t,n){const i=`${this.root}/?content=${encodeURIComponent(t)}&title=${e}&key=${encodeURIComponent(n)}&url=${encodeURIComponent(window.location.href)}`,s=await fetch(i),o=await s.json();return s.ok?(this.aiPostExplanation=o.summary,o.summary):(console.error("Request failed:",o.err_msg),o.err_msg)}aiShowAnimation(e,t=!1){const n=document.querySelector(".ai-explanation"),i=document.querySelector(".ai-tag");if(!n||this.scoGPTIsRunning)return;this.scoGPTIsRunning=!0,this.cleanSuggestions(),i.classList.add("loadingAI"),n.style.display="block",n.innerHTML='生成中...<span class="blinking-cursor"></span>';let s,o,a=!0,c=0,r=!0;const l=new IntersectionObserver((e=>{a=e[0].isIntersecting,a&&requestAnimationFrame(o)}),{threshold:0});e.then((e=>{s=performance.now(),o=()=>{if(c<e.length&&a){const r=performance.now(),g=r-s,h=e.slice(c,c+1),u=/[,。!、?,.!?]/.test(h),m=/[a-zA-Z0-9]/.test(h);g>=(u?100*Math.random()+100:m?10:25)&&(n.innerText=e.slice(0,c+1),s=r,c++,c<e.length?n.innerHTML=e.slice(0,c)+'<span class="blinking-cursor"></span>':(n.innerHTML=e,n.style.display="block",this.scoGPTIsRunning=!1,i.classList.remove("loadingAI"),l.disconnect(),t&&this.createSuggestions())),a&&requestAnimationFrame(o)}},a&&r&&setTimeout((()=>{requestAnimationFrame(o),r=!1}),3e3),l.observe(n)})).catch((e=>{console.error("检索信息失败:",e),n.innerHTML="检索信息失败",n.style.display="block",this.scoGPTIsRunning=!1,i.classList.remove("loadingAI"),l.disconnect()}))}AIEngine(){const e=document.querySelector(".ai-tag");e&&e.addEventListener("click",(()=>{this.scoGPTIsRunning||(this.aiTalkMode=!0,this.aiShowAnimation(Promise.resolve(this.config.talk),!0))}))}cleanSuggestions(){const e=document.querySelector(".ai-suggestions");e?e.innerHTML="":console.error("没有这个元素:'ai-suggestions'")}createSuggestions(){this.aiTalkMode&&(this.cleanSuggestions(),this.createSuggestionItemWithAction("这篇文章讲了什么?",(()=>{""===this.aiPostExplanation?this.generate():this.aiShowAnimation(Promise.resolve(this.aiPostExplanation),!0)})),this.config.randomPost&&this.createSuggestionItemWithAction("带我去看看其他文章",(()=>toRandomPost())),this.aiTalkMode=!0)}createSuggestionItemWithAction(e,t){const n=document.querySelector(".ai-suggestions");if(!n)return void console.error("无法找到具有class为ai-suggestions的元素");const i=document.createElement("div");i.classList.add("ai-suggestions-item"),i.textContent=e,i.addEventListener("click",t),n.appendChild(i)}}const efu_ai=new efuAI;
6
+ class efuAI{constructor(){this.root="https://summary.tianli0.top",this.aiTalkMode=!1,this.aiPostExplanation='',this.config=GLOBAL_CONFIG.post_ai,this.scoGPTIsRunning=!1}init(){this.scoGPTIsRunning=!1;this.aiPostExplanation=PAGE_CONFIG.ai_text?PAGE_CONFIG.ai_text+"":false;if(!this.aiPostExplanation){this.generate()}else{this.aiShowAnimation(Promise.resolve(this.aiPostExplanation))}this.AIEngine()}getTitleAndContent(){const e=document.getElementById("article-container"),t=document.title,n=e.getElementsByTagName("p"),i=e.querySelectorAll("h1, h2, h3, h4, h5");return(t+" "+Array.from(i).concat(Array.from(n)).map((e=>e.innerText.replace(/https?:\/\/[^\s]+/g,""))).join(" ")).slice(0,1e3)}async generate(){this.aiShowAnimation(this.fetch(document.title,this.getTitleAndContent(),this.config.key))}async fetch(e,t,n){const i=`${this.root}/?content=${encodeURIComponent(t)}&title=${e}&key=${encodeURIComponent(n)}&url=${encodeURIComponent(window.location.href)}`,s=await fetch(i),o=await s.json();return s.ok?(this.aiPostExplanation=o.summary,o.summary):(console.error("Request failed:",o.err_msg),o.err_msg)}aiShowAnimation(e,t=!1){const n=document.querySelector(".ai-explanation"),i=document.querySelector(".ai-tag");if(!n||this.scoGPTIsRunning)return;this.scoGPTIsRunning=!0,this.cleanSuggestions(),i.classList.add("loadingAI"),n.style.display="block",n.innerHTML='生成中...<span class="blinking-cursor"></span>';let s,o,a=!0,c=0,r=!0;const l=new IntersectionObserver((e=>{a=e[0].isIntersecting,a&&requestAnimationFrame(o)}),{threshold:0});e.then((e=>{s=performance.now(),o=()=>{if(c<e.length&&a){const r=performance.now(),g=r-s,h=e.slice(c,c+1),u=/[,。!、?,.!?]/.test(h),m=/[a-zA-Z0-9]/.test(h);g>=(u?100*Math.random()+100:m?10:25)&&(n.innerText=e.slice(0,c+1),s=r,c++,c<e.length?n.innerHTML=e.slice(0,c)+'<span class="blinking-cursor"></span>':(n.innerHTML=e,n.style.display="block",this.scoGPTIsRunning=!1,i.classList.remove("loadingAI"),l.disconnect(),t&&this.createSuggestions())),a&&requestAnimationFrame(o)}},a&&r&&setTimeout((()=>{requestAnimationFrame(o),r=!1}),3e3),l.observe(n)})).catch((e=>{console.error("检索信息失败:",e),n.innerHTML="检索信息失败",n.style.display="block",this.scoGPTIsRunning=!1,i.classList.remove("loadingAI"),l.disconnect()}))}AIEngine(){const e=document.querySelector(".ai-tag");e&&e.addEventListener("click",(()=>{this.scoGPTIsRunning||(this.aiTalkMode=!0,this.aiShowAnimation(Promise.resolve(this.config.talk),!0))}))}cleanSuggestions(){const e=document.querySelector(".ai-suggestions");e?e.innerHTML="":console.error("没有这个元素:'ai-suggestions'")}createSuggestions(){this.aiTalkMode&&(this.cleanSuggestions(),this.createSuggestionItemWithAction("这篇文章讲了什么?",(()=>{""===this.aiPostExplanation?this.generate():this.aiShowAnimation(Promise.resolve(this.aiPostExplanation),!0)})),this.config.randomPost&&this.createSuggestionItemWithAction("带我去看看其他文章",(()=>toRandomPost())),this.aiTalkMode=!0)}createSuggestionItemWithAction(e,t){const n=document.querySelector(".ai-suggestions");if(!n)return void console.error("无法找到具有class为ai-suggestions的元素");const i=document.createElement("div");i.classList.add("ai-suggestions-item"),i.textContent=e,i.addEventListener("click",t),n.appendChild(i)}}const efu_ai=new efuAI;