feat: add support for val.town embeds (#6821)
This commit is contained in:
parent
66bac50de3
commit
1acc646534
@ -40,6 +40,9 @@ const RE_TWITTER = /(?:http(?:s)?:\/\/)?(?:(?:w){3}.)?twitter.com/;
|
|||||||
const RE_TWITTER_EMBED =
|
const RE_TWITTER_EMBED =
|
||||||
/^<blockquote[\s\S]*?\shref=["'](https:\/\/twitter.com\/[^"']*)/i;
|
/^<blockquote[\s\S]*?\shref=["'](https:\/\/twitter.com\/[^"']*)/i;
|
||||||
|
|
||||||
|
const RE_VALTOWN =
|
||||||
|
/^https:\/\/(?:www\.)?val.town\/(v|embed)\/[a-zA-Z_$][0-9a-zA-Z_$]+\.[a-zA-Z_$][0-9a-zA-Z_$]+/;
|
||||||
|
|
||||||
const RE_GENERIC_EMBED =
|
const RE_GENERIC_EMBED =
|
||||||
/^<(?:iframe|blockquote)[\s\S]*?\s(?:src|href)=["']([^"']*)["'][\s\S]*?>$/i;
|
/^<(?:iframe|blockquote)[\s\S]*?\s(?:src|href)=["']([^"']*)["'][\s\S]*?>$/i;
|
||||||
|
|
||||||
@ -53,6 +56,7 @@ const ALLOWED_DOMAINS = new Set([
|
|||||||
"gist.github.com",
|
"gist.github.com",
|
||||||
"twitter.com",
|
"twitter.com",
|
||||||
"stackblitz.com",
|
"stackblitz.com",
|
||||||
|
"val.town",
|
||||||
]);
|
]);
|
||||||
|
|
||||||
const createSrcDoc = (body: string) => {
|
const createSrcDoc = (body: string) => {
|
||||||
@ -122,6 +126,14 @@ export const getEmbedLink = (link: string | null | undefined): EmbeddedLink => {
|
|||||||
return { link, aspectRatio, type };
|
return { link, aspectRatio, type };
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const valLink = link.match(RE_VALTOWN);
|
||||||
|
if (valLink) {
|
||||||
|
link =
|
||||||
|
valLink[1] === "embed" ? valLink[0] : valLink[0].replace("/v", "/embed");
|
||||||
|
embeddedLinkCache.set(originalLink, { link, aspectRatio, type });
|
||||||
|
return { link, aspectRatio, type };
|
||||||
|
}
|
||||||
|
|
||||||
if (RE_TWITTER.test(link)) {
|
if (RE_TWITTER.test(link)) {
|
||||||
let ret: EmbeddedLink;
|
let ret: EmbeddedLink;
|
||||||
// assume embed code
|
// assume embed code
|
||||||
|
Loading…
x
Reference in New Issue
Block a user