Show More
@@ -1,6 +1,12 b'' | |||
|
1 | 1 | """Utility function for installing MathJax javascript library into |
|
2 | 2 | the notebook's 'static' directory, for offline use. |
|
3 | 3 | |
|
4 | Authors: | |
|
5 | ||
|
6 | * Min RK | |
|
7 | * Mark Sienkiewicz | |
|
8 | * Matthias Bussonnier | |
|
9 | ||
|
4 | 10 | To download and install MathJax: |
|
5 | 11 | |
|
6 | 12 | From Python: |
@@ -33,11 +39,6 b' To find the directory where IPython would like MathJax installed:' | |||
|
33 | 39 | # the file COPYING, distributed as part of this software. |
|
34 | 40 | #----------------------------------------------------------------------------- |
|
35 | 41 | |
|
36 | # Authors: | |
|
37 | # | |
|
38 | # * Min RK | |
|
39 | # * Mark Sienkiewicz at Space Telescope Science Institute (command line invocation) | |
|
40 | # | |
|
41 | 42 | |
|
42 | 43 | #----------------------------------------------------------------------------- |
|
43 | 44 | # Imports |
@@ -50,16 +51,13 b' import tarfile' | |||
|
50 | 51 | import urllib2 |
|
51 | 52 | import zipfile |
|
52 | 53 | |
|
53 | from IPython.frontend.html import notebook as nbmod | |
|
54 | ||
|
55 | 54 | #----------------------------------------------------------------------------- |
|
56 | 55 | # |
|
57 | 56 | #----------------------------------------------------------------------------- |
|
58 | 57 | |
|
59 | 58 | # Where mathjax will be installed. |
|
60 | 59 | |
|
61 | static = os.path.join(os.path.dirname(os.path.abspath(nbmod.__file__)), 'static') | |
|
62 | dest = os.path.join(static, 'mathjax') | |
|
60 | dest = os.path.join(locate_profile('default'), 'static') | |
|
63 | 61 | |
|
64 | 62 | ## |
|
65 | 63 | |
@@ -116,8 +114,8 b' def extract_zip( fd, dest ) :' | |||
|
116 | 114 | |
|
117 | 115 | ## |
|
118 | 116 | |
|
119 |
def install_mathjax(tag='v |
|
|
120 | """Download and install MathJax for offline use. | |
|
117 | def install_mathjax(tag='v2.0', replace=False, file=None, extractor=extract_tar ): | |
|
118 | """Download and/or install MathJax for offline use. | |
|
121 | 119 | |
|
122 | 120 | This will install mathjax to the 'static' dir in the IPython notebook |
|
123 | 121 | package, so it will fail if the caller does not have write access |
@@ -130,20 +128,24 b" def install_mathjax(tag='v1.1', replace=False, fd=None, extractor=extract_tar ):" | |||
|
130 | 128 | |
|
131 | 129 | replace : bool [False] |
|
132 | 130 | Whether to remove and replace an existing install. |
|
133 |
tag : str ['v |
|
|
131 | tag : str ['v2.0'] | |
|
134 | 132 | Which tag to download. Default is 'v1.1', the current stable release, |
|
135 | 133 | but alternatives include 'v1.1a' and 'master'. |
|
134 | file : file like object [ defualt to content of https://github.com/mathjax/MathJax/tarball/#{tag}] | |
|
135 | File handle from which to untar/unzip/... mathjax | |
|
136 | extractor : function | |
|
137 | Method tu use to untar/unzip/... `file` | |
|
136 | 138 | """ |
|
137 | 139 | |
|
138 | 140 | if not check_perms(replace) : |
|
139 | 141 | return |
|
140 | 142 | |
|
141 |
if f |
|
|
143 | if file is None : | |
|
142 | 144 | # download mathjax |
|
143 | 145 | mathjax_url = "https://github.com/mathjax/MathJax/tarball/%s"%tag |
|
144 | 146 | print "Downloading mathjax source from %s"%mathjax_url |
|
145 | 147 | response = urllib2.urlopen(mathjax_url) |
|
146 |
f |
|
|
148 | file = response.fp | |
|
147 | 149 | |
|
148 | 150 | print "Extracting to %s"%dest |
|
149 | 151 | extractor( fd, dest ) |
@@ -161,7 +163,7 b' def test_func( remove ) :' | |||
|
161 | 163 | print "ok" |
|
162 | 164 | if remove : |
|
163 | 165 | shutil.rmtree( dest ) |
|
164 |
return |
|
|
166 | return status | |
|
165 | 167 | |
|
166 | 168 | ## |
|
167 | 169 |
@@ -357,8 +357,9 b' For unusual needs, IPython can tell you what directory it wants to find MathJax ' | |||
|
357 | 357 | |
|
358 | 358 | python -m IPython.external.mathjax -d |
|
359 | 359 | |
|
360 | All of these options require write access to the IPython install directory, so if | |
|
361 | you have a system-wide Python install, it may need to be done with ``sudo``. | |
|
360 | By default Mathjax will be installed in your ipython profile directory, but you | |
|
361 | can make system wide install, please refere to the documentation and helper function | |
|
362 | of IPython.external.mathjax | |
|
362 | 363 | |
|
363 | 364 | Browser Compatibility |
|
364 | 365 | --------------------- |
General Comments 0
You need to be logged in to leave comments.
Login now