mirror of
https://github.com/hedgedoc/hedgedoc.git
synced 2025-05-14 15:14:56 -04:00

* Change copyright year from 2020 to 2021 Signed-off-by: Tilman Vatteroth <tilman.vatteroth@tu-dortmund.de> * Change copyright year in jetbrains copyright template Signed-off-by: Tilman Vatteroth <tilman.vatteroth@tu-dortmund.de>
25 lines
1,000 B
TypeScript
25 lines
1,000 B
TypeScript
/*
|
|
* SPDX-FileCopyrightText: 2021 The HedgeDoc developers (see AUTHORS file)
|
|
*
|
|
* SPDX-License-Identifier: AGPL-3.0-only
|
|
*/
|
|
|
|
import { RegexOptions } from '../../../../external-types/markdown-it-regex/interface'
|
|
|
|
const protocolRegex = /(?:http(?:s)?:\/\/)?/
|
|
const subdomainRegex = /(?:www.)?/
|
|
const pathRegex = /(?:youtube(?:-nocookie)?\.com\/(?:[^\\/]+\/.+\/|(?:v|e(?:mbed)?)\/|.*[?&]v=)|youtu\.be\/)/
|
|
const idRegex = /([^"&?\\/\s]{11})/
|
|
const tailRegex = /(?:[?&#].*)?/
|
|
const youtubeVideoUrlRegex = new RegExp(`(?:${protocolRegex.source}${subdomainRegex.source}${pathRegex.source}${idRegex.source}${tailRegex.source})`)
|
|
const linkRegex = new RegExp(`^${youtubeVideoUrlRegex.source}$`, 'i')
|
|
|
|
export const replaceYouTubeLink: RegexOptions = {
|
|
name: 'youtube-link',
|
|
regex: linkRegex,
|
|
replace: (match) => {
|
|
// ESLint wants to collapse this tag, but then the tag won't be valid html anymore.
|
|
// noinspection CheckTagEmptyBody
|
|
return `<app-youtube id="${match}"></app-youtube>`
|
|
}
|
|
}
|