@ecency/render-helper 2.2.10 → 2.2.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/consts/allowed-attributes.const.js +1 -0
- package/lib/consts/allowed-attributes.const.js.map +1 -1
- package/lib/methods/a.method.js +9 -0
- package/lib/methods/a.method.js.map +1 -1
- package/lib/methods/text.method.js +1 -1
- package/lib/methods/text.method.js.map +1 -1
- package/lib/render-helper.js +1 -1
- package/package.json +1 -1
- package/src/consts/allowed-attributes.const.ts +1 -0
- package/src/markdown-2-html.spec.ts +2 -2
- package/src/methods/a.method.ts +11 -2
- package/src/methods/text.method.ts +1 -1
package/package.json
CHANGED
|
@@ -70,7 +70,7 @@ describe('Markdown2Html', () => {
|
|
|
70
70
|
last_update: '2019-05-10T09:15:21',
|
|
71
71
|
body: 'https://www.youtube.com/watch?v=qK3d1eoH-Qs'
|
|
72
72
|
}
|
|
73
|
-
const expected = '<p><a class="markdown-video-link markdown-video-link-youtube" data-embed-src="https://www.youtube.com/embed/qK3d1eoH-Qs?autoplay=1"><img class="no-replace video-thumbnail" src="https://images.ecency.com/p/S5Eokt4BcQdk7EHeT1aYjzebg2hC7hkthT45eMZRVYW6mkGBWKemLWWzXbRhNG7Z3h1qjGS.png?format=match&mode=fit" /><span class="markdown-video-play"></span></a></p>'
|
|
73
|
+
const expected = '<p><a class="markdown-video-link markdown-video-link-youtube" data-embed-src="https://www.youtube.com/embed/qK3d1eoH-Qs?autoplay=1" data-youtube="qK3d1eoH-Qs"><img class="no-replace video-thumbnail" src="https://images.ecency.com/p/S5Eokt4BcQdk7EHeT1aYjzebg2hC7hkthT45eMZRVYW6mkGBWKemLWWzXbRhNG7Z3h1qjGS.png?format=match&mode=fit" /><span class="markdown-video-play"></span></a></p>'
|
|
74
74
|
|
|
75
75
|
expect(markdown2Html(input)).toBe(expected)
|
|
76
76
|
})
|
|
@@ -447,7 +447,7 @@ describe('Markdown2Html', () => {
|
|
|
447
447
|
last_update: '2019-05-10T09:15:21',
|
|
448
448
|
body: 'https://youtu.be/_-6hJ8sltdI'
|
|
449
449
|
}
|
|
450
|
-
const expected = '<p><a class="markdown-video-link markdown-video-link-youtube" data-embed-src="https://www.youtube.com/embed/_-6hJ8sltdI?autoplay=1"><img class="no-replace video-thumbnail" src="https://images.ecency.com/p/S5Eokt4BcQdk7EHeT1aYjzebg2hC7hkthT45eEGc5AMBA14JMjkkxrUAj3mV5QR9D6zfstr.png?format=match&mode=fit" /><span class="markdown-video-play"></span></a></p>'
|
|
450
|
+
const expected = '<p><a class="markdown-video-link markdown-video-link-youtube" data-embed-src="https://www.youtube.com/embed/_-6hJ8sltdI?autoplay=1" data-youtube="_-6hJ8sltdI"><img class="no-replace video-thumbnail" src="https://images.ecency.com/p/S5Eokt4BcQdk7EHeT1aYjzebg2hC7hkthT45eEGc5AMBA14JMjkkxrUAj3mV5QR9D6zfstr.png?format=match&mode=fit" /><span class="markdown-video-play"></span></a></p>'
|
|
451
451
|
|
|
452
452
|
expect(markdown2Html(input)).toBe(expected)
|
|
453
453
|
})
|
package/src/methods/a.method.ts
CHANGED
|
@@ -412,8 +412,9 @@ export function a(el: HTMLElement, forApp: boolean, webp: boolean): void {
|
|
|
412
412
|
const embedSrc = `https://www.youtube.com/embed/${vid}?autoplay=1`
|
|
413
413
|
|
|
414
414
|
el.textContent = ''
|
|
415
|
-
|
|
416
|
-
el.setAttribute('data-embed-src', embedSrc)
|
|
415
|
+
|
|
416
|
+
el.setAttribute('data-embed-src', embedSrc);
|
|
417
|
+
el.setAttribute('data-youtube', vid);
|
|
417
418
|
|
|
418
419
|
const thumbImg = el.ownerDocument.createElement('img')
|
|
419
420
|
thumbImg.setAttribute('class', 'no-replace video-thumbnail')
|
|
@@ -664,6 +665,14 @@ export function a(el: HTMLElement, forApp: boolean, webp: boolean): void {
|
|
|
664
665
|
|
|
665
666
|
if (forApp) {
|
|
666
667
|
el.setAttribute('data-href', href)
|
|
668
|
+
const match = href.match(YOUTUBE_REGEX)
|
|
669
|
+
if (match) {
|
|
670
|
+
const e = YOUTUBE_REGEX.exec(href)
|
|
671
|
+
if (e[1]) {
|
|
672
|
+
const vid = e[1]
|
|
673
|
+
el.setAttribute('data-youtube', vid);
|
|
674
|
+
}
|
|
675
|
+
}
|
|
667
676
|
el.removeAttribute('href')
|
|
668
677
|
} else {
|
|
669
678
|
const externalRegex =/(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig;
|
|
@@ -34,7 +34,7 @@ export function text(node: HTMLElement, forApp: boolean, webp: boolean): void {
|
|
|
34
34
|
const thumbnail = proxifyImageSrc(`https://img.youtube.com/vi/${vid.split('?')[0]}/hqdefault.jpg`, 0, 0, webp ? 'webp' : 'match')
|
|
35
35
|
const embedSrc = `https://www.youtube.com/embed/${vid}?autoplay=1`
|
|
36
36
|
|
|
37
|
-
const attrs = `class="markdown-video-link markdown-video-link-youtube" data-embed-src="${embedSrc}"`
|
|
37
|
+
const attrs = `class="markdown-video-link markdown-video-link-youtube" data-embed-src="${embedSrc}" data-youtube="${vid}"`
|
|
38
38
|
|
|
39
39
|
const thumbImg = node.ownerDocument.createElement('img')
|
|
40
40
|
thumbImg.setAttribute('class', 'no-replace video-thumbnail')
|