mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-01 17:23:35 -05:00
Add setting for enabling using new markdown renderer (#16864)
* Add setting for enabling using new markdown renderer * Use const * Fix circular dependency * Default setting to false
This commit is contained in:
@@ -8,19 +8,22 @@ import { nb } from 'azdata';
|
||||
import { URI } from 'vs/base/common/uri';
|
||||
import { IMarkdownString, removeMarkdownEscapes } from 'vs/base/common/htmlContent';
|
||||
import { IMarkdownRenderResult } from 'vs/editor/browser/core/markdownRenderer';
|
||||
import * as marked from 'sql/base/common/marked/marked';
|
||||
import * as sqlMarked from 'sql/base/common/marked/marked';
|
||||
import * as vsMarked from 'vs/base/common/marked/marked';
|
||||
import { defaultGenerator } from 'vs/base/common/idGenerator';
|
||||
import { revive } from 'vs/base/common/marshalling';
|
||||
import { ImageMimeTypes } from 'sql/workbench/services/notebook/common/contracts';
|
||||
import { IMarkdownStringWithCellAttachments, MarkdownRenderOptionsWithCellAttachments } from 'sql/workbench/contrib/notebook/browser/cellViews/interfaces';
|
||||
import { replaceInvalidLinkPath } from 'sql/workbench/contrib/notebook/common/utils';
|
||||
import { IConfigurationService } from 'vs/platform/configuration/common/configuration';
|
||||
import { useNewMarkdownRendererKey } from 'sql/workbench/contrib/notebook/common/notebookCommon';
|
||||
|
||||
// Based off of HtmlContentRenderer
|
||||
export class NotebookMarkdownRenderer {
|
||||
private _notebookURI: URI;
|
||||
private _baseUrls: string[] = [];
|
||||
|
||||
constructor() {
|
||||
constructor(@IConfigurationService private _configurationService: IConfigurationService) {
|
||||
|
||||
}
|
||||
|
||||
@@ -65,7 +68,8 @@ export class NotebookMarkdownRenderer {
|
||||
if (!this._baseUrls.some(x => x === notebookFolder)) {
|
||||
this._baseUrls.push(notebookFolder);
|
||||
}
|
||||
const renderer = new marked.Renderer({ baseUrl: notebookFolder });
|
||||
const useNewRenderer = this._configurationService.getValue(useNewMarkdownRendererKey);
|
||||
const renderer = useNewRenderer ? new vsMarked.Renderer({ baseUrl: notebookFolder }) : new sqlMarked.Renderer({ baseUrl: notebookFolder });
|
||||
renderer.image = (href: string, title: string, text: string) => {
|
||||
const attachment = findAttachmentIfExists(href, options.cellAttachments);
|
||||
// Attachments are already properly formed, so do not need cleaning. Cleaning only takes into account relative/absolute
|
||||
@@ -178,13 +182,22 @@ export class NotebookMarkdownRenderer {
|
||||
};
|
||||
}
|
||||
|
||||
const markedOptions: marked.MarkedOptions = {
|
||||
sanitize: !markdown.isTrusted,
|
||||
renderer,
|
||||
baseUrl: notebookFolder
|
||||
};
|
||||
if (useNewRenderer) {
|
||||
const markedOptions: vsMarked.MarkedOptions = {
|
||||
sanitize: !markdown.isTrusted,
|
||||
renderer,
|
||||
baseUrl: notebookFolder
|
||||
};
|
||||
element.innerHTML = vsMarked.parse(markdown.value, markedOptions);
|
||||
} else {
|
||||
const markedOptions: sqlMarked.MarkedOptions = {
|
||||
sanitize: !markdown.isTrusted,
|
||||
renderer,
|
||||
baseUrl: notebookFolder
|
||||
};
|
||||
element.innerHTML = sqlMarked.parse(markdown.value, markedOptions);
|
||||
}
|
||||
|
||||
element.innerHTML = marked.parse(markdown.value, markedOptions);
|
||||
signalInnerHTML!();
|
||||
|
||||
return element;
|
||||
|
||||
Reference in New Issue
Block a user