diff --git a/src/extension.js b/src/extension.js index 93d6698..a407f7a 100644 --- a/src/extension.js +++ b/src/extension.js @@ -22,7 +22,7 @@ function activate(context) { vscode.window.registerWebviewPanelSerializer('polacode', { async deserializeWebviewPanel(_panel, state) { panel = _panel - panel.webview.html = getHtmlContent(htmlPath) + panel.webview.html = getHtmlContent() panel.webview.postMessage({ type: 'restore', innerHTML: state.innerHTML, @@ -42,7 +42,7 @@ function activate(context) { localResourceRoots: [vscode.Uri.file(path.join(context.extensionPath, 'webview'))] }) - panel.webview.html = getHtmlContent(htmlPath) + panel.webview.html = getHtmlContent() const selectionListener = setupSelectionSync() panel.onDidDispose(() => { @@ -129,14 +129,14 @@ function activate(context) { } }) } -} -function getHtmlContent(htmlPath) { - const htmlContent = fs.readFileSync(htmlPath, 'utf-8') - return htmlContent.replace(/script src="([^"]*)"/g, (match, src) => { - const realSource = 'vscode-resource:' + path.resolve(htmlPath, '..', src) - return `script src="${realSource}"` - }) + function getHtmlContent() { + const htmlContent = fs.readFileSync(htmlPath, 'utf-8') + const absolutePath = vscode.Uri.file(context.asAbsolutePath('./webview')) + const webviewPath = panel.webview.asWebviewUri(absolutePath).toString() + + return htmlContent.replace(/{{root}}/g, webviewPath); + } } exports.activate = activate diff --git a/webview/index.html b/webview/index.html index 65df1a8..87a555f 100644 --- a/webview/index.html +++ b/webview/index.html @@ -96,8 +96,8 @@ - - - + + + \ No newline at end of file