Coverage for pyquickhelper/helpgen/install_js_dep.py: 67%
45 statements
« prev ^ index » next coverage.py v7.2.7, created at 2023-06-03 02:21 +0200
« prev ^ index » next coverage.py v7.2.7, created at 2023-06-03 02:21 +0200
1"""
2@file
3@brief Install javascript dependencies for the documentation generation.
4"""
6import os
7import shutil
8from ..loghelper.flog import noLOG
9from .install_custom import download_revealjs, download_requirejs
10from ..filehelper import (
11 synchronize_folder, change_file_status, download)
12from ..filehelper.internet_helper import ReadUrlException
15def install_javascript_tools(root, dest, fLOG=noLOG,
16 revealjs_github=False):
17 """
18 Installs extra dependencies such as :epkg:`reveal.js`.
20 @param root location of the documentation
21 @param dest location of static path
22 @param fLOG logging function
23 @param revealjs_github to get :epkg:`reveal.js` from github
25 The function will create sub folders in folder *root*.
26 """
27 # delayed import to speed up time
28 from ..sphinxext import revealjs
30 # reveal.js
31 if revealjs_github:
32 rev = os.path.join(dest, "reveal.js")
33 if not os.path.exists(rev):
34 lfiles = download_revealjs(root, dest, fLOG=fLOG)
35 else:
36 lfiles = []
37 else:
38 rev = os.path.join(dest, "reveal.js")
39 if not os.path.exists(rev):
40 folder = os.path.dirname(revealjs.__file__)
41 js = os.path.join(folder, "templates", "revealjs", "static")
42 os.mkdir(rev)
43 sync = synchronize_folder(js, rev, copy_1to2=True, fLOG=fLOG)
44 fulls = [s[1].fullname for s in sync]
45 change_file_status(rev)
46 lfiles = fulls
47 else:
48 lfiles = []
50 # require.js
51 expected = os.path.join(dest, "require.js")
52 if not os.path.exists(expected):
53 try:
54 one = download_requirejs(dest, fLOG=fLOG)
55 except ReadUrlException:
56 name = os.path.join(os.path.dirname(__file__), "require.js")
57 shutil.copy(name, expected)
58 one = [expected]
59 else:
60 one = [expected]
61 lfiles.extend(one)
63 # embed-ams.js
64 expected = os.path.join(dest, "embed-amd.js")
65 if not os.path.exists(expected):
66 url = "https://unpkg.com/@jupyter-widgets/html-manager@0.20.0/dist/embed-amd.js"
67 try:
68 one = [download(url, dest, fLOG=fLOG)]
69 except ReadUrlException:
70 name = os.path.join(os.path.dirname(__file__), "embed-amd.js")
71 shutil.copy(name, expected)
72 one = [expected]
73 else:
74 one = [expected]
75 lfiles.extend(one)
76 return lfiles