Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
1"""
2@file
3@brief Install javascript dependencies for the documentation generation.
4"""
6import os
7from ..loghelper.flog import noLOG
8from .install_custom import download_revealjs, download_requirejs
9from ..filehelper import (
10 synchronize_folder, change_file_status, download)
13def install_javascript_tools(root, dest, fLOG=noLOG,
14 revealjs_github=False):
15 """
16 Installs extra dependencies such as :epkg:`reveal.js`.
18 @param root location of the documentation
19 @param dest location of static path
20 @param fLOG logging function
21 @param revealjs_github to get :epkg:`reveal.js` from github
23 The function will create sub folders in folder *root*.
24 """
25 # delayed import to speed up time
26 from ..sphinxext import revealjs
28 # reveal.js
29 if revealjs_github:
30 rev = os.path.join(dest, "reveal.js")
31 if not os.path.exists(rev):
32 lfiles = download_revealjs(root, dest, fLOG=fLOG)
33 else:
34 lfiles = []
35 else:
36 rev = os.path.join(dest, "reveal.js")
37 if not os.path.exists(rev):
38 folder = os.path.dirname(revealjs.__file__)
39 js = os.path.join(folder, "templates", "revealjs", "static")
40 os.mkdir(rev)
41 sync = synchronize_folder(js, rev, copy_1to2=True, fLOG=fLOG)
42 fulls = [s[1].fullname for s in sync]
43 change_file_status(rev)
44 lfiles = fulls
45 else:
46 lfiles = []
48 # require.js
49 expected = os.path.join(dest, "require.js")
50 if not os.path.exists(expected):
51 one = download_requirejs(dest, fLOG=fLOG)
52 else:
53 one = [expected]
54 lfiles.extend(one)
56 # embed-ams.js
57 expected = os.path.join(dest, "embed-amd.js")
58 if not os.path.exists(expected):
59 url = "https://unpkg.com/@jupyter-widgets/html-manager@0.20.0/dist/embed-amd.js"
60 one = [download(url, dest, fLOG=fLOG)]
61 else:
62 one = [expected]
63 lfiles.extend(one)
64 return lfiles