hexo-theme-redefine-x 2.8.5

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.
Files changed (319) hide show
  1. package/.github/ISSUE_TEMPLATE/bug-chinese.yml +115 -0
  2. package/.github/ISSUE_TEMPLATE/bug-english.yml +106 -0
  3. package/.github/ISSUE_TEMPLATE/enhancement-chinese.yml +55 -0
  4. package/.github/ISSUE_TEMPLATE/enhancement-english.yml +55 -0
  5. package/.github/workflows/build-and-commit.yml +49 -0
  6. package/.github/workflows/npm-publish.yml +34 -0
  7. package/.github/workflows/stale-issues.yml +20 -0
  8. package/CHANGELOG_REDEFINE_X.md +236 -0
  9. package/CODE_OF_CONDUCT.md +128 -0
  10. package/CONTRIBUTING.md +51 -0
  11. package/DONATION.md +82 -0
  12. package/LICENSE +674 -0
  13. package/README.md +135 -0
  14. package/README_zh-CN.md +138 -0
  15. package/README_zh-TW.md +137 -0
  16. package/TODO.md +215 -0
  17. package/_config.yml +489 -0
  18. package/languages/en.yml +93 -0
  19. package/languages/es.yml +92 -0
  20. package/languages/fr.yml +92 -0
  21. package/languages/ja.yml +92 -0
  22. package/languages/zh-CN.yml +95 -0
  23. package/languages/zh-TW.yml +94 -0
  24. package/layout/404.ejs +1 -0
  25. package/layout/archive.ejs +1 -0
  26. package/layout/category.ejs +1 -0
  27. package/layout/components/comments/comment.ejs +22 -0
  28. package/layout/components/comments/giscus.ejs +42 -0
  29. package/layout/components/comments/gitalk.ejs +47 -0
  30. package/layout/components/comments/twikoo.ejs +50 -0
  31. package/layout/components/comments/waline.ejs +34 -0
  32. package/layout/components/footer/footer.ejs +99 -0
  33. package/layout/components/header/head.ejs +222 -0
  34. package/layout/components/header/navbar.ejs +163 -0
  35. package/layout/components/header/preloader.ejs +148 -0
  36. package/layout/components/header/progress-bar.ejs +12 -0
  37. package/layout/components/plugins/aplayer.ejs +3 -0
  38. package/layout/components/scripts.ejs +90 -0
  39. package/layout/components/sidebar/author.ejs +6 -0
  40. package/layout/components/sidebar/avatar.ejs +3 -0
  41. package/layout/components/sidebar/statistics.ejs +14 -0
  42. package/layout/components/swup.ejs +27 -0
  43. package/layout/index.ejs +1 -0
  44. package/layout/layout.ejs +13 -0
  45. package/layout/page.ejs +57 -0
  46. package/layout/pages/archive/archive.ejs +3 -0
  47. package/layout/pages/bookmarks/bookmarks.ejs +68 -0
  48. package/layout/pages/category/categories.ejs +11 -0
  49. package/layout/pages/category/category-detail.ejs +6 -0
  50. package/layout/pages/friends/friends-link.ejs +59 -0
  51. package/layout/pages/home/home-article.ejs +52 -0
  52. package/layout/pages/home/home-background.ejs +33 -0
  53. package/layout/pages/home/home-banner.ejs +234 -0
  54. package/layout/pages/home/home-content.ejs +62 -0
  55. package/layout/pages/home/home-sidebar.ejs +78 -0
  56. package/layout/pages/masonry/masonry.ejs +28 -0
  57. package/layout/pages/notfound/notfound.ejs +8 -0
  58. package/layout/pages/page-template.ejs +23 -0
  59. package/layout/pages/post/article-content.ejs +153 -0
  60. package/layout/pages/post/article-copyright.ejs +69 -0
  61. package/layout/pages/post/article-info.ejs +78 -0
  62. package/layout/pages/post/post-tools.ejs +17 -0
  63. package/layout/pages/post/toc.ejs +15 -0
  64. package/layout/pages/shuoshuo/essays.ejs +23 -0
  65. package/layout/pages/tag/tag-detail.ejs +6 -0
  66. package/layout/pages/tag/tags.ejs +24 -0
  67. package/layout/post.ejs +1 -0
  68. package/layout/tag.ejs +1 -0
  69. package/layout/tags.ejs +1 -0
  70. package/layout/utils/image-viewer.ejs +3 -0
  71. package/layout/utils/local-search.ejs +20 -0
  72. package/layout/utils/paginator.ejs +8 -0
  73. package/layout/utils/posts-list.ejs +28 -0
  74. package/layout/utils/side-tools.ejs +51 -0
  75. package/package.json +45 -0
  76. package/scripts/config-export.js +66 -0
  77. package/scripts/data-handle.js +37 -0
  78. package/scripts/events/404.js +16 -0
  79. package/scripts/events/welcome.js +141 -0
  80. package/scripts/filters/delete-mask-handle.js +27 -0
  81. package/scripts/filters/encrypt.js +202 -0
  82. package/scripts/filters/img-handle.js +9 -0
  83. package/scripts/filters/lazyload-handle.js +350 -0
  84. package/scripts/filters/lib/hbe.default.js +15 -0
  85. package/scripts/filters/link-handle.js +42 -0
  86. package/scripts/filters/stylus-handle.js +9 -0
  87. package/scripts/filters/table-handle.js +11 -0
  88. package/scripts/helpers/meta-helpers.js +38 -0
  89. package/scripts/helpers/page-helpers.js +153 -0
  90. package/scripts/helpers/recommendation-helpers.js +367 -0
  91. package/scripts/helpers/theme-helpers.js +251 -0
  92. package/scripts/helpers/waline-helpers.js +33 -0
  93. package/scripts/modules/btn.js +85 -0
  94. package/scripts/modules/btns.js +71 -0
  95. package/scripts/modules/folding.js +34 -0
  96. package/scripts/modules/note-large.js +72 -0
  97. package/scripts/modules/note.js +64 -0
  98. package/scripts/modules/tabs.js +99 -0
  99. package/source/assets/hbe.style.css +220 -0
  100. package/source/assets/odometer-theme-minimal.css +81 -0
  101. package/source/css/build/tailwind.css +2 -0
  102. package/source/css/common/animated.styl +71 -0
  103. package/source/css/common/basic.styl +239 -0
  104. package/source/css/common/codeblock/code-block.styl +158 -0
  105. package/source/css/common/codeblock/code-theme.styl +82 -0
  106. package/source/css/common/codeblock/highlight.styl +189 -0
  107. package/source/css/common/codeblock/hljs-themes/dark/a11y-dark.styl +18 -0
  108. package/source/css/common/codeblock/hljs-themes/dark/agate.styl +18 -0
  109. package/source/css/common/codeblock/hljs-themes/dark/atom-one-dark.styl +18 -0
  110. package/source/css/common/codeblock/hljs-themes/dark/github-dark.styl +18 -0
  111. package/source/css/common/codeblock/hljs-themes/dark/monokai-sublime.styl +18 -0
  112. package/source/css/common/codeblock/hljs-themes/dark/night-owl.styl +18 -0
  113. package/source/css/common/codeblock/hljs-themes/dark/nord.styl +18 -0
  114. package/source/css/common/codeblock/hljs-themes/dark/tokyo-night-dark.styl +18 -0
  115. package/source/css/common/codeblock/hljs-themes/dark/vs2015.styl +18 -0
  116. package/source/css/common/codeblock/hljs-themes/light/atom-one-light.styl +18 -0
  117. package/source/css/common/codeblock/hljs-themes/light/default.styl +18 -0
  118. package/source/css/common/codeblock/hljs-themes/light/github.styl +18 -0
  119. package/source/css/common/colors.styl +112 -0
  120. package/source/css/common/markdown.styl +337 -0
  121. package/source/css/common/redefine-theme.styl +65 -0
  122. package/source/css/common/theme.styl +72 -0
  123. package/source/css/common/variables.styl +145 -0
  124. package/source/css/layout/_modules/aplayer.styl +799 -0
  125. package/source/css/layout/_modules/buttons.styl +42 -0
  126. package/source/css/layout/_modules/folding.styl +180 -0
  127. package/source/css/layout/_modules/notes.styl +181 -0
  128. package/source/css/layout/_modules/tabs.styl +105 -0
  129. package/source/css/layout/_partials/404.styl +14 -0
  130. package/source/css/layout/_partials/archive-list.styl +49 -0
  131. package/source/css/layout/_partials/article-copyright-info.styl +27 -0
  132. package/source/css/layout/_partials/article-meta-info.styl +62 -0
  133. package/source/css/layout/_partials/comments/comment.styl +11 -0
  134. package/source/css/layout/_partials/comments/gitalk.styl +529 -0
  135. package/source/css/layout/_partials/comments/twikoo.styl +62 -0
  136. package/source/css/layout/_partials/comments/waline.styl +1151 -0
  137. package/source/css/layout/_partials/footer.styl +59 -0
  138. package/source/css/layout/_partials/home-banner.styl +48 -0
  139. package/source/css/layout/_partials/image-viewer.styl +37 -0
  140. package/source/css/layout/_partials/local-search.styl +137 -0
  141. package/source/css/layout/_partials/navbar.styl +309 -0
  142. package/source/css/layout/_partials/page-template.styl +147 -0
  143. package/source/css/layout/_partials/paginator.styl +65 -0
  144. package/source/css/layout/_partials/post-tools.styl +43 -0
  145. package/source/css/layout/_partials/progress-bar.styl +33 -0
  146. package/source/css/layout/_partials/side-tools.styl +87 -0
  147. package/source/css/layout/_partials/tagcloud.styl +136 -0
  148. package/source/css/layout/_partials/toc.styl +105 -0
  149. package/source/css/layout/animations.styl +42 -0
  150. package/source/css/layout/archive-content.styl +8 -0
  151. package/source/css/layout/article-content.styl +257 -0
  152. package/source/css/layout/bookmarks.styl +8 -0
  153. package/source/css/layout/category-content.styl +21 -0
  154. package/source/css/layout/category-list.styl +119 -0
  155. package/source/css/layout/home-content.styl +114 -0
  156. package/source/css/layout/home-sidebar.styl +126 -0
  157. package/source/css/layout/page.styl +144 -0
  158. package/source/css/layout/tag-content.styl +30 -0
  159. package/source/css/style.styl +26 -0
  160. package/source/css/tailwind.source.css +236 -0
  161. package/source/fontawesome/all.min.css +6 -0
  162. package/source/fontawesome/brands.min.css +6 -0
  163. package/source/fontawesome/duotone.min.css +6 -0
  164. package/source/fontawesome/fontawesome.min.css +6 -0
  165. package/source/fontawesome/light.min.css +6 -0
  166. package/source/fontawesome/regular.min.css +6 -0
  167. package/source/fontawesome/sharp-solid.min.css +6 -0
  168. package/source/fontawesome/solid.min.css +6 -0
  169. package/source/fontawesome/svg-with-js.min.css +6 -0
  170. package/source/fontawesome/thin.min.css +6 -0
  171. package/source/fontawesome/v4-font-face.min.css +6 -0
  172. package/source/fontawesome/v4-shims.min.css +6 -0
  173. package/source/fontawesome/v5-font-face.min.css +6 -0
  174. package/source/fonts/Chillax/Chillax-Variable.eot +0 -0
  175. package/source/fonts/Chillax/Chillax-Variable.ttf +0 -0
  176. package/source/fonts/Chillax/Chillax-Variable.woff +0 -0
  177. package/source/fonts/Chillax/Chillax-Variable.woff2 +0 -0
  178. package/source/fonts/Chillax/chillax.css +39 -0
  179. package/source/fonts/Geist/GeistVF.ttf +0 -0
  180. package/source/fonts/Geist/GeistVF.woff +0 -0
  181. package/source/fonts/Geist/GeistVF.woff2 +0 -0
  182. package/source/fonts/Geist/geist.css +16 -0
  183. package/source/fonts/GeistMono/GeistMonoVF.ttf +0 -0
  184. package/source/fonts/GeistMono/GeistMonoVF.woff +0 -0
  185. package/source/fonts/GeistMono/GeistMonoVF.woff2 +0 -0
  186. package/source/fonts/GeistMono/geist-mono.css +16 -0
  187. package/source/images/bookmark-placeholder.svg +9 -0
  188. package/source/images/loading.svg +5 -0
  189. package/source/images/redefine-avatar.svg +1 -0
  190. package/source/images/redefine-favicon.svg +1 -0
  191. package/source/images/redefine-logo.svg +1 -0
  192. package/source/images/redefine-logo.webp +0 -0
  193. package/source/images/redefine-og.webp +0 -0
  194. package/source/images/wallhaven-wqery6-dark.webp +0 -0
  195. package/source/images/wallhaven-wqery6-light.webp +0 -0
  196. package/source/js/build/layouts/bookmarkNav.js +2 -0
  197. package/source/js/build/layouts/bookmarkNav.js.map +1 -0
  198. package/source/js/build/layouts/categoryList.js +2 -0
  199. package/source/js/build/layouts/categoryList.js.map +1 -0
  200. package/source/js/build/layouts/essays.js +2 -0
  201. package/source/js/build/layouts/essays.js.map +1 -0
  202. package/source/js/build/layouts/lazyload.js +2 -0
  203. package/source/js/build/layouts/lazyload.js.map +1 -0
  204. package/source/js/build/layouts/navbarShrink.js +2 -0
  205. package/source/js/build/layouts/navbarShrink.js.map +1 -0
  206. package/source/js/build/layouts/toc.js +2 -0
  207. package/source/js/build/layouts/toc.js.map +1 -0
  208. package/source/js/build/libs/APlayer.min.js +2 -0
  209. package/source/js/build/libs/Swup.min.js +2 -0
  210. package/source/js/build/libs/SwupPreloadPlugin.min.js +1 -0
  211. package/source/js/build/libs/SwupProgressPlugin.min.js +1 -0
  212. package/source/js/build/libs/SwupScriptsPlugin.min.js +1 -0
  213. package/source/js/build/libs/SwupScrollPlugin.min.js +1 -0
  214. package/source/js/build/libs/SwupSlideTheme.min.js +1 -0
  215. package/source/js/build/libs/Typed.min.js +10 -0
  216. package/source/js/build/libs/anime.min.js +8 -0
  217. package/source/js/build/libs/mermaid.min.js +2314 -0
  218. package/source/js/build/libs/minimasonry.min.js +1 -0
  219. package/source/js/build/libs/moment-with-locales.min.js +2 -0
  220. package/source/js/build/libs/moment.min.js +2 -0
  221. package/source/js/build/libs/odometer.min.js +2 -0
  222. package/source/js/build/libs/pangu.min.js +9 -0
  223. package/source/js/build/libs/pjax.min.js +1 -0
  224. package/source/js/build/libs/waline.js +84 -0
  225. package/source/js/build/main.js +2 -0
  226. package/source/js/build/main.js.map +1 -0
  227. package/source/js/build/plugins/aplayer.js +2 -0
  228. package/source/js/build/plugins/aplayer.js.map +1 -0
  229. package/source/js/build/plugins/hbe.js +2 -0
  230. package/source/js/build/plugins/hbe.js.map +1 -0
  231. package/source/js/build/plugins/masonry.js +2 -0
  232. package/source/js/build/plugins/masonry.js.map +1 -0
  233. package/source/js/build/plugins/mermaid.js +2 -0
  234. package/source/js/build/plugins/mermaid.js.map +1 -0
  235. package/source/js/build/plugins/pangu.js +2 -0
  236. package/source/js/build/plugins/pangu.js.map +1 -0
  237. package/source/js/build/plugins/tabs.js +2 -0
  238. package/source/js/build/plugins/tabs.js.map +1 -0
  239. package/source/js/build/plugins/typed.js +2 -0
  240. package/source/js/build/plugins/typed.js.map +1 -0
  241. package/source/js/build/tools/codeBlock.js +2 -0
  242. package/source/js/build/tools/codeBlock.js.map +1 -0
  243. package/source/js/build/tools/imageViewer.js +2 -0
  244. package/source/js/build/tools/imageViewer.js.map +1 -0
  245. package/source/js/build/tools/lightDarkSwitch.js +2 -0
  246. package/source/js/build/tools/lightDarkSwitch.js.map +1 -0
  247. package/source/js/build/tools/localSearch.js +2 -0
  248. package/source/js/build/tools/localSearch.js.map +1 -0
  249. package/source/js/build/tools/runtime.js +2 -0
  250. package/source/js/build/tools/runtime.js.map +1 -0
  251. package/source/js/build/tools/scrollTopBottom.js +2 -0
  252. package/source/js/build/tools/scrollTopBottom.js.map +1 -0
  253. package/source/js/build/tools/tocToggle.js +2 -0
  254. package/source/js/build/tools/tocToggle.js.map +1 -0
  255. package/source/js/build/utils.js +2 -0
  256. package/source/js/build/utils.js.map +1 -0
  257. package/source/js/build.js +148 -0
  258. package/source/js/layouts/bookmarkNav.js +65 -0
  259. package/source/js/layouts/categoryList.js +53 -0
  260. package/source/js/layouts/essays.js +25 -0
  261. package/source/js/layouts/lazyload.js +199 -0
  262. package/source/js/layouts/navbarShrink.js +135 -0
  263. package/source/js/layouts/toc.js +115 -0
  264. package/source/js/libs/APlayer.min.js +2 -0
  265. package/source/js/libs/APlayer.min.js.map +1 -0
  266. package/source/js/libs/Swup.min.js +2 -0
  267. package/source/js/libs/Swup.min.js.map +1 -0
  268. package/source/js/libs/SwupPreloadPlugin.min.js +1 -0
  269. package/source/js/libs/SwupPreloadPlugin.min.js.map +1 -0
  270. package/source/js/libs/SwupProgressPlugin.min.js +1 -0
  271. package/source/js/libs/SwupScriptsPlugin.min.js +1 -0
  272. package/source/js/libs/SwupScrollPlugin.min.js +1 -0
  273. package/source/js/libs/SwupScrollPlugin.min.js.map +1 -0
  274. package/source/js/libs/SwupSlideTheme.min.js +1 -0
  275. package/source/js/libs/Typed.min.js +10 -0
  276. package/source/js/libs/anime.min.js +8 -0
  277. package/source/js/libs/mermaid.min.js +2314 -0
  278. package/source/js/libs/mermaid.min.js.map +7 -0
  279. package/source/js/libs/minimasonry.min.js +1 -0
  280. package/source/js/libs/moment-with-locales.min.js +2 -0
  281. package/source/js/libs/moment.min.js +2 -0
  282. package/source/js/libs/odometer.min.js +2 -0
  283. package/source/js/libs/pangu.min.js +9 -0
  284. package/source/js/libs/pjax.min.js +1 -0
  285. package/source/js/libs/waline.js +84 -0
  286. package/source/js/libs/waline.js.map +1 -0
  287. package/source/js/main.js +95 -0
  288. package/source/js/plugins/aplayer.js +33 -0
  289. package/source/js/plugins/hbe.js +350 -0
  290. package/source/js/plugins/masonry.js +115 -0
  291. package/source/js/plugins/mermaid.js +7 -0
  292. package/source/js/plugins/pangu.js +12 -0
  293. package/source/js/plugins/tabs.js +29 -0
  294. package/source/js/plugins/typed.js +62 -0
  295. package/source/js/tools/codeBlock.js +48 -0
  296. package/source/js/tools/imageViewer.js +194 -0
  297. package/source/js/tools/lightDarkSwitch.js +165 -0
  298. package/source/js/tools/localSearch.js +327 -0
  299. package/source/js/tools/runtime.js +28 -0
  300. package/source/js/tools/scrollTopBottom.js +34 -0
  301. package/source/js/tools/tocToggle.js +58 -0
  302. package/source/js/utils.js +383 -0
  303. package/source/webfonts/fa-brands-400.ttf +0 -0
  304. package/source/webfonts/fa-brands-400.woff2 +0 -0
  305. package/source/webfonts/fa-duotone-900.ttf +0 -0
  306. package/source/webfonts/fa-duotone-900.woff2 +0 -0
  307. package/source/webfonts/fa-light-300.ttf +0 -0
  308. package/source/webfonts/fa-light-300.woff2 +0 -0
  309. package/source/webfonts/fa-regular-400.ttf +0 -0
  310. package/source/webfonts/fa-regular-400.woff2 +0 -0
  311. package/source/webfonts/fa-sharp-solid-900.ttf +0 -0
  312. package/source/webfonts/fa-sharp-solid-900.woff2 +0 -0
  313. package/source/webfonts/fa-solid-900.ttf +0 -0
  314. package/source/webfonts/fa-solid-900.woff2 +0 -0
  315. package/source/webfonts/fa-thin-100.ttf +0 -0
  316. package/source/webfonts/fa-thin-100.woff2 +0 -0
  317. package/source/webfonts/fa-v4compatibility.ttf +0 -0
  318. package/source/webfonts/fa-v4compatibility.woff2 +0 -0
  319. package/vercel.json +7 -0
