From eabec00675ec0bc6f47b911cf9a656d3c03ec0c9 Mon Sep 17 00:00:00 2001 From: Johannes Rieken Date: Mon, 17 Sep 2018 11:16:19 +0200 Subject: [PATCH] update to marked 0.5.0, #56749 --- src/vs/base/browser/htmlContentRenderer.ts | 4 +- src/vs/base/common/marked/OSSREADME.json | 15 +- src/vs/base/common/marked/marked.d.ts | 391 ++++++++++++------ src/vs/base/common/marked/marked.js | 108 ++--- src/vs/base/test/browser/htmlContent.test.ts | 2 +- .../electron-browser/extensionEditor.ts | 2 +- .../electron-browser/releaseNotesEditor.ts | 2 +- .../electron-browser/walkThroughPart.ts | 2 +- .../node/walkThroughContentProvider.ts | 2 +- .../walkThrough/node/walkThroughInput.ts | 2 +- 10 files changed, 333 insertions(+), 197 deletions(-) diff --git a/src/vs/base/browser/htmlContentRenderer.ts b/src/vs/base/browser/htmlContentRenderer.ts index d5757848fc9..444830a6a4a 100644 --- a/src/vs/base/browser/htmlContentRenderer.ts +++ b/src/vs/base/browser/htmlContentRenderer.ts @@ -9,7 +9,7 @@ import * as DOM from 'vs/base/browser/dom'; import { defaultGenerator } from 'vs/base/common/idGenerator'; import { escape } from 'vs/base/common/strings'; import { removeMarkdownEscapes, IMarkdownString } from 'vs/base/common/htmlContent'; -import { marked, MarkedOptions } from 'vs/base/common/marked/marked'; +import * as marked from 'vs/base/common/marked/marked'; import { IMouseEvent } from 'vs/base/browser/mouseEvent'; import { IDisposable } from 'vs/base/common/lifecycle'; @@ -159,7 +159,7 @@ export function renderMarkdown(markdown: IMarkdownString, options: RenderOptions })); } - const markedOptions: MarkedOptions = { + const markedOptions: marked.MarkedOptions = { sanitize: true, renderer }; diff --git a/src/vs/base/common/marked/OSSREADME.json b/src/vs/base/common/marked/OSSREADME.json index 42d526944b9..671955e8b45 100644 --- a/src/vs/base/common/marked/OSSREADME.json +++ b/src/vs/base/common/marked/OSSREADME.json @@ -1,8 +1,9 @@ // ATTENTION - THIS DIRECTORY CONTAINS THIRD PARTY OPEN SOURCE MATERIALS: - -[{ - "name": "chjj-marked", - "repositoryURL": "https://github.com/npmcomponent/chjj-marked", - "version": "0.3.18", - "license": "MIT" -}] +[ + { + "name": "marked", + "repositoryURL": "https://github.com/markedjs/marked", + "version": "0.5.0", + "license": "MIT" + } +] diff --git a/src/vs/base/common/marked/marked.d.ts b/src/vs/base/common/marked/marked.d.ts index 6d09ea02631..ddb43d56555 100644 --- a/src/vs/base/common/marked/marked.d.ts +++ b/src/vs/base/common/marked/marked.d.ts @@ -3,12 +3,42 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -// Type definitions for Marked -// Project:https://github.com/chjj/marked -// Definitions by:William Orr -// Definitions:https://github.com/borisyankov/DefinitelyTyped +// Type definitions for Marked 0.4 +// Project: https://github.com/markedjs/marked +// Definitions by: William Orr +// BendingBender +// CrossR +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +export as namespace marked; + +export = marked; +/** + * Compiles markdown to HTML. + * + * @param src String of markdown source to be compiled + * @param callback Function called when the markdownString has been fully parsed when using async highlighting + * @return String of compiled HTML + */ +declare function marked(src: string, callback: (error: any | undefined, parseResult: string) => void): string; + +/** + * Compiles markdown to HTML. + * + * @param src String of markdown source to be compiled + * @param options Hash of options + * @param callback Function called when the markdownString has been fully parsed when using async highlighting + * @return String of compiled HTML + */ +declare function marked(src: string, options?: marked.MarkedOptions, callback?: (error: any | undefined, parseResult: string) => void): string; + +declare namespace marked { + /** + * @param src String of markdown source to be compiled + * @param options Hash of options + */ + function lexer(src: string, options?: MarkedOptions): TokensList; -export interface MarkedStatic { /** * Compiles markdown to HTML. * @@ -16,7 +46,7 @@ export interface MarkedStatic { * @param callback Function called when the markdownString has been fully parsed when using async highlighting * @return String of compiled HTML */ - (src: string, callback: Function): string; + function parse(src: string, callback: (error: any | undefined, parseResult: string) => void): string; /** * Compiles markdown to HTML. @@ -26,137 +56,242 @@ export interface MarkedStatic { * @param callback Function called when the markdownString has been fully parsed when using async highlighting * @return String of compiled HTML */ - (src: string, options?: MarkedOptions, callback?: Function): string; + function parse(src: string, options?: MarkedOptions, callback?: (error: any | undefined, parseResult: string) => void): string; /** - * @param src String of markdown source to be compiled + * @param src Tokenized source as array of tokens * @param options Hash of options */ - lexer(src: string, options?: MarkedOptions): any[]; - - /** - * Compiles markdown to HTML. - * - * @param src String of markdown source to be compiled - * @param callback Function called when the markdownString has been fully parsed when using async highlighting - * @return String of compiled HTML - */ - parse(src: string, callback: Function): string; - - /** - * Compiles markdown to HTML. - * - * @param src String of markdown source to be compiled - * @param options Hash of options - * @param callback Function called when the markdownString has been fully parsed when using async highlighting - * @return String of compiled HTML - */ - parse(src: string, options?: MarkedOptions, callback?: Function): string; - - /** - * @param options Hash of options - */ - parser(src: any[], options?: MarkedOptions): string; + function parser(src: TokensList, options?: MarkedOptions): string; /** * Sets the default options. * * @param options Hash of options */ - setOptions(options: MarkedOptions): void; + function setOptions(options: MarkedOptions): typeof marked; - /** - * Custom renderer for marked. - */ - Renderer: Renderer; + class Renderer { + constructor(options?: MarkedOptions); + code(code: string, language: string, isEscaped: boolean): string; + blockquote(quote: string): string; + html(html: string): string; + heading(text: string, level: number, raw: string): string; + hr(): string; + list(body: string, ordered: boolean): string; + listitem(text: string): string; + paragraph(text: string): string; + table(header: string, body: string): string; + tablerow(content: string): string; + tablecell(content: string, flags: { + header: boolean; + align: 'center' | 'left' | 'right' | null; + }): string; + strong(text: string): string; + em(text: string): string; + codespan(code: string): string; + br(): string; + del(text: string): string; + link(href: string, title: string, text: string): string; + image(href: string, title: string, text: string): string; + text(text: string): string; + } + + class Lexer { + rules: Rules; + tokens: TokensList; + constructor(options?: MarkedOptions); + lex(src: string): TokensList; + } + + interface Rules { + [ruleName: string]: RegExp | Rules; + } + + type TokensList = Token[] & { + links: { + [key: string]: { href: string; title: string; } + } + }; + + type Token = + Tokens.Space + | Tokens.Code + | Tokens.Heading + | Tokens.Table + | Tokens.Hr + | Tokens.BlockquoteStart + | Tokens.BlockquoteEnd + | Tokens.ListStart + | Tokens.LooseItemStart + | Tokens.ListItemStart + | Tokens.ListItemEnd + | Tokens.ListEnd + | Tokens.Paragraph + | Tokens.HTML + | Tokens.Text; + + namespace Tokens { + interface Space { + type: 'space'; + } + + interface Code { + type: 'code'; + lang?: string; + text: string; + } + + interface Heading { + type: 'heading'; + depth: number; + text: string; + } + + interface Table { + type: 'table'; + header: string[]; + align: Array<'center' | 'left' | 'right' | null>; + cells: string[][]; + } + + interface Hr { + type: 'hr'; + } + + interface BlockquoteStart { + type: 'blockquote_start'; + } + + interface BlockquoteEnd { + type: 'blockquote_end'; + } + + interface ListStart { + type: 'list_start'; + ordered: boolean; + } + + interface LooseItemStart { + type: 'loose_item_start'; + } + + interface ListItemStart { + type: 'list_item_start'; + } + + interface ListItemEnd { + type: 'list_item_end'; + } + + interface ListEnd { + type: 'list_end'; + } + + interface Paragraph { + type: 'paragraph'; + pre?: boolean; + text: string; + } + + interface HTML { + type: 'html'; + pre: boolean; + text: string; + } + + interface Text { + type: 'text'; + text: string; + } + } + + interface MarkedOptions { + /** + * A prefix URL for any relative link. + */ + baseUrl?: string; + + /** + * Enable GFM line breaks. This option requires the gfm option to be true. + */ + breaks?: boolean; + + /** + * Enable GitHub flavored markdown. + */ + gfm?: boolean; + + /** + * Include an id attribute when emitting headings. + */ + headerIds?: boolean; + + /** + * Set the prefix for header tag ids. + */ + headerPrefix?: string; + + /** + * A function to highlight code blocks. The function takes three arguments: code, lang, and callback. + */ + highlight?(code: string, lang: string, callback?: (error: any | undefined, code: string) => void): string; + + /** + * Set the prefix for code block classes. + */ + langPrefix?: string; + + /** + * Mangle autolinks (). + */ + mangle?: boolean; + + /** + * Conform to obscure parts of markdown.pl as much as possible. Don't fix any of the original markdown bugs or poor behavior. + */ + pedantic?: boolean; + + /** + * Type: object Default: new Renderer() + * + * An object containing functions to render tokens to HTML. + */ + renderer?: Renderer; + + /** + * Sanitize the output. Ignore any HTML that has been input. + */ + sanitize?: boolean; + + /** + * Optionally sanitize found HTML with a sanitizer function. + */ + sanitizer?(html: string): string; + + /** + * Shows an HTML error message when rendering fails. + */ + silent?: boolean; + + /** + * Use smarter list behavior than the original markdown. May eventually be default with the old behavior moved into pedantic. + */ + smartLists?: boolean; + + /** + * Use "smart" typograhic punctuation for things like quotes and dashes. + */ + smartypants?: boolean; + + /** + * Enable GFM tables. This option requires the gfm option to be true. + */ + tables?: boolean; + + /** + * Generate closing slash for self-closing tags (
instead of
) + */ + xhtml?: boolean; + } } - -export interface Renderer { - prototype: MarkedRenderer; - new(): MarkedRenderer; -} - -export interface MarkedRenderer { - image(href: string, title: string, text: string): string; - code(code: string, language: string): string; - blockquote(quote: string): string; - html(html: string): string; - heading(text: string, level: number): string; - hr(): string; - list(body: string, ordered: boolean): string; - listitem(text: string): string; - paragraph(text: string): string; - table(header: string, body: string): string; - tablerow(content: string): string; - tablecell(content: string, flags: ITableFlags): string; - strong(text: string): string; - em(text: string): string; - codespan(code: string): string; - br(): string; - del(text: string): string; - link(href: string, title: string, text: string): string; -} - -export interface ITableFlags { - header: boolean; - align: string; // 'center' || 'left' || 'right' -} - -export interface MarkedOptions { - /** - * Enable GitHub flavored markdown. - */ - gfm?: boolean; - - /** - * Enable GFM tables. This option requires the gfm option to be true. - */ - tables?: boolean; - - /** - * Enable GFM line breaks. This option requires the gfm option to be true. - */ - breaks?: boolean; - - /** - * Conform to obscure parts of markdown.pl as much as possible. Don't fix any of the original markdown bugs or poor behavior. - */ - pedantic?: boolean; - - /** - * Sanitize the output. Ignore any HTML that has been input. - */ - sanitize?: boolean; - - /** - * Use smarter list behavior than the original markdown. May eventually be default with the old behavior moved into pedantic. - */ - smartLists?: boolean; - - /** - * Shows an HTML error message when rendering fails. - */ - silent?: boolean; - - /** - * A function to highlight code blocks. The function takes three arguments:code, lang, and callback. - */ - highlight?(code: string, lang: string, callback?: Function): void; - - /** - * Set the prefix for code block classes. - */ - langPrefix?: string; - - /** - * Use "smart" typograhic punctuation for things like quotes and dashes. - */ - smartypants?: boolean; - - /** - * The renderer to use with marked rendering. - */ - renderer?: any; -} - -export declare var marked: MarkedStatic; \ No newline at end of file diff --git a/src/vs/base/common/marked/marked.js b/src/vs/base/common/marked/marked.js index 92e7aaa8b53..480ea6a5b63 100644 --- a/src/vs/base/common/marked/marked.js +++ b/src/vs/base/common/marked/marked.js @@ -4,9 +4,7 @@ * https://github.com/markedjs/marked */ -var __marked_exports; - -; (function (root) { +;(function(root) { 'use strict'; /** @@ -137,7 +135,7 @@ block.pedantic = merge({}, block.normal, { function Lexer(options) { this.tokens = []; - this.tokens.links = {}; + this.tokens.links = Object.create(null); this.options = options || marked.defaults; this.rules = block.normal; @@ -193,6 +191,9 @@ Lexer.prototype.token = function(src, top) { bull, b, item, + listStart, + listItems, + t, space, i, tag, @@ -318,15 +319,19 @@ Lexer.prototype.token = function(src, top) { bull = cap[2]; isordered = bull.length > 1; - this.tokens.push({ + listStart = { type: 'list_start', ordered: isordered, - start: isordered ? +bull : '' - }); + start: isordered ? +bull : '', + loose: false + }; + + this.tokens.push(listStart); // Get each top-level item. cap = cap[0].match(this.rules.item); + listItems = []; next = false; l = cap.length; i = 0; @@ -367,6 +372,10 @@ Lexer.prototype.token = function(src, top) { if (!loose) loose = next; } + if (loose) { + listStart.loose = true; + } + // Check for task list items istask = /^\[[ xX]\] /.test(item); ischecked = undefined; @@ -375,13 +384,15 @@ Lexer.prototype.token = function(src, top) { item = item.replace(/^\[[ xX]\] +/, ''); } - this.tokens.push({ - type: loose - ? 'loose_item_start' - : 'list_item_start', + t = { + type: 'list_item_start', task: istask, - checked: ischecked - }); + checked: ischecked, + loose: loose + }; + + listItems.push(t); + this.tokens.push(t); // Recurse. this.token(item, false); @@ -391,6 +402,14 @@ Lexer.prototype.token = function(src, top) { }); } + if (listStart.loose) { + l = listItems.length; + i = 0; + for (; i < l; i++) { + listItems[i].loose = true; + } + } + this.tokens.push({ type: 'list_end' }); @@ -521,10 +540,10 @@ var inline = { link: /^!?\[(label)\]\(href(?:\s+(title))?\s*\)/, reflink: /^!?\[(label)\]\[(?!\s*\])((?:\\[\[\]]?|[^\[\]\\])+)\]/, nolink: /^!?\[(?!\s*\])((?:\[[^\[\]]*\]|\\[\[\]]|[^\[\]])*)\](?:\[\])?/, - strong: /^__([^\s][\s\S]*?[^\s])__(?!_)|^\*\*([^\s][\s\S]*?[^\s])\*\*(?!\*)|^__([^\s])__(?!_)|^\*\*([^\s])\*\*(?!\*)/, - em: /^_([^\s][\s\S]*?[^\s_])_(?!_)|^_([^\s_][\s\S]*?[^\s])_(?!_)|^\*([^\s][\s\S]*?[^\s*])\*(?!\*)|^\*([^\s*][\s\S]*?[^\s])\*(?!\*)|^_([^\s_])_(?!_)|^\*([^\s*])\*(?!\*)/, + strong: /^__([^\s])__(?!_)|^\*\*([^\s])\*\*(?!\*)|^__([^\s][\s\S]*?[^\s])__(?!_)|^\*\*([^\s][\s\S]*?[^\s])\*\*(?!\*)/, + em: /^_([^\s_])_(?!_)|^\*([^\s*"<\[])\*(?!\*)|^_([^\s][\s\S]*?[^\s_])_(?!_)|^_([^\s_][\s\S]*?[^\s])_(?!_)|^\*([^\s"<\[][\s\S]*?[^\s*])\*(?!\*)|^\*([^\s*"<\[][\s\S]*?[^\s])\*(?!\*)/, code: /^(`+)\s*([\s\S]*?[^`]?)\s*\1(?!`)/, - br: /^ {2,}\n(?!\s*$)/, + br: /^( {2,}|\\)\n(?!\s*$)/, del: noop, text: /^[\s\S]+?(?=[\\]?|[^\s<>\\])*>|(?:\\[()]?|\([^\s\x00-\x1f()\\]*\)|[^\s\x00-\x1f()\\])*?)/; +inline._href = /\s*(<(?:\\[<>]?|[^\s<>\\])*>|(?:\\[()]?|\([^\s\x00-\x1f\\]*\)|[^\s\x00-\x1f()\\])*?)/; inline._title = /"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/; inline.link = edit(inline.link) @@ -590,7 +609,7 @@ inline.gfm = merge({}, inline.normal, { .replace('email', inline._email) .getRegex(), _backpedal: /(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/, - del: /^~~(?=\S)([\s\S]*?\S)~~/, + del: /^~+(?=\S)([\s\S]*?\S)~+/, text: edit(inline.text) .replace(']|', '~]|') .replace('|', '|https?://|ftp://|www\\.|[a-zA-Z0-9.!#$%&\'*+/=?^_`{\\|}~-]+@|') @@ -657,7 +676,8 @@ InlineLexer.prototype.output = function(src) { text, href, title, - cap; + cap, + prevCapZero; while (src) { // escape @@ -683,7 +703,10 @@ InlineLexer.prototype.output = function(src) { // url (gfm) if (!this.inLink && (cap = this.rules.url.exec(src))) { - cap[0] = this.rules._backpedal.exec(cap[0])[0]; + do { + prevCapZero = cap[0]; + cap[0] = this.rules._backpedal.exec(cap[0])[0]; + } while (prevCapZero !== cap[0]); src = src.substring(cap[0].length); if (cap[2] === '@') { text = escape(cap[0]); @@ -1219,30 +1242,22 @@ Parser.prototype.tok = function() { } case 'list_item_start': { body = ''; + var loose = this.token.loose; if (this.token.task) { body += this.renderer.checkbox(this.token.checked); } while (this.next().type !== 'list_item_end') { - body += this.token.type === 'text' + body += !loose && this.token.type === 'text' ? this.parseText() : this.tok(); } return this.renderer.listitem(body); } - case 'loose_item_start': { - body = ''; - - while (this.next().type !== 'list_item_end') { - body += this.tok(); - } - - return this.renderer.listitem(body); - } case 'html': { - // TODO@matt parse inline content if parameter markdown=1 + // TODO parse inline content if parameter markdown=1 return this.renderer.html(this.token.text); } case 'paragraph': { @@ -1547,27 +1562,12 @@ marked.InlineLexer = InlineLexer; marked.inlineLexer = InlineLexer.output; marked.parse = marked; -__marked_exports = marked; -}).call(this); - -// ESM-comment-begin -define([], function() { -return { - marked: __marked_exports -}; -}); -// ESM-comment-end - -// ESM-uncomment-begin -// export var marked = __marked_exports; -// export var Parser = __marked_exports.Parser; -// export var parser = __marked_exports.parser; -// export var Renderer = __marked_exports.Renderer; -// export var TextRenderer = __marked_exports.TextRenderer; -// export var Lexer = __marked_exports.Lexer; -// export var lexer = __marked_exports.lexer; -// export var InlineLexer = __marked_exports.InlineLexer; -// export var inlineLexer = __marked_exports.inlineLexer; -// export var parse = __marked_exports.parse; -// ESM-uncomment-end +if (typeof module !== 'undefined' && typeof exports === 'object') { + module.exports = marked; +} else if (typeof define === 'function' && define.amd) { + define(function() { return marked; }); +} else { + root.marked = marked; +} +})(this || (typeof window !== 'undefined' ? window : global)); \ No newline at end of file diff --git a/src/vs/base/test/browser/htmlContent.test.ts b/src/vs/base/test/browser/htmlContent.test.ts index 8d091414f99..bf2cd6ea94e 100644 --- a/src/vs/base/test/browser/htmlContent.test.ts +++ b/src/vs/base/test/browser/htmlContent.test.ts @@ -5,7 +5,7 @@ 'use strict'; import * as assert from 'assert'; -import { marked } from 'vs/base/common/marked/marked'; +import * as marked from 'vs/base/common/marked/marked'; import { renderMarkdown, renderText, renderFormattedText } from 'vs/base/browser/htmlContentRenderer'; suite('HtmlContent', () => { diff --git a/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.ts b/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.ts index c914d83b7e2..487436a01e8 100644 --- a/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.ts +++ b/src/vs/workbench/parts/extensions/electron-browser/extensionEditor.ts @@ -8,7 +8,7 @@ import 'vs/css!./media/extensionEditor'; import { localize } from 'vs/nls'; import { TPromise, Promise } from 'vs/base/common/winjs.base'; -import { marked } from 'vs/base/common/marked/marked'; +import * as marked from 'vs/base/common/marked/marked'; import { createCancelablePromise } from 'vs/base/common/async'; import * as arrays from 'vs/base/common/arrays'; import { OS } from 'vs/base/common/platform'; diff --git a/src/vs/workbench/parts/update/electron-browser/releaseNotesEditor.ts b/src/vs/workbench/parts/update/electron-browser/releaseNotesEditor.ts index 88110f40e35..7abdf991a78 100644 --- a/src/vs/workbench/parts/update/electron-browser/releaseNotesEditor.ts +++ b/src/vs/workbench/parts/update/electron-browser/releaseNotesEditor.ts @@ -6,7 +6,7 @@ 'use strict'; import { onUnexpectedError } from 'vs/base/common/errors'; -import { marked } from 'vs/base/common/marked/marked'; +import * as marked from 'vs/base/common/marked/marked'; import { OS } from 'vs/base/common/platform'; import { URI } from 'vs/base/common/uri'; import { TPromise } from 'vs/base/common/winjs.base'; diff --git a/src/vs/workbench/parts/welcome/walkThrough/electron-browser/walkThroughPart.ts b/src/vs/workbench/parts/welcome/walkThrough/electron-browser/walkThroughPart.ts index 54372b51861..47aadb9f8e6 100644 --- a/src/vs/workbench/parts/welcome/walkThrough/electron-browser/walkThroughPart.ts +++ b/src/vs/workbench/parts/welcome/walkThrough/electron-browser/walkThroughPart.ts @@ -16,7 +16,7 @@ import { BaseEditor } from 'vs/workbench/browser/parts/editor/baseEditor'; import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry'; import { WalkThroughInput } from 'vs/workbench/parts/welcome/walkThrough/node/walkThroughInput'; import { IOpenerService } from 'vs/platform/opener/common/opener'; -import { marked } from 'vs/base/common/marked/marked'; +import * as marked from 'vs/base/common/marked/marked'; import { IModelService } from 'vs/editor/common/services/modelService'; import { CodeEditorWidget } from 'vs/editor/browser/widget/codeEditorWidget'; import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; diff --git a/src/vs/workbench/parts/welcome/walkThrough/node/walkThroughContentProvider.ts b/src/vs/workbench/parts/welcome/walkThrough/node/walkThroughContentProvider.ts index 04ed9af895e..412a4cd9ba3 100644 --- a/src/vs/workbench/parts/welcome/walkThrough/node/walkThroughContentProvider.ts +++ b/src/vs/workbench/parts/welcome/walkThrough/node/walkThroughContentProvider.ts @@ -13,7 +13,7 @@ import { ITextFileService } from 'vs/workbench/services/textfile/common/textfile import { ITextModel, DefaultEndOfLine, EndOfLinePreference, ITextBufferFactory } from 'vs/editor/common/model'; import { IModeService } from 'vs/editor/common/services/modeService'; import { IWorkbenchContribution } from 'vs/workbench/common/contributions'; -import { marked } from 'vs/base/common/marked/marked'; +import * as marked from 'vs/base/common/marked/marked'; import { Schemas } from 'vs/base/common/network'; import { Range } from 'vs/editor/common/core/range'; diff --git a/src/vs/workbench/parts/welcome/walkThrough/node/walkThroughInput.ts b/src/vs/workbench/parts/welcome/walkThrough/node/walkThroughInput.ts index 12027989976..cf18702cbd9 100644 --- a/src/vs/workbench/parts/welcome/walkThrough/node/walkThroughInput.ts +++ b/src/vs/workbench/parts/welcome/walkThrough/node/walkThroughInput.ts @@ -11,7 +11,7 @@ import { URI } from 'vs/base/common/uri'; import { IReference, IDisposable, dispose } from 'vs/base/common/lifecycle'; import { telemetryURIDescriptor } from 'vs/platform/telemetry/common/telemetryUtils'; import { ITextModelService } from 'vs/editor/common/services/resolverService'; -import { marked } from 'vs/base/common/marked/marked'; +import * as marked from 'vs/base/common/marked/marked'; import { Schemas } from 'vs/base/common/network'; import { IHashService } from 'vs/workbench/services/hash/common/hashService';