Source code for pyquickhelper.helpgen.install_js_dep
"""
Install javascript dependencies for the documentation generation.
:githublink:`%|py|5`
"""
import os
from ..loghelper.flog import noLOG
from .install_custom import download_revealjs, download_requirejs
from ..filehelper import (
synchronize_folder, change_file_status, download)
[docs]def install_javascript_tools(root, dest, fLOG=noLOG,
revealjs_github=False):
"""
Installs extra dependencies such as :epkg:`reveal.js`.
:param root: location of the documentation
:param dest: location of static path
:param fLOG: logging function
:param revealjs_github: to get :epkg:`reveal.js` from github
The function will create sub folders in folder *root*.
:githublink:`%|py|24`
"""
# delayed import to speed up time
from ..sphinxext import revealjs
# reveal.js
if revealjs_github:
rev = os.path.join(dest, "reveal.js")
if not os.path.exists(rev):
lfiles = download_revealjs(root, dest, fLOG=fLOG)
else:
lfiles = []
else:
rev = os.path.join(dest, "reveal.js")
if not os.path.exists(rev):
folder = os.path.dirname(revealjs.__file__)
js = os.path.join(folder, "templates", "revealjs", "static")
os.mkdir(rev)
sync = synchronize_folder(js, rev, copy_1to2=True, fLOG=fLOG)
fulls = [s[1].fullname for s in sync]
change_file_status(rev)
lfiles = fulls
else:
lfiles = []
# require.js
expected = os.path.join(dest, "require.js")
if not os.path.exists(expected):
one = download_requirejs(dest, fLOG=fLOG)
else:
one = [expected]
lfiles.extend(one)
# embed-ams.js
expected = os.path.join(dest, "embed-amd.js")
if not os.path.exists(expected):
url = "https://unpkg.com/@jupyter-widgets/html-manager@0.20.0/dist/embed-amd.js"
one = [download(url, dest, fLOG=fLOG)]
else:
one = [expected]
lfiles.extend(one)
return lfiles