Просмотр исходного кода

:sparkles: reformatting youtube urls for embed

undefined
J 5 лет назад
Родитель
Сommit
0c032758d8
1 измененных файлов: 16 добавлений и 5 удалений
  1. 16
    5
      vue-theme/src/components/content-block/block.vue

+ 16
- 5
vue-theme/src/components/content-block/block.vue Просмотреть файл

3
     p place-holder gallery {{ block.gallery }}
3
     p place-holder gallery {{ block.gallery }}
4
 
4
 
5
 .block.embed(v-else-if="block[0].blockName == 'core/embed'")
5
 .block.embed(v-else-if="block[0].blockName == 'core/embed'")
6
-    .youtube(v-if="block[0].attrs.providerNameSlug == 'youtube'")
7
-        p youtube: {{ block[0].attrs.url }}
6
+    figure.youtube(v-if="block[0].attrs.providerNameSlug == 'youtube'").is-provider-youtube.wp-block-youtube
7
+        p youtube: {{ fixYoutubeUrl(block[0].attrs.url) }}
8
         iframe(
8
         iframe(
9
-            :src="block[0].attrs.url"
9
+            :src="fixYoutubeUrl(block[0].attrs.url)"
10
             title="YouTube video player"
10
             title="YouTube video player"
11
             frameborder="0"
11
             frameborder="0"
12
-            allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
13
             allowfullscreen
12
             allowfullscreen
14
-        )
13
+        ).embed--player
15
     .not-youtube(v-else)
14
     .not-youtube(v-else)
16
         p not youtube: {{ block[0].attrs }}
15
         p not youtube: {{ block[0].attrs }}
17
 
16
 
29
     props: {
28
     props: {
30
         block: { required: true }
29
         block: { required: true }
31
     },
30
     },
31
+    methods: {
32
+        fixYoutubeUrl(url) {
33
+            const videoUid = url.split('https://youtu.be/').filter(pieces => pieces.length > 0)[0]
34
+
35
+            return `https://www.youtube.com/embed/${videoUid}`
36
+        }
37
+    },
32
     data() {
38
     data() {
33
         return {
39
         return {
34
         }
40
         }
40
 
46
 
41
 <style lang="postcss">
47
 <style lang="postcss">
42
 .block
48
 .block
49
+    &.embed
50
+        min-height: 40vh
51
+        > figure.youtube, > figure.youtube iframe
52
+            height: 40vh
53
+            width: 100%
43
 </style>
54
 </style>

Загрузка…
Отмена
Сохранить