Open ioannisstavrakakis opened 2 years ago
I does work when using an URL:
:data-uri:
image::https://raw.githubusercontent.com/asciidoctor/asciidoctor-vscode/master/media/preview-light.svg[]
But it does not work when using a relative path:
:data-uri:
image::./media/preview-light.svg[]
Here's the complete stacktrace:
"binread: undefined method `binread' for File
at Function.$$method_missing (https://asciidoctor.vscode-unpkg.net/asciidoctor/asciidoctor-vscode/2.9.3/extension/dist/browser/webpack:/asciidoctor-vscode/node_modules/@asciidoctor/core/dist/browser/asciidoctor.js:3941:1)
at Function.method_missing_stub (https://asciidoctor.vscode-unpkg.net/asciidoctor/asciidoctor-vscode/2.9.3/extension/dist/browser/webpack:/asciidoctor-vscode/node_modules/@asciidoctor/core/dist/browser/asciidoctor.js:1313:1)
at constructor.$$generate_data_uri (https://asciidoctor.vscode-unpkg.net/asciidoctor/asciidoctor-vscode/2.9.3/extension/dist/browser/webpack:/asciidoctor-vscode/node_modules/@asciidoctor/core/dist/browser/asciidoctor.js:25440:48)
at constructor.$$image_uri (https://asciidoctor.vscode-unpkg.net/asciidoctor/asciidoctor-vscode/2.9.3/extension/dist/browser/webpack:/asciidoctor-vscode/node_modules/@asciidoctor/core/dist/browser/asciidoctor.js:25390:1)
at constructor.$$convert_image (https://asciidoctor.vscode-unpkg.net/asciidoctor/asciidoctor-vscode/2.9.3/extension/dist/browser/webpack:/asciidoctor-vscode/node_modules/@asciidoctor/core/dist/browser/asciidoctor.js:37979:1)
at eval (https://asciidoctor.vscode-unpkg.net/asciidoctor/asciidoctor-vscode/2.9.3/extension/dist/browser/webpack:/asciidoctor-vscode/node_modules/@asciidoctor/core/dist/browser/asciidoctor.js:37192:43)
at constructor.$$convert (https://asciidoctor.vscode-unpkg.net/asciidoctor/asciidoctor-vscode/2.9.3/extension/dist/browser/webpack:/asciidoctor-vscode/node_modules/@asciidoctor/core/dist/browser/asciidoctor.js:37215:129)
at constructor.Html5Converter.convert (https://asciidoctor.vscode-unpkg.net/asciidoctor/asciidoctor-vscode/2.9.3/extension/dist/browser/webpack:/asciidoctor-vscode/node_modules/@asciidoctor/core/dist/browser/asciidoctor.js:46819:1)
at AsciidoctorWebViewConverter.convert (https://asciidoctor.vscode-unpkg.net/asciidoctor/asciidoctor-vscode/2.9.3/extension/dist/browser/webpack:/asciidoctor-vscode/src/asciidoctorWebViewConverter.ts:46:31)
at constructor.$$convert (https://asciidoctor.vscode-unpkg.net/asciidoctor/asciidoctor-vscode/2.9.3/extension/dist/browser/webpack:/asciidoctor-vscode/node_modules/@asciidoctor/core/dist/browser/asciidoctor.js:25735:1)
at $$8 (https://asciidoctor.vscode-unpkg.net/asciidoctor/asciidoctor-vscode/2.9.3/extension/dist/browser/webpack:/asciidoctor-vscode/node_modules/@asciidoctor/core/dist/browser/asciidoctor.js:25749:1)
at Object.Opal.yield1 (https://asciidoctor.vscode-unpkg.net/asciidoctor/asciidoctor-vscode/2.9.3/extension/dist/browser/webpack:/asciidoctor-vscode/node_modules/@asciidoctor/core/dist/browser/asciidoctor.js:1455:1)
at Array.$$collect (https://asciidoctor.vscode-unpkg.net/asciidoctor/asciidoctor-vscode/2.9.3/extension/dist/browser/webpack:/asciidoctor-vscode/node_modules/@asciidoctor/core/dist/browser/asciidoctor.js:12181:1)
at Object.Opal.send (https://asciidoctor.vscode-unpkg.net/asciidoctor/asciidoctor-vscode/2.9.3/extension/dist/browser/webpack:/asciidoctor-vscode/node_modules/@asciidoctor/core/dist/browser/asciidoctor.js:1674:1)
at Array.alias (https://asciidoctor.vscode-unpkg.net/asciidoctor/asciidoctor-vscode/2.9.3/extension/dist/browser/webpack:/asciidoctor-vscode/node_modules/@asciidoctor/core/dist/browser/asciidoctor.js:1864:1)
at Opal.send (https://asciidoctor.vscode-unpkg.net/asciidoctor/asciidoctor-vscode/2.9.3/extension/dist/browser/webpack:/asciidoctor-vscode/node_modules/@asciidoctor/core/dist/browser/asciidoctor.js:1674:1)
at constructor.$$content (https://asciidoctor.vscode-unpkg.net/asciidoctor/asciidoctor-vscode/2.9.3/extension/dist/browser/webpack:/asciidoctor-vscode/node_modules/@asciidoctor/core/dist/browser/asciidoctor.js:25742:1)
at Opal.send (https://asciidoctor.vscode-unpkg.net/asciidoctor/asciidoctor-vscode/2.9.3/extension/dist/browser/webpack:/asciidoctor-vscode/node_modules/@asciidoctor/core/dist/browser/asciidoctor.js:1674:1)
at constructor.$$content (https://asciidoctor.vscode-unpkg.net/asciidoctor/asciidoctor-vscode/2.9.3/extension/dist/browser/webpack:/asciidoctor-vscode/node_modules/@asciidoctor/core/dist/browser/asciidoctor.js:28441:1)
at constructor.$$convert_document (https://asciidoctor.vscode-unpkg.net/asciidoctor/asciidoctor-vscode/2.9.3/extension/dist/browser/webpack:/asciidoctor-vscode/node_modules/@asciidoctor/core/dist/browser/asciidoctor.js:37391:1)
at eval (https://asciidoctor.vscode-unpkg.net/asciidoctor/asciidoctor-vscode/2.9.3/extension/dist/browser/webpack:/asciidoctor-vscode/node_modules/@asciidoctor/core/dist/browser/asciidoctor.js:37211:46)
at constructor.$$convert (https://asciidoctor.vscode-unpkg.net/asciidoctor/asciidoctor-vscode/2.9.3/extension/dist/browser/webpack:/asciidoctor-vscode/node_modules/@asciidoctor/core/dist/browser/asciidoctor.js:37215:129)
at constructor.Html5Converter.convert (https://asciidoctor.vscode-unpkg.net/asciidoctor/asciidoctor-vscode/2.9.3/extension/dist/browser/webpack:/asciidoctor-vscode/node_modules/@asciidoctor/core/dist/browser/asciidoctor.js:46819:1)
at AsciidoctorWebViewConverter.convert (https://asciidoctor.vscode-unpkg.net/asciidoctor/asciidoctor-vscode/2.9.3/extension/dist/browser/webpack:/asciidoctor-vscode/src/asciidoctorWebViewConverter.ts:46:31)
at constructor.$$convert (https://asciidoctor.vscode-unpkg.net/asciidoctor/asciidoctor-vscode/2.9.3/extension/dist/browser/webpack:/asciidoctor-vscode/node_modules/@asciidoctor/core/dist/browser/asciidoctor.js:28385:1)
at constructor.Document.convert (https://asciidoctor.vscode-unpkg.net/asciidoctor/asciidoctor-vscode/2.9.3/extension/dist/browser/webpack:/asciidoctor-vscode/node_modules/@asciidoctor/core/dist/browser/asciidoctor.js:42895:1)
at eval (https://asciidoctor.vscode-unpkg.net/asciidoctor/asciidoctor-vscode/2.9.3/extension/dist/browser/webpack:/asciidoctor-vscode/src/asciidocParser.ts:162:37)
at new Promise (<anonymous>)
at AsciidocParser.eval (https://asciidoctor.vscode-unpkg.net/asciidoctor/asciidoctor-vscode/2.9.3/extension/dist/browser/webpack:/asciidoctor-vscode/src/asciidocParser.ts:35:12)
at Generator.next (<anonymous>)
at eval (https://asciidoctor.vscode-unpkg.net/asciidoctor/asciidoctor-vscode/2.9.3/extension/dist/browser/extension.js#vscode-extension:24925:71)
at new Promise (<anonymous>)
at __awaiter (https://asciidoctor.vscode-unpkg.net/asciidoctor/asciidoctor-vscode/2.9.3/extension/dist/browser/extension.js#vscode-extension:24921:12)
at AsciidocParser.convertUsingJavascript (https://asciidoctor.vscode-unpkg.net/asciidoctor/asciidoctor-vscode/2.9.3/extension/dist/browser/extension.js#vscode-extension:24951:16)
at AsciidocParser.eval (https://asciidoctor.vscode-unpkg.net/asciidoctor/asciidoctor-vscode/2.9.3/extension/dist/browser/webpack:/asciidoctor-vscode/src/asciidocParser.ts:349:19)
at Generator.next (<anonymous>)
at eval (https://asciidoctor.vscode-unpkg.net/asciidoctor/asciidoctor-vscode/2.9.3/extension/dist/browser/extension.js#vscode-extension:24925:71)
at new Promise (<anonymous>)
at __awaiter (https://asciidoctor.vscode-unpkg.net/asciidoctor/asciidoctor-vscode/2.9.3/extension/dist/browser/extension.js#vscode-extension:24921:12)
at AsciidocParser.parseText (https://asciidoctor.vscode-unpkg.net/asciidoctor/asciidoctor-vscode/2.9.3/extension/dist/browser/extension.js#vscode-extension:25243:16)
at AsciidocEngine.eval (https://asciidoctor.vscode-unpkg.net/asciidoctor/asciidoctor-vscode/2.9.3/extension/dist/browser/webpack:/asciidoctor-vscode/src/asciidocEngine.ts:63:63)
at Generator.next (<anonymous>)
at fulfilled (https://asciidoctor.vscode-unpkg.net/asciidoctor/asciidoctor-vscode/2.9.3/extension/dist/browser/extension.js#vscode-extension:123344:58)
Since Asciidoctor.js does not support VS code virtual workspaces, we should probably disable this feature or at least add the following definition:
{
"capabilities": {
"virtualWorkspaces": {
"supported": "limited",
"description": "In virtual workspaces, resolving and finding references across files is not supported."
}
}
}
For reference, include::
with a relative target does not work for the same reason.
Please note that we cannot support the vscode.workspace.fs
API because Asciidoctor.js is synchronous (and does not support async code): https://code.visualstudio.com/api/references/vscode-api#FileSystem
I tried the VSC on web and I get "binread: undefined method `binread' for File" and preview is not working at all. But then I delete line 18 :data-uri: and it works.
Originally posted by @ioannisstavrakakis in https://github.com/asciidoctor/asciidoctor-vscode/issues/501#issuecomment-1028072948