Hide keyboard shortcuts

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""" 

5 

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) 

11 

12 

13def install_javascript_tools(root, dest, fLOG=noLOG, 

14 revealjs_github=False): 

15 """ 

16 Installs extra dependencies such as :epkg:`reveal.js`. 

17 

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 

22 

23 The function will create sub folders in folder *root*. 

24 """ 

25 # delayed import to speed up time 

26 from ..sphinxext import revealjs 

27 

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 = [] 

47 

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) 

55 

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