mathjax-renderer 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8167da313922059eab8f95cc78bcafbf7a4a9c49
4
- data.tar.gz: 89316e24aed1c3371872de66857f63d68fa2d9ad
3
+ metadata.gz: 108c1668656658f3c89100c86dcbaee043b19343
4
+ data.tar.gz: 9635fb1117c4084b4b6480c7ef4b851d3fdca2f8
5
5
  SHA512:
6
- metadata.gz: 90128c641d73aaabac0aa6060290101ee2b09e1f4e27efd16baa1b30f1b0d71a30404b62d9ec5975f3a5cdbdd16fa0885c44797009ed094808773defb4109601
7
- data.tar.gz: cad9e561bcf59d94c82b9f3feec86c3ed985d0c3e8e389e6c9416af4628d17d3609a7cb8207e2ef5a86b06faeac146ab03b9e1cb6261e3ee41294015627f340b
6
+ metadata.gz: e02966b4f64ab784df3176473320abfb0e2ffb43dc899665383450bc30e91bf271a4f748efd0cf4a7d8391c4298529159e895e6f0c23019761111579d6c0e97e
7
+ data.tar.gz: d0f48a885c73debde6bb8b86c65544e3f8b51c5de7dc293dba87356e6703056bdca1d7b9c59360561e6e2fd8021426cffa4ae05954f7be52296f223833cca591
data/README.md CHANGED
@@ -1,6 +1,11 @@
1
1
  # Mathjax::Renderer
2
2
 
3
- TODO: Write a gem description
3
+ This gem is to pre-render MathJax expressions or export them as images. Since MathJax uses client-side
4
+ Javascript and styles to convert MathML (along with other formats) to HTML, this is not compatible
5
+ with article readers like Pocket as they do not run scripts. mathjax-renderer solves this by
6
+ generating images from MathJax expressions which can be inserted to the site instead of the MathML
7
+ expression, thus making them visible to readers. Also, there is an option to generate the HTML,
8
+ so you can remove the client-side scripts.
4
9
 
5
10
  ## Installation
6
11
 
@@ -20,11 +25,66 @@ Or install it yourself as:
20
25
 
21
26
  ## Usage
22
27
 
23
- TODO: Write usage instructions here
28
+ mathjax-renderer can generate the HTML from running the MathJax scripts, and it can be used to directly
29
+ generate an image from the result. It uses a global cache, so it is fast for the second time for the
30
+ same input.
31
+
32
+ ### Requirements
33
+
34
+ mathjax-renderer uses Chrome with Xvfb, so they need to be installed (sorry, not gonna work on Windows).
35
+
36
+ ### Generating the HTML
37
+
38
+ To generated the HTML, just call:
39
+
40
+ ```ruby
41
+ Mathjax_Renderer::Renderer.new(mathml_string).html
42
+ ```
43
+
44
+ Then, the resulting HTML can be directly inserted to the page. This also needs the MathJax fonts, so
45
+ don't forget to include them as well:
46
+
47
+ ```
48
+ @font-face {font-family: MathJax_Main; src: url('http://cdn.mathjax.org/mathjax/latest/fonts/HTML-CSS/TeX/woff/MathJax_Main-Regular.woff?rev=2.5.0') format('woff'), url('http://cdn.mathjax.org/mathjax/latest/fonts/HTML-CSS/TeX/otf/MathJax_Main-Regular.otf?rev=2.5.0') format('opentype')}
49
+ @font-face {font-family: MathJax_Main-bold; src: url('http://cdn.mathjax.org/mathjax/latest/fonts/HTML-CSS/TeX/woff/MathJax_Main-Bold.woff?rev=2.5.0') format('woff'), url('http://cdn.mathjax.org/mathjax/latest/fonts/HTML-CSS/TeX/otf/MathJax_Main-Bold.otf?rev=2.5.0') format('opentype')}
50
+ @font-face {font-family: MathJax_Main-italic; src: url('http://cdn.mathjax.org/mathjax/latest/fonts/HTML-CSS/TeX/woff/MathJax_Main-Italic.woff?rev=2.5.0') format('woff'), url('http://cdn.mathjax.org/mathjax/latest/fonts/HTML-CSS/TeX/otf/MathJax_Main-Italic.otf?rev=2.5.0') format('opentype')}
51
+ @font-face {font-family: MathJax_Math-italic; src: url('http://cdn.mathjax.org/mathjax/latest/fonts/HTML-CSS/TeX/woff/MathJax_Math-Italic.woff?rev=2.5.0') format('woff'), url('http://cdn.mathjax.org/mathjax/latest/fonts/HTML-CSS/TeX/otf/MathJax_Math-Italic.otf?rev=2.5.0') format('opentype')}
52
+ @font-face {font-family: MathJax_Caligraphic; src: url('http://cdn.mathjax.org/mathjax/latest/fonts/HTML-CSS/TeX/woff/MathJax_Caligraphic-Regular.woff?rev=2.5.0') format('woff'), url('http://cdn.mathjax.org/mathjax/latest/fonts/HTML-CSS/TeX/otf/MathJax_Caligraphic-Regular.otf?rev=2.5.0') format('opentype')}
53
+ @font-face {font-family: MathJax_Size1; src: url('http://cdn.mathjax.org/mathjax/latest/fonts/HTML-CSS/TeX/woff/MathJax_Size1-Regular.woff?rev=2.5.0') format('woff'), url('http://cdn.mathjax.org/mathjax/latest/fonts/HTML-CSS/TeX/otf/MathJax_Size1-Regular.otf?rev=2.5.0') format('opentype')}
54
+ @font-face {font-family: MathJax_Size2; src: url('http://cdn.mathjax.org/mathjax/latest/fonts/HTML-CSS/TeX/woff/MathJax_Size2-Regular.woff?rev=2.5.0') format('woff'), url('http://cdn.mathjax.org/mathjax/latest/fonts/HTML-CSS/TeX/otf/MathJax_Size2-Regular.otf?rev=2.5.0') format('opentype')}
55
+ @font-face {font-family: MathJax_Size3; src: url('http://cdn.mathjax.org/mathjax/latest/fonts/HTML-CSS/TeX/woff/MathJax_Size3-Regular.woff?rev=2.5.0') format('woff'), url('http://cdn.mathjax.org/mathjax/latest/fonts/HTML-CSS/TeX/otf/MathJax_Size3-Regular.otf?rev=2.5.0') format('opentype')}
56
+ @font-face {font-family: MathJax_Size4; src: url('http://cdn.mathjax.org/mathjax/latest/fonts/HTML-CSS/TeX/woff/MathJax_Size4-Regular.woff?rev=2.5.0') format('woff'), url('http://cdn.mathjax.org/mathjax/latest/fonts/HTML-CSS/TeX/otf/MathJax_Size4-Regular.otf?rev=2.5.0') format('opentype')}
57
+ ```
58
+
59
+ _Note:_ don't forget that you already have these as a transitive dependency to rails-assets-MathJax.
60
+ Be nice and use those instead.
61
+
62
+ ### Generating image
63
+
64
+ To generate the image as well, just supply a base folder to store the images:
65
+
66
+ ```ruby
67
+ Mathjax_Renderer::Renderer.new(mathml_string, image_directory).image_name
68
+ ```
69
+
70
+ This generates the image and gets back the name in the target directory.
71
+
72
+ There are a few configurations possible:
73
+
74
+ * *min_width:* The resulting image will be at least wide in pixels. Pocket enlarges images that are too small,
75
+ making them a bit bigger disables this behaviour
76
+ * *extra_style:* These will be appended to a style element. Use it to set text color, background color,
77
+ or any other styles that would have been applied to the HTML in your site.
78
+ * *padding:* A padding in pixels will be added to both dimensions.
79
+
80
+ ## Caveats
81
+
82
+ mathjax-renderer internally uses a WEBrick server to generate the results in a random free port. It is
83
+ started when the renderer is first called, and remains running.
24
84
 
