scripts.html 3.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. {{ $needKaTeX := or .Params.math .Site.Params.katex.enable .Params.chem .Site.Params.chem (.Page.Store.Get "hasKaTeX") (.Page.Store.Get "hasmhchem") -}}
  2. {{ $needmhchem := or .Params.chem .Site.Params.katex.mhchem.enable (.Page.Store.Get "hasmhchem") -}}
  3. {{ if .Site.Params.markmap.enable -}}
  4. <style>
  5. .markmap > svg {
  6. width: 100%;
  7. height: 300px;
  8. }
  9. </style>
  10. <script>
  11. window.markmap = {
  12. autoLoader: {
  13. manual: true,
  14. onReady() {
  15. const { autoLoader, builtInPlugins } = window.markmap;
  16. autoLoader.transformPlugins = builtInPlugins.filter(plugin => plugin.name !== 'prism');
  17. },
  18. },
  19. };
  20. </script>
  21. <script src="https://cdn.jsdelivr.net/npm/markmap-autoloader"></script>
  22. {{ end -}}
  23. {{ if .Site.Params.plantuml.enable -}}
  24. <script src='{{ "js/deflate.js" | relURL }}'></script>
  25. {{ end -}}
  26. {{ if $needKaTeX -}}
  27. {{ partial "scripts/katex.html" (dict "mhchem" $needmhchem) -}}
  28. {{ end -}}
  29. {{ $jsBs := resources.Get "vendor/bootstrap/dist/js/bootstrap.bundle.js" -}}
  30. {{ $jsBase := resources.Get "js/base.js" -}}
  31. {{ $jsSearch := resources.Get "js/search.js" | resources.ExecuteAsTemplate "js/search.js" .Site.Home -}}
  32. {{ $jsMarkmap := resources.Get "js/markmap.js" | resources.ExecuteAsTemplate "js/markmap.js" . -}}
  33. {{ $jsPlantuml := resources.Get "js/plantuml.js" | resources.ExecuteAsTemplate "js/plantuml.js" . -}}
  34. {{ $jsDrawio := resources.Get "js/drawio.js" | resources.ExecuteAsTemplate "js/drawio.js" . -}}
  35. {{ if .Site.Params.offlineSearch -}}
  36. {{ $jsSearch = resources.Get "js/offline-search.js" -}}
  37. {{ end -}}
  38. {{ $jsArray := slice $jsBs $jsBase $jsSearch $jsPlantuml $jsMarkmap $jsDrawio -}}
  39. {{ if .Page.Store.Get "hasmermaid" -}}
  40. {{- partial "scripts/mermaid.html" . -}}
  41. {{ end -}}
  42. {{ if .Site.Params.ui.showLightDarkModeMenu -}}
  43. {{ $jsArray = $jsArray | append (resources.Get "js/dark-mode.js") -}}
  44. {{ end -}}
  45. {{ $js := $jsArray | resources.Concat "js/main.js" -}}
  46. {{ if hugo.IsProduction -}}
  47. {{ $js := $js | minify | fingerprint -}}
  48. <script src="{{ $js.RelPermalink }}" integrity="{{ $js.Data.Integrity }}" crossorigin="anonymous"></script>
  49. {{ else -}}
  50. <script src="{{ $js.RelPermalink }}"></script>
  51. {{ end -}}
  52. {{ if .Site.Params.prism_syntax_highlighting -}}
  53. <script src='{{ "js/prism.js" | relURL }}'></script>
  54. {{ else if ( not .Site.Params.disable_click2copy_chroma ) -}}
  55. {{ $c2cJS := resources.Get "js/click-to-copy.js" -}}
  56. {{ if hugo.IsProduction -}}
  57. {{ $c2cJS = $c2cJS | minify | fingerprint -}}
  58. {{ end -}}
  59. <script defer src="{{ $c2cJS.RelPermalink }}" {{ with $c2cJS.Data.Integrity -}}
  60. integrity="{{ . }}" {{ end -}}
  61. crossorigin="anonymous"></script>
  62. {{ end -}}
  63. {{ if and .Site.Params.search (isset .Site.Params.search "algolia") -}}
  64. {{ template "algolia/scripts" .Site.Params.search.algolia -}}
  65. {{ end -}}
  66. <script src='{{ "js/tabpane-persist.js" | relURL }}'></script>
  67. {{ partial "hooks/body-end.html" . -}}
  68. {{ define "algolia/scripts" -}}
  69. <script src="https://cdn.jsdelivr.net/npm/@docsearch/js@3.8.2"
  70. integrity="sha512-lsD+XVzdBI6ZquXc8gqbw0/bgrfIsMJwY/8xvmvbN+U3gZSeG7BXQoCq4zv/yCmntR2GLHtgB+bD4ESPsKIbIA=="
  71. crossorigin="anonymous" ></script>
  72. <script type="text/javascript">
  73. const containers = ['#docsearch-0', '#docsearch-1'];
  74. for (let c of containers) {
  75. docsearch({
  76. container: c,
  77. appId: {{ .appId | default "R2IYF7ETH7" }},
  78. apiKey: {{ .apiKey | default "599cec31baffa4868cae4e79f180729b" }},
  79. indexName: {{ .indexName | default "docsearch" }},
  80. });
  81. }
  82. </script>
  83. {{ end -}}