Added ipfs and web+
This commit is contained in:
parent
1122b5130f
commit
c210269181
4 changed files with 7 additions and 5 deletions
|
@ -135,7 +135,7 @@ const embedId = `embed${Math.random().toString().replace(/\D/, "")}`;
|
|||
let tweetHeight = ref(150);
|
||||
|
||||
const requestUrl = new URL(props.url);
|
||||
if (!["http:", "https:", "gopher:", "gemini:", "matrix:", "ipfs:", "ipns:", "finger:"].includes(requestUrl.protocol))
|
||||
if (!["http:", "https:", "gopher:", "gemini:", "matrix:", "ipfs:", "ipns:", "finger:"].includes(requestUrl.protocol) && !requestUrl.protocol.startsWith("web+"))
|
||||
throw new Error("invalid url");
|
||||
|
||||
if (
|
||||
|
|
|
@ -46,7 +46,9 @@ const props = defineProps<{
|
|||
|
||||
const self = props.url.startsWith(local);
|
||||
const url = parseUri(props.url);
|
||||
if (!["http", "https", "gopher", "gemini", "matrix", "ipfs", "ipns", "finger"].includes(url.scheme)) throw new Error("invalid url");
|
||||
if (!["http", "https", "gopher", "gemini", "matrix", "ipfs", "ipns", "finger"].includes(url.scheme) && !url.scheme.startsWith("web+"))
|
||||
throw new Error("invalid url");
|
||||
|
||||
const el = ref();
|
||||
|
||||
useTooltip(el, (showing) => {
|
||||
|
|
|
@ -6,7 +6,7 @@ export function parseUri(uri: string): {
|
|||
fragment: string | null;
|
||||
} {
|
||||
const urlParts = uri.match(
|
||||
/^(\w+):(\/\/)?([^/?#]*)(\/([^?#]*))?(\?([^#]*))?(#(.*))?$/,
|
||||
/^([\w+]+):(\/\/)?([^/?#]*)(\/([^?#]*))?(\?([^#]*))?(#(.*))?$/,
|
||||
);
|
||||
|
||||
if (!urlParts) {
|
||||
|
|
|
@ -674,7 +674,7 @@ export const language = P.createLanguage({
|
|||
]));
|
||||
const parser = P.seq([
|
||||
notLinkLabel,
|
||||
P.regexp(/((https?)|(gemini)|(gopher)|(matrix)|(ipns)|(ipfs)):\/\//),
|
||||
P.regexp(/((https?)|(gemini)|(gopher)|(matrix)|(ipns)|(ipfs)|(finger)|(web\+\w+)):\/\//),
|
||||
innerItem.many(1).text(),
|
||||
]);
|
||||
return new P.Parser<M.MfmUrl | string>((input, index, state) => {
|
||||
|
@ -706,7 +706,7 @@ export const language = P.createLanguage({
|
|||
const parser = P.seq([
|
||||
notLinkLabel,
|
||||
open,
|
||||
P.regexp(/((https?)|(gemini)|(gopher)|(matrix)|(ipns)|(ipfs)):\/\//),
|
||||
P.regexp(/((https?)|(gemini)|(gopher)|(matrix)|(ipns)|(ipfs)|(finger)|(web\+\w+)):\/\//),
|
||||
P.seq([P.notMatch(P.alt([close, space])), P.char], 1).many(1),
|
||||
close,
|
||||
]).text();
|
||||
|
|
Loading…
Reference in a new issue