From 3f8771a15ec05407960ef65c5c78d84660132877 Mon Sep 17 00:00:00 2001 From: Tilman Vatteroth Date: Mon, 6 Feb 2023 12:11:51 +0100 Subject: [PATCH] fix(frontend): simplify asciinema regex Signed-off-by: Tilman Vatteroth --- .../asciinema/replace-asciinema-link.test.ts | 6 ++++++ .../asciinema/replace-asciinema-link.ts | 9 +-------- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/frontend/src/extensions/extra-integrations/asciinema/replace-asciinema-link.test.ts b/frontend/src/extensions/extra-integrations/asciinema/replace-asciinema-link.test.ts index 759a1a315..e42ba4361 100644 --- a/frontend/src/extensions/extra-integrations/asciinema/replace-asciinema-link.test.ts +++ b/frontend/src/extensions/extra-integrations/asciinema/replace-asciinema-link.test.ts @@ -25,6 +25,12 @@ describe('Replace asciinema link', () => { ) }) + it('will replace a valid URL with appendix', () => { + expect(markdownIt.renderInline('https://asciinema.org/a/123981234?a=1')).toBe( + `` + ) + }) + it("won't replace an URL without path", () => { expect(markdownIt.renderInline('https://asciinema.org/123981234')).toBe(`https://asciinema.org/123981234`) }) diff --git a/frontend/src/extensions/extra-integrations/asciinema/replace-asciinema-link.ts b/frontend/src/extensions/extra-integrations/asciinema/replace-asciinema-link.ts index 0085d652b..ea3640cda 100644 --- a/frontend/src/extensions/extra-integrations/asciinema/replace-asciinema-link.ts +++ b/frontend/src/extensions/extra-integrations/asciinema/replace-asciinema-link.ts @@ -8,14 +8,7 @@ import { AsciinemaMarkdownExtension } from './asciinema-markdown-extension' import type MarkdownIt from 'markdown-it' import markdownItRegex from 'markdown-it-regex' -const protocolRegex = /(?:http(?:s)?:\/\/)?/ -const domainRegex = /(?:asciinema\.org\/a\/)/ -const idRegex = /(\d+)/ -const tailRegex = /(?:[./?#].*)?/ -const asciinemaUrlRegex = new RegExp( - `^(?:${protocolRegex.source}${domainRegex.source}${idRegex.source}${tailRegex.source})$`, - 'i' -) +const asciinemaUrlRegex = /^https?:\/\/asciinema\.org\/a\/(\d+)(?:\?.*)?$/i const replaceAsciinemaLink: RegexOptions = { name: 'asciinema-link',