hexo-theme-next
Version:
Elegant and powerful theme for Hexo.
21 lines (18 loc) • 786 B
JavaScript
/**
* link-grid.js | https://theme-next.js.org/docs/tag-plugins/link-grid
*/
;
module.exports = function([image = '/images/avatar.gif', delimiter = '|', comment = '%'], content) {
const links = content.split('\n').filter(line => line.trim() !== '').map(line => {
const item = line.split(delimiter).map(arg => arg.trim());
if (item[0][0] === comment) return '';
const imageSource = item[3] || image;
const hasExtension = /\.[^/]+$/.test(imageSource);
return `<div class="link-grid-container">
<object class="link-grid-image" ${hasExtension ? '' : 'type="image/jpeg" '}data="${imageSource}"></object>
<p>${item[0]}</p><p>${item[2] || item[1]}</p>
<a href="${item[1]}"></a>
</div>`;
});
return `<div class="link-grid">${links.join('')}</div>`;
};