ANN: Webview.jl


#1

Hi, I would like to announce the Webview.jl package that displays the contents of a markdown file in a browser window.

So far, and since I’ve yet learned much about the building package system, it does not install the needed library dependency, but for Windows it points the user to where he/she can download the required dll.

Current usage requires that user provides either the full name of the markdown file or the name of a file that lives in a package docs/src directory. It would be very nice if the package could find files like one can by the “?” helping mechanism. It would also be very, very nice if it could be made to display the @docs strings of a function but I do not know how to make it do that.

Any help to address these limitations is more than welcome.


#2

Are you planning on supporting other formats such as svg?

I recently had the problem that accidentally Julia rendered the documentation as Latex when pressing “?”, so that should totally be doable. I think you have to study how the function display works, see here: https://docs.julialang.org/en/v1/base/io-network/#Multimedia-I/O-1

You might also have to create some temporary files, Julia provides functions tempname and mktemp for this.


#3

A helper method like this would be a really cool feature.


#4

But that’s what it already does. You just have to give it the full file name or the file being located in current dir.


#5

The Webview toolkit seems quite powerful but I’m only using it’s facility to display html (either from file or after converting a markdown text into html). I want also to explore the possibility of using it to display images, but have other things to do before that. What I really wanted next is to learn how to extract the @doc strings from functions and display it in the webview browser window. Like we do from Matlab.


#6

Yeah an overload for modules would be nice. But only to avoid joinpath(pathof(Module), "..","..", "README.md")


#7

OK, you can do also

doc(pkgname, "README")

where pkgname is the package name whose readme you want displayed. But note that typeof(pkgname) == Module


#8

You can do:

docmd = Base.Docs.doc("sin")
show(stdout, MIME"text/html"(), docmd)

and then replace “sin” with the function name (as string or as a symbol) and stdout with some other io object.


#9

OK, I see. Thanks, I’ll go for it as time permits.


#10

You can now do

doc(sin)

and see it displayed in the Webview browser window.