Skip to content

Commit

Permalink
fix(escape*): dont escape urls (discordjs#9958)
Browse files Browse the repository at this point in the history
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
  • Loading branch information
almeidx and kodiakhq[bot] committed Dec 24, 2023
1 parent c4fcee3 commit 0f1e02b
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 2 deletions.
15 changes: 15 additions & 0 deletions packages/formatters/__tests__/escapers.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,13 @@ import {
const testString = "`_Behold!_`\n||___~~***```js\n`use strict`;\nrequire('discord.js');```***~~___||";
const testStringForums =
'# Title\n## Subtitle\n### Subsubtitle\n- Bullet list\n - # Title with bullet\n * Subbullet\n1. Number list\n 1. Sub number list';
const testURLs = [
'https://example.com/name_wow',
'https://example.com/name__wow',
'https://example.com/name_with_underscores',
'https://example.com/name__with__underscores',
'https://example.com/name_with_underscores_and__double__underscores',
];

describe('Markdown escapers', () => {
describe('escapeCodeblock', () => {
Expand Down Expand Up @@ -76,6 +83,10 @@ describe('Markdown escapers', () => {
'This is a test with \\_emojis\\_ <:Frost_ed_Wreath:1053399941210443826> and **bold text**.',
);
});

test('url', () => {
for (const url of testURLs) expect(escapeItalic(url)).toBe(url);
});
});

describe('escapeUnderline', () => {
Expand All @@ -95,6 +106,10 @@ describe('Markdown escapers', () => {
'This is a test with \\_\\_emojis\\_\\_ <:Frost__ed__Wreath:1053399939654352978> and **bold text**.',
);
});

test('url', () => {
for (const url of testURLs) expect(escapeUnderline(url)).toBe(url);
});
});

describe('escapeStrikethrough', () => {
Expand Down
4 changes: 2 additions & 2 deletions packages/formatters/src/escapers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -217,7 +217,7 @@ export function escapeItalic(text: string): string {
return `\\*${match}`;
});
idx = 0;
return newText.replaceAll(/(?<=^|[^_])(?<!<a?:.+)_(?!:\d+>)([^_]|__|$)/g, (_, match) => {
return newText.replaceAll(/(?<=^|[^_])(?<!<a?:.+|https?:\/\/\S+)_(?!:\d+>)([^_]|__|$)/g, (_, match) => {
if (match === '__') return ++idx % 2 ? `\\_${match}` : `${match}\\_`;
return `\\_${match}`;
});
Expand All @@ -243,7 +243,7 @@ export function escapeBold(text: string): string {
*/
export function escapeUnderline(text: string): string {
let idx = 0;
return text.replaceAll(/(?<!<a?:.+)__(_)?(?!:\d+>)/g, (_, match) => {
return text.replaceAll(/(?<!<a?:.+|https?:\/\/\S+)__(_)?(?!:\d+>)/g, (_, match) => {
if (match) return ++idx % 2 ? `${match}\\_\\_` : `\\_\\_${match}`;
return '\\_\\_';
});
Expand Down

0 comments on commit 0f1e02b

Please sign in to comment.