[feat] tag-plugin: button
This commit is contained in:
parent
4c8d8c4252
commit
951d1aee76
|
@ -33,6 +33,7 @@ hexo.extend.tag.register('icon', require('./lib/icon')(hexo))
|
||||||
hexo.extend.tag.register('frame', require('./lib/frame')(hexo))
|
hexo.extend.tag.register('frame', require('./lib/frame')(hexo))
|
||||||
hexo.extend.tag.register('image', require('./lib/image')(hexo))
|
hexo.extend.tag.register('image', require('./lib/image')(hexo))
|
||||||
hexo.extend.tag.register('link', require('./lib/link')(hexo))
|
hexo.extend.tag.register('link', require('./lib/link')(hexo))
|
||||||
|
hexo.extend.tag.register('button', require('./lib/button')(hexo))
|
||||||
hexo.extend.tag.register('mark', require('./lib/mark')(hexo))
|
hexo.extend.tag.register('mark', require('./lib/mark')(hexo))
|
||||||
hexo.extend.tag.register('navbar', require('./lib/navbar')(hexo))
|
hexo.extend.tag.register('navbar', require('./lib/navbar')(hexo))
|
||||||
hexo.extend.tag.register('note', require('./lib/note')(hexo))
|
hexo.extend.tag.register('note', require('./lib/note')(hexo))
|
||||||
|
|
|
@ -0,0 +1,39 @@
|
||||||
|
/**
|
||||||
|
* button.js v1.0 | https://github.com/xaoxuu/hexo-theme-stellar/
|
||||||
|
* 格式与官方标签插件一致使用空格分隔,中括号内的是可选参数(中括号不需要写出来)
|
||||||
|
*
|
||||||
|
* {% button [color:color] text url [icon:key/src] [size:xs] %}
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
'use strict'
|
||||||
|
|
||||||
|
module.exports = ctx => function(args) {
|
||||||
|
args = ctx.args.map(args, ['color', 'icon', 'size'], ['text', 'url'])
|
||||||
|
if (!args.text) {
|
||||||
|
return ''
|
||||||
|
}
|
||||||
|
if (!args.url) {
|
||||||
|
return ''
|
||||||
|
}
|
||||||
|
if (args.url.includes(' ')) {
|
||||||
|
var arr = args.url.split(' ')
|
||||||
|
args.url = arr.pop()
|
||||||
|
args.text = `${args.text} ${arr.join(' ')}`
|
||||||
|
}
|
||||||
|
if (args.color == null) {
|
||||||
|
args.color = 'theme'
|
||||||
|
}
|
||||||
|
var el = ''
|
||||||
|
el += '<a class="tag-plugin colorful button"'
|
||||||
|
el += ' ' + ctx.args.joinTags(args, ['color', 'size']).join(' ')
|
||||||
|
el += ` title="${args.text}"`
|
||||||
|
el += ` href="${args.url}"`
|
||||||
|
el += '>'
|
||||||
|
if (args.icon) {
|
||||||
|
el += ctx.utils.icon(args.icon)
|
||||||
|
}
|
||||||
|
el += `<span>${args.text}</span>`
|
||||||
|
el += '</a>'
|
||||||
|
return el
|
||||||
|
}
|
|
@ -95,9 +95,8 @@ $border-button = 4px
|
||||||
|
|
||||||
// 文章布局风格
|
// 文章布局风格
|
||||||
.l_body.story
|
.l_body.story
|
||||||
--fsp: 'calc(%s + 2px)' % $fs-body
|
--gap-p: 2rem
|
||||||
--gap-p: 1.5rem
|
div.tag-plugin,p>img
|
||||||
.tag-plugin,p>img
|
|
||||||
margin-top: 2.4rem
|
margin-top: 2.4rem
|
||||||
margin-bottom: 2.4rem
|
margin-bottom: 2.4rem
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,36 @@
|
||||||
|
a.tag-plugin.button
|
||||||
|
background: var(--theme)
|
||||||
|
color: var(--alpha100)
|
||||||
|
display: inline-flex
|
||||||
|
align-items: center
|
||||||
|
justify-content: center
|
||||||
|
padding: 0 4px
|
||||||
|
trans1 background
|
||||||
|
margin-top: 8px
|
||||||
|
margin-bottom: 8px
|
||||||
|
svg,img
|
||||||
|
height: 24px
|
||||||
|
width: auto
|
||||||
|
margin: 0 -0.5em 0 1em
|
||||||
|
flex-shrink: 0
|
||||||
|
span
|
||||||
|
text-indent: 0
|
||||||
|
line-height: 24px
|
||||||
|
margin: 8px 1em
|
||||||
|
|
||||||
|
|
||||||
|
a.tag-plugin.button[size='xs']
|
||||||
|
margin: 0
|
||||||
|
border-radius: 2px
|
||||||
|
svg,img
|
||||||
|
margin: 0 2px 0 0
|
||||||
|
height: 1em
|
||||||
|
span
|
||||||
|
margin: 0
|
||||||
|
|
||||||
|
a.tag-plugin.button:hover
|
||||||
|
--theme: $color-hover
|
||||||
|
|
||||||
|
.tag-plugin.grid a.tag-plugin.button
|
||||||
|
width: 100%
|
||||||
|
box-sizing: border-box
|
Loading…
Reference in New Issue