Browse Source

Call IJulia.display_dict with invokelatest

This is required for using printing methods defined in the notebook.
pull/54/head
Takafumi Arakaki 7 years ago
parent
commit
6c0bd2434c
  1. 2
      src/Literate.jl
  2. 14
      test/runtests.jl

2
src/Literate.jl

@ -561,7 +561,7 @@ function execute_notebook(nb) @@ -561,7 +561,7 @@ function execute_notebook(nb)
execute_result["output_type"] = "execute_result"
execute_result["metadata"] = Dict()
execute_result["execution_count"] = execution_count
dd = IJulia.display_dict(r)
dd = Base.invokelatest(IJulia.display_dict, r)
# we need to split some mime types into vectors of lines instead of a single string
for mime in ("image/svg+xml", "text/html")
if haskey(dd, mime)

14
test/runtests.jl

@ -647,6 +647,20 @@ end @@ -647,6 +647,20 @@ end
# verify that inputfile exists
@test_throws ArgumentError Literate.notebook("nonexistent.jl", outdir)
# world time problem with `IJulia.display_dict`
write(inputfile, """
struct VegaLiteRenderable end
Base.show(io::IO, ::MIME"application/vnd.vegalite.v2+json", ::VegaLiteRenderable) =
write(io, \"\"\"
{"encoding":{"x":{"field":"x","type":"quantitative"},"y":{"field":"y","type":"quantitative"}},"data":{"values":[{"x":1,"y":1},{"x":2,"y":3},{"x":3,"y":2}]},"mark":"point"}
\"\"\")
Base.Multimedia.istextmime(::MIME{Symbol("application/vnd.vegalite.v2+json")}) = true
VegaLiteRenderable()
""")
Literate.notebook(inputfile, outdir)
notebook = read(joinpath(outdir, "inputfile.ipynb"), String)
@test occursin("\"application/vnd.vegalite.v2+json\":", notebook)
end
end
end

Loading…
Cancel
Save