Skip to content

Commit 9e80b30

Browse files
authored
Merge pull request docker#20351 from dvdksn/fix-getting-started-guides
hugo: move youtube script out of shortcode template
2 parents a9d1948 + 92c31e0 commit 9e80b30

File tree

2 files changed

+54
-55
lines changed

2 files changed

+54
-55
lines changed

layouts/_default/baseof.html

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,59 @@
4444
</div>
4545
</main>
4646
<footer>{{ partialCached "footer.html" . }}</footer>
47+
{{ with (.Store.Get "youtube") }}
48+
<script>
49+
(function() {
50+
var tag = document.createElement('script');
51+
tag.id = "youtube-iframe-api";
52+
tag.src = "https://www.youtube.com/iframe_api";
53+
var firstScriptTag = document.getElementsByTagName('script')[0];
54+
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
55+
56+
window.onYouTubeIframeAPIReady = function() {
57+
var youtubeDivs = document.querySelectorAll(".youtube-video");
58+
for (var i = 0; i < youtubeDivs.length; i++) {
59+
createPlayer(youtubeDivs[i].id, youtubeDivs[i].dataset.videoId);
60+
}
61+
}
62+
63+
function createPlayer(domElementId, videoId) {
64+
new YT.Player(domElementId, {
65+
width: "100%",
66+
height: "100%",
67+
videoId: videoId,
68+
playerVars: {
69+
'rel': 0,
70+
'iv_load_policy': 3,
71+
'enablejsapi': 1,
72+
'origin': window.location.origin
73+
},
74+
events: {
75+
'onStateChange': function (event) {
76+
onPlayerStateChange(event, videoId);
77+
}
78+
}
79+
});
80+
}
81+
82+
function onPlayerStateChange(event, videoId) {
83+
if (window.heap === undefined) return;
84+
85+
var properties = {
86+
video_id: videoId,
87+
page_path: window.location.pathname,
88+
page_title: document.title,
89+
};
90+
91+
if (event.data == YT.PlayerState.PLAYING) {
92+
heap.track("Video Play", properties);
93+
} else if (event.data == YT.PlayerState.PAUSED) {
94+
heap.track("Video Paused", properties);
95+
}
96+
}
97+
})();
98+
</script>
99+
{{ end }}
47100
</body>
48101

49102
</html>

layouts/shortcodes/youtube-embed.html

Lines changed: 1 addition & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -1,56 +1,2 @@
1+
{{- .Page.Store.Set "youtube" true -}}
12
<div id="youtube-player-{{ .Get 0 }}" data-video-id="{{ .Get 0 }}" class="youtube-video aspect-video w-full"></div>
2-
{{ if page.Scratch.Get "youtube-embed" | default "incomplete" | ne "setup" }}
3-
{{ page.Scratch.Set "youtube-embed" "setup" }}
4-
<script>
5-
(function() {
6-
var tag = document.createElement('script');
7-
tag.id = "youtube-iframe-api";
8-
tag.src = "https://www.youtube.com/iframe_api";
9-
var firstScriptTag = document.getElementsByTagName('script')[0];
10-
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
11-
12-
window.onYouTubeIframeAPIReady = function() {
13-
var youtubeDivs = document.querySelectorAll(".youtube-video");
14-
for (var i = 0; i < youtubeDivs.length; i++) {
15-
createPlayer(youtubeDivs[i].id, youtubeDivs[i].dataset.videoId);
16-
}
17-
}
18-
19-
function createPlayer(domElementId, videoId) {
20-
new YT.Player(domElementId, {
21-
width: "100%",
22-
height: "100%",
23-
videoId: videoId,
24-
playerVars: {
25-
'rel': 0,
26-
'iv_load_policy': 3,
27-
'enablejsapi': 1,
28-
'origin': window.location.origin
29-
},
30-
events: {
31-
'onStateChange': function (event) {
32-
onPlayerStateChange(event, videoId);
33-
}
34-
}
35-
});
36-
}
37-
38-
function onPlayerStateChange(event, videoId) {
39-
if (window.heap === undefined) return;
40-
41-
var properties = {
42-
video_id: videoId,
43-
page_path: window.location.pathname,
44-
page_title: document.title,
45-
};
46-
47-
if (event.data == YT.PlayerState.PLAYING) {
48-
heap.track("Video Play", properties);
49-
} else if (event.data == YT.PlayerState.PAUSED) {
50-
heap.track("Video Paused", properties);
51-
}
52-
}
53-
})();
54-
55-
</script>
56-
{{ end }}

0 commit comments

Comments
 (0)