mirror of
https://github.com/next-theme/hexo-theme-next.git
synced 2026-01-20 19:02:33 +00:00
Add hyperlink support to group-pictures (#143)
This commit is contained in:
parent
4581626dc3
commit
54b4b4cc56
@ -126,7 +126,7 @@ module.exports = ctx => function(args, content) {
|
|||||||
|
|
||||||
content = ctx.render.renderSync({ text: content, engine: 'markdown' });
|
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>`;
|
return `<div class="group-picture">${templates.dispatch(pictures, group, layout)}</div>`;
|
||||||
};
|
};
|
||||||
|
|||||||
@ -4,6 +4,9 @@ require('chai').should();
|
|||||||
const Hexo = require('hexo');
|
const Hexo = require('hexo');
|
||||||
const hexo = new 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', () => {
|
describe('group-pictures', () => {
|
||||||
const groupPicture = require('../../scripts/tags/group-pictures')(hexo);
|
const groupPicture = require('../../scripts/tags/group-pictures')(hexo);
|
||||||
|
|
||||||
@ -13,7 +16,7 @@ describe('group-pictures', () => {
|
|||||||
groupPicture(['3-1'], `
|
groupPicture(['3-1'], `
|
||||||

|

|
||||||

|

|
||||||
`).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>');
|
`).should.eql(`<div class="group-picture"><div class="group-picture-row">${image}${image}${image}</div></div>`);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('layout 5-2', () => {
|
it('layout 5-2', () => {
|
||||||
@ -22,7 +25,7 @@ describe('group-pictures', () => {
|
|||||||

|

|
||||||

|

|
||||||

|

|
||||||
`).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>');
|
`).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', () => {
|
it('remove text', () => {
|
||||||
@ -31,7 +34,22 @@ describe('group-pictures', () => {
|
|||||||
Text
|
Text
|
||||||

|

|
||||||
Text
|
Text
|
||||||
`).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>');
|
`).should.eql(`<div class="group-picture"><div class="group-picture-row">${image}${image}${image}</div></div>`);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('set hyperlinks', () => {
|
||||||
|
groupPicture(['4-3'], `
|
||||||
|

|
||||||
|
[](https://theme-next.js.org/)
|
||||||
|
[](https://theme-next.js.org/)
|
||||||
|
`).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'], `
|
||||||
|

|
||||||
|
[](https://theme-next.js.org/)
|
||||||
|
`).should.eql(`<div class="group-picture"><div class="group-picture-row">${image}${link}${image}</div></div>`);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('no layout', () => {
|
it('no layout', () => {
|
||||||
@ -40,6 +58,6 @@ Text
|
|||||||

|

|
||||||

|

|
||||||

|

|
||||||
`).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>');
|
`).should.eql(`<div class="group-picture"><div class="group-picture-row">${image}${image}${image}</div><div class="group-picture-row">${image}${image}</div></div>`);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user