support mathjax header in plotly backend

This commit is contained in:
Helmut Haensel 2020-05-20 10:54:57 +02:00
parent 593331dec2
commit 8d2939fcae
2 changed files with 8 additions and 1 deletions

View File

@ -374,6 +374,7 @@ function _initialize_backend(pkg::PlotlyBackend)
catch catch
@info "For saving to png with the Plotly backend ORCA has to be installed." @info "For saving to png with the Plotly backend ORCA has to be installed."
end end
push!(_plot_defaults, :include_mathjax => "")
end end
const _plotly_attr = merge_with_base_supported([ const _plotly_attr = merge_with_base_supported([
@ -417,6 +418,7 @@ const _plotly_attr = merge_with_base_supported([
:tick_direction, :tick_direction,
:camera, :camera,
:contour_labels, :contour_labels,
:include_mathjax,
]) ])
const _plotly_seriestype = [ const _plotly_seriestype = [

View File

@ -813,6 +813,11 @@ function plotly_html_head(plt::Plot)
local_file = ("file://" * plotly_local_file_path) local_file = ("file://" * plotly_local_file_path)
plotly = plotly =
use_local_dependencies[] ? local_file : "https://cdn.plot.ly/plotly-latest.min.js" use_local_dependencies[] ? local_file : "https://cdn.plot.ly/plotly-latest.min.js"
include_mathjax = get(plt.attr, :include_mathjax, "")
mathjax_file = include_mathjax != "cdn" ? ("file://" * include_mathjax) : "https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML"
mathjax_head = include_mathjax == "" ? "" : "<script async src=\"$mathjax_file\"></script>\n\t\t"
if isijulia() && !ijulia_initialized[] if isijulia() && !ijulia_initialized[]
# using requirejs seems to be key to load a js depency in IJulia! # using requirejs seems to be key to load a js depency in IJulia!
# https://requirejs.org/docs/start.html # https://requirejs.org/docs/start.html
@ -826,7 +831,7 @@ function plotly_html_head(plt::Plot)
""") """)
ijulia_initialized[] = true ijulia_initialized[] = true
end end
return "<script src=$(repr(plotly))></script>" return "$mathjax_head<script src=$(repr(plotly))></script>"
end end
function plotly_html_body(plt, style = nothing) function plotly_html_body(plt, style = nothing)