rittenhop-ghost/versions/5.94.2/node_modules/@tryghost/kg-parser-plugins/lib/cards/image.js

46 lines
1.4 KiB
JavaScript
Raw Normal View History

import {addFigCaptionToPayload, readImageAttributesFromNode} from '../helpers';
export function fromImg() {
return function imgToCard(node, builder, {addSection, nodeFinished}) {
if (node.nodeType !== 1 || node.tagName !== 'IMG') {
return;
}
const payload = readImageAttributesFromNode(node);
const cardSection = builder.createCardSection('image', payload);
addSection(cardSection);
nodeFinished();
};
}
export function fromFigure(options) {
return function figureImgToCard(node, builder, {addSection, nodeFinished}) {
if (node.nodeType !== 1 || node.tagName !== 'FIGURE') {
return;
}
const img = node.querySelector('img');
const kgClass = node.className.match(/kg-width-(wide|full)/);
const grafClass = node.className.match(/graf--layout(FillWidth|OutsetCenter)/);
if (!img) {
return;
}
const payload = readImageAttributesFromNode(img);
if (kgClass) {
payload.cardWidth = kgClass[1];
} else if (grafClass) {
payload.cardWidth = grafClass[1] === 'FillWidth' ? 'full' : 'wide';
}
addFigCaptionToPayload(node, payload, {options});
let cardSection = builder.createCardSection('image', payload);
addSection(cardSection);
nodeFinished();
};
}