Skip to content

Commit ce5c07f

Browse files
add picture tag support
1 parent d9a213b commit ce5c07f

File tree

3 files changed

+29
-1
lines changed

3 files changed

+29
-1
lines changed

.nvmrc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
v21.7.3

packages/optimizer/lib/transformers/Markdown.js

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,11 +72,38 @@ class Markdown {
7272
if (node.tagName === 'img') {
7373
promises.push(this.transformImg(node, params));
7474
}
75+
if(node.tagName === 'picture') {
76+
promises.push(this.transformPicture(node, params));
77+
}
7578
node = tmpNode;
7679
}
7780
return Promise.all(promises);
7881
}
7982

83+
async transformPicture(pictureNode, params) {
84+
const imgNode = firstChildByTag(pictureNode, 'img');
85+
if (!imgNode) {
86+
return;
87+
}
88+
89+
const src = imgNode.attribs && imgNode.attribs.src;
90+
if (!src) {
91+
return;
92+
}
93+
const resolvedSrc = this.pathResolver.resolve(src, params);
94+
let dimensions;
95+
try {
96+
dimensions = await fetchImageDimensions(resolvedSrc);
97+
} catch (error) {
98+
this.log.warn(error.message);
99+
// don't convert images we cannot resolve
100+
return;
101+
}
102+
const ampImgOrAmpAnim = this.createAmpImgOrAmpAnim(dimensions, imgNode);
103+
insertAfter(pictureNode.parent, ampImgOrAmpAnim, pictureNode);
104+
remove(pictureNode);
105+
}
106+
80107
async transformImg(imgNode, params) {
81108
const src = imgNode.attribs && imgNode.attribs.src;
82109
if (!src) {

packages/optimizer/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"name": "@ampproject/toolbox-optimizer",
2+
"name": "@vadiamges-ampproject/toolbox-optimizer",
33
"version": "2.10.1",
44
"description": "Server-side rendering for AMPs.",
55
"main": "index.js",

0 commit comments

Comments
 (0)