From 54b4b4cc56da9408e2b1fe257456fa7add76a51f Mon Sep 17 00:00:00 2001 From: "No.5972" <32865305+No5972@users.noreply.github.com> Date: Thu, 19 Nov 2020 06:38:50 -0600 Subject: [PATCH] Add hyperlink support to group-pictures (#143) --- scripts/tags/group-pictures.js | 2 +- test/tags/group-pictures.js | 26 ++++++++++++++++++++++---- 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/scripts/tags/group-pictures.js b/scripts/tags/group-pictures.js index 0490759..5875f40 100644 --- a/scripts/tags/group-pictures.js +++ b/scripts/tags/group-pictures.js @@ -126,7 +126,7 @@ module.exports = ctx => function(args, content) { content = ctx.render.renderSync({ text: content, engine: 'markdown' }); - const pictures = content.match(//g); + const pictures = content.match(/(]*>((?!<\/a)(.|\n))+<\/a>)|(]+>)/g); return `
${templates.dispatch(pictures, group, layout)}
`; }; diff --git a/test/tags/group-pictures.js b/test/tags/group-pictures.js index 8e7e978..9e0248e 100644 --- a/test/tags/group-pictures.js +++ b/test/tags/group-pictures.js @@ -4,6 +4,9 @@ require('chai').should(); const Hexo = require('hexo'); const hexo = new Hexo(); +const link = '
'; +const image = '
'; + describe('group-pictures', () => { const groupPicture = require('../../scripts/tags/group-pictures')(hexo); @@ -13,7 +16,7 @@ describe('group-pictures', () => { groupPicture(['3-1'], ` ![](/images/sample.png) ![](/images/sample.png) -![](/images/sample.png)`).should.eql('
'); +![](/images/sample.png)`).should.eql(`
${image}${image}${image}
`); }); it('layout 5-2', () => { @@ -22,7 +25,7 @@ describe('group-pictures', () => { ![](/images/sample.png) ![](/images/sample.png) ![](/images/sample.png) -![](/images/sample.png)`).should.eql('
'); +![](/images/sample.png)`).should.eql(`
${image}${image}
${image}
${image}${image}
`); }); it('remove text', () => { @@ -31,7 +34,22 @@ describe('group-pictures', () => { Text ![](/images/sample.png) Text -![](/images/sample.png)`).should.eql('
'); +![](/images/sample.png)`).should.eql(`
${image}${image}${image}
`); + }); + + it('set hyperlinks', () => { + groupPicture(['4-3'], ` +![](/images/sample.png) +[![](/images/sample.png)](https://theme-next.js.org/) +[![](/images/sample.png)](https://theme-next.js.org/) +![](/images/sample.png)`).should.eql(`
${image}${link}
${link}${image}
`); + }); + + it('set hyperlinks 2', () => { + groupPicture(['3-1'], ` +![](/images/sample.png) +[![](/images/sample.png)](https://theme-next.js.org/) +![](/images/sample.png)`).should.eql(`
${image}${link}${image}
`); }); it('no layout', () => { @@ -40,6 +58,6 @@ Text ![](/images/sample.png) ![](/images/sample.png) ![](/images/sample.png) -![](/images/sample.png)`).should.eql('
'); +![](/images/sample.png)`).should.eql(`
${image}${image}${image}
${image}${image}
`); }); });