feat: improved figure handling (#1801)
This commit is contained in:
parent
dc4b518c56
commit
7180ca6f2f
|
|
@ -7,7 +7,7 @@ module.exports = async (ctx) => {
|
|||
const feed = await parser.parseURL('https://www.theverge.com/rss/index.xml');
|
||||
|
||||
const items = await Promise.all(
|
||||
feed.items.splice(0, 10).map(async (item) => {
|
||||
feed.items.slice(0, 10).map(async (item) => {
|
||||
const response = await axios({
|
||||
method: 'get',
|
||||
url: item.link,
|
||||
|
|
@ -18,12 +18,12 @@ module.exports = async (ctx) => {
|
|||
const content = $('div.c-entry-content');
|
||||
|
||||
// 处理封面图片
|
||||
$('figure.e-image--hero picture > img').each((i, e) => {
|
||||
let src = e.attribs.srcset;
|
||||
src = src.match(/(?<=320w,).*?(?=620w)/g)[0].trim();
|
||||
|
||||
$(`<img referrerpolicy="no-referrer" src='${src}'>`).insertBefore(content[0].childNodes[0]);
|
||||
});
|
||||
const cover = $('meta[property="og:image"]');
|
||||
|
||||
if (cover.length > 0) {
|
||||
$(`<img referrerpolicy="no-referrer" src=${cover[0].attribs.content}>`).insertBefore(content[0].childNodes[0]);
|
||||
}
|
||||
|
||||
// 处理封面视频
|
||||
$('div.l-col__main > div.c-video-embed, div.c-entry-hero > div.c-video-embed').each((i, e) => {
|
||||
|
|
@ -39,7 +39,7 @@ module.exports = async (ctx) => {
|
|||
|
||||
// 处理文章图片
|
||||
content.find('figure.e-image').each((i, e) => {
|
||||
let src;
|
||||
let src, caption;
|
||||
|
||||
// 处理 jpeg, png
|
||||
if ($(e).find('picture > source').length > 0) {
|
||||
|
|
@ -52,7 +52,17 @@ module.exports = async (ctx) => {
|
|||
src = $(e).find('span.e-image__image')[0].attribs['data-original'];
|
||||
}
|
||||
|
||||
$(`<img referrerpolicy="no-referrer" src='${src}'>`).insertBefore(e);
|
||||
// 处理 caption
|
||||
if ($(e).find('span.e-image__meta').length > 0) {
|
||||
caption = $(e)
|
||||
.find('span.e-image__meta')
|
||||
.text();
|
||||
}
|
||||
|
||||
const figure = `<figure><img referrerpolicy="no-referrer" src=${src}>${caption ? `<br><figcaption>${caption}</figcaption>` : ''}</figure>`;
|
||||
|
||||
$(figure).insertBefore(e);
|
||||
|
||||
$(e).remove();
|
||||
});
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue