jekyll-t4j 0.3.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +3 -3
- data/lib/jekyll-t4j/engine/dvisvgm.rb +27 -23
- data/lib/jekyll-t4j/engine/katex.js +1 -18798
- data/lib/jekyll-t4j/engine/katex.mhchem.js +1 -0
- data/lib/jekyll-t4j/engine/katex.rb +11 -2
- data/lib/jekyll-t4j/engine.rb +36 -16
- data/lib/jekyll-t4j/renderer.rb +7 -6
- data/lib/jekyll-t4j/version.rb +1 -1
- data/lib/jekyll-t4j.rb +4 -1
- metadata +4 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0a1870ef42a1f2b51f55427bf9fc304e59224e0d473c9f1e0c43297ad2347709
|
4
|
+
data.tar.gz: 47330b060c44e1850c8691d2d88e302483c4069bf166b6f9dd4720b92170275b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b0842f23b676c35dfdbca726b144c243c0331d56200833af4e47c61210a5b833d0e86cd02cfd022f34b69b0af24272d46630e50521da98125343640115c22c66
|
7
|
+
data.tar.gz: 16d051b87d412c97fa69ed6222aadd4367506733b39963ccd91896f15a7eb8874b761bdd3db3bce4c2a3c1d8cc0e6445c5039eba1c14c2fe67d2e430dc3e2e5a
|
data/README.md
CHANGED
@@ -3,10 +3,10 @@
|
|
3
3
|
jekyll-t4j is a Jekyll plugin providing (nearly) full support of LaTeX.
|
4
4
|
|
5
5
|
- **Comprehensive**: support almost all packages, including tikz, chemfig, etc.
|
6
|
-
- **Fast**: employ KaTeX to boost speed. Use cache, bulk rendering.
|
6
|
+
- **Fast**: employ KaTeX to boost speed. Use cache, precompiled preamble, bulk rendering.
|
7
7
|
- **Server side rendering**: all stuffs are done in server.
|
8
8
|
|
9
|
-
T4J integrates Jekyll with your local TeX distribution, so you need to have either [MikTeX](https://miktex.org/) or [
|
9
|
+
T4J integrates Jekyll with your local TeX distribution, so you need to have either [MikTeX](https://miktex.org/) or [TeX Live](https://tug.org/texlive/) installed.
|
10
10
|
|
11
11
|
Feel free to write any LaTeX! 🎉
|
12
12
|
|
@@ -44,7 +44,7 @@ You can learn more about T4J [here](https://github.com/crow02531/jekyll-t4j/wiki
|
|
44
44
|
|
45
45
|
## Installation
|
46
46
|
|
47
|
-
First of all, you need to have a TeX distribution. Just download and install [MikTeX](https://miktex.org/) or [
|
47
|
+
First of all, you need to have a TeX distribution. Just download and install [MikTeX](https://miktex.org/) or [TeX Live](https://tug.org/texlive/). Other TeX distirbution is also available.
|
48
48
|
|
49
49
|
Then, install jekyll-t4j like other Jekyll plugins. Add this line to your application's Gemfile:
|
50
50
|
|
@@ -1,48 +1,52 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require "tmpdir"
|
4
|
-
require "open3"
|
5
4
|
|
6
5
|
module Jekyll::T4J
|
7
6
|
module Engine
|
8
|
-
@@
|
7
|
+
@@_pwd_fmt_ = nil
|
8
|
+
|
9
|
+
def self.setup_dvisvgm
|
10
|
+
if not @@_pwd_fmt_ then
|
11
|
+
@@_pwd_fmt_ = Dir.mktmpdir
|
12
|
+
at_exit {FileUtils.remove_entry @@_pwd_fmt_}
|
13
|
+
|
14
|
+
# write 'preamble.tex'
|
15
|
+
File.write "#{@@_pwd_fmt_}/preamble.tex", <<~HD
|
16
|
+
\\documentclass{article}
|
17
|
+
#{Jekyll::T4J.cfg_pkgs}
|
18
|
+
\\input{#{File.join(__dir__, "dvisvgm.tex")}}
|
19
|
+
\\pagenumbering{gobble}
|
20
|
+
\\dump
|
21
|
+
HD
|
22
|
+
|
23
|
+
# call 'latex' to precompile
|
24
|
+
shell("latex -ini -halt-on-error -jobname=\"preamble\" \"&latex preamble\"", @@_pwd_fmt_)
|
25
|
+
end
|
26
|
+
end
|
9
27
|
|
10
28
|
def self.dvisvgm_raw(snippet)
|
11
29
|
dvisvgm_raw_bulk([snippet])[0]
|
12
30
|
end
|
13
31
|
|
14
32
|
def self.dvisvgm_raw_bulk(snippets)
|
15
|
-
#
|
33
|
+
# create 'content.tex'
|
16
34
|
pwd = Dir.mktmpdir
|
17
|
-
File.write "#{pwd}/content.tex", <<~
|
18
|
-
\\documentclass{article}
|
19
|
-
#{Jekyll::T4J.cfg_pkgs}
|
20
|
-
\\input{#{@@_dvisvgm_tex_}}
|
35
|
+
File.write "#{pwd}/content.tex", <<~HD
|
21
36
|
\\begin{document}
|
22
|
-
\\pagenumbering{gobble}
|
23
37
|
\\begingroup#{snippets.join("\\endgroup\\newpage\\begingroup")}\\endgroup
|
24
38
|
\\end{document}
|
25
|
-
|
26
|
-
|
27
|
-
shell = ->(cmd) {
|
28
|
-
log, s = Open3.capture2e(cmd, :chdir => pwd)
|
29
|
-
raise log if not s.success?
|
30
|
-
}
|
39
|
+
HD
|
31
40
|
|
32
41
|
# call 'latex' to compile: tex->dvi
|
33
|
-
shell
|
34
|
-
shell.("latex -halt-on-error -quiet content")
|
42
|
+
shell("latex --fmt=\"#{File.join(@@_pwd_fmt_, "preamble.fmt")}\" -halt-on-error content", pwd, 2)
|
35
43
|
# call 'dvisvgm' to convert dvi to svg(s)
|
36
|
-
shell
|
44
|
+
shell("dvisvgm -n -e -p 1- -o %1p content", pwd)
|
37
45
|
|
38
46
|
# fetch results
|
39
47
|
results = []
|
40
|
-
|
41
|
-
results << File.read("#{pwd}
|
42
|
-
else
|
43
|
-
for i in 1..snippets.size
|
44
|
-
results << File.read("#{pwd}/content-#{i.to_s}.svg")
|
45
|
-
end
|
48
|
+
for i in 1..snippets.size
|
49
|
+
results << File.read("#{pwd}/#{i.to_s}.svg")
|
46
50
|
end
|
47
51
|
|
48
52
|
# return
|