fix uri fragment slugification #94508 (#94655)

This commit is contained in:
Ilia Pozdnyakov
2020-04-10 04:21:18 +07:00
committed by GitHub
parent 95bc288b23
commit f3a31a4eeb
2 changed files with 16 additions and 2 deletions

View File

@@ -10,7 +10,7 @@ import * as vscode from 'vscode';
import { MarkdownContributionProvider as MarkdownContributionProvider } from './markdownExtensions'; import { MarkdownContributionProvider as MarkdownContributionProvider } from './markdownExtensions';
import { Slugifier } from './slugify'; import { Slugifier } from './slugify';
import { SkinnyTextDocument } from './tableOfContentsProvider'; import { SkinnyTextDocument } from './tableOfContentsProvider';
import { Schemes, isOfScheme } from './util/links'; import { MarkdownFileExtensions, Schemes, isOfScheme } from './util/links';
const UNICODE_NEWLINE_REGEX = /\u2028|\u2029/g; const UNICODE_NEWLINE_REGEX = /\u2028|\u2029/g;
@@ -251,7 +251,9 @@ export class MarkdownEngine {
} }
} }
if (uri.fragment) { const extname = path.extname(uri.fsPath);
if (uri.fragment && (extname === '' || MarkdownFileExtensions.includes(extname))) {
uri = uri.with({ uri = uri.with({
fragment: this.slugifier.fromHeading(uri.fragment).value fragment: this.slugifier.fromHeading(uri.fragment).value
}); });

View File

@@ -32,3 +32,15 @@ export function getUriForLinkWithKnownExternalScheme(link: string): vscode.Uri |
export function isOfScheme(scheme: string, link: string): boolean { export function isOfScheme(scheme: string, link: string): boolean {
return link.toLowerCase().startsWith(scheme); return link.toLowerCase().startsWith(scheme);
} }
export const MarkdownFileExtensions: readonly string[] = [
'.md',
'.mkd',
'.mdwn',
'.mdown',
'.markdown',
'.markdn',
'.mdtxt',
'.mdtext',
'.workbook',
];