hexo-theme-lnote 1.2.4 → 1.2.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 (136) hide show
  1. package/README.md +122 -122
  2. package/_config.yml +19 -19
  3. package/config/links.yml +63 -63
  4. package/config/svg.yml +33 -33
  5. package/index.d.ts +4 -0
  6. package/languages/de.yml +69 -69
  7. package/languages/en.yml +69 -69
  8. package/languages/eo.yml +69 -69
  9. package/languages/es.yml +69 -69
  10. package/languages/ja.yml +69 -69
  11. package/languages/ru.yml +69 -69
  12. package/languages/zh-CN.yml +69 -69
  13. package/languages/zh-HK.yml +69 -69
  14. package/languages/zh-TW.yml +69 -69
  15. package/layout/404.ejs +8 -8
  16. package/layout/_partials/archive-list.ejs +17 -17
  17. package/layout/_partials/category-chains.ejs +19 -19
  18. package/layout/_partials/category-list.ejs +62 -62
  19. package/layout/_partials/comments/changyan.ejs +11 -11
  20. package/layout/_partials/comments/cusdis.ejs +25 -25
  21. package/layout/_partials/comments/discuss.ejs +17 -17
  22. package/layout/_partials/comments/disqus.ejs +32 -32
  23. package/layout/_partials/comments/giscus.ejs +36 -36
  24. package/layout/_partials/comments/gitalk.ejs +19 -19
  25. package/layout/_partials/comments/livere.ejs +10 -10
  26. package/layout/_partials/comments/remark42.ejs +29 -29
  27. package/layout/_partials/comments/twikoo.ejs +25 -25
  28. package/layout/_partials/comments/utterances.ejs +27 -27
  29. package/layout/_partials/comments/valine.ejs +23 -23
  30. package/layout/_partials/comments/waline.ejs +24 -24
  31. package/layout/_partials/comments.ejs +8 -8
  32. package/layout/_partials/css.ejs +9 -9
  33. package/layout/_partials/footer/beian.ejs +33 -33
  34. package/layout/_partials/footer/statistics.ejs +39 -39
  35. package/layout/_partials/footer.ejs +7 -7
  36. package/layout/_partials/head.ejs +46 -46
  37. package/layout/_partials/header/banner.ejs +24 -24
  38. package/layout/_partials/header/navigation.ejs +56 -56
  39. package/layout/_partials/header.ejs +4 -4
  40. package/layout/_partials/markdown-plugins.ejs +24 -24
  41. package/layout/_partials/paginator.ejs +14 -14
  42. package/layout/_partials/plugins/CSR.ejs +4 -0
  43. package/layout/_partials/plugins/analytics.ejs +75 -75
  44. package/layout/_partials/plugins/anchorjs.ejs +39 -39
  45. package/layout/_partials/plugins/code-widget.ejs +7 -7
  46. package/layout/_partials/plugins/encrypt.ejs +18 -18
  47. package/layout/_partials/plugins/fancybox.ejs +11 -11
  48. package/layout/_partials/plugins/highlight.ejs +13 -13
  49. package/layout/_partials/plugins/math.ejs +51 -51
  50. package/layout/_partials/plugins/mermaid.ejs +4 -4
  51. package/layout/_partials/plugins/nprogress.ejs +7 -7
  52. package/layout/_partials/plugins/typed.ejs +20 -20
  53. package/layout/_partials/post/category-bar.ejs +18 -18
  54. package/layout/_partials/post/copyright.ejs +50 -50
  55. package/layout/_partials/post/css.ejs +3 -3
  56. package/layout/_partials/post/meta-bottom.ejs +16 -16
  57. package/layout/_partials/post/meta-top.ejs +27 -27
  58. package/layout/_partials/post/scripts.ejs +8 -7
  59. package/layout/_partials/post/sidebar-left.ejs +1 -1
  60. package/layout/_partials/post/sidebar-right.ejs +2 -2
  61. package/layout/_partials/post/toc.ejs +6 -6
  62. package/layout/_partials/scripts.ejs +10 -10
  63. package/layout/_partials/search.ejs +19 -19
  64. package/layout/about.ejs +22 -22
  65. package/layout/archive.ejs +10 -10
  66. package/layout/categories.ejs +20 -20
  67. package/layout/category.ejs +12 -12
  68. package/layout/index.ejs +61 -61
  69. package/layout/layout.ejs +60 -60
  70. package/layout/links.ejs +31 -31
  71. package/layout/page.ejs +15 -15
  72. package/layout/post.ejs +77 -77
  73. package/layout/tag.ejs +12 -12
  74. package/layout/tags.ejs +26 -26
  75. package/package.json +73 -70
  76. package/source/css/_functions/base.styl +8 -8
  77. package/source/css/_mixins/base.styl +23 -23
  78. package/source/css/_pages/_about/about.styl +32 -32
  79. package/source/css/_pages/_archive/archive.styl +32 -32
  80. package/source/css/_pages/_base/_widget/anchorjs.styl +8 -8
  81. package/source/css/_pages/_base/_widget/banner.styl +29 -29
  82. package/source/css/_pages/_base/_widget/board.styl +11 -11
  83. package/source/css/_pages/_base/_widget/code-widget.styl +37 -36
  84. package/source/css/_pages/_base/_widget/copyright.styl +91 -90
  85. package/source/css/_pages/_base/_widget/footer.styl +65 -65
  86. package/source/css/_pages/_base/_widget/footnote.styl +26 -25
  87. package/source/css/_pages/_base/_widget/header.styl +173 -173
  88. package/source/css/_pages/_base/_widget/modal.styl +100 -100
  89. package/source/css/_pages/_base/_widget/navlink.styl +15 -15
  90. package/source/css/_pages/_base/_widget/ngrogress.styl +12 -12
  91. package/source/css/_pages/_base/_widget/noscript.styl +13 -12
  92. package/source/css/_pages/_base/_widget/pagination.styl +23 -23
  93. package/source/css/_pages/_base/_widget/qrcode.styl +17 -17
  94. package/source/css/_pages/_base/_widget/scroll-btn.styl +48 -48
  95. package/source/css/_pages/_base/_widget/text.styl +20 -19
  96. package/source/css/_pages/_base/_widget/toc.styl +75 -75
  97. package/source/css/_pages/_base/base.styl +68 -68
  98. package/source/css/_pages/_base/color-schema.styl +75 -75
  99. package/source/css/_pages/_base/inline.styl +51 -51
  100. package/source/css/_pages/_base/keyframes.styl +31 -31
  101. package/source/css/_pages/_base/print.styl +39 -38
  102. package/source/css/_pages/_category/category-bar.styl +58 -58
  103. package/source/css/_pages/_category/category-chain.styl +6 -6
  104. package/source/css/_pages/_category/category-list.styl +62 -62
  105. package/source/css/_pages/_index/index.styl +75 -75
  106. package/source/css/_pages/_links/links.styl +80 -79
  107. package/source/css/_pages/_post/comment.styl +28 -27
  108. package/source/css/_pages/_post/highlight.styl +75 -75
  109. package/source/css/_pages/_post/markdown.styl +96 -96
  110. package/source/css/_pages/_post/post-page.styl +179 -179
  111. package/source/css/_pages/_post/post-plugin.styl +10 -0
  112. package/source/css/_pages/_post/post-tag.styl +43 -29
  113. package/source/css/_pages/_tag/tags.styl +9 -9
  114. package/source/css/_pages/pages.styl +8 -8
  115. package/source/css/_variables/base.styl +72 -72
  116. package/source/css/gitalk.css +546 -546
  117. package/source/css/main.styl +19 -19
  118. package/source/js/color-schema.js +279 -279
  119. package/source/js/events.js +72 -72
  120. package/source/js/img-lazyload.js +10 -10
  121. package/source/js/local-search.js +70 -70
  122. package/source/js/post/copying-code.js +34 -34
  123. package/source/js/post/enable.js +6 -6
  124. package/source/js/post/img-swipe-bf.js +47 -47
  125. package/source/js/post/img-swipe.js +81 -35
  126. package/source/js/post/mermaiding.js +9 -9
  127. package/source/js/post/play-imgs.js +58 -58
  128. package/source/js/post/toc.js +24 -24
  129. package/source/js/post/view-imgs.js +27 -27
  130. package/source/js/utils.js +245 -245
  131. package/source/xml/local-search.xml +45 -45
  132. package/templates/footer.ejs +12 -12
  133. package/templates/noun.vue +14 -17
  134. package/templates/utils/uri.ts +12 -0
  135. package/scripts/index.js +0 -1
  136. package/source/css/_pages/_tag/tag.styl +0 -9
@@ -1,62 +1,62 @@
1
- <% function render_categories(curCats, params = {}, depth = 0) { %>
2
- <% return curCats.each((cat) => { %>
3
- <% var subCats = site.categories.find({ parent: cat._id }).sort(params.orderBy || 'name').filter(cat => cat.length) %>
4
- <% var collapsed = subCats.length === 0 %>
5
- <% if ((params.filterIds || []).includes(cat._id)) collapsed = false %>
6
- <div class="<%= depth <= 0 ? 'category' : 'category-sub' %> row nomargin-x">
7
- <a class="<%= depth <= 0 ? 'category-item' : 'category-subitem' %> <%= collapsed ? 'collapsed' : '' %>
8
- list-group-item category-item-action col-10 col-md-11 col-xm-11" title="<%= cat.name.trim() %>"
9
- id="heading-<%= md5(cat.name) %>" role="tab" data-bs-toggle="collapse" href="#collapse-<%= md5(cat.name) %>"
10
- aria-expanded="<%= collapsed ? 'false' : 'true' %>"
11
- >
12
- <%= cat.name.trim() %>
13
- <span class="list-group-count"><%= params.type === 'post' ? `(${ cat.posts.length })` : '' %></span>
14
- <i class="iconfont icon-arrowright"></i>
15
- </a>
16
- <% if(params.type !== 'post') { %>
17
- <a href="<%= url_for(cat.path) %>" class="category-count col-2 col-md-1 col-xm-1">
18
- <i class="iconfont icon-articles"></i>
19
- <span><%= cat.posts.length %></span>
20
- </a>
21
- <% } %>
22
- <div class="category-collapse collapse <%= collapsed ? '' : 'show' %>" id="collapse-<%= md5(cat.name) %>"
23
- role="tabpanel" aria-labelledby="heading-<%= md5(cat.name) %>">
24
- <% var posts = cat.posts.sort(params.postOrderBy || '-date') %>
25
- <% if (subCats.length > 0) { %>
26
- <% var filteredPosts = posts.filter((p) => {
27
- return p.categories.filter(catOnPost => catOnPost.parent === cat._id).length === 0;
28
- }) %>
29
- <%- render_posts(filteredPosts, cat, params) %>
30
- <%- render_categories(subCats, params, depth + 1) %>
31
- <% } else { %>
32
- <%- render_posts(posts, cat, params) %>
33
- <% } %>
34
- </div>
35
- </div>
36
- <% }) %>
37
- <% } %>
38
-
39
- <% function render_posts(posts, cat, params) { %>
40
- <div class="category-post-list">
41
- <% var limit = params.postLimit %>
42
- <% for (var idx = 0; idx < posts.length; idx++) { %>
43
- <% var post = posts.data[idx] %>
44
- <% if (idx && limit && idx >= limit) { %>
45
- <a href="<%= url_for(cat.path) %>" class="list-group-item list-group-item-action">
46
- <span class="category-post"><%- __('category.more') %></span>
47
- </a>
48
- <% break %>
49
- <% } else { %>
50
- <a href="<%= url_for(post.path) %>" title="<%= post.title %>"
51
- class="list-group-item list-group-item-action
52
- <%= (params.filterIds || []).includes(post._id) ? 'active' : '' %>">
53
- <span class="category-post"><%= post.title %></span>
54
- </a>
55
- <% } %>
56
- <% } %>
57
- </div>
58
- <% } %>
59
-
60
- <div class="category-list">
61
- <%- render_categories(curCats, params) %>
62
- </div>
1
+ <% function render_categories(curCats, params = {}, depth = 0) { %>
2
+ <% return curCats.each((cat) => { %>
3
+ <% var subCats = site.categories.find({ parent: cat._id }).sort(params.orderBy || 'name').filter(cat => cat.length) %>
4
+ <% var collapsed = subCats.length === 0 %>
5
+ <% if ((params.filterIds || []).includes(cat._id)) collapsed = false %>
6
+ <div class="<%= depth <= 0 ? 'category' : 'category-sub' %> row nomargin-x">
7
+ <a class="<%= depth <= 0 ? 'category-item' : 'category-subitem' %> <%= collapsed ? 'collapsed' : '' %>
8
+ list-group-item category-item-action col-10 col-md-11 col-xm-11" title="<%= cat.name.trim() %>"
9
+ id="heading-<%= md5(cat.name) %>" role="tab" data-bs-toggle="collapse" href="#collapse-<%= md5(cat.name) %>"
10
+ aria-expanded="<%= collapsed ? 'false' : 'true' %>"
11
+ >
12
+ <%= cat.name.trim() %>
13
+ <span class="list-group-count"><%= params.type === 'post' ? `(${ cat.posts.length })` : '' %></span>
14
+ <i class="iconfont icon-arrowright"></i>
15
+ </a>
16
+ <% if(params.type !== 'post') { %>
17
+ <a href="<%= url_for(cat.path) %>" class="category-count col-2 col-md-1 col-xm-1">
18
+ <i class="iconfont icon-articles"></i>
19
+ <span><%= cat.posts.length %></span>
20
+ </a>
21
+ <% } %>
22
+ <div class="category-collapse collapse <%= collapsed ? '' : 'show' %>" id="collapse-<%= md5(cat.name) %>"
23
+ role="tabpanel" aria-labelledby="heading-<%= md5(cat.name) %>">
24
+ <% var posts = cat.posts.sort(params.postOrderBy || '-date') %>
25
+ <% if (subCats.length > 0) { %>
26
+ <% var filteredPosts = posts.filter((p) => {
27
+ return p.categories.filter(catOnPost => catOnPost.parent === cat._id).length === 0;
28
+ }) %>
29
+ <%- render_posts(filteredPosts, cat, params) %>
30
+ <%- render_categories(subCats, params, depth + 1) %>
31
+ <% } else { %>
32
+ <%- render_posts(posts, cat, params) %>
33
+ <% } %>
34
+ </div>
35
+ </div>
36
+ <% }) %>
37
+ <% } %>
38
+
39
+ <% function render_posts(posts, cat, params) { %>
40
+ <div class="category-post-list">
41
+ <% var limit = params.postLimit %>
42
+ <% for (var idx = 0; idx < posts.length; idx++) { %>
43
+ <% var post = posts.data[idx] %>
44
+ <% if (idx && limit && idx >= limit) { %>
45
+ <a href="<%= url_for(cat.path) %>" class="list-group-item list-group-item-action">
46
+ <span class="category-post"><%- __('category.more') %></span>
47
+ </a>
48
+ <% break %>
49
+ <% } else { %>
50
+ <a href="<%= url_for(post.path) %>" title="<%= post.title %>"
51
+ class="list-group-item list-group-item-action
52
+ <%= (params.filterIds || []).includes(post._id) ? 'active' : '' %>">
53
+ <span class="category-post"><%= post.title %></span>
54
+ </a>
55
+ <% } %>
56
+ <% } %>
57
+ </div>
58
+ <% } %>
59
+
60
+ <div class="category-list">
61
+ <%- render_categories(curCats, params) %>
62
+ </div>
@@ -1,11 +1,11 @@
1
- <% if (theme.changyan.appid) { %>
2
- <div id="SOHUCS" sid='<%= page.permalink %>'></div>
3
- <script type="text/javascript">
4
- LNote.utils.loadComments('#SOHUCS', function() {
5
- LNote.utils.createScript("https://changyan.sohu.com/upload/changyan.js", function() {
6
- window.changyan.api.config(<%- JSON.stringify(theme.changyan || {}) %>)
7
- });
8
- });
9
- </script>
10
- <noscript>Please enable JavaScript to view the comments</noscript>
11
- <% } %>
1
+ <% if (theme.changyan.appid) { %>
2
+ <div id="SOHUCS" sid='<%= page.permalink %>'></div>
3
+ <script type="text/javascript">
4
+ LNote.utils.loadComments('#SOHUCS', function() {
5
+ LNote.utils.createScript("https://changyan.sohu.com/upload/changyan.js", function() {
6
+ window.changyan.api.config(<%- JSON.stringify(theme.changyan || {}) %>)
7
+ });
8
+ });
9
+ </script>
10
+ <noscript>Please enable JavaScript to view the comments</noscript>
11
+ <% } %>
@@ -1,25 +1,25 @@
1
- <% if (theme.cusdis.host && theme.cusdis.app_id) { %>
2
- <div class="cusdis" style="width:100%">
3
- <div id="cusdis_thread"
4
- data-host="<%= theme.cusdis.host %>"
5
- data-app-id="<%= theme.cusdis.app_id %>"
6
- data-page-id="<%= md5(page.path) %>"
7
- data-page-url="<%= page.path %>"
8
- data-page-title="<%= page.title %>"
9
- data-theme="<%= theme.dark_mode %>"
10
- >
11
- </div>
12
- </div>
13
- <script type="text/javascript">
14
- LNote.utils.loadComments('#cusdis_thread', function() {
15
- LNote.utils.createScript('<%= url_join(theme.cusdis.host,
16
- `/js/widget/lang/${ String(theme.cusdis.lang || 'zh-cn').toLowerCase() }.js`) %>');
17
- LNote.utils.createScript('<%= url_join(theme.cusdis.host, 'js/cusdis.es.js') %>');
18
- var schema = document.documentElement.getAttribute('data-bs-theme');
19
- if (schema) {
20
- document.querySelector('#cusdis_thread').dataset.theme = schema
21
- }
22
- });
23
- </script>
24
- <noscript>Please enable JavaScript to view the comments</noscript>
25
- <% } %>
1
+ <% if (theme.cusdis.host && theme.cusdis.app_id) { %>
2
+ <div class="cusdis" style="width:100%">
3
+ <div id="cusdis_thread"
4
+ data-host="<%= theme.cusdis.host %>"
5
+ data-app-id="<%= theme.cusdis.app_id %>"
6
+ data-page-id="<%= md5(page.path) %>"
7
+ data-page-url="<%= page.path %>"
8
+ data-page-title="<%= page.title %>"
9
+ data-theme="<%= theme.dark_mode %>"
10
+ >
11
+ </div>
12
+ </div>
13
+ <script type="text/javascript">
14
+ LNote.utils.loadComments('#cusdis_thread', function() {
15
+ LNote.utils.createScript('<%= url_join(theme.cusdis.host,
16
+ `/js/widget/lang/${ String(theme.cusdis.lang || 'zh-cn').toLowerCase() }.js`) %>');
17
+ LNote.utils.createScript('<%= url_join(theme.cusdis.host, 'js/cusdis.es.js') %>');
18
+ var schema = document.documentElement.getAttribute('data-bs-theme');
19
+ if (schema) {
20
+ document.querySelector('#cusdis_thread').dataset.theme = schema
21
+ }
22
+ });
23
+ </script>
24
+ <noscript>Please enable JavaScript to view the comments</noscript>
25
+ <% } %>
@@ -1,17 +1,17 @@
1
- <% if (theme.discuss && theme.discuss.serverURLs) { %>
2
- <div id="discuss-comments"></div>
3
- <script type="text/javascript">
4
- LNote.utils.loadComments('#comments', function() {
5
- LNote.utils.createScript('<%= url_join(theme.static_prefix.discuss, 'discuss.js') %>', function() {
6
- var options = Object.assign(
7
- <%- JSON.stringify(theme.discuss || {}) %>,
8
- { el: '#discuss-comments',
9
- path: <%= theme.discuss.path %>
10
- }
11
- )
12
- discuss.init(options)
13
- });
14
- });
15
- </script>
16
- <noscript>Please enable JavaScript to view the comments</noscript>
17
- <% } %>
1
+ <% if (theme.discuss && theme.discuss.serverURLs) { %>
2
+ <div id="discuss-comments"></div>
3
+ <script type="text/javascript">
4
+ LNote.utils.loadComments('#comments', function() {
5
+ LNote.utils.createScript('<%= url_join(theme.static_prefix.discuss, 'discuss.js') %>', function() {
6
+ var options = Object.assign(
7
+ <%- JSON.stringify(theme.discuss || {}) %>,
8
+ { el: '#discuss-comments',
9
+ path: <%= theme.discuss.path %>
10
+ }
11
+ )
12
+ discuss.init(options)
13
+ });
14
+ });
15
+ </script>
16
+ <noscript>Please enable JavaScript to view the comments</noscript>
17
+ <% } %>
@@ -1,32 +1,32 @@
1
- <% if (theme.disqus.shortname) { %>
2
- <div class="disqus" style="width:100%">
3
- <div id="disqus_thread"></div>
4
- <% if (theme.disqus.disqusjs) { %>
5
- <script>
6
- LNote.utils.loadComments('#disqus_thread', function() {
7
- LNote.utils.createCssLink('<%= url_join(theme.static_prefix.disqusjs, 'disqusjs.css') %>');
8
- LNote.utils.createScript('<%= url_join(theme.static_prefix.disqusjs, 'disqus.js') %>', function() {
9
- new DisqusJS({
10
- shortname: '<%= theme.disqus.shortname %>',
11
- apikey: '<%= theme.disqus.apikey %>'
12
- });
13
- });
14
- });
15
- </script>
16
- <% } else { %>
17
- <script type="text/javascript">
18
- var disqus_config = function() {
19
- this.page.url = '<%= page.permalink %>';
20
- this.page.identifier = '<%= url_for(page.path) %>';
21
- };
22
- LNote.utils.loadComments('#disqus_thread', function() {
23
- var d = document, s = d.createElement('script');
24
- s.src = '//' + '<%= theme.disqus.shortname %>' + '.disqus.com/embed.js';
25
- s.setAttribute('data-timestamp', new Date());
26
- (d.head || d.body).appendChild(s);
27
- });
28
- </script>
29
- <% } %>
30
- <noscript>Please enable JavaScript to view the comments</noscript>
31
- </div>
32
- <% } %>
1
+ <% if (theme.disqus.shortname) { %>
2
+ <div class="disqus" style="width:100%">
3
+ <div id="disqus_thread"></div>
4
+ <% if (theme.disqus.disqusjs) { %>
5
+ <script>
6
+ LNote.utils.loadComments('#disqus_thread', function() {
7
+ LNote.utils.createCssLink('<%= url_join(theme.static_prefix.disqusjs, 'disqusjs.css') %>');
8
+ LNote.utils.createScript('<%= url_join(theme.static_prefix.disqusjs, 'disqus.js') %>', function() {
9
+ new DisqusJS({
10
+ shortname: '<%= theme.disqus.shortname %>',
11
+ apikey: '<%= theme.disqus.apikey %>'
12
+ });
13
+ });
14
+ });
15
+ </script>
16
+ <% } else { %>
17
+ <script type="text/javascript">
18
+ var disqus_config = function() {
19
+ this.page.url = '<%= page.permalink %>';
20
+ this.page.identifier = '<%= url_for(page.path) %>';
21
+ };
22
+ LNote.utils.loadComments('#disqus_thread', function() {
23
+ var d = document, s = d.createElement('script');
24
+ s.src = '//' + '<%= theme.disqus.shortname %>' + '.disqus.com/embed.js';
25
+ s.setAttribute('data-timestamp', new Date());
26
+ (d.head || d.body).appendChild(s);
27
+ });
28
+ </script>
29
+ <% } %>
30
+ <noscript>Please enable JavaScript to view the comments</noscript>
31
+ </div>
32
+ <% } %>
@@ -1,36 +1,36 @@
1
- <% if (theme.giscus && theme.giscus['repo'] && theme.giscus['repo-id']) { %>
2
- <div id="giscus" class="giscus"></div>
3
- <script type="text/javascript">
4
- LNote.utils.loadComments('#giscus', function() {
5
- var options = <%- JSON.stringify(theme.giscus || {}) %>;
6
- var attributes = {};
7
- for (let option in options) {
8
- if (!option.startsWith('theme-')) {
9
- var key = option.startsWith('data-') ? option : 'data-' + option;
10
- attributes[key] = options[option];
11
- }
12
- }
13
- var light = '<%= theme.giscus['theme-light'] || 'light' %>';
14
- var dark = '<%= theme.giscus['theme-dark'] || 'dark' %>';
15
- window.GiscusThemeLight = light;
16
- window.GiscusThemeDark = dark;
17
- attributes['data-theme'] = document.documentElement.getAttribute('data-bs-theme') === 'dark' ? dark : light;
18
- for (let attribute in attributes) {
19
- var value = attributes[attribute];
20
- if (value === undefined || value === null || value === '') {
21
- delete attributes[attribute];
22
- }
23
- }
24
- var s = document.createElement('script');
25
- s.setAttribute('src', 'https://giscus.app/client.js');
26
- s.setAttribute('crossorigin', 'anonymous');
27
- for (let attribute in attributes) {
28
- s.setAttribute(attribute, attributes[attribute]);
29
- }
30
- var ss = document.getElementsByTagName('script');
31
- var e = ss.length > 0 ? ss[ss.length - 1] : document.head || document.documentElement;
32
- e.parentNode.insertBefore(s, e.nextSibling);
33
- });
34
- </script>
35
- <noscript>Please enable JavaScript to view the comments</noscript>
36
- <% } %>
1
+ <% if (theme.giscus && theme.giscus['repo'] && theme.giscus['repo-id']) { %>
2
+ <div id="giscus" class="giscus"></div>
3
+ <script type="text/javascript">
4
+ LNote.utils.loadComments('#giscus', function() {
5
+ var options = <%- JSON.stringify(theme.giscus || {}) %>;
6
+ var attributes = {};
7
+ for (let option in options) {
8
+ if (!option.startsWith('theme-')) {
9
+ var key = option.startsWith('data-') ? option : 'data-' + option;
10
+ attributes[key] = options[option];
11
+ }
12
+ }
13
+ var light = '<%= theme.giscus['theme-light'] || 'light' %>';
14
+ var dark = '<%= theme.giscus['theme-dark'] || 'dark' %>';
15
+ window.GiscusThemeLight = light;
16
+ window.GiscusThemeDark = dark;
17
+ attributes['data-theme'] = document.documentElement.getAttribute('data-bs-theme') === 'dark' ? dark : light;
18
+ for (let attribute in attributes) {
19
+ var value = attributes[attribute];
20
+ if (value === undefined || value === null || value === '') {
21
+ delete attributes[attribute];
22
+ }
23
+ }
24
+ var s = document.createElement('script');
25
+ s.setAttribute('src', 'https://giscus.app/client.js');
26
+ s.setAttribute('crossorigin', 'anonymous');
27
+ for (let attribute in attributes) {
28
+ s.setAttribute(attribute, attributes[attribute]);
29
+ }
30
+ var ss = document.getElementsByTagName('script');
31
+ var e = ss.length > 0 ? ss[ss.length - 1] : document.head || document.documentElement;
32
+ e.parentNode.insertBefore(s, e.nextSibling);
33
+ });
34
+ </script>
35
+ <noscript>Please enable JavaScript to view the comments</noscript>
36
+ <% } %>
@@ -1,19 +1,19 @@
1
- <% if(theme.gitalk.clientID && theme.gitalk.clientSecret && theme.gitalk.repo){ %>
2
- <div id="gitalk-container"></div>
3
- <script type="text/javascript">
4
- LNote.utils.loadComments('#gitalk-container', function() {
5
- LNote.utils.createCssLink('<%= url_join(theme.static_prefix.internal_css, 'gitalk.css') %>')
6
- LNote.utils.createScript('<%= url_join(theme.static_prefix.gitalk, 'gitalk.min.js') %>', function() {
7
- var options = Object.assign(
8
- <%- JSON.stringify(theme.gitalk || {}) %>,
9
- {
10
- id: '<%= md5(page.path) %>'
11
- }
12
- )
13
- var gitalk = new Gitalk(options);
14
- gitalk.render('gitalk-container');
15
- });
16
- });
17
- </script>
18
- <noscript>Please enable JavaScript to view the comments</noscript>
19
- <% } %>
1
+ <% if(theme.gitalk.clientID && theme.gitalk.clientSecret && theme.gitalk.repo){ %>
2
+ <div id="gitalk-container"></div>
3
+ <script type="text/javascript">
4
+ LNote.utils.loadComments('#gitalk-container', function() {
5
+ LNote.utils.createCssLink('<%= url_join(theme.static_prefix.internal_css, 'gitalk.css') %>')
6
+ LNote.utils.createScript('<%= url_join(theme.static_prefix.gitalk, 'gitalk.min.js') %>', function() {
7
+ var options = Object.assign(
8
+ <%- JSON.stringify(theme.gitalk || {}) %>,
9
+ {
10
+ id: '<%= md5(page.path) %>'
11
+ }
12
+ )
13
+ var gitalk = new Gitalk(options);
14
+ gitalk.render('gitalk-container');
15
+ });
16
+ });
17
+ </script>
18
+ <noscript>Please enable JavaScript to view the comments</noscript>
19
+ <% } %>
@@ -1,10 +1,10 @@
1
- <% if (theme.livere.uid) { %>
2
- <div id="lv-container" data-id="city" data-uid="<%= theme.livere.uid %>">
3
- <script type="text/javascript">
4
- LNote.utils.loadComments('#lv-container', function() {
5
- LNote.utils.createScript('https://cdn-city.livere.com/js/embed.dist.js');
6
- });
7
- </script>
8
- <noscript>Please enable JavaScript to view the comments</noscript>
9
- </div>
10
- <% } %>
1
+ <% if (theme.livere.uid) { %>
2
+ <div id="lv-container" data-id="city" data-uid="<%= theme.livere.uid %>">
3
+ <script type="text/javascript">
4
+ LNote.utils.loadComments('#lv-container', function() {
5
+ LNote.utils.createScript('https://cdn-city.livere.com/js/embed.dist.js');
6
+ });
7
+ </script>
8
+ <noscript>Please enable JavaScript to view the comments</noscript>
9
+ </div>
10
+ <% } %>
@@ -1,29 +1,29 @@
1
- <% if (theme.remark42.host && theme.remark42.site_id) { %>
2
- <div id="remark42"></div>
3
- <script type="text/javascript">
4
- var schema = document.documentElement.getAttribute('data-bs-theme');
5
- if (schema !== 'light' && schema !== 'dark') {
6
- schema = 'light';
7
- }
8
- var remark_config = Object.assign(
9
- <%- JSON.stringify(theme.remark42 || {}) %>,
10
- {
11
- url: '<%= url_for(page.path) %>',
12
- page_title: '<%= page.title %>',
13
- theme: schema,
14
- }
15
- );
16
-
17
- LNote.utils.loadComments('#remark42', function() {
18
- (function (c) {
19
- for (var i = 0; i < c.length; i++) {
20
- var d = document, s = d.createElement('script');
21
- s.src = remark_config.host + '/web/' + c[i] + '.js';
22
- s.defer = true;
23
- (d.head || d.body).appendChild(s);
24
- }
25
- })(remark_config.components || ['embed']);
26
- });
27
- </script>
28
- <noscript>Please enable JavaScript to view the comments</noscript>
29
- <% } %>
1
+ <% if (theme.remark42.host && theme.remark42.site_id) { %>
2
+ <div id="remark42"></div>
3
+ <script type="text/javascript">
4
+ var schema = document.documentElement.getAttribute('data-bs-theme');
5
+ if (schema !== 'light' && schema !== 'dark') {
6
+ schema = 'light';
7
+ }
8
+ var remark_config = Object.assign(
9
+ <%- JSON.stringify(theme.remark42 || {}) %>,
10
+ {
11
+ url: '<%= url_for(page.path) %>',
12
+ page_title: '<%= page.title %>',
13
+ theme: schema,
14
+ }
15
+ );
16
+
17
+ LNote.utils.loadComments('#remark42', function() {
18
+ (function (c) {
19
+ for (var i = 0; i < c.length; i++) {
20
+ var d = document, s = d.createElement('script');
21
+ s.src = remark_config.host + '/web/' + c[i] + '.js';
22
+ s.defer = true;
23
+ (d.head || d.body).appendChild(s);
24
+ }
25
+ })(remark_config.components || ['embed']);
26
+ });
27
+ </script>
28
+ <noscript>Please enable JavaScript to view the comments</noscript>
29
+ <% } %>
@@ -1,25 +1,25 @@
1
- <% if (theme.twikoo && theme.twikoo.envId) { %>
2
- <div id="twikoo"></div>
3
- <script type="text/javascript">
4
- LNote.utils.loadComments('#comments', function() {
5
- LNote.utils.createScript('<%= url_join(theme.static_prefix.twikoo, 'twikoo.all.min.js') %>', function() {
6
- var options = Object.assign(
7
- <%- JSON.stringify(theme.twikoo || {}) %>,
8
- {
9
- el: '#twikoo',
10
- path: '<%= theme.twikoo.path %>',
11
- onCommentLoaded: function() {
12
- LNote.utils.listenDOMLoaded(function() {
13
- var imgSelector = '#twikoo .tk-content img:not(.tk-owo-emotion)';
14
- LNote.plugins.imageCaption(imgSelector);
15
- LNote.plugins.fancyBox(imgSelector);
16
- });
17
- }
18
- }
19
- )
20
- twikoo.init(options)
21
- });
22
- });
23
- </script>
24
- <noscript>Please enable JavaScript to view the comments</noscript>
25
- <% } %>
1
+ <% if (theme.twikoo && theme.twikoo.envId) { %>
2
+ <div id="twikoo"></div>
3
+ <script type="text/javascript">
4
+ LNote.utils.loadComments('#comments', function() {
5
+ LNote.utils.createScript('<%= url_join(theme.static_prefix.twikoo, 'twikoo.all.min.js') %>', function() {
6
+ var options = Object.assign(
7
+ <%- JSON.stringify(theme.twikoo || {}) %>,
8
+ {
9
+ el: '#twikoo',
10
+ path: '<%= theme.twikoo.path %>',
11
+ onCommentLoaded: function() {
12
+ LNote.utils.listenDOMLoaded(function() {
13
+ var imgSelector = '#twikoo .tk-content img:not(.tk-owo-emotion)';
14
+ LNote.plugins.imageCaption(imgSelector);
15
+ LNote.plugins.fancyBox(imgSelector);
16
+ });
17
+ }
18
+ }
19
+ )
20
+ twikoo.init(options)
21
+ });
22
+ });
23
+ </script>
24
+ <noscript>Please enable JavaScript to view the comments</noscript>
25
+ <% } %>
@@ -1,27 +1,27 @@
1
- <% if (theme.utterances.repo && theme.utterances.issue_term) { %>
2
- <script type="text/javascript">
3
- LNote.utils.loadComments('#comments', function() {
4
- var light = '<%= theme.utterances.theme || 'github-light' %>';
5
- var dark = '<%= theme.utterances.theme_dark || 'github-dark' %>';
6
- var schema = document.documentElement.getAttribute('data-bs-theme');
7
- if (schema === 'dark') {
8
- schema = dark;
9
- } else {
10
- schema = light;
11
- }
12
- window.UtterancesThemeLight = light;
13
- window.UtterancesThemeDark = dark;
14
- var s = document.createElement('script');
15
- s.setAttribute('src', 'https://utteranc.es/client.js');
16
- s.setAttribute('repo', '<%= theme.utterances.repo %>');
17
- s.setAttribute('issue-term', '<%= theme.utterances.issue_term %>');
18
- <% if (theme.utterances.label) { %>
19
- s.setAttribute('label', '<%= theme.utterances.label %>');
20
- <% } %>
21
- s.setAttribute('theme', schema);
22
- s.setAttribute('crossorigin', 'anonymous');
23
- document.getElementById('comments').appendChild(s);
24
- })
25
- </script>
26
- <noscript>Please enable JavaScript to view the comments</noscript>
27
- <% } %>
1
+ <% if (theme.utterances.repo && theme.utterances.issue_term) { %>
2
+ <script type="text/javascript">
3
+ LNote.utils.loadComments('#comments', function() {
4
+ var light = '<%= theme.utterances.theme || 'github-light' %>';
5
+ var dark = '<%= theme.utterances.theme_dark || 'github-dark' %>';
6
+ var schema = document.documentElement.getAttribute('data-bs-theme');
7
+ if (schema === 'dark') {
8
+ schema = dark;
9
+ } else {
10
+ schema = light;
11
+ }
12
+ window.UtterancesThemeLight = light;
13
+ window.UtterancesThemeDark = dark;
14
+ var s = document.createElement('script');
15
+ s.setAttribute('src', 'https://utteranc.es/client.js');
16
+ s.setAttribute('repo', '<%= theme.utterances.repo %>');
17
+ s.setAttribute('issue-term', '<%= theme.utterances.issue_term %>');
18
+ <% if (theme.utterances.label) { %>
19
+ s.setAttribute('label', '<%= theme.utterances.label %>');
20
+ <% } %>
21
+ s.setAttribute('theme', schema);
22
+ s.setAttribute('crossorigin', 'anonymous');
23
+ document.getElementById('comments').appendChild(s);
24
+ })
25
+ </script>
26
+ <noscript>Please enable JavaScript to view the comments</noscript>
27
+ <% } %>