/** * Butterfly * @example * hideInline * {% hideInline content,display,bg,color %} * content不能包含當引號,可用 ' * hideBlock * {% hideBlock display,bg,color %} * content * {% endhideBlock %} * hideToggle * {% hideToggle display,bg,color %} * content * {% endhideToggle %} */ 'use strict' const parseArgs = args => { return args.join(' ').split(',') } const generateStyle = (bg, color) => { let style = 'style="' if (bg) { style += `background-color: ${bg};` } if (color) { style += `color: ${color}` } style += '"' return style } const hideInline = args => { const [content, display = 'Click', bg = false, color = false] = parseArgs(args) const group = generateStyle(bg, color) return `${content}` } const hideBlock = (args, content) => { const [display = 'Click', bg = false, color = false] = parseArgs(args) const group = generateStyle(bg, color) return `
${hexo.render.renderSync({ text: content, engine: 'markdown' })}
` } const hideToggle = (args, content) => { const [display, bg = false, color = false] = parseArgs(args) const group = generateStyle(bg, color) let border = '' if (bg) { border = `style="border: 1px solid ${bg}"` } return `
${display}
${hexo.render.renderSync({ text: content, engine: 'markdown' })}
` } hexo.extend.tag.register('hideInline', hideInline) hexo.extend.tag.register('hideBlock', hideBlock, { ends: true }) hexo.extend.tag.register('hideToggle', hideToggle, { ends: true })