@@ -0,0 +1,92 @@
1
+ # ----------------------------------------
2
+ # Traduction du site
3
+ # ----------------------------------------
4
+ search: recherche...
5
+ toc: Sur cette page
6
+ prev: Précédent
7
+ next: Suivant
8
+ prev_posts: Articles précédents
9
+ next_posts: Articles suivants
10
+ page: Page %d
11
+ recent_posts: Articles récents
12
+ share: Partager
13
+ powered_by: "POWERED BY %s"
14
+ theme: THEME
15
+ rss_feed: Flux RSS
16
+ category: Catégorie
17
+ categories: Catégories
18
+ tag: Tag
19
+ tags: Tags
20
+ post: Post
21
+ posts: Posts
22
+ tagcloud: Nuage de tags
23
+ comment: Commentaire
24
+ comments: Commentaires
25
+ home: Accueil
26
+ archive: Archive
27
+ archives: Archives
28
+ top: TOP
29
+ sticky: Sticky
30
+ go-back-home: Retour à l'accueil
31
+
32
+ # ----------------------------------------
33
+ # Traduction du menu
34
+ # ----------------------------------------
35
+ about: À propos
36
+ changelog: Journal des modifications
37
+ links: Liens
38
+ link: Lien
39
+ friends: Amis
40
+ friend: Ami
41
+ timeline: Chronologie
42
+ shuoshuo: Shuoshuo
43
+
44
+ # ----------------------------------------
45
+ # Nombre de sites Web
46
+ # ----------------------------------------
47
+ site_uv: VISITEURS
48
+ site_pv: NOMBRE TOTAL DE PAGES VUES
49
+ read_more: Lire la suite
50
+ wordcount: Mots
51
+ min2read: Min
52
+ status: Status
53
+
54
+ # ----------------------------------------
55
+ # Pied de page
56
+ # ----------------------------------------
57
+ runtime: Blog en ligne depuis
58
+ days: Jours
59
+ hours: Hrs
60
+ minutes: Min
61
+ seconds: Sec
62
+ optimized_by: et Propulsé par Evan
63
+ rights: Tous droits réservés
64
+ site_posts: "%s posts au total"
65
+ site_wordcount: "%s mots au total"
66
+
67
+ # ----------------------------------------
68
+ # Post
69
+ # ----------------------------------------
70
+ copyright:
71
+ author: Auteur
72
+ title: Titre
73
+ link: Lien
74
+ create_time: Créé à
75
+ update_time: Mis à jour à
76
+ license_title: Licence
77
+ license_content: "Cette œuvre est sous licence %s."
78
+ all_rights_reserved: "Tous droits réservés à © %s"
79
+ public_domain: "Cette œuvre est dans le domaine public."
80
+
81
+ ago:
82
+ second: "Il y a %s secondes"
83
+ minute: "Il y a %s minutes"
84
+ hour: "Il y a %s heures"
85
+ day: "Il y a %s jours"
86
+ week: "Il y a %s semaines"
87
+ month: "Il y a %s mois"
88
+ year: "Il y a %s années"
89
+
90
+ create_time: Créé
91
+ update_time: Mis à jour
92
+ expired: "Ce message a été écrit il y a %s jours et son contenu peut être obsolète."
@@ -0,0 +1,92 @@
1
+ # ----------------------------------------
2
+ # 网站翻译
3
+ # ----------------------------------------
4
+ search: 検索...
5
+ toc: 目次
6
+ prev: 前のページ
7
+ next: 次のページ
8
+ prev_posts: 前一篇
9
+ next_posts: 次一篇
10
+ page: "%d ページ"
11
+ recent_posts: 最新記事
12
+ share: 分かち合う
13
+ powered_by: "%s で駆動する"
14
+ theme: テーマ
15
+ rss_feed: RSS Feed
16
+ category: 分類
17
+ categories: 分類
18
+ tag: タグ
19
+ tags: タグ
20
+ post: 記事
21
+ posts: 記事
22
+ tagcloud: タグクラウド
23
+ comment: コメント
24
+ comments: コメント
25
+ top: トップ
26
+ sticky: 屋根
27
+ go-back-home: トップページに戻ります
28
+
29
+ # ----------------------------------------
30
+ # 菜单翻译
31
+ # ----------------------------------------
32
+ home: トップページ
33
+ archive: ファイル
34
+ archives: ファイル
35
+ about: について
36
+ links: リンク
37
+ friends: フレンドシップリンク
38
+ friend: フレンドシップリンク
39
+ タイムライン: 時間軸
40
+ shuoshuo: 話す
41
+
42
+ # ----------------------------------------
43
+ # 网站统计
44
+ # ----------------------------------------
45
+ site_uv: 訪問者数
46
+ site_pv: 総アクセス数
47
+ read-more: 全文を読む
48
+ wordcount: 字
49
+ min2read: 分
50
+ changelog: ログを更新
51
+ status: 状態
52
+
53
+ # ----------------------------------------
54
+ # 页脚
55
+ # ----------------------------------------
56
+ runtime: ブログが稼働する
57
+ days: 日
58
+ hours: 時間
59
+ ミニッツ: 分
60
+ seconds: 秒
61
+
62
+ optimized_by: そしてEvanによって最適化される
63
+ rights: 著作権所有
64
+ site_posts: "共 %s 記事"
65
+ site_wordcount: "共 %s 字"
66
+
67
+ # ----------------------------------------
68
+ # 版权声明
69
+ # ----------------------------------------
70
+ copyright:
71
+ title: タイトル
72
+ author: 作者
73
+ link: リンク
74
+ create_time: で作成されました
75
+ update_time: で更新されました
76
+ license_title: 著作権宣言
77
+ license_content: "この文章は %s を使用して許可します。"
78
+ all_rights_reserved: "著作権所有 &#169 %s、転載禁止です。"
79
+ public-domain: "この記事はパブリックドメインの著作物であて、転載、引用は自由。"
80
+
81
+ ago:
82
+ second: "%s 秒前"
83
+ minute: "%s 分前"
84
+ hour: "%s 時間前"
85
+ day: "%s 日前"
86
+ week: "%s 週間前"
87
+ month: "%s 月前"
88
+ year: "%s 年前"
89
+
90
+ create_time: 作成
91
+ update_time: 更新
92
+ expired: "この記事は %s 日前に最後に更新される"
@@ -0,0 +1,95 @@
1
+ # ----------------------------------------
2
+ # 网站翻译
3
+ # ----------------------------------------
4
+ search: 站内搜索您需要的内容...
5
+ toc: 目录
6
+ prev: 上一页
7
+ next: 下一页
8
+ prev_posts: 上一篇
9
+ next_posts: 下一篇
10
+ page: 第 %d 页
11
+ recent_posts: 最新文章
12
+ share: 分享
13
+ powered_by: "由 %s 驱动"
14
+ theme: 主题
15
+ rss_feed: RSS Feed
16
+ category: 分类
17
+ categories: 分类
18
+ tag: 标签
19
+ tags: 标签
20
+ post: 文章
21
+ posts: 文章
22
+ tagcloud: 标签云
23
+ comment: 评论
24
+ comments: 评论
25
+ top: 置顶
26
+ sticky: 置顶
27
+ go-back-home: 回到首页
28
+
29
+ # ----------------------------------------
30
+ # 菜单翻译
31
+ # ----------------------------------------
32
+ home: 首页
33
+ archive: 归档
34
+ archives: 归档
35
+ about: 关于
36
+ links: 链接
37
+ link: 链接
38
+ friends: 友情链接
39
+ friend: 友情链接
40
+ timeline: 时间轴
41
+ shuoshuo: 说说
42
+
43
+ # ----------------------------------------
44
+ # 网站统计
45
+ # ----------------------------------------
46
+ site_uv: 访问人数
47
+ site_pv: 总访问量
48
+ read_more: 阅读全文
49
+ wordcount: 字
50
+ min2read: 分钟
51
+ changelog: 更新日志
52
+ status: 状态
53
+
54
+ # ----------------------------------------
55
+ # 页脚
56
+ # ----------------------------------------
57
+ runtime: 博客已运行
58
+ days: 天
59
+ hours: 小时
60
+ minutes: 分钟
61
+ seconds: 秒
62
+
63
+ optimized_by: 并由 Evan 进行优化
64
+ rights: 版权所有
65
+ site_posts: "共撰写了 %s 篇文章"
66
+ site_wordcount: "共 %s 字"
67
+
68
+ # ----------------------------------------
69
+ # 版权声明
70
+ # ----------------------------------------
71
+ copyright:
72
+ title: 标题
73
+ author: 作者
74
+ link: 链接
75
+ create_time: 创建于
76
+ update_time: 更新于
77
+ license_title: 版权声明
78
+ license_content: "本文章采用 %s 进行许可。"
79
+ all_rights_reserved: "版权所有 &#169 %s,禁止转载。"
80
+ public_domain: "本文为公有领域作品,可自由转载、引用。"
81
+
82
+
83
+ ago:
84
+ second: "%s 秒前"
85
+ minute: "%s 分钟前"
86
+ hour: "%s 小时前"
87
+ day: "%s 天前"
88
+ week: "%s 周前"
89
+ month: "%s 个月前"
90
+ year: "%s 年前"
91
+
92
+
93
+ create_time: 创建
94
+ update_time: 更新
95
+ expired: "这篇文章最后更新于 %s 天前,内容可能已经过时。"
@@ -0,0 +1,94 @@
1
+ # ----------------------------------------
2
+ # 網站翻譯
3
+ # ----------------------------------------
4
+ search: 站內搜尋您想要的內容...
5
+ toc: 目錄
6
+ prev: 上一頁
7
+ next: 下一頁
8
+ prev_posts: 上一篇
9
+ next_posts: 下一篇
10
+ page: 第 %d 頁
11
+ recent_posts: 之前的文章
12
+ share: 分享
13
+ powered_by: "%s 框架"
14
+ theme: 主題
15
+ rss_feed: RSS 訂閱
16
+ category: 分類
17
+ categories: 分類
18
+ tag: 標籤
19
+ tags: 標籤
20
+ post: 文章
21
+ posts: 文章
22
+ tagcloud: 標籤雲
23
+ comment: 留言
24
+ comments: 留言
25
+ top: 頂端
26
+ sticky: 置頂
27
+ go-back-home: 回到首頁
28
+
29
+ # ----------------------------------------
30
+ # 選單翻譯
31
+ # ----------------------------------------
32
+ home: 首頁
33
+ archive: 歸檔
34
+ archives: 歸檔
35
+ about: 關於
36
+ links: 連結
37
+ link: 連結
38
+ friends: 友情連結
39
+ friend: 友情連結
40
+ timeline: 時間軸
41
+ shuoshuo: 說說
42
+ changelog: 日誌
43
+ status: 狀態
44
+
45
+ # ----------------------------------------
46
+ # 網站統計
47
+ # ----------------------------------------
48
+ site_uv: 讀者
49
+ site_pv: 閱覽
50
+
51
+ read_more: 繼續閱讀...
52
+ wordcount: 字數
53
+ min2read: 分鐘
54
+
55
+ # ----------------------------------------
56
+ # 頁尾
57
+ # ----------------------------------------
58
+ runtime: 部落格已運行
59
+ days: 天
60
+ hours: 小時
61
+ minutes: 分鐘
62
+ seconds: 秒
63
+
64
+ optimized_by: 並由 Evan 進行最佳化
65
+ rights: 版權所有
66
+ site_posts: "共 %s 篇文章"
67
+ site_wordcount: "共 %s 字"
68
+
69
+ # ----------------------------------------
70
+ # 版權聲明
71
+ # ----------------------------------------
72
+ copyright:
73
+ author: 作者
74
+ title: 標題
75
+ link: 連結
76
+ create_time: 撰寫於
77
+ update_time: 更新於
78
+ license_title: 版權宣告
79
+ license_content: "本作品採用 %s 進行許可。"
80
+ all_rights_reserved: "保留所有權利 &#169 %s"
81
+ public_domain: "本作品已在公共領域中,可自由轉載、修改、散佈,無需經過作者同意。"
82
+
83
+ ago:
84
+ second: "%s 秒前"
85
+ minute: "%s 分鐘前"
86
+ hour: "%s 小時前"
87
+ day: "%s 天前"
88
+ week: "%s 周前"
89
+ month: "%s 個月前"
90
+ year: "%s 年前"
91
+
92
+ create_time: 撰寫
93
+ update_time: 更新
94
+ expired: "這篇文章最後更新於 %s 天前,內容可能已經過時。"
package/layout/404.ejs ADDED
@@ -0,0 +1 @@
1
+ <%- partial('page') %>
@@ -0,0 +1 @@
1
+ <%- partial('page') %>
@@ -0,0 +1 @@
1
+ <%- partial('page') %>
@@ -0,0 +1,22 @@
1
+ <div class="comments-container mt-10 w-full ">
2
+ <div id="comment-anchor" class="w-full h-2.5"></div>
3
+ <div class="comment-area-title w-full my-1.5 md:my-2.5 text-xl md:text-3xl font-bold">
4
+ <%- __('comments') %>
5
+ </div>
6
+ <% if (theme.comment.enable === true && theme.comment.hasOwnProperty('system')) { %>
7
+
8
+ <% if (theme.comment.system === 'waline') { %>
9
+ <%- partial('components/comments/waline') %>
10
+
11
+ <% } else if (theme.comment.system === 'gitalk') { %>
12
+ <%- partial('components/comments/gitalk') %>
13
+
14
+ <% } else if (theme.comment.system === 'twikoo') { %>
15
+ <%- partial('components/comments/twikoo') %>
16
+
17
+ <% } else if (theme.comment.system === 'giscus') { %>
18
+ <%- partial('components/comments/giscus') %>
19
+
20
+ <% } %>
21
+ <% } %>
22
+ </div>
@@ -0,0 +1,42 @@
1
+ <% if (
2
+ theme.comment.system==='giscus' &&
3
+ theme.comment.config.giscus.repo &&
4
+ theme.comment.config.giscus.repo_id &&
5
+ theme.comment.config.giscus.category_id
6
+ ) { %>
7
+ <div id="giscus-container"></div>
8
+ <script <%= theme.global.single_page === true && 'data-swup-reload-script' %> defer>
9
+ async function loadGiscus() {
10
+ const giscusConfig = {
11
+ 'src': 'https://giscus.app/client.js',
12
+ 'data-repo': '<%= theme.comment.config.giscus.repo %>',
13
+ 'data-repo-id': '<%= theme.comment.config.giscus.repo_id %>',
14
+ 'data-category': '<%= theme.comment.config.giscus.category %>',
15
+ 'data-category-id': '<%= theme.comment.config.giscus.category_id %>',
16
+ 'data-mapping': '<%= theme.comment.config.giscus.mapping || 'pathname' %>',
17
+ 'data-strict': '<%= theme.comment.config.giscus.strict || '0' %>',
18
+ 'data-reactions-enabled': '<%= theme.comment.config.giscus.reactions_enabled || '1' %>',
19
+ 'data-emit-metadata': '<%= theme.comment.config.giscus.emit_metadata || '1' %>',
20
+ 'data-theme': 'preferred_color_scheme',
21
+ 'data-lang': '<%= theme.comment.config.giscus.lang || 'en' %>',
22
+ 'data-input-position': '<%= theme.comment.config.giscus.input_position || 'bottom' %>',
23
+ 'data-loading': '<%= theme.comment.config.giscus.loading || 'lazy' %>',
24
+ 'crossorigin': 'anonymous',
25
+ 'async': true
26
+ }
27
+ const giscusScript = document.createElement('script');
28
+ for (const key in giscusConfig) {
29
+ giscusScript.setAttribute(key, giscusConfig[key]);
30
+ }
31
+ document.getElementById('giscus-container').appendChild(giscusScript);
32
+ }
33
+ if ('<%= theme.global.single_page %>') {
34
+ let loadGiscusTimeout = setTimeout(() => {
35
+ loadGiscus();
36
+ clearTimeout(loadGiscusTimeout);
37
+ }, 1000);
38
+ } else {
39
+ document.addEventListener('DOMContentLoaded', loadGiscus);
40
+ }
41
+ </script>
42
+ <% } %>
@@ -0,0 +1,47 @@
1
+ <% if(
2
+ theme.comment.system === 'gitalk'
3
+ && theme.comment.config.gitalk.clientID
4
+ && theme.comment.config.gitalk.clientSecret
5
+ && theme.comment.config.gitalk.owner
6
+ && theme.comment.config.gitalk.repo
7
+ ) { %>
8
+ <div id="gitalk-container"></div>
9
+ <script <%= theme.global.single_page === true && 'data-swup-reload-script' %>
10
+ src="https://cdnjs.cloudflare.com/ajax/libs/gitalk/1.8.0/gitalk.min.js"></script>
11
+ <script <%= theme.global.single_page === true && 'data-swup-reload-script' %>>
12
+
13
+ function loadGitalk() {
14
+ let __gitalk__pathname = decodeURI(location.pathname);
15
+ const __gitalk__pathnameLength = __gitalk__pathname.length;
16
+ const __gitalk__pathnameMaxLength = 50;
17
+ if (__gitalk__pathnameLength > __gitalk__pathnameMaxLength) {
18
+ __gitalk__pathname = __gitalk__pathname.substring(0, __gitalk__pathnameMaxLength - 3) + '...';
19
+ }
20
+
21
+ try {
22
+ Gitalk && new Gitalk({
23
+ clientID: '<%= theme.comment.config.gitalk.clientID %>',
24
+ clientSecret: '<%= theme.comment.config.gitalk.clientSecret %>',
25
+ repo: '<%= theme.comment.config.gitalk.repo %>',
26
+ owner: '<%= theme.comment.config.gitalk.owner %>',
27
+ admin: ['<%= theme.comment.config.gitalk.owner %>'],
28
+ id: __gitalk__pathname,
29
+ language: '<%= config.language %>',
30
+ proxy: '<%= theme.comment.config.gitalk.proxy || "https://github.com/login/oauth/access_token" %>'
31
+ }).render('gitalk-container');
32
+
33
+ } catch (e) {
34
+ window.Gitalk = null;
35
+ }
36
+ }
37
+
38
+ if ('<%= theme.global.single_page %>') {
39
+ const loadGitalkTimeout = setTimeout(() => {
40
+ loadGitalk();
41
+ clearTimeout(loadGitalkTimeout);
42
+ }, 1000);
43
+ } else {
44
+ window.addEventListener('DOMContentLoaded', loadGitalk);
45
+ }
46
+ </script>
47
+ <% } %>
@@ -0,0 +1,50 @@
1
+ <% if(theme.comment.system === 'twikoo' && theme.comment.config.twikoo.server_url) { %>
2
+ <div class="twikoo-container">
3
+ <script <%= theme.global.single_page === true && 'data-swup-reload-script' %>
4
+ src='https://cdnjs.cloudflare.com/ajax/libs/twikoo/<%- theme.comment.config.twikoo.version %>/twikoo.all.min.js'
5
+ ></script>
6
+ <div id="twikoo-comment"></div>
7
+ <script <%= theme.global.single_page === true && 'data-swup-reload-script' %>>
8
+ function loadTwikoo() {
9
+ twikoo.init({
10
+ el: '#twikoo-comment',
11
+ envId: '<%= theme.comment.config.twikoo.server_url %>',
12
+ });
13
+ }
14
+
15
+ if ('<%= theme.global.single_page %>') {
16
+ const loadTwikooTimeout = setTimeout(() => {
17
+ loadTwikoo();
18
+ clearTimeout(loadTwikooTimeout);
19
+ }, 1000);
20
+ } else {
21
+ window.addEventListener('DOMContentLoaded', loadTwikoo);
22
+ }
23
+ </script>
24
+ </div>
25
+ <% } else if (theme.comment.system === 'twikoo' && theme.comment.config.twikoo.server_url && theme.comment.config.twikoo.region) { %>
26
+ <div class="twikoo-container">
27
+ <script <%= theme.global.single_page === true && 'data-swup-reload-script' %>
28
+ src='<%- theme.comment_version.twikoo %>'
29
+ ></script>
30
+ <div id="twikoo-comment"></div>
31
+ <script <%= theme.global.single_page === true && 'data-swup-reload-script' %>>
32
+ function loadTwikoo() {
33
+ twikoo.init({
34
+ el: '#twikoo-comment',
35
+ envId: '<%= theme.comment.config.twikoo.server_url %>',
36
+ region: '<%= theme.comment.config.twikoo.region %>',
37
+ });
38
+ }
39
+
40
+ if ('<%= theme.global.single_page %>') {
41
+ const loadTwikooTimeout = setTimeout(() => {
42
+ loadTwikoo();
43
+ clearTimeout(loadTwikooTimeout);
44
+ }, 1000);
45
+ } else {
46
+ window.addEventListener('DOMContentLoaded', loadTwikoo);
47
+ }
48
+ </script>
49
+ </div>
50
+ <% } %>
@@ -0,0 +1,34 @@
1
+ <% if(theme.comment.system === 'waline' && theme.comment.config.waline.serverUrl && theme.comment.config.waline.lang) { %>
2
+ <div id="waline"></div>
3
+ <script type="module" data-swup-reload-script>
4
+ import { init } from '<%= url_for('js/libs/waline.js') %>';
5
+
6
+ function loadWaline() {
7
+ init({
8
+ el: '#waline',
9
+ serverURL: '<%= theme.comment.config.waline.serverUrl %>',
10
+ dark: 'body[class~="dark-mode"]',
11
+ reaction: <%- waline_reaction_config(theme.comment.config.waline.reaction) %>,
12
+ requiredMeta: ['nick', 'mail'],
13
+ emoji: <%- waline_array_config(theme.comment.config.waline.emoji) %>,
14
+ <%- waline_config_options({
15
+ lang: theme.comment.config.waline.lang,
16
+ locale: theme.comment.config.waline.locale,
17
+ login: theme.comment.config.waline.login,
18
+ wordLimit: theme.comment.config.waline.wordLimit,
19
+ pageSize: theme.comment.config.waline.pageSize,
20
+ commentSorting: theme.comment.config.waline.commentSorting,
21
+ meta: theme.comment.config.waline.meta,
22
+ recaptchaV3Key: theme.comment.config.waline.recaptchaV3Key,
23
+ turnstileKey: theme.comment.config.waline.turnstileKey
24
+ }) %>
25
+ });
26
+ }
27
+
28
+ if (typeof swup !== 'undefined') {
29
+ loadWaline();
30
+ } else {
31
+ window.addEventListener('DOMContentLoaded', loadWaline);
32
+ }
33
+ </script>
34
+ <% } %>
@@ -0,0 +1,99 @@
1
+ <footer class="footer mt-5 py-5 h-auto text-base text-third-text-color relative border-t-2 border-t-border-color">
2
+ <div class="info-container py-3 text-center">
3
+ <% if (theme.footer.hasOwnProperty('customize') && theme.footer.customize) { %>
4
+ <div class="customize-info my-1"><%- theme.footer.customize %></div>
5
+ <% } %>
6
+ <div class="text-center">
7
+ &copy;
8
+ <% if (theme.footer.hasOwnProperty('start') && theme.footer.start) { %>
9
+ <span><%= date(new Date(theme.footer.start), 'YYYY') %></span>
10
+ -
11
+ <% } %>
12
+ <%= date(new Date(), 'YYYY') %>&nbsp;&nbsp;<%- theme.footer.icon || '<i class="fa-regular fa-computer-classic"></i>' %>&nbsp;&nbsp;<a href="<%= config.root %>"><%= theme.info.author || config.author %></a>
13
+ <% if (theme.footer.hasOwnProperty('statistics') && theme.footer.statistics) {%>
14
+ <%
15
+ const sitePostsCount = site.posts.length;
16
+ let siteWordCount = null;
17
+ try{
18
+ siteWordCount = totalcount(site);
19
+ } catch (e) {
20
+ siteWordCount = null;
21
+ }
22
+ %>
23
+ <p class="post-count space-x-0.5">
24
+ <span>
25
+ <%- __("site_posts", sitePostsCount) %>
26
+ </span>
27
+ <% if (siteWordCount) {%>
28
+ <span>
29
+ <%- __("site_wordcount", siteWordCount) %>
30
+ </span>
31
+ <% } %>
32
+ </p>
33
+ <% } %>
34
+ </div>
35
+ <% if (theme.global.website_counter.enable === true) { %>
36
+ <script <%= theme.global.single_page === true && 'data-swup-reload-script' %> src="<%= theme.global.website_counter.url ? theme.global.website_counter.url : "https://vercount.one/js" %>"></script>
37
+ <div class="relative text-center lg:absolute lg:right-[20px] lg:top-1/2 lg:-translate-y-1/2 lg:text-right">
38
+ <% if (theme.global.website_counter.site_uv) { %>
39
+ <span id="busuanzi_container_site_uv" class="lg:!block">
40
+ <span class="text-sm"><%- __('site_uv') %></span>
41
+ <span id="busuanzi_value_site_uv"></span>
42
+ </span>
43
+ <% } %>
44
+ <% if (theme.global.website_counter.site_pv) { %>
45
+ <span id="busuanzi_container_site_pv" class="lg:!block">
46
+ <span class="text-sm"><%- __('site_pv') %></span>
47
+ <span id="busuanzi_value_site_pv"></span>
48
+ </span>
49
+ <% } %>
50
+ </div>
51
+ <% } %>
52
+ <div class="relative text-center lg:absolute lg:left-[20px] lg:top-1/2 lg:-translate-y-1/2 lg:text-left">
53
+ <span class="lg:block text-sm"><%- __('powered_by', '<?xml version="1.0" encoding="utf-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg class="relative top-[2px] inline-block align-baseline" version="1.1" id="圖層_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="1rem" height="1rem" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve"><path fill="#0E83CD" d="M256.4,25.8l-200,115.5L56,371.5l199.6,114.7l200-115.5l0.4-230.2L256.4,25.8z M349,354.6l-18.4,10.7l-18.6-11V275H200v79.6l-18.4,10.7l-18.6-11v-197l18.5-10.6l18.5,10.8V237h112v-79.6l18.5-10.6l18.5,10.8V354.6z"/></svg><a target="_blank" class="text-base" href="https://hexo.io">Hexo</a>') %></span>
54
+ <span class="text-sm lg:block"><%- __('theme') %>&nbsp;<a class="text-base" target="_blank" href="https://github.com/Jason-JP-Yang/hexo-theme-Redefine-X">Redefine-X v<%- getThemeVersion() %></a></span>
55
+ </div>
56
+ <% if (theme.footer.icp.enable && theme.footer.icp.hasOwnProperty('number')) { %>
57
+ <div class="icp-info my-1"><a target="_blank" rel="nofollow" href="
58
+ <% if (theme.footer.icp.hasOwnProperty('url') && theme.footer.icp.url) { %>
59
+ <%= theme.footer.icp.url %>
60
+ <% } else { %>
61
+ https://beian.miit.gov.cn
62
+ <% } %>
63
+ "><%= theme.footer.icp.number %></a></div>
64
+ <% } %>
65
+ <% if (theme.footer.runtime === true) {%>
66
+ <div>
67
+ <%= __('runtime') %> <span class="odometer" id="runtime_days" ></span> <%= __('days') %> <span class="odometer" id="runtime_hours"></span> <%= __('hours') %> <span class="odometer" id="runtime_minutes"></span> <%= __('minutes') %> <span class="odometer" id="runtime_seconds"></span> <%= __('seconds') %>
68
+ </div>
69
+ <% } %>
70
+ <% if (theme.footer.runtime === true) {%>
71
+ <script <%= theme.global.single_page === true && 'data-swup-reload-script' %>>
72
+ try {
73
+ function odometer_init() {
74
+ const elements = document.querySelectorAll('.odometer');
75
+ elements.forEach(el => {
76
+ new Odometer({
77
+ el,
78
+ format: '( ddd).dd',
79
+ duration: 200
80
+ });
81
+ });
82
+ }
83
+ odometer_init();
84
+ } catch (error) {}
85
+ </script>
86
+ <% } %>
87
+ <% if (theme.inject.enable === true) { %>
88
+ <% for (let i in theme.inject.footer) { %>
89
+ <% if (theme.inject.footer[i] !== null ){ %>
90
+
91
+ <% if (theme.global.single_page === true) { %>
92
+ <%- theme.inject.footer[i].replace("<script", "<script data-swup-reload-script") %>
93
+ <% } else { %>
94
+ <%- theme.inject.footer[i] %>
95
+ <% } } %>
96
+ <% } }%>
97
+
98
+ </div>
99
+ </footer>