/** * timeline * by Jerry */ 'use strict' function timeLineFn (args, content) { const tlBlock = /\n([\w\W\s\S]*?)/g let result = '' let color = '' if (args.length) { args = args.join(' ').split(',') color = args[1] const mdContent = hexo.render.renderSync({ text: args[0], engine: 'markdown' }) result += `
${mdContent}
` } const matches = [] let match while ((match = tlBlock.exec(content)) !== null) { matches.push(match[1]) matches.push(match[2]) } for (let i = 0; i < matches.length; i += 2) { const tlChildTitle = hexo.render.renderSync({ text: matches[i], engine: 'markdown' }) const tlChildContent = hexo.render.renderSync({ text: matches[i + 1], engine: 'markdown' }) const tlTitleHtml = `
${tlChildTitle}
` const tlContentHtml = `
${tlChildContent}
` result += `
${tlTitleHtml + tlContentHtml}
` } return `
${result}
` } hexo.extend.tag.register('timeline', timeLineFn, { ends: true })