From 22dc5e37c8a6558404db000fa31111c2e49cc4e7 Mon Sep 17 00:00:00 2001 From: David Anthoff Date: Tue, 31 Dec 2019 16:17:47 -0800 Subject: [PATCH 1/2] Add support for HTML saving via MIME types --- src/mimesave.jl | 14 ++++++++++++++ src/registry.jl | 2 ++ test/files/mimsavetest.html | 1 + test/test_mimesave.jl | 7 ++++++- 4 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 test/files/mimsavetest.html diff --git a/src/mimesave.jl b/src/mimesave.jl index d27c4fb7..8061157e 100644 --- a/src/mimesave.jl +++ b/src/mimesave.jl @@ -42,4 +42,18 @@ function save(file::File{format"EPS"}, data) end end +function save(file::File{format"HTML"}, data) + if showable("application/vnd.julia.fileio.htmlfile", data) + open(file.filename, "w") do s + show(s, "application/vnd.julia.fileio.htmlfile", data) + end + elseif showable("text/html", data) + open(file.filename, "w") do s + show(s, "text/html", data) + end + else + throw(ArgumentError("Argument does not support conversion to HTML.")) + end +end + end diff --git a/src/registry.jl b/src/registry.jl index e477907e..390bd5a1 100644 --- a/src/registry.jl +++ b/src/registry.jl @@ -349,3 +349,5 @@ add_format(format"vegalite", (), [".vegalite"], [:VegaLite]) add_format(format"vega", (), [".vega"], [:VegaLite]) add_format(format"FCS", "FCS", [".fcs"], [:FCSFiles]) + +add_format(format"HTML", (), [".html", ".htm"], [:MimeWriter, SAVE]) diff --git a/test/files/mimsavetest.html b/test/files/mimsavetest.html new file mode 100644 index 00000000..8c17451f --- /dev/null +++ b/test/files/mimsavetest.html @@ -0,0 +1 @@ + diff --git a/test/test_mimesave.jl b/test/test_mimesave.jl index 48fe8c23..08a5b1ee 100644 --- a/test/test_mimesave.jl +++ b/test/test_mimesave.jl @@ -23,11 +23,16 @@ function Base.show(io::IO, m::MIME"image/png", data::MimeSaveTestType) write(io, content) end +function Base.show(io::IO, m::MIME"text/html", data::MimeSaveTestType) + content = read(joinpath(@__DIR__, "files", "mimesavetest.html")) + write(io, content) +end + data = MimeSaveTestType() output_filename = tempname() -for filetype in [".svg", ".pdf", ".eps", ".png"] +for filetype in [".svg", ".pdf", ".eps", ".png", ".html"] try save(output_filename * filetype, data) From d47ff4bee05ed6e4590271419e4c3d16fdb45746 Mon Sep 17 00:00:00 2001 From: David Anthoff Date: Fri, 7 Feb 2020 17:52:41 -0800 Subject: [PATCH 2/2] Fix filename typo --- test/files/{mimsavetest.html => mimesavetest.html} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename test/files/{mimsavetest.html => mimesavetest.html} (100%) diff --git a/test/files/mimsavetest.html b/test/files/mimesavetest.html similarity index 100% rename from test/files/mimsavetest.html rename to test/files/mimesavetest.html