23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
# File 'lib/al_charts.rb', line 23
def render(context)
site = context.registers[:site]
return '' unless site
page = context.registers[:page] || context['page'] || {}
cfg = site.config
libs = cfg['third_party_libraries'] || {}
baseurl = cfg['baseurl'] || ''
out = []
if truthy?(nested_value(page, 'mermaid', 'enabled'))
out << %(<script defer src="#{libs.dig('mermaid', 'url', 'js')}" integrity="#{libs.dig('mermaid', 'integrity', 'js')}" crossorigin="anonymous"></script>)
if truthy?(nested_value(page, 'mermaid', 'zoomable'))
out << %(<script defer src="#{libs.dig('d3', 'url', 'js')}" integrity="#{libs.dig('d3', 'integrity', 'js')}" crossorigin="anonymous"></script>)
end
out << %(<script defer src="#{baseurl}/assets/al_charts/js/mermaid-setup.js" type="text/javascript"></script>)
end
if truthy?(page['code_diff'])
out << %(<script src="#{libs.dig('diff2html', 'url', 'js')}" integrity="#{libs.dig('diff2html', 'integrity', 'js')}" crossorigin="anonymous"></script>)
out << %(<script defer src="#{baseurl}/assets/al_charts/js/diff2html-setup.js" type="text/javascript"></script>)
end
if truthy?(page['map'])
out << %(<script src="#{libs.dig('leaflet', 'url', 'js')}" integrity="#{libs.dig('leaflet', 'integrity', 'js')}" crossorigin="anonymous"></script>)
out << %(<script defer src="#{baseurl}/assets/al_charts/js/leaflet-setup.js" type="text/javascript"></script>)
end
if truthy?(nested_value(page, 'chart', 'chartjs'))
out << %(<script defer src="#{libs.dig('chartjs', 'url', 'js')}" integrity="#{libs.dig('chartjs', 'integrity', 'js')}" crossorigin="anonymous"></script>)
out << %(<script defer src="#{baseurl}/assets/al_charts/js/chartjs-setup.js" type="text/javascript"></script>)
end
if truthy?(nested_value(page, 'chart', 'echarts'))
out << %(<script src="#{libs.dig('echarts', 'url', 'js', 'library')}" integrity="#{libs.dig('echarts', 'integrity', 'js', 'library')}" crossorigin="anonymous"></script>)
if truthy?(cfg['enable_darkmode'])
out << %(<script src="#{libs.dig('echarts', 'url', 'js', 'dark_theme')}" integrity="#{libs.dig('echarts', 'integrity', 'js', 'dark_theme')}" crossorigin="anonymous"></script>)
end
out << %(<script defer src="#{baseurl}/assets/al_charts/js/echarts-setup.js" type="text/javascript"></script>)
end
if truthy?(nested_value(page, 'chart', 'plotly'))
out << %(<script defer src="#{libs.dig('plotly', 'url', 'js')}" integrity="#{libs.dig('plotly', 'integrity', 'js')}" crossorigin="anonymous"></script>)
out << %(<script defer src="#{baseurl}/assets/al_charts/js/plotly-setup.js" type="text/javascript"></script>)
end
if truthy?(nested_value(page, 'chart', 'vega_lite'))
out << %(<script defer src="#{libs.dig('vega', 'url', 'js')}" integrity="#{libs.dig('vega', 'integrity', 'js')}" crossorigin="anonymous"></script>)
out << %(<script defer src="#{libs.dig('vega-lite', 'url', 'js')}" integrity="#{libs.dig('vega-lite', 'integrity', 'js')}" crossorigin="anonymous"></script>)
out << %(<script defer src="#{libs.dig('vega-embed', 'url', 'js')}" integrity="#{libs.dig('vega-embed', 'integrity', 'js')}" crossorigin="anonymous"></script>)
out << %(<script defer src="#{baseurl}/assets/al_charts/js/vega-setup.js" type="text/javascript"></script>)
end
out.join("\n")
end
|