25
85
  ## Contributing
26
86
 
27
- 1. Fork it ( https://github.com/[my-github-username]/mathjax-renderer/fork )
87
+ 1. Fork it ( https://github.com/sashee/mathjax-renderer/fork )
28
88
  2. Create your feature branch (`git checkout -b my-new-feature`)
29
89
  3. Commit your changes (`git commit -am 'Add some feature'`)
30
90
  4. Push to the branch (`git push origin my-new-feature`)
@@ -28,7 +28,7 @@ module Mathjax_Renderer
28
28
  Headless.ly do
29
29
 
30
30
  Capybara.register_driver :chrome do |app|
31
- Capybara::Selenium::Driver.new(app, :browser => :chrome)
31
+ Capybara::Selenium::Driver.new(app, :browser => :chrome, :args => ['no-sandbox','no-default-browser-check','no-first-run','disable-default-apps'])
32
32
  end
33
33
 
34
34
  Capybara.default_driver = :chrome
@@ -38,7 +38,9 @@ module Mathjax_Renderer
38
38
 
39
39
  def mathjax_ready?(page)
40
40
  html = Nokogiri::HTML(page.html)
41
- !html.css('.MathJax').empty? && html.css('.MathJax_Processing').empty? && html.css('.MathJax_Processed').empty?
41
+ !html.css('.MathJax').empty? &&
42
+ html.css('.MathJax_Processing').empty? &&
43
+ html.css('.MathJax_Processed').empty?
42
44
  end
43
45
 
44
46
  Timeout.timeout(5) do
@@ -159,9 +161,16 @@ module Mathjax_Renderer
159
161
  require 'webrick'
160
162
  mathjax_dir = Gem::Specification.find_by_name("rails-assets-MathJax").gem_dir
161
163
 
162
- self.server = WEBrick::HTTPServer.new(:Port => 0, :DocumentRoot => "#{mathjax_dir}/app/assets",:AccessLog => [], :Logger => WEBrick::Log::new('/dev/null', 7))
164
+ self.server = WEBrick::HTTPServer.new(
165
+ :Port => 0,
166
+ :DocumentRoot => "#{mathjax_dir}/app/assets",
167
+ :AccessLog => [],
168
+ :Logger => WEBrick::Log::new('/dev/null', 7)
169
+ )
163
170
 
164
- server.mount '/javascripts/MathJax/fonts', WEBrick::HTTPServlet::FileHandler, "#{mathjax_dir}/app/assets/fonts/MathJax/fonts"
171
+ server.mount '/javascripts/MathJax/fonts',
172
+ WEBrick::HTTPServlet::FileHandler,
173
+ "#{mathjax_dir}/app/assets/fonts/MathJax/fonts"
165
174
 
166
175
  begin
167
176
  server.start
@@ -1,3 +1,3 @@
1
1
  module Mathjax_Renderer
2
- VERSION = "0.0.5"
2
+ VERSION = "0.0.6"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mathjax-renderer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - sashee
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-02-07 00:00:00.000000000 Z
11
+ date: 2015-03-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler