Add hyperlink support to group-pictures (#143)

This commit is contained in:
No.5972 2020-11-19 06:38:50 -06:00 committed by GitHub
parent 4581626dc3
commit 54b4b4cc56
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 23 additions and 5 deletions

View File

@ -126,7 +126,7 @@ module.exports = ctx => function(args, content) {
content = ctx.render.renderSync({ text: content, engine: 'markdown' });
const pictures = content.match(/<img[\s\S]*?>/g);
const pictures = content.match(/(<a[^>]*>((?!<\/a)(.|\n))+<\/a>)|(<img[^>]+>)/g);
return `<div class="group-picture">${templates.dispatch(pictures, group, layout)}</div>`;
};

View File

@ -4,6 +4,9 @@ require('chai').should();
const Hexo = require('hexo');
const hexo = new Hexo();
const link = '<div class="group-picture-column"><a href="https://theme-next.js.org/"><img src="/images/sample.png"></a></div>';
const image = '<div class="group-picture-column"><img src="/images/sample.png"></div>';
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('<div class="group-picture"><div class="group-picture-row"><div class="group-picture-column"><img src="/images/sample.png"></div><div class="group-picture-column"><img src="/images/sample.png"></div><div class="group-picture-column"><img src="/images/sample.png"></div></div></div>');
![](/images/sample.png)`).should.eql(`<div class="group-picture"><div class="group-picture-row">${image}${image}${image}</div></div>`);
});
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('<div class="group-picture"><div class="group-picture-row"><div class="group-picture-column"><img src="/images/sample.png"></div><div class="group-picture-column"><img src="/images/sample.png"></div></div><div class="group-picture-row"><div class="group-picture-column"><img src="/images/sample.png"></div></div><div class="group-picture-row"><div class="group-picture-column"><img src="/images/sample.png"></div><div class="group-picture-column"><img src="/images/sample.png"></div></div></div>');
![](/images/sample.png)`).should.eql(`<div class="group-picture"><div class="group-picture-row">${image}${image}</div><div class="group-picture-row">${image}</div><div class="group-picture-row">${image}${image}</div></div>`);
});
it('remove text', () => {
@ -31,7 +34,22 @@ describe('group-pictures', () => {
Text
![](/images/sample.png)
Text
![](/images/sample.png)`).should.eql('<div class="group-picture"><div class="group-picture-row"><div class="group-picture-column"><img src="/images/sample.png"></div><div class="group-picture-column"><img src="/images/sample.png"></div><div class="group-picture-column"><img src="/images/sample.png"></div></div></div>');
![](/images/sample.png)`).should.eql(`<div class="group-picture"><div class="group-picture-row">${image}${image}${image}</div></div>`);
});
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(`<div class="group-picture"><div class="group-picture-row">${image}${link}</div><div class="group-picture-row">${link}${image}</div></div>`);
});
it('set hyperlinks 2', () => {
groupPicture(['3-1'], `
![](/images/sample.png)
[![](/images/sample.png)](https://theme-next.js.org/)
![](/images/sample.png)`).should.eql(`<div class="group-picture"><div class="group-picture-row">${image}${link}${image}</div></div>`);
});
it('no layout', () => {
@ -40,6 +58,6 @@ Text
![](/images/sample.png)
![](/images/sample.png)
![](/images/sample.png)
![](/images/sample.png)`).should.eql('<div class="group-picture"><div class="group-picture-row"><div class="group-picture-column"><img src="/images/sample.png"></div><div class="group-picture-column"><img src="/images/sample.png"></div><div class="group-picture-column"><img src="/images/sample.png"></div></div><div class="group-picture-row"><div class="group-picture-column"><img src="/images/sample.png"></div><div class="group-picture-column"><img src="/images/sample.png"></div></div></div>');
![](/images/sample.png)`).should.eql(`<div class="group-picture"><div class="group-picture-row">${image}${image}${image}</div><div class="group-picture-row">${image}${image}</div></div>`);
});
});