From 443d80ccfa61ed95306247f15c27798488ff0926 Mon Sep 17 00:00:00 2001 From: Sebastian Benz Date: Fri, 20 Mar 2020 21:29:46 +0100 Subject: [PATCH] Don't separate keyframes for AMP Stories (#653) Fixes #652 --- .../lib/transformers/SeparateKeyframes.js | 7 ++++ .../ignores_amp_stories/expected_output.html | 40 ++++++++++++++++++ .../ignores_amp_stories/input.html | 41 +++++++++++++++++++ .../moves_keyframes/input.html | 2 +- 4 files changed, 89 insertions(+), 1 deletion(-) create mode 100644 packages/optimizer/spec/transformers/valid/SeparateKeyframes/ignores_amp_stories/expected_output.html create mode 100644 packages/optimizer/spec/transformers/valid/SeparateKeyframes/ignores_amp_stories/input.html diff --git a/packages/optimizer/lib/transformers/SeparateKeyframes.js b/packages/optimizer/lib/transformers/SeparateKeyframes.js index eaf970651..26c16782b 100644 --- a/packages/optimizer/lib/transformers/SeparateKeyframes.js +++ b/packages/optimizer/lib/transformers/SeparateKeyframes.js @@ -61,6 +61,9 @@ class SeparateKeyframes { const head = firstChildByTag(html, 'head'); if (!head) return; const body = firstChildByTag(html, 'body') || head; + if (this.isAmpStory(body)) { + return; + } let stylesCustomTag; let stylesKeyframesTag; @@ -197,6 +200,10 @@ class SeparateKeyframes { this.log_.warn(`Found invalid keyframe property '${ property}' in '${name}' not moving to style[amp-keyframes]`); } + + isAmpStory(body) { + return body.children.some((child) => child.tagName === 'amp-story'); + } } module.exports = SeparateKeyframes; diff --git a/packages/optimizer/spec/transformers/valid/SeparateKeyframes/ignores_amp_stories/expected_output.html b/packages/optimizer/spec/transformers/valid/SeparateKeyframes/ignores_amp_stories/expected_output.html new file mode 100644 index 000000000..d2d2c255a --- /dev/null +++ b/packages/optimizer/spec/transformers/valid/SeparateKeyframes/ignores_amp_stories/expected_output.html @@ -0,0 +1,40 @@ + + + + + + My Story + + + + + + + + + + + +

Hello World

+

This is the cover page of this story.

+
+
+ + + +

First Page

+

This is the first page of this story.

+
+
+ + + +

Second Page

+

This is the second page of this story.

+
+
+
+ + \ No newline at end of file diff --git a/packages/optimizer/spec/transformers/valid/SeparateKeyframes/ignores_amp_stories/input.html b/packages/optimizer/spec/transformers/valid/SeparateKeyframes/ignores_amp_stories/input.html new file mode 100644 index 000000000..c8700d51a --- /dev/null +++ b/packages/optimizer/spec/transformers/valid/SeparateKeyframes/ignores_amp_stories/input.html @@ -0,0 +1,41 @@ + + + + + + My Story + + + + + + + + + + + +

Hello World

+

This is the cover page of this story.

+
+
+ + + +

First Page

+

This is the first page of this story.

+
+
+ + + +

Second Page

+

This is the second page of this story.

+
+
+
+ + diff --git a/packages/optimizer/spec/transformers/valid/SeparateKeyframes/moves_keyframes/input.html b/packages/optimizer/spec/transformers/valid/SeparateKeyframes/moves_keyframes/input.html index 56b803164..d8f0aed95 100644 --- a/packages/optimizer/spec/transformers/valid/SeparateKeyframes/moves_keyframes/input.html +++ b/packages/optimizer/spec/transformers/valid/SeparateKeyframes/moves_keyframes/input.html @@ -13,4 +13,4 @@

I should come before style[amp-keyframes]

- \ No newline at end of file +