fix(utils): fix Markdown link replacement when link text is same as href (#7464)

This commit is contained in:
Joshua Chen 2022-05-22 19:13:28 +08:00 committed by GitHub
parent 5207e25291
commit 6e62bba30f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 7 additions and 5 deletions

View file

@ -102,10 +102,10 @@ exports[`replaceMarkdownLinks replaces links with same title as URL 1`] = `
{
"brokenMarkdownLinks": [],
"newContent": "
[/docs/foo](foo.md)
[/docs/foo](./foo.md)
[foo.md](/docs/foo)
[.//docs/foo](foo.md)
[./foo.md](/docs/foo)
[foo.md](/docs/foo)
[./foo.md](/docs/foo)
",
}
`;

View file

@ -204,7 +204,6 @@ The following operations are defined for [URI]s:
).toMatchSnapshot();
});
// FIXME
it('replaces links with same title as URL', () => {
expect(
replaceMarkdownLinks({

View file

@ -137,7 +137,10 @@ export function replaceMarkdownLinks<T extends ContentPaths>({
.split('/')
.map((part) => part.replace(/\s/g, '%20'))
.join('/');
modifiedLine = modifiedLine.replace(mdLink, encodedPermalink);
modifiedLine = modifiedLine.replace(
mdMatch[0]!,
mdMatch[0]!.replace(mdLink, encodedPermalink),
);
// Adjust the lastIndex to avoid passing over the next link if the
// newly replaced URL is shorter.
mdRegex.lastIndex += encodedPermalink.length - mdLink.length;