jekyll-t4j 0.2.0 → 0.2.2

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
  SHA256:
3
- metadata.gz: 13b22b3158377122a8dee5d55e4d57e64dd379ca6dc1af6940fc1eb64bbed5f7
4
- data.tar.gz: 6a5b3a578efa74a2f0783301f7b8fa1c3211a0678bc9ad6cea73913cd12b516b
3
+ metadata.gz: 373ef8ace0a1a10dc58cbc1bcb3eb0441cf66894ad27b3a30c87dc2fef6f669d
4
+ data.tar.gz: a3397303ce58f5b728608e65a2c28ca9eca192d73a6bb9a0dffe243bc8ea2862
5
5
  SHA512:
6
- metadata.gz: c023286c3b5de954fdec9909e4abccfd4bf8f3b81b9208c616f5c17ef515ad500ab19f9de76b88df47e7eec8389e0eae8512b3f30112c1638bc8dfdd598fc45b
7
- data.tar.gz: ff9007ddaedc4bd5839a8ae51523ebc0c188a0188f17d7506c51cbb03f1706dc96e6ac9e70de76a77c40050b9b1d86fd6a9a2790bfa4f4ef33cec0593a82be5c
6
+ metadata.gz: 802513ceba69d9729273fa2928b70c7011bf8bd5f9f0756ba89b0d10bb43f8266c27152a3ed1d926f29af41c42e55fbeae6dffdc1bc4c47f33ff10dde08b3a01
7
+ data.tar.gz: e3fd8c11ed01a7f25e68d323ac86e4d698e2c2de598c89e8b999d3f8889be0ed9c37b3620f64cd28a9eee926fd37f97daede90b906bf42d807118fa57949b3bf
@@ -16,7 +16,7 @@ module Jekyll::T4J
16
16
  unless has_tex?
17
17
  STDERR.puts "You are missing a TeX distribution. Please install:"
18
18
  STDERR.puts " MiKTeX or TeX Live"
19
- raise Errors::FatalException.new("Missing TeX distribution")
19
+ raise "Missing TeX distribution"
20
20
  end
21
21
  end
22
22
  end
@@ -14,11 +14,13 @@ module Jekyll::T4J
14
14
  ).freeze
15
15
 
16
16
  TEXT_TEX_MASK = Regexp.union(
17
- /\\\([\s\S]*?\\\)/,
18
- /\\\[[\s\S]*?\\\]/
17
+ /\\\[([\s\S]*?)\\\]/,
18
+ /\$\$([\s\S]*?)\$\$/,
19
+ /\\\(([\s\S]*?)\\\)/,
20
+ /\$([\s\S]*?)\$/
19
21
  ).freeze
20
22
 
21
- def self.mask(str, reg)
23
+ def self.mask(str, reg, capture = false)
22
24
  s = StringScanner.new str
23
25
  parts = []
24
26
 
@@ -29,8 +31,8 @@ module Jekyll::T4J
29
31
  if m then
30
32
  p1 = s.charpos - s.matched.size - 1
31
33
 
32
- parts << [str[p0..p1], true] unless p1 <= p0
33
- parts << [s.matched, false]
34
+ parts << [str[p0..p1], true] unless p1 < p0
35
+ parts << (capture ? [s.matched, false, s.captures] : [s.matched, false])
34
36
  else
35
37
  parts << [str[p0..-1], true]
36
38
  break
@@ -44,22 +46,26 @@ end
44
46
  Jekyll::Hooks.register :documents, :post_render do |doc|
45
47
  result = String.new
46
48
 
47
- gen = -> (s) {
48
- is_inline = s.start_with?("\\(")
49
+ gen = -> (s, is_display) {
50
+ s.strip!
51
+ return "" if s.empty?
49
52
 
50
- s.prepend "\\documentclass{article}#{Jekyll::T4J.cfg_pkgs}\\begin{document}\\pagenumbering{gobble}"
51
- s << "\\end{document}"
53
+ s.prepend "\\documentclass{article}#{Jekyll::T4J.cfg_pkgs}\\begin{document}\\pagenumbering{gobble}\\begin{math}"
54
+ s << "\\end{math}\\end{document}"
52
55
  s = Jekyll::T4J::Engines.dvisvgm(s)
53
56
 
54
57
  "<img src=\"#{Jekyll::T4J::Merger.ask_for_merge(doc.url, s, "svg")}\" style=\"#{
55
- is_inline ? "display:inline;height:1.1em;" : "display:block;margin:0 auto;height:calc(0.1em * #{s[/height='(\S+?)pt'/, 1]});"
56
- }\">"
58
+ is_display ? "display:block;margin:0 auto" : "display:inline;vertical-align:middle"
59
+ };height:#{(s[/height='(\S+?)pt'/, 1].to_f * 0.1).to_s}em\">"
57
60
  }
58
61
 
59
62
  for p0 in Jekyll::T4J.mask(doc.output, Jekyll::T4J::HTML_TEXT_MASK)
60
63
  if p0[1] then
61
- for p1 in Jekyll::T4J.mask(p0[0], Jekyll::T4J::TEXT_TEX_MASK)
62
- p1[0] = gen.(CGI::unescapeHTML p1[0]) if not p1[1]
64
+ for p1 in Jekyll::T4J.mask(p0[0], Jekyll::T4J::TEXT_TEX_MASK, true)
65
+ p1[2].each_index {|i|
66
+ c = p1[2][i]
67
+ p1[0] = gen.(CGI::unescapeHTML(c), i < 2) if not c.empty?
68
+ } if not p1[1]
63
69
 
64
70
  result << p1[0]
65
71
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Jekyll
4
4
  module T4J
5
- VERSION = "0.2.0"
5
+ VERSION = "0.2.2"
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-t4j
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - crow02531