src/vs/workbench/contrib/welcome/gettingStarted/browser/gettingStarted.ts/GettingStartedPage/readAndCacheStepMarkdown
class GettingStartedPage:	private async readAndCacheStepMarkdown(path: URI): Promise<string> {
		if (!this.mdCache.has(path)) {
			this.mdCache.set(path, (async () => {
				try {
					const moduleId = JSON.parse(path.query).moduleId;
					if (moduleId) {
						return new Promise<string>(resolve => {
							require([moduleId], content => {
								const markdown = content.default();
								resolve(renderMarkdownDocument(markdown, this.extensionService, this.modeService));
							});
						});
					}
				} catch { }
				try {
					const localizedPath = path.with({ path: path.path.replace(/\.md$/, `.nls.${locale}.md`) });

					const generalizedLocale = locale?.replace(/-.*$/, '');
					const generalizedLocalizedPath = path.with({ path: path.path.replace(/\.md$/, `.nls.${generalizedLocale}.md`) });

					const fileExists = (file: URI) => this.fileService.resolve(file).then(() => true).catch(() => false);

					const [localizedFileExists, generalizedLocalizedFileExists] = await Promise.all([
						fileExists(localizedPath),
						fileExists(generalizedLocalizedPath),
					]);

					const bytes = await this.fileService.readFile(
						localizedFileExists
							? localizedPath
							: generalizedLocalizedFileExists
								? generalizedLocalizedPath
								: path);

					const markdown = bytes.value.toString();
					return renderMarkdownDocument(markdown, this.extensionService, this.modeService);
				} catch (e) {
					this.notificationService.error('Error reading markdown document at `' + path + '`: ' + e);
					return '';
				}
			})());
		}
		return assertIsDefined(this.mdCache.get(path));
	}