46 lines
1.4 KiB
JavaScript
46 lines
1.4 KiB
JavaScript
|
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();
|
||
|
};
|
||
|
}
|