meta库增加自定义按钮

i18n
xaoxuu 4 years ago
parent 5c0dc66849
commit 9d0dfbfa73
  1. 37
      _config.yml
  2. 40
      layout/_meta/links.ejs
  3. 4
      layout/_widget/copyright.ejs
  4. 32
      source/less/_article.less
  5. 30
      source/less/_main.less

@ -5,7 +5,7 @@ info:
docs: https://xaoxuu.com/wiki/material-x/
cdn: # 要使用CDN,请在根目录的config文件中写上 use_cdn: true
css:
style: https://cdn.jsdelivr.net/gh/xaoxuu/cdn-material-x@20.2.21/css/style.css
# style: https://cdn.jsdelivr.net/gh/xaoxuu/cdn-material-x@20.2.21/css/style.css
js:
app: https://cdn.jsdelivr.net/gh/xaoxuu/cdn-material-x@20.2/js/app.js
search: https://cdn.jsdelivr.net/gh/xaoxuu/cdn-material-x@20.2/js/search.js
@ -148,8 +148,8 @@ layout:
# 其中,title只在header中有效,music和thumbnail无需在这里设置,文章中有则显示
# 如果tags放置在meta.header中,那么在post列表中不显示(因为卡片下方已经有了)
meta:
header: [title, author, date, category, counter, wordcount, top]
footer: [updated, tags, share]
header: [title, author, category, date, updated, counter, wordcount, top]
footer: [tags, links, share]
# 文章页脚,自动在每一篇文章末尾添加
footer: [copyright, donate]
# 文章页面的侧边栏
@ -166,12 +166,12 @@ meta:
icon: fas fa-user # 如果配置了头像,则不会显示图标
# 文章创建日期
date:
icon: fas fa-calendar-alt
icon: fas fa-edit
title: '发布于:'
format: 'll' # 日期格式 http://momentjs.com/docs/
# 文章更新日期
updated:
icon: fas fa-clock
icon: fas fa-save
title: '更新于:'
format: 'll' # 日期格式 http://momentjs.com/docs/
# 文章分类
@ -207,7 +207,32 @@ meta:
# - id: qrcode # 当id为qrcode时需要安装插件 npm i -S hexo-helper-qrcode
# name: QRcode
# img: https://cdn.jsdelivr.net/gh/xaoxuu/assets@19.1.9/logo/128/qrcode.png
# 链接
links:
repo: # 源码链接
icon: fas fa-code-branch
title: 源码
color: '#508EF2'
bug: # BUG反馈链接
icon: fas fa-bug
title: BUG
color: '#FE5F58'
doubt: # 疑问链接
icon: fas fa-question-circle
title: 疑问
color: '#FFBD2B'
idea: # 建议链接
icon: fas fa-lightbulb
title: 建议
color: '#3DC550'
faq: # FAQ链接
icon: fas fa-comments
title: FAQ
color: '#29B1C9'
feedback: # 反馈链接
icon: fas fa-comment-dots
title: 反馈
color: '#1BCDFC'
# 组件库配置
widget:

@ -0,0 +1,40 @@
<% if(post && post.links){ %>
<div class='new-meta-item link-btns'>
<% if(post.links.repo){ %>
<a class='btn flat-box' href='<%- post.links.repo %>' style='background: <%- theme.meta.links.repo.color %>'>
<i class='<%- theme.meta.links.repo.icon %>' aria-hidden='true'></i>
<p><%- theme.meta.links.repo.title %></p>
</a>
<% } %>
<% if(post.links.bug){ %>
<a class='btn flat-box' href='<%- post.links.bug %>' style='background: <%- theme.meta.links.bug.color %>'>
<i class='<%- theme.meta.links.bug.icon %>' aria-hidden='true'></i>
<p><%- theme.meta.links.bug.title %></p>
</a>
<% } %>
<% if(post.links.doubt){ %>
<a class='btn flat-box' href='<%- post.links.doubt %>' style='background: <%- theme.meta.links.doubt.color %>'>
<i class='<%- theme.meta.links.doubt.icon %>' aria-hidden='true'></i>
<p><%- theme.meta.links.doubt.title %></p>
</a>
<% } %>
<% if(post.links.idea){ %>
<a class='btn flat-box' href='<%- post.links.idea %>' style='background: <%- theme.meta.links.idea.color %>'>
<i class='<%- theme.meta.links.idea.icon %>' aria-hidden='true'></i>
<p><%- theme.meta.links.idea.title %></p>
</a>
<% } %>
<% if(post.links.faq){ %>
<a class='btn flat-box' href='<%- post.links.faq %>' style='background: <%- theme.meta.links.faq.color %>'>
<i class='<%- theme.meta.links.faq.icon %>' aria-hidden='true'></i>
<p><%- theme.meta.links.faq.title %></p>
</a>
<% } %>
<% if(post.links.feedback){ %>
<a class='btn flat-box' href='<%- post.links.feedback %>' style='background: <%- theme.meta.links.feedback.color %>'>
<i class='<%- theme.meta.links.feedback.icon %>' aria-hidden='true'></i>
<p><%- theme.meta.links.feedback.title %></p>
</a>
<% } %>
</div>
<% } %>

