Prototype allowing scripts to be contributed to markdown preview

This commit is contained in:
Matt Bierner
2017-03-23 22:29:34 -07:00
parent 105e5f2ea8
commit 7bc40aace8
2 changed files with 21 additions and 1 deletions

View File

@@ -29,6 +29,7 @@ export class MDDocumentContentProvider implements vscode.TextDocumentContentProv
private _onDidChange = new vscode.EventEmitter<vscode.Uri>();
private _waiting: boolean = false;
private extraStyles: Array<vscode.Uri> = [];
private extraScripts: Array<vscode.Uri> = [];
constructor(
private engine: MarkdownEngine,
@@ -36,6 +37,10 @@ export class MDDocumentContentProvider implements vscode.TextDocumentContentProv
private cspArbiter: ContentSecurityPolicyArbiter
) { }
public addScript(resource: vscode.Uri): void {
this.extraScripts.push(resource);
}
public addStyle(resource: vscode.Uri): void {
this.extraStyles.push(resource);
}
@@ -110,7 +115,8 @@ export class MDDocumentContentProvider implements vscode.TextDocumentContentProv
}
private getScripts(nonce: string): string {
return [this.getMediaPath('main.js')]
const scripts = [this.getMediaPath('main.js')].concat(this.extraScripts.map(resource => resource.toString()));
return scripts
.map(source => `<script src="${source}" nonce="${nonce}"></script>`)
.join('\n');
}