hexo-theme-stellar 1.40.0 → 1.41.0
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/CHANGELOG.md +41 -0
- package/_config.yml +33 -10
- package/_data/icons.yml +250 -37
- package/languages/en.yml +6 -0
- package/languages/zh-CN.yml +6 -0
- package/languages/zh-TW.yml +6 -0
- package/layout/_partial/comments/artalk/script.ejs +25 -8
- package/layout/_partial/comments/beaudar/script.ejs +1 -0
- package/layout/_partial/comments/twikoo/script.ejs +1 -0
- package/layout/_partial/comments/utterances/script.ejs +1 -0
- package/layout/_partial/comments/waline/script.ejs +1 -0
- package/layout/_partial/head.ejs +43 -7
- package/layout/_partial/main/article/article_tags.ejs +16 -0
- package/layout/_partial/main/navbar/article_banner.ejs +11 -1
- package/layout/_partial/main/notebook/note_card.ejs +1 -1
- package/layout/_partial/main/notebook/paginator.ejs +2 -2
- package/layout/_partial/main/pin_slider.ejs +2 -2
- package/layout/_partial/main/post_list/paginator.ejs +2 -2
- package/layout/_partial/menubtn.ejs +2 -2
- package/layout/_partial/scripts/defines.ejs +26 -2
- package/layout/_partial/scripts.ejs +30 -7
- package/layout/_partial/sidebar/logo.ejs +1 -1
- package/layout/_partial/sidebar/menu.ejs +1 -1
- package/layout/_partial/sidebar/search.ejs +1 -1
- package/layout/_partial/widgets/author.ejs +1 -1
- package/layout/_partial/widgets/components/link.ejs +2 -2
- package/layout/_partial/widgets/ghuser.ejs +1 -1
- package/layout/_partial/widgets/related.ejs +1 -1
- package/layout/_partial/widgets/toc.ejs +1 -1
- package/layout/_partial/widgets/tree.ejs +1 -1
- package/layout/_plugins/fancybox.ejs +4 -2
- package/layout/_plugins/mermaid.ejs +2 -1
- package/layout/_plugins/search/local_search.ejs +4 -3
- package/layout/_plugins/swiper.ejs +1 -0
- package/layout/categories.ejs +1 -1
- package/layout/page.ejs +3 -0
- package/layout/tags.ejs +1 -0
- package/package.json +1 -1
- package/scripts/events/lib/doc_tree.js +12 -208
- package/scripts/events/lib/notebooks.js +8 -148
- package/scripts/events/lib/utils.js +10 -1
- package/scripts/filters/index.js +1 -0
- package/scripts/filters/lib/img_lazyload.js +4 -0
- package/scripts/filters/lib/img_onerror.js +4 -0
- package/scripts/filters/lib/md_table.js +46 -0
- package/scripts/generators/search.js +12 -18
- package/scripts/generators/stellar-icons.js +47 -0
- package/scripts/helpers/ai_label.js +29 -0
- package/scripts/helpers/icon.js +2 -2
- package/scripts/helpers/json_ld.js +10 -13
- package/scripts/helpers/related_posts.js +0 -7
- package/scripts/helpers/seo.js +9 -0
- package/scripts/lib/ai_label.js +55 -0
- package/scripts/lib/doc_tree.js +267 -0
- package/scripts/lib/notebooks.js +181 -0
- package/scripts/lib/search_index.js +82 -0
- package/scripts/lib/seo.js +79 -0
- package/scripts/tags/lib/about.js +2 -2
- package/scripts/tags/lib/albums.js +1 -1
- package/scripts/tags/lib/banner.js +1 -1
- package/scripts/tags/lib/chat.js +49 -49
- package/scripts/tags/lib/copy.js +1 -1
- package/scripts/tags/lib/friends.js +1 -1
- package/scripts/tags/lib/gallery.js +1 -1
- package/scripts/tags/lib/hashtag.js +1 -1
- package/scripts/tags/lib/image.js +3 -3
- package/scripts/tags/lib/posters.js +1 -1
- package/scripts/tags/lib/sites.js +2 -2
- package/source/css/_common/base.styl +5 -9
- package/source/css/_common/device.styl +3 -3
- package/source/css/_components/md-table.styl +23 -0
- package/source/css/_components/pages/archives.styl +2 -22
- package/source/css/_components/pages/article-story.styl +4 -4
- package/source/css/_components/partial/article-tags.styl +10 -0
- package/source/css/_components/partial/bread-nav.styl +14 -0
- package/source/css/_components/partial/navbar.styl +10 -2
- package/source/css/_components/sidebar/search.styl +24 -4
- package/source/css/_components/tag-plugins/table.styl +16 -11
- package/source/css/_components/widgets/components.styl +6 -0
- package/source/css/_components/widgets/list.styl +6 -0
- package/source/css/_components/widgets/toc.styl +1 -1
- package/source/css/_custom.styl +1 -12
- package/source/css/_defines/func.styl +28 -3
- package/source/css/_plugins/index.styl +0 -18
- package/source/css/{_plugins/comments → comments}/artalk.styl +4 -0
- package/source/css/{_plugins/comments → comments}/twikoo.styl +4 -0
- package/source/css/{_plugins → plugins}/mermaid.styl +3 -0
- package/source/css/{_plugins → plugins}/swiper.styl +5 -1
- package/source/js/icons.js +60 -0
- package/source/js/main.js +114 -0
- package/source/js/search/highlight.js +82 -0
- package/source/js/search/local-search.js +294 -103
- package/source/js/services/timeline.js +1 -1
- package/source/js/services/weibo.js +3 -3
- package/source/js/services.js +179 -0
- package/source/js/tagtree.js +29 -0
- package/source/js/theme.js +61 -0
- package/{layout/_partial/scripts/utils.ejs → source/js/utils.js} +13 -10
- package/layout/_partial/scripts/services.ejs +0 -178
- package/layout/_partial/scripts/sidebar.ejs +0 -25
- package/layout/_partial/scripts/tagtree.ejs +0 -29
- package/layout/_partial/scripts/theme.ejs +0 -67
- /package/source/css/{_plugins/comments → comments}/beaudar.styl +0 -0
- /package/source/css/{_plugins/comments → comments}/utterances.styl +0 -0
- /package/source/css/{_plugins/comments → comments}/waline.styl +0 -0
- /package/source/css/{_plugins → plugins}/fancybox.styl +0 -0
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/* global hexo */
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
// SEO 相关纯函数:供 JSON-LD 生成与 head 模板共用,避免两处重复逻辑。
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* 提取正文第一张图片的真实地址。
|
|
8
|
+
* 优先匹配 data-src(懒加载占位图场景),其次匹配 src。
|
|
9
|
+
* @param {string} content 已渲染的 HTML 内容
|
|
10
|
+
* @returns {string} 图片地址,未找到时返回空字符串
|
|
11
|
+
*/
|
|
12
|
+
function firstContentImage(content) {
|
|
13
|
+
if (!content) {
|
|
14
|
+
return '';
|
|
15
|
+
}
|
|
16
|
+
const html = String(content);
|
|
17
|
+
const dataSrc = html.match(/<img[^>]*data-src=["']([^"']+)["']/i);
|
|
18
|
+
if (dataSrc) {
|
|
19
|
+
return dataSrc[1];
|
|
20
|
+
}
|
|
21
|
+
const src = html.match(/<img[^>]*src=["']([^"']+)["']/i);
|
|
22
|
+
return src ? src[1] : '';
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* 构建文章图片数组(顺序:cover → banner → photos → 正文首图 → 默认封面)。
|
|
27
|
+
* @param {Object} opts
|
|
28
|
+
* @param {string} opts.cover
|
|
29
|
+
* @param {string} opts.banner
|
|
30
|
+
* @param {Array} opts.photos
|
|
31
|
+
* @param {string} opts.content
|
|
32
|
+
* @param {string} opts.defaultCover 主题默认封面(theme.default.cover)
|
|
33
|
+
* @returns {Array<string>}
|
|
34
|
+
*/
|
|
35
|
+
function postImages(opts) {
|
|
36
|
+
const cover = opts.cover || '';
|
|
37
|
+
const banner = opts.banner || '';
|
|
38
|
+
const photos = Array.isArray(opts.photos) ? opts.photos.slice() : [];
|
|
39
|
+
const defaultCover = opts.defaultCover || '';
|
|
40
|
+
const images = photos;
|
|
41
|
+
if (cover) {
|
|
42
|
+
images.unshift(cover);
|
|
43
|
+
} else if (banner) {
|
|
44
|
+
images.unshift(banner);
|
|
45
|
+
}
|
|
46
|
+
if (images.length === 0) {
|
|
47
|
+
const first = firstContentImage(opts.content);
|
|
48
|
+
if (first) {
|
|
49
|
+
images.push(first);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
if (images.length === 0 && defaultCover) {
|
|
53
|
+
images.push(defaultCover);
|
|
54
|
+
}
|
|
55
|
+
return images;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* 构建文章描述:优先摘要,缺失时回退正文并截断。
|
|
60
|
+
* @param {Object} opts
|
|
61
|
+
* @param {string} opts.excerpt
|
|
62
|
+
* @param {string} opts.content
|
|
63
|
+
* @returns {string}
|
|
64
|
+
*/
|
|
65
|
+
function postDescription(opts) {
|
|
66
|
+
const util = require('hexo-util');
|
|
67
|
+
const excerpt = String(opts.excerpt || '').replace(/<[^>]+>/g, '');
|
|
68
|
+
if (excerpt) {
|
|
69
|
+
return excerpt;
|
|
70
|
+
}
|
|
71
|
+
const content = String(opts.content || '').replace(/<[^>]+>/g, '');
|
|
72
|
+
return util.truncate(content, { length: 200 });
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
module.exports = {
|
|
76
|
+
firstContentImage,
|
|
77
|
+
postImages,
|
|
78
|
+
postDescription
|
|
79
|
+
};
|
|
@@ -18,7 +18,7 @@ module.exports = ctx => function(args, content) {
|
|
|
18
18
|
el += '<div class="tag-plugin about">'
|
|
19
19
|
if (args.back) {
|
|
20
20
|
el += '<a class="nav-back cap" href="' + url_for(ctx.config.root) + '">'
|
|
21
|
-
el +=
|
|
21
|
+
el += ctx.utils.icon('default:goback')
|
|
22
22
|
el += '</a>'
|
|
23
23
|
}
|
|
24
24
|
// avatar
|
|
@@ -45,4 +45,4 @@ module.exports = ctx => function(args, content) {
|
|
|
45
45
|
|
|
46
46
|
el += '</div>'
|
|
47
47
|
return el
|
|
48
|
-
}
|
|
48
|
+
}
|
|
@@ -32,7 +32,7 @@ module.exports = ctx => function(args) {
|
|
|
32
32
|
el += `<div class="grid-cell album-card">`
|
|
33
33
|
el += `<a class="card-link lazy-box" target="_blank" rel="external nofollow noopener noreferrer" href="${item.url}">`
|
|
34
34
|
el += `<img class="lazy" data-src="${item.cover || item.icon || item.avatar || ctx.theme.config.default.cover}" onerror="javascript:this.removeAttribute("data-src");this.src="${ctx.theme.config.default.cover}";"/>`
|
|
35
|
-
el += `<div class="lazy-icon" style="background-image:url(${ctx.theme.config.default.loading});"></div>`
|
|
35
|
+
el += `<div class="lazy-icon" style="background-image:url(${ctx.theme.config.default.loading || ctx.utils.iconData('default:loading-placeholder')});"></div>`
|
|
36
36
|
el += `<div class="image-meta">`
|
|
37
37
|
if (item.title) {
|
|
38
38
|
el += `<span class="image-caption">${item.title}</span>`
|
|
@@ -25,7 +25,7 @@ module.exports = ctx => function(args, content) {
|
|
|
25
25
|
} else {
|
|
26
26
|
el += `
|
|
27
27
|
<button class="back cap" onclick="window.history.back()">
|
|
28
|
-
|
|
28
|
+
${ctx.utils.icon('default:goback')}
|
|
29
29
|
</button>
|
|
30
30
|
`
|
|
31
31
|
}
|
package/scripts/tags/lib/chat.js
CHANGED
|
@@ -160,34 +160,34 @@ module.exports = ctx => function(args, content) {
|
|
|
160
160
|
}
|
|
161
161
|
|
|
162
162
|
const linkFromDic = {
|
|
163
|
-
'Google浏览器':
|
|
164
|
-
'Safari浏览器': '<svg t="1725295233661" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5968" width="200" height="200"><path d="M0 0m184.32 0l655.36 0q184.32 0 184.32 184.32l0 655.36q0 184.32-184.32 184.32l-655.36 0q-184.32 0-184.32-184.32l0-655.36q0-184.32 184.32-184.32Z" fill="#FFFFFF" opacity=".863" p-id="5969"></path><path d="M512 512m-440.32 0a440.32 440.32 0 1 0 880.64 0 440.32 440.32 0 1 0-880.64 0Z" fill="#468EE7" p-id="5970"></path><path d="M512 179.2a5.12 5.12 0 0 1-5.12-5.12v-61.44a5.12 5.12 0 0 1 5.12-5.12 5.12 5.12 0 0 1 5.12 5.12v61.44a5.12 5.12 0 0 1-5.12 5.12zM543.6928 149.85216a5.12 5.12 0 0 1-4.6592-5.53984l2.67264-30.60736a5.12 5.12 0 0 1 5.53984-4.64896 5.12 5.12 0 0 1 4.6592 5.53984l-2.67264 30.59712a5.12 5.12 0 0 1-5.53984 4.6592zM569.76384 184.2688a5.12 5.12 0 0 1-4.1472-5.9392l10.69056-60.5184a5.12 5.12 0 0 1 5.92896-4.1472 5.12 5.12 0 0 1 4.15744 5.92896l-10.69056 60.5184a5.12 5.12 0 0 1-5.9392 4.15744zM606.08512 160.8704a5.12 5.12 0 0 1-3.62496-6.27712l7.95648-29.67552a5.12 5.12 0 0 1 6.27712-3.61472 5.12 5.12 0 0 1 3.61472 6.27712l-7.95648 29.67552a5.12 5.12 0 0 1-6.27712 3.61472zM625.82784 199.2704a5.12 5.12 0 0 1-3.06176-6.5536l21.01248-57.74336a5.12 5.12 0 0 1 6.56384-3.06176 5.12 5.12 0 0 1 3.06176 6.56384l-21.01248 57.73312a5.12 5.12 0 0 1-6.56384 3.06176zM665.63072 182.53824a5.12 5.12 0 0 1-2.47808-6.79936l12.98432-27.8528a5.12 5.12 0 0 1 6.79936-2.46784 5.12 5.12 0 0 1 2.47808 6.79936l-12.98432 27.8528a5.12 5.12 0 0 1-6.79936 2.46784zM678.4 223.78496a5.12 5.12 0 0 1-1.87392-6.99392l30.72-53.20704a5.12 5.12 0 0 1 6.99392-1.87392 5.12 5.12 0 0 1 1.87392 6.99392l-30.72 53.20704a5.12 5.12 0 0 1-6.99392 1.87392zM720.49664 214.2208a5.12 5.12 0 0 1-1.24928-7.13728l17.63328-25.15968a5.12 5.12 0 0 1 7.12704-1.24928 5.12 5.12 0 0 1 1.24928 7.12704l-17.63328 25.15968a5.12 5.12 0 0 1-7.12704 1.24928zM725.9136 257.05472a5.12 5.12 0 0 1-0.6144-7.20896l39.48544-47.06304a5.12 5.12 0 0 1 7.20896-0.63488 5.12 5.12 0 0 1 0.63488 7.20896l-39.49568 47.07328a5.12 5.12 0 0 1-7.20896 0.62464zM769.04448 254.95552a5.12 5.12 0 0 1 0-7.23968l21.71904-21.72928a5.12 5.12 0 0 1 7.24992 0 5.12 5.12 0 0 1 0 7.24992l-21.72928 21.7088a5.12 5.12 0 0 1-7.23968 0zM809.7792 303.5136a5.12 5.12 0 0 1 1.25952-7.12704l25.15968-17.63328a5.12 5.12 0 0 1 7.12704 1.24928 5.12 5.12 0 0 1-1.24928 7.12704l-25.15968 17.63328a5.12 5.12 0 0 1-7.12704-1.24928zM800.21504 345.6a5.12 5.12 0 0 1 1.87392-6.99392l53.20704-30.72a5.12 5.12 0 0 1 6.99392 1.87392 5.12 5.12 0 0 1-1.87392 6.99392l-53.20704 30.72a5.12 5.12 0 0 1-6.99392-1.87392zM841.46176 358.36928a5.12 5.12 0 0 1 2.47808-6.79936l27.84256-12.98432a5.12 5.12 0 0 1 6.79936 2.47808 5.12 5.12 0 0 1-2.47808 6.79936l-27.84256 12.98432a5.12 5.12 0 0 1-6.79936-2.47808zM824.7296 398.17216a5.12 5.12 0 0 1 3.06176-6.5536l57.73312-21.02272a5.12 5.12 0 0 1 6.5536 3.06176 5.12 5.12 0 0 1-3.05152 6.5536l-57.73312 21.02272a5.12 5.12 0 0 1-6.56384-3.06176zM863.1296 417.92512a5.12 5.12 0 0 1 3.62496-6.27712l29.67552-7.95648a5.12 5.12 0 0 1 6.26688 3.61472 5.12 5.12 0 0 1-3.61472 6.27712l-29.67552 7.95648a5.12 5.12 0 0 1-6.27712-3.61472zM839.7312 454.23616a5.12 5.12 0 0 1 4.1472-5.9392l60.5184-10.68032a5.12 5.12 0 0 1 5.9392 4.1472 5.12 5.12 0 0 1-4.15744 5.9392l-60.5184 10.68032a5.12 5.12 0 0 1-5.9392-4.1472z" fill="#FFFFFF" p-id="5971"></path><path d="M874.14784 480.3072a5.12 5.12 0 0 1 4.6592-5.53984l30.59712-2.67264a5.12 5.12 0 0 1 5.53984 4.64896 5.12 5.12 0 0 1-4.64896 5.55008l-30.59712 2.67264a5.12 5.12 0 0 1-5.55008-4.6592z" fill="#FFFFFF" opacity=".85" p-id="5972"></path><path d="M844.8 512a5.12 5.12 0 0 1 5.12-5.12h61.44a5.12 5.12 0 0 1 5.12 5.12 5.12 5.12 0 0 1-5.12 5.12h-61.44a5.12 5.12 0 0 1-5.12-5.12zM874.1376 543.68256a5.12 5.12 0 0 1 5.55008-4.6592l30.60736 2.68288a5.12 5.12 0 0 1 4.64896 5.55008 5.12 5.12 0 0 1-5.55008 4.64896l-30.59712-2.67264a5.12 5.12 0 0 1-4.6592-5.55008zM839.74144 569.78432a5.12 5.12 0 0 1 5.92896-4.1472l60.50816 10.67008a5.12 5.12 0 0 1 4.1472 5.92896 5.12 5.12 0 0 1-5.92896 4.1472l-60.50816-10.65984a5.12 5.12 0 0 1-4.1472-5.9392zM863.1296 606.08512a5.12 5.12 0 0 1 6.27712-3.61472l29.66528 7.94624a5.12 5.12 0 0 1 3.62496 6.26688 5.12 5.12 0 0 1-6.26688 3.62496l-29.67552-7.94624a5.12 5.12 0 0 1-3.62496-6.27712zM824.7296 625.82784a5.12 5.12 0 0 1 6.5536-3.06176l57.74336 21.01248a5.12 5.12 0 0 1 3.06176 6.56384 5.12 5.12 0 0 1-6.56384 3.06176l-57.73312-21.01248a5.12 5.12 0 0 1-3.06176-6.56384zM841.46176 665.63072a5.12 5.12 0 0 1 6.79936-2.47808l27.8528 12.98432a5.12 5.12 0 0 1 2.46784 6.79936 5.12 5.12 0 0 1-6.79936 2.47808l-27.8528-12.98432a5.12 5.12 0 0 1-2.46784-6.79936zM800.21504 678.4a5.12 5.12 0 0 1 6.99392-1.87392l53.20704 30.72a5.12 5.12 0 0 1 1.87392 6.99392 5.12 5.12 0 0 1-6.99392 1.87392l-53.20704-30.72a5.12 5.12 0 0 1-1.87392-6.99392zM809.7792 720.4864a5.12 5.12 0 0 1 7.13728-1.24928l25.15968 17.63328a5.12 5.12 0 0 1 1.24928 7.12704 5.12 5.12 0 0 1-7.12704 1.24928l-25.15968-17.62304a5.12 5.12 0 0 1-1.24928-7.13728z" fill="#FFFFFF" p-id="5973"></path><path d="M766.94528 725.9136a5.12 5.12 0 0 1 7.20896-0.6144l47.06304 39.48544a5.12 5.12 0 0 1 0.63488 7.20896 5.12 5.12 0 0 1-7.20896 0.63488l-47.07328-39.49568a5.12 5.12 0 0 1-0.62464-7.20896z" fill="#FFFFFF" opacity=".996" p-id="5974"></path><path d="M769.04448 769.04448a5.12 5.12 0 0 1 7.23968 0l21.72928 21.71904a5.12 5.12 0 0 1 0 7.24992 5.12 5.12 0 0 1-7.24992 0l-21.7088-21.72928a5.12 5.12 0 0 1 0-7.23968zM725.9136 766.94528a5.12 5.12 0 0 1 7.20896 0.62464l39.50592 47.06304a5.12 5.12 0 0 1-0.62464 7.2192 5.12 5.12 0 0 1-7.2192-0.62464l-39.50592-47.07328a5.12 5.12 0 0 1 0.62464-7.20896zM720.4864 809.7792a5.12 5.12 0 0 1 7.12704 1.25952l17.63328 25.15968a5.12 5.12 0 0 1-1.24928 7.12704 5.12 5.12 0 0 1-7.12704-1.24928l-17.63328-25.15968a5.12 5.12 0 0 1 1.24928-7.12704zM678.4 800.21504a5.12 5.12 0 0 1 6.99392 1.87392l30.72 53.20704a5.12 5.12 0 0 1-1.87392 6.99392 5.12 5.12 0 0 1-6.99392-1.87392l-30.72-53.20704a5.12 5.12 0 0 1 1.87392-6.99392zM665.63072 841.46176a5.12 5.12 0 0 1 6.79936 2.47808l12.98432 27.84256a5.12 5.12 0 0 1-2.47808 6.79936 5.12 5.12 0 0 1-6.79936-2.47808l-12.98432-27.84256a5.12 5.12 0 0 1 2.47808-6.79936zM625.82784 824.70912a5.12 5.12 0 0 1 6.56384 3.06176l21.01248 57.7536a5.12 5.12 0 0 1-3.06176 6.56384 5.12 5.12 0 0 1-6.56384-3.06176l-21.01248-57.7536a5.12 5.12 0 0 1 3.06176-6.56384zM606.08512 863.1296a5.12 5.12 0 0 1 6.26688 3.61472l7.95648 29.67552a5.12 5.12 0 0 1-3.61472 6.27712 5.12 5.12 0 0 1-6.27712-3.61472l-7.95648-29.67552a5.12 5.12 0 0 1 3.61472-6.27712zM569.78432 839.75168a5.12 5.12 0 0 1 5.9392 4.1472l10.65984 60.5184a5.12 5.12 0 0 1-4.1472 5.91872 5.12 5.12 0 0 1-5.9392-4.1472l-10.65984-60.50816a5.12 5.12 0 0 1 4.1472-5.9392zM543.6928 874.14784a5.12 5.12 0 0 1 5.53984 4.6592l2.67264 30.59712a5.12 5.12 0 0 1-4.6592 5.53984 5.12 5.12 0 0 1-5.53984-4.64896l-2.67264-30.59712a5.12 5.12 0 0 1 4.6592-5.55008zM511.97952 844.82048a5.12 5.12 0 0 1 5.12 5.12v61.44a5.12 5.12 0 0 1-5.12 5.12 5.12 5.12 0 0 1-5.12-5.12v-61.44a5.12 5.12 0 0 1 5.12-5.12zM480.29696 874.15808a5.12 5.12 0 0 1 4.64896 5.55008l-2.67264 30.59712a5.12 5.12 0 0 1-5.53984 4.64896 5.12 5.12 0 0 1-4.6592-5.53984l2.67264-30.59712a5.12 5.12 0 0 1 5.53984-4.6592zM454.21568 839.74144a5.12 5.12 0 0 1 4.1472 5.9392l-10.69056 60.5184a5.12 5.12 0 0 1-5.92896 4.1472 5.12 5.12 0 0 1-4.15744-5.92896l10.69056-60.5184a5.12 5.12 0 0 1 5.9392-4.15744zM417.8944 863.15008a5.12 5.12 0 0 1 3.62496 6.27712l-7.95648 29.67552a5.12 5.12 0 0 1-6.26688 3.61472 5.12 5.12 0 0 1-3.62496-6.27712l7.95648-29.67552a5.12 5.12 0 0 1 6.27712-3.61472zM398.16192 824.75008a5.12 5.12 0 0 1 3.06176 6.5536l-21.01248 57.74336a5.12 5.12 0 0 1-6.56384 3.06176 5.12 5.12 0 0 1-3.06176-6.56384l21.01248-57.73312a5.12 5.12 0 0 1 6.56384-3.06176zM358.3488 841.48224a5.12 5.12 0 0 1 2.47808 6.79936l-12.98432 27.8528a5.12 5.12 0 0 1-6.79936 2.46784 5.12 5.12 0 0 1-2.47808-6.79936l12.98432-27.8528a5.12 5.12 0 0 1 6.79936-2.46784zM345.57952 800.23552a5.12 5.12 0 0 1 1.87392 6.99392l-30.72 53.20704a5.12 5.12 0 0 1-6.99392 1.87392 5.12 5.12 0 0 1-1.87392-6.99392l30.72-53.20704a5.12 5.12 0 0 1 6.99392-1.87392zM303.49312 809.80992a5.12 5.12 0 0 1 1.24928 7.12704l-17.63328 25.15968a5.12 5.12 0 0 1-7.12704 1.24928 5.12 5.12 0 0 1-1.24928-7.12704l17.63328-25.15968a5.12 5.12 0 0 1 7.12704-1.24928zM298.06592 766.95552a5.12 5.12 0 0 1 0.63488 7.20896l-39.49568 47.06304a5.12 5.12 0 0 1-7.20896 0.63488 5.12 5.12 0 0 1-0.63488-7.20896l39.49568-47.07328a5.12 5.12 0 0 1 7.20896-0.62464zM254.93504 769.06496a5.12 5.12 0 0 1 0 7.23968l-21.71904 21.72928a5.12 5.12 0 0 1-7.24992 0 5.12 5.12 0 0 1 0-7.24992l21.72928-21.7088a5.12 5.12 0 0 1 7.23968 0zM214.20032 720.50688a5.12 5.12 0 0 1-1.25952 7.13728l-25.15968 17.63328a5.12 5.12 0 0 1-7.12704-1.25952 5.12 5.12 0 0 1 1.24928-7.12704l25.15968-17.63328a5.12 5.12 0 0 1 7.12704 1.24928zM223.76448 678.42048a5.12 5.12 0 0 1-1.87392 6.99392l-53.20704 30.72a5.12 5.12 0 0 1-6.99392-1.87392 5.12 5.12 0 0 1 1.87392-6.99392l53.20704-30.72a5.12 5.12 0 0 1 6.99392 1.87392zM182.51776 665.6512a5.12 5.12 0 0 1-2.47808 6.79936l-27.84256 12.98432a5.12 5.12 0 0 1-6.79936-2.47808 5.12 5.12 0 0 1 2.47808-6.79936l27.84256-12.98432a5.12 5.12 0 0 1 6.79936 2.47808zM199.24992 625.83808a5.12 5.12 0 0 1-3.06176 6.5536l-57.73312 21.02272a5.12 5.12 0 0 1-6.5536-3.06176 5.12 5.12 0 0 1 3.05152-6.5536l57.73312-21.02272a5.12 5.12 0 0 1 6.56384 3.06176zM160.84992 606.1056a5.12 5.12 0 0 1-3.61472 6.26688l-29.68576 7.95648a5.12 5.12 0 0 1-6.26688-3.61472 5.12 5.12 0 0 1 3.61472-6.27712l29.67552-7.95648a5.12 5.12 0 0 1 6.27712 3.61472zM184.25856 569.78432a5.12 5.12 0 0 1-4.15744 5.9392l-60.5184 10.68032a5.12 5.12 0 0 1-5.9392-4.1472 5.12 5.12 0 0 1 4.15744-5.9392l60.5184-10.68032a5.12 5.12 0 0 1 5.9392 4.1472zM149.84192 543.71328a5.12 5.12 0 0 1-4.6592 5.53984l-30.59712 2.67264a5.12 5.12 0 0 1-5.53984-4.64896 5.12 5.12 0 0 1 4.64896-5.55008l30.59712-2.67264a5.12 5.12 0 0 1 5.55008 4.6592zM179.17952 512.02048a5.12 5.12 0 0 1-5.12 5.12h-61.44a5.12 5.12 0 0 1-5.12-5.12 5.12 5.12 0 0 1 5.12-5.12h61.44a5.12 5.12 0 0 1 5.12 5.12zM149.85216 480.33792a5.12 5.12 0 0 1-5.55008 4.6592l-30.60736-2.68288a5.12 5.12 0 0 1-4.64896-5.55008 5.12 5.12 0 0 1 5.55008-4.64896l30.59712 2.67264a5.12 5.12 0 0 1 4.6592 5.55008zM184.23808 454.22592a5.12 5.12 0 0 1-5.92896 4.1472l-60.50816-10.67008a5.12 5.12 0 0 1-4.1472-5.92896 5.12 5.12 0 0 1 5.92896-4.1472l60.50816 10.65984a5.12 5.12 0 0 1 4.1472 5.9392zM160.84992 417.93536a5.12 5.12 0 0 1-6.27712 3.61472l-29.66528-7.94624a5.12 5.12 0 0 1-3.62496-6.26688 5.12 5.12 0 0 1 6.26688-3.62496l29.67552 7.94624a5.12 5.12 0 0 1 3.62496 6.27712zM199.24992 398.19264a5.12 5.12 0 0 1-6.5536 3.06176l-57.74336-21.01248a5.12 5.12 0 0 1-3.06176-6.56384 5.12 5.12 0 0 1 6.56384-3.06176l57.73312 21.01248a5.12 5.12 0 0 1 3.06176 6.56384zM182.51776 358.37952a5.12 5.12 0 0 1-6.79936 2.47808l-27.8528-12.98432a5.12 5.12 0 0 1-2.46784-6.79936 5.12 5.12 0 0 1 6.79936-2.47808l27.8528 12.98432a5.12 5.12 0 0 1 2.46784 6.79936zM223.76448 345.62048a5.12 5.12 0 0 1-6.99392 1.87392l-53.20704-30.72a5.12 5.12 0 0 1-1.87392-6.99392 5.12 5.12 0 0 1 6.99392-1.87392l53.20704 30.72a5.12 5.12 0 0 1 1.87392 6.99392zM214.20032 303.52384a5.12 5.12 0 0 1-7.13728 1.24928l-25.15968-17.63328a5.12 5.12 0 0 1-1.24928-7.12704 5.12 5.12 0 0 1 7.12704-1.24928l25.15968 17.62304a5.12 5.12 0 0 1 1.25952 7.13728zM257.04448 298.09664a5.12 5.12 0 0 1-7.20896 0.63488l-47.06304-39.49568a5.12 5.12 0 0 1-0.63488-7.20896 5.12 5.12 0 0 1 7.20896-0.63488l47.07328 39.49568a5.12 5.12 0 0 1 0.62464 7.20896zM254.93504 254.96576a5.12 5.12 0 0 1-7.23968 0l-21.72928-21.71904a5.12 5.12 0 0 1 0-7.24992 5.12 5.12 0 0 1 7.24992 0l21.7088 21.72928a5.12 5.12 0 0 1 0 7.23968zM298.0864 257.0752a5.12 5.12 0 0 1-7.2192-0.62464l-39.50592-47.06304a5.12 5.12 0 0 1 0.62464-7.2192 5.12 5.12 0 0 1 7.2192 0.63488l39.50592 47.06304a5.12 5.12 0 0 1-0.63488 7.20896zM303.49312 214.24128a5.12 5.12 0 0 1-7.12704-1.25952l-17.63328-25.15968a5.12 5.12 0 0 1 1.24928-7.12704 5.12 5.12 0 0 1 7.12704 1.24928l17.63328 25.15968a5.12 5.12 0 0 1-1.24928 7.13728zM345.58976 223.80544a5.12 5.12 0 0 1-6.99392-1.87392l-30.72-53.20704a5.12 5.12 0 0 1 1.87392-6.99392 5.12 5.12 0 0 1 6.99392 1.87392l30.72 53.20704a5.12 5.12 0 0 1-1.87392 6.99392zM358.3488 182.55872a5.12 5.12 0 0 1-6.79936-2.47808l-12.98432-27.84256a5.12 5.12 0 0 1 2.47808-6.79936 5.12 5.12 0 0 1 6.79936 2.47808l12.98432 27.84256a5.12 5.12 0 0 1-2.47808 6.79936zM398.16192 199.31136a5.12 5.12 0 0 1-6.56384-3.06176l-21.01248-57.7536a5.12 5.12 0 0 1 3.06176-6.56384 5.12 5.12 0 0 1 6.56384 3.06176l21.01248 57.7536a5.12 5.12 0 0 1-3.06176 6.56384zM417.91488 160.88064a5.12 5.12 0 0 1-6.27712-3.61472l-7.95648-29.67552a5.12 5.12 0 0 1 3.61472-6.27712 5.12 5.12 0 0 1 6.27712 3.61472l7.95648 29.68576a5.12 5.12 0 0 1-3.61472 6.26688zM454.1952 184.2688a5.12 5.12 0 0 1-5.9392-4.1472l-10.65984-60.5184a5.12 5.12 0 0 1 4.1472-5.91872 5.12 5.12 0 0 1 5.9392 4.1472l10.65984 60.50816a5.12 5.12 0 0 1-4.1472 5.9392zM480.29696 149.87264a5.12 5.12 0 0 1-5.55008-4.6592l-2.67264-30.59712a5.12 5.12 0 0 1 4.6592-5.53984 5.12 5.12 0 0 1 5.53984 4.6592l2.67264 30.58688a5.12 5.12 0 0 1-4.64896 5.55008z" fill="#FFFFFF" p-id="5975"></path><path d="M477.6448 472.18688l344.41216-222.208-311.99232 262.44096z" fill="#ED6C60" p-id="5976"></path><path d="M510.0544 512.4096l312.0128-262.3488-279.08096 302.97088z" fill="#B73C2F" p-id="5977"></path><path d="M203.06944 770.70336l274.5344-298.53696 32.4608 40.2432z" fill="#FFFFFF" p-id="5978"></path><path d="M203.0592 770.6624l306.9952-258.2528 32.9728 40.6528z" fill="#C7C7C7" p-id="5979"></path></svg>',
|
|
165
|
-
'IE浏览器':
|
|
166
|
-
'UC浏览器':
|
|
167
|
-
'QQ浏览器':
|
|
168
|
-
'百度浏览器':
|
|
169
|
-
'Firefox浏览器':
|
|
170
|
-
'360浏览器':
|
|
171
|
-
'QQ小程序':
|
|
163
|
+
'Google浏览器': ctx.utils.icon('chat:google'),
|
|
164
|
+
'Safari浏览器': ctx.utils.icon('chat:safari'),
|
|
165
|
+
'IE浏览器': ctx.utils.icon('chat:ie'),
|
|
166
|
+
'UC浏览器': ctx.utils.icon('chat:uc'),
|
|
167
|
+
'QQ浏览器': ctx.utils.icon('chat:qq'),
|
|
168
|
+
'百度浏览器': ctx.utils.icon('chat:baidu'),
|
|
169
|
+
'Firefox浏览器': ctx.utils.icon('chat:firefox'),
|
|
170
|
+
'360浏览器': ctx.utils.icon('chat:360'),
|
|
171
|
+
'QQ小程序': ctx.utils.icon('chat:qq-mini'),
|
|
172
172
|
}
|
|
173
173
|
|
|
174
174
|
const fileTypeDic = {
|
|
175
|
-
'word':
|
|
176
|
-
'ppt':
|
|
177
|
-
'txt':
|
|
178
|
-
'pdf':
|
|
179
|
-
'unknow':
|
|
180
|
-
'compressPkg':
|
|
181
|
-
'excel':
|
|
182
|
-
'code':
|
|
183
|
-
'photo':
|
|
184
|
-
'video':
|
|
185
|
-
'voice':
|
|
186
|
-
'config':
|
|
187
|
-
'database':
|
|
188
|
-
'link':
|
|
189
|
-
'exe':
|
|
190
|
-
'3d':
|
|
175
|
+
'word': ctx.utils.icon('chat:file-word'),
|
|
176
|
+
'ppt': ctx.utils.icon('chat:file-ppt'),
|
|
177
|
+
'txt': ctx.utils.icon('chat:file-txt'),
|
|
178
|
+
'pdf': ctx.utils.icon('chat:file-pdf'),
|
|
179
|
+
'unknow': ctx.utils.icon('chat:file-unknown'),
|
|
180
|
+
'compressPkg': ctx.utils.icon('chat:file-archive'),
|
|
181
|
+
'excel': ctx.utils.icon('chat:file-excel'),
|
|
182
|
+
'code': ctx.utils.icon('chat:file-code'),
|
|
183
|
+
'photo': ctx.utils.icon('chat:file-photo'),
|
|
184
|
+
'video': ctx.utils.icon('chat:file-video'),
|
|
185
|
+
'voice': ctx.utils.icon('chat:file-voice'),
|
|
186
|
+
'config': ctx.utils.icon('chat:file-config'),
|
|
187
|
+
'database': ctx.utils.icon('chat:file-database'),
|
|
188
|
+
'link': ctx.utils.icon('chat:file-link'),
|
|
189
|
+
'exe': ctx.utils.icon('chat:file-exe'),
|
|
190
|
+
'3d': ctx.utils.icon('chat:file-3d'),
|
|
191
191
|
}
|
|
192
192
|
|
|
193
193
|
var el = ''
|
|
@@ -235,11 +235,11 @@ module.exports = ctx => function(args, content) {
|
|
|
235
235
|
<span class="time">14:36</span>
|
|
236
236
|
</div>
|
|
237
237
|
<div class="right-items">
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
238
|
+
${ctx.utils.icon('chat:earphone')}
|
|
239
|
+
${ctx.utils.icon('chat:bluetooth')}
|
|
240
|
+
${ctx.utils.icon('chat:signal')}
|
|
241
|
+
${ctx.utils.icon('chat:wifi')}
|
|
242
|
+
${ctx.utils.icon('chat:battery')}
|
|
243
243
|
</div>
|
|
244
244
|
</div>
|
|
245
245
|
`
|
|
@@ -249,7 +249,7 @@ module.exports = ctx => function(args, content) {
|
|
|
249
249
|
<div class="chat-navbar">
|
|
250
250
|
<div class="left-items">
|
|
251
251
|
<div class="back-btn">
|
|
252
|
-
|
|
252
|
+
${ctx.utils.icon('chat:back')}
|
|
253
253
|
</div>
|
|
254
254
|
<div class="news-num">${chatcellNum}</div>
|
|
255
255
|
<div class="title">${args.title}</div>
|
|
@@ -257,9 +257,9 @@ module.exports = ctx => function(args, content) {
|
|
|
257
257
|
<div class="right-items">
|
|
258
258
|
<div class="more-btn">
|
|
259
259
|
${args.style == 'wechat' ?
|
|
260
|
-
|
|
260
|
+
ctx.utils.icon('chat:nav-more-wechat')
|
|
261
261
|
:
|
|
262
|
-
|
|
262
|
+
ctx.utils.icon('chat:nav-more-qq')
|
|
263
263
|
}
|
|
264
264
|
</div>
|
|
265
265
|
</div>
|
|
@@ -316,7 +316,7 @@ module.exports = ctx => function(args, content) {
|
|
|
316
316
|
<div class="quote" quotedCellTag="${cell['quote']}">
|
|
317
317
|
<div class="quote-user">
|
|
318
318
|
<span>${quotedUser['name']}</span>
|
|
319
|
-
|
|
319
|
+
${ctx.utils.icon('chat:arrow-up')}
|
|
320
320
|
</div>
|
|
321
321
|
<div class="quote-content">
|
|
322
322
|
<span>${ctx.render.renderSync({text: quotedCell['md'], engine: 'markdown'}).split('\n').join('')}</span>
|
|
@@ -328,7 +328,7 @@ module.exports = ctx => function(args, content) {
|
|
|
328
328
|
<div class="quote" quotedCellTag="${cell['quote']}">
|
|
329
329
|
<div class="quote-user">
|
|
330
330
|
<span>${quotedUser['name']}</span>
|
|
331
|
-
|
|
331
|
+
${ctx.utils.icon('chat:arrow-up')}
|
|
332
332
|
</div>
|
|
333
333
|
<div class="quote-content">
|
|
334
334
|
<img lazy src="${quotedCell['image']}">
|
|
@@ -366,10 +366,10 @@ module.exports = ctx => function(args, content) {
|
|
|
366
366
|
el +=`
|
|
367
367
|
<div class="voice-btns">
|
|
368
368
|
<div class="pause-btn" style="display:none;">
|
|
369
|
-
|
|
369
|
+
${ctx.utils.icon('chat:pause')}
|
|
370
370
|
</div>
|
|
371
371
|
<div class="play-btn" style="display:flex;">
|
|
372
|
-
|
|
372
|
+
${ctx.utils.icon('chat:play')}
|
|
373
373
|
</div>
|
|
374
374
|
</div>
|
|
375
375
|
<canvas class="voice-wave${args.me && args.me === cell['user'] ? ' right' : ''}"></canvas>
|
|
@@ -402,10 +402,10 @@ module.exports = ctx => function(args, content) {
|
|
|
402
402
|
el += `
|
|
403
403
|
<div class="video-btns">
|
|
404
404
|
<div class="pause-btn" style="display:none;">
|
|
405
|
-
|
|
405
|
+
${ctx.utils.icon('chat:pause')}
|
|
406
406
|
</div>
|
|
407
407
|
<div class="play-btn" style="display:flex;">
|
|
408
|
-
|
|
408
|
+
${ctx.utils.icon('chat:play')}
|
|
409
409
|
</div>
|
|
410
410
|
</div>
|
|
411
411
|
<video preload disablePictureInPicture>
|
|
@@ -452,7 +452,7 @@ module.exports = ctx => function(args, content) {
|
|
|
452
452
|
</div>
|
|
453
453
|
</div>
|
|
454
454
|
<div class="download-btn">
|
|
455
|
-
|
|
455
|
+
${ctx.utils.icon('chat:download')}
|
|
456
456
|
</div>
|
|
457
457
|
`
|
|
458
458
|
}
|
|
@@ -492,22 +492,22 @@ module.exports = ctx => function(args, content) {
|
|
|
492
492
|
<div class="submit-btn">发送</div>
|
|
493
493
|
</div>
|
|
494
494
|
<div class="icons">
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
495
|
+
${ctx.utils.icon('chat:voice-qq')}
|
|
496
|
+
${ctx.utils.icon('chat:photos')}
|
|
497
|
+
${ctx.utils.icon('chat:camera')}
|
|
498
|
+
${ctx.utils.icon('chat:red-envelope')}
|
|
499
|
+
${ctx.utils.icon('chat:smile-qq')}
|
|
500
|
+
${ctx.utils.icon('chat:more-qq')}
|
|
501
501
|
</div>
|
|
502
502
|
</div>
|
|
503
503
|
`
|
|
504
504
|
} else if (args.style == 'wechat') {
|
|
505
505
|
el += `
|
|
506
506
|
<div class="bottom">
|
|
507
|
-
|
|
507
|
+
${ctx.utils.icon('chat:voice-wechat')}
|
|
508
508
|
<div class="input-text"></div>
|
|
509
|
-
|
|
510
|
-
|
|
509
|
+
${ctx.utils.icon('chat:smile-wechat')}
|
|
510
|
+
${ctx.utils.icon('chat:more-wechat')}
|
|
511
511
|
</div>
|
|
512
512
|
`
|
|
513
513
|
}
|
package/scripts/tags/lib/copy.js
CHANGED
|
@@ -40,7 +40,7 @@ module.exports = ctx => function(args) {
|
|
|
40
40
|
}
|
|
41
41
|
el += `<input class="copy-area" id="${copy_id}" value="${text}">`
|
|
42
42
|
el += `<button class="copy-btn" onclick="util.copy("${copy_id}","${toast}")">`
|
|
43
|
-
el +=
|
|
43
|
+
el += ctx.utils.icon('copy:copy')
|
|
44
44
|
el += `</button>`
|
|
45
45
|
el += `</div>`
|
|
46
46
|
return el
|
|
@@ -29,7 +29,7 @@ module.exports = ctx => function(args) {
|
|
|
29
29
|
el += `<a class="card-link" target="_blank" rel="external nofollow noopener noreferrer" href="${item.url}">`
|
|
30
30
|
el += `<div class="lazy-box icon">`
|
|
31
31
|
el += `<img class="lazy" data-src="${item.icon || item.avatar || ctx.theme.config.default.avatar}" onerror="javascript:this.removeAttribute("data-src");this.src="${ctx.theme.config.default.avatar}";"/>`
|
|
32
|
-
el += `<div class="lazy-icon" style="background-image:url("${ctx.theme.config.default.loading}");"></div>`
|
|
32
|
+
el += `<div class="lazy-icon" style="background-image:url("${ctx.theme.config.default.loading || ctx.utils.iconData('default:loading-placeholder')}");"></div>`
|
|
33
33
|
el += `</div>`
|
|
34
34
|
el += `<div class="name">`
|
|
35
35
|
el += `<span>${item.title}</span>`
|
|
@@ -55,7 +55,7 @@ module.exports = ctx => function(args, content) {
|
|
|
55
55
|
if (matches?.length > 2) {
|
|
56
56
|
let alt = matches[1]
|
|
57
57
|
let src = matches[2]
|
|
58
|
-
el += `<div class="${layoutType}-cell lazy-box">${img(src, alt, ctx.theme.config.default.loading)}</div>`
|
|
58
|
+
el += `<div class="${layoutType}-cell lazy-box">${img(src, alt, ctx.theme.config.default.loading || ctx.utils.iconData('default:loading-placeholder'))}</div>`
|
|
59
59
|
}
|
|
60
60
|
}
|
|
61
61
|
el += `</div>`
|
|
@@ -29,7 +29,7 @@ module.exports = ctx => function(args) {
|
|
|
29
29
|
el += '<a class="tag-plugin colorful hashtag"'
|
|
30
30
|
el += ' ' + ctx.args.joinTags(args, ['color', 'href']).join(' ')
|
|
31
31
|
el += '>'
|
|
32
|
-
el +=
|
|
32
|
+
el += ctx.utils.icon('hashtag:hashtag')
|
|
33
33
|
el += '<span>' + args.text + '</span>'
|
|
34
34
|
el += '</a>'
|
|
35
35
|
return el
|
|
@@ -47,10 +47,10 @@ module.exports = ctx => function(args) {
|
|
|
47
47
|
if (style.length > 0 && !args.ratio) {
|
|
48
48
|
img += ' style="' + style + '"'
|
|
49
49
|
}
|
|
50
|
-
img += `onerror="this.src="${ctx.theme.config.default.image_onerror}""`
|
|
50
|
+
img += `onerror="this.src="${ctx.theme.config.default.image_onerror || ctx.utils.iconData('image:onerror')}""`
|
|
51
51
|
img += '/>'
|
|
52
52
|
// loading
|
|
53
|
-
img += `<div class="lazy-icon" style="background-image:url(${ctx.theme.config.default.loading});"></div>`
|
|
53
|
+
img += `<div class="lazy-icon" style="background-image:url(${ctx.theme.config.default.loading || ctx.utils.iconData('default:loading-placeholder')});"></div>`
|
|
54
54
|
if (fancyboxHref) {
|
|
55
55
|
a += ` href="${fancyboxHref}">${img}</a>`
|
|
56
56
|
return a
|
|
@@ -93,7 +93,7 @@ module.exports = ctx => function(args) {
|
|
|
93
93
|
if (args.alt) {
|
|
94
94
|
download = ' download="' + args.alt + '"'
|
|
95
95
|
}
|
|
96
|
-
el += '<a class="image-download blur" style="opacity:0" target="_blank"' + download + ' href="' + href + '"
|
|
96
|
+
el += '<a class="image-download blur" style="opacity:0" target="_blank"' + download + ' href="' + href + '">' + ctx.utils.icon('image:download') + '</a>'
|
|
97
97
|
}
|
|
98
98
|
el += '</div>'
|
|
99
99
|
|
|
@@ -32,7 +32,7 @@ module.exports = ctx => function(args) {
|
|
|
32
32
|
el += `<div class="grid-cell poster-card">`
|
|
33
33
|
el += `<a class="card-link lazy-box" target="_blank" rel="external nofollow noopener noreferrer" href="${item.url}">`
|
|
34
34
|
el += `<img class="lazy" data-src="${item.cover || item.icon || item.avatar || ctx.theme.config.default.cover}" onerror="javascript:this.removeAttribute("data-src");this.src="${ctx.theme.config.default.cover}";"/>`
|
|
35
|
-
el += `<div class="lazy-icon" style="background-image:url(${ctx.theme.config.default.loading});"></div>`
|
|
35
|
+
el += `<div class="lazy-icon" style="background-image:url(${ctx.theme.config.default.loading || ctx.utils.iconData('default:loading-placeholder')});"></div>`
|
|
36
36
|
el += `<div class="image-meta">`
|
|
37
37
|
if (item.title) {
|
|
38
38
|
el += `<span class="image-caption">${item.title}</span>`
|
|
@@ -33,12 +33,12 @@ module.exports = ctx => function(args) {
|
|
|
33
33
|
el += `<a class="card-link" target="_blank" rel="external nofollow noopener noreferrer" href="${item.url}">`
|
|
34
34
|
el += `<div class="lazy-box snapshot">`
|
|
35
35
|
el += `<img class="lazy" data-src="${item.cover || item.snapshot || item.screenshot || ('https://image.thum.io/get/width/1280/crop/720/' + item.url)}" onerror="javascript:this.removeAttribute("data-src");this.src="${ctx.theme.config.default.cover}";"/>`
|
|
36
|
-
el += `<div class="lazy-icon" style="background-image:url("${ctx.theme.config.default.loading}");"></div>`
|
|
36
|
+
el += `<div class="lazy-icon" style="background-image:url("${ctx.theme.config.default.loading || ctx.utils.iconData('default:loading-placeholder')}");"></div>`
|
|
37
37
|
el += `</div>`
|
|
38
38
|
el += `<div class="info">`
|
|
39
39
|
el += `<div class="lazy-box icon">`
|
|
40
40
|
el += `<img class="lazy" data-src="${item.icon || item.avatar || ctx.theme.config.default.link}" onerror="javascript:this.removeAttribute("data-src");this.src="${item.icon || item.avatar || ctx.theme.config.default.link}";"/>`
|
|
41
|
-
el += `<div class="lazy-icon" style="background-image:url("${ctx.theme.config.default.loading}");"></div>`
|
|
41
|
+
el += `<div class="lazy-icon" style="background-image:url("${ctx.theme.config.default.loading || ctx.utils.iconData('default:loading-placeholder')}");"></div>`
|
|
42
42
|
el += `</div>`
|
|
43
43
|
el += `<span class="title">${item.title}</span>`
|
|
44
44
|
el += `<span class="desc">${item.description || item.url}</span>`
|