@ -4,7 +4,7 @@
<blockquote>
<% (item.content||[]).forEach(function(row){ %>
<% if (row == 'permalink') { %>
<p><%- item.permalink %><a href=<%- page.permalink %>><%- page.permalink %><a></p>
<p><%- item.permalink %><a href=<%- page.permalink %>><%- page.permalink %></a></p>
<% } else { %>
<%- markdown(row) %>
<% } %>
@ -13,7 +13,7 @@
<% } else { %>
<% (item.content||[]).forEach(function(row){ %>
<% if (row == 'permalink') { %>
<p><%- item.permalink %><a href=<%- page.permalink %>><%- page.permalink %><a></p>
<p><%- item.permalink %><a href=<%- page.permalink %>><%- page.permalink %></a></p>
<% } else { %>
<%- markdown(row) %>
<% } %>

@ -695,10 +695,8 @@ pre{
.article-entry{
div.info {
border-color: #209cee;
background-color: #def0fd;
color: #4a4a4a;
border-left: @border_radius_code_block solid #209cee;
background-color: fade(@color_mac_finder, 20%);
border-left: @border_radius_code_block solid @color_mac_finder;
border-radius: @border_radius_code_block;
:before {
content: " ";
@ -714,16 +712,14 @@ pre{
background-size: 16px 16px;
background-position: 4px 4px;
background-repeat: no-repeat;
background-color: #209cee;
background-color: @color_mac_finder;
background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHdpZHRoPSIxNzkyIiBoZWlnaHQ9IjE3OTIiIHZpZXdCb3g9IjAgMCAxNzkyIDE3OTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEyMTYgMTM0NHYxMjhxMCAyNi0xOSA0NXQtNDUgMTloLTUxMnEtMjYgMC00NS0xOXQtMTktNDV2LTEyOHEwLTI2IDE5LTQ1dDQ1LTE5aDY0di0zODRoLTY0cS0yNiAwLTQ1LTE5dC0xOS00NXYtMTI4cTAtMjYgMTktNDV0NDUtMTloMzg0cTI2IDAgNDUgMTl0MTkgNDV2NTc2aDY0cTI2IDAgNDUgMTl0MTkgNDV6bS0xMjgtMTE1MnYxOTJxMCAyNi0xOSA0NXQtNDUgMTloLTI1NnEtMjYgMC00NS0xOXQtMTktNDV2LTE5MnEwLTI2IDE5LTQ1dDQ1LTE5aDI1NnEyNiAwIDQ1IDE5dDE5IDQ1eiIgZmlsbD0iI2ZmZiIvPjwvc3ZnPg==");
}
}
div.success {
border-color: #23d160;
background-color: #cbf6da;
color: #4a4a4a;
border-left: @border_radius_code_block solid #23d160;
background-color: fade(@color_mac_maximize, 20%);
border-left: @border_radius_code_block solid @color_mac_maximize;
border-radius: @border_radius_code_block;
:before {
content: " ";
@ -739,17 +735,15 @@ pre{
background-size: 16px 16px;
background-position: 4px 4px;
background-repeat: no-repeat;
background-color: #23d160;
background-color: @color_mac_maximize;
background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0xNjcxIDU2NnEwIDQwLTI4IDY4bC03MjQgNzI0LTEzNiAxMzZxLTI4IDI4LTY4IDI4dC02OC0yOGwtMTM2LTEzNi0zNjItMzYycS0yOC0yOC0yOC02OHQyOC02OGwxMzYtMTM2cTI4LTI4IDY4LTI4dDY4IDI4bDI5NCAyOTUgNjU2LTY1N3EyOC0yOCA2OC0yOHQ2OCAyOGwxMzYgMTM2cTI4IDI4IDI4IDY4eiIgZmlsbD0iI2ZmZiIvPjwvc3ZnPg==");
}
}
div.warning {
border-color: #ffdd57;
background-color: #fff6d1;
color: #4a4a4a;
border-left: @border_radius_code_block solid #ffdd57;
background-color: fade(@color_mac_minimize, 20%);
border-left: @border_radius_code_block solid @color_mac_minimize;
border-radius: @border_radius_code_block;
:before {
content: " ";
@ -765,16 +759,14 @@ pre{
background-size: 16px 16px;
background-position: 4px 4px;
background-repeat: no-repeat;
background-color: #ffdd57;
background-color: @color_mac_minimize;
background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0xMDg4IDEyNTZ2MjQwcTAgMTYtMTIgMjh0LTI4IDEyaC0yNDBxLTE2IDAtMjgtMTJ0LTEyLTI4di0yNDBxMC0xNiAxMi0yOHQyOC0xMmgyNDBxMTYgMCAyOCAxMnQxMiAyOHptMzE2LTYwMHEwIDU0LTE1LjUgMTAxdC0zNSA3Ni41LTU1IDU5LjUtNTcuNSA0My41LTYxIDM1LjVxLTQxIDIzLTY4LjUgNjV0LTI3LjUgNjdxMCAxNy0xMiAzMi41dC0yOCAxNS41aC0yNDBxLTE1IDAtMjUuNS0xOC41dC0xMC41LTM3LjV2LTQ1cTAtODMgNjUtMTU2LjV0MTQzLTEwOC41cTU5LTI3IDg0LTU2dDI1LTc2cTAtNDItNDYuNS03NHQtMTA3LjUtMzJxLTY1IDAtMTA4IDI5LTM1IDI1LTEwNyAxMTUtMTMgMTYtMzEgMTYtMTIgMC0yNS04bC0xNjQtMTI1cS0xMy0xMC0xNS41LTI1dDUuNS0yOHExNjAtMjY2IDQ2NC0yNjYgODAgMCAxNjEgMzF0MTQ2IDgzIDEwNiAxMjcuNSA0MSAxNTguNXoiIGZpbGw9IiNmZmYiLz48L3N2Zz4=");
}
}
div.danger {
border-color: #ff3860;
background-color: #ffb3c2;
color: #4a4a4a;
border-left: @border_radius_code_block solid #ff3860;
background-color: fade(@color_mac_close, 20%);
border-left: @border_radius_code_block solid @color_mac_close;
border-radius: @border_radius_code_block;
:before {
content: " ";
@ -790,7 +782,7 @@ pre{
background-size: 16px 16px;
background-position: 4px 4px;
background-repeat: no-repeat;
background-color: #ff3860;
background-color: @color_mac_close;
background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0xMDg4IDEyNDh2MjI0cTAgMjYtMTkgNDV0LTQ1IDE5aC0yNTZxLTI2IDAtNDUtMTl0LTE5LTQ1di0yMjRxMC0yNiAxOS00NXQ0NS0xOWgyNTZxMjYgMCA0NSAxOXQxOSA0NXptMzAtMTA1NmwtMjggNzY4cS0xIDI2LTIwLjUgNDV0LTQ1LjUgMTloLTI1NnEtMjYgMC00NS41LTE5dC0yMC41LTQ1bC0yOC03NjhxLTEtMjYgMTcuNS00NXQ0NC41LTE5aDMyMHEyNiAwIDQ0LjUgMTl0MTcuNSA0NXoiIGZpbGw9IiNmZmYiLz48L3N2Zz4=");
}
}

@ -407,6 +407,36 @@
color: fade(@color_text_main, 70%);
font-size: @fontsize_small * 1;
line-height: @metaH;
&.link-btns{
display: flex;
flex-wrap: wrap;
justify-content: flex-start;
.btn{
font-size: @fontsize_small * .9;
line-height: @metaH - 4px;
color: white;
padding: 0 4px;
border-radius: 2px;
margin: 2px;
&:extend(.hoverable);
&:hover{
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.1), 0 8px 16px 0 rgba(0, 0, 0, 0.1);
}
i{
padding-left: 3px;
font-size: @fontsize_small * 1;
}
p{
color: white;
}
&:hover{
color: white;
p{
color: white;
}
}
}
}
.notlink{
cursor: default;
&:hover{

Loading…
Cancel
Save