octopress-printable 0.1.3 → 0.1.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +3 -0
- data/lib/octopress-printable/bib.rb +1 -1
- data/lib/octopress-printable/converter.rb +20 -0
- data/lib/octopress-printable/img.rb +13 -0
- data/lib/octopress-printable/plugin.rb +27 -9
- data/lib/octopress-printable/tex2img.rb +48 -7
- data/lib/octopress-printable/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 18667c9134b618d837b41f0ae2c4aab025c708f3
|
4
|
+
data.tar.gz: e339283272b25792de8ad79721dbd89f0761daf8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a1d08a1ece5339cc781547b2b12dff44c1ec348c671fb96dac836eb6408e42b41703c09b6d2ac55b7f52a68f44f03461dd0ce1d4f3b5ee376bcae4c84058423d
|
7
|
+
data.tar.gz: f6dc85996e47b9043b391cc0532a023befa27dde5df8436d9b82157cd865ad311bc945e854d6351cfe71ae824f7965d801dc2f1175835aa544e220f9cf40b22c
|
data/CHANGELOG.md
CHANGED
@@ -16,6 +16,10 @@ module Octopress
|
|
16
16
|
[]
|
17
17
|
end
|
18
18
|
|
19
|
+
def envs()
|
20
|
+
[]
|
21
|
+
end
|
22
|
+
|
19
23
|
def pandoc_args
|
20
24
|
[]
|
21
25
|
end
|
@@ -31,6 +35,22 @@ module Octopress
|
|
31
35
|
def last_xelatex(texfile)
|
32
36
|
[]
|
33
37
|
end
|
38
|
+
|
39
|
+
def self.get_includes(post, source_dir)
|
40
|
+
[]
|
41
|
+
end
|
42
|
+
|
43
|
+
# return the newest timestamp for included files
|
44
|
+
def self.timestamp(post, source_dir)
|
45
|
+
includes = get_includes(post, source_dir)
|
46
|
+
ts = Time.new(0)
|
47
|
+
includes.each { |f|
|
48
|
+
if File.exists?(f) && File.stat(f).mtime > ts
|
49
|
+
ts = File.stat(f).mtime
|
50
|
+
end
|
51
|
+
}
|
52
|
+
ts
|
53
|
+
end
|
34
54
|
end
|
35
55
|
end
|
36
56
|
end
|
@@ -54,6 +54,19 @@ module Octopress
|
|
54
54
|
lines << '\\usepackage{graphicx}'
|
55
55
|
lines << '\\usepackage[all]{hypcap}'
|
56
56
|
end
|
57
|
+
|
58
|
+
def get_includes(post, source_dir)
|
59
|
+
includes = []
|
60
|
+
File.open(post, 'r') do |f|
|
61
|
+
while l = f.gets
|
62
|
+
if /{% img (?<markup>.*) %}/ =~ l
|
63
|
+
img = ImgConverter.get_img_label(markup)
|
64
|
+
includes << File.join(source_dir, img['src'])
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
includes
|
69
|
+
end
|
57
70
|
end
|
58
71
|
end
|
59
72
|
end
|
@@ -46,7 +46,7 @@ module Octopress
|
|
46
46
|
pdf = pdf.gsub(/\//, "-")
|
47
47
|
pdf = "#{printables_dir}/#{pdf}.pdf"
|
48
48
|
|
49
|
-
if !File.exists?(pdf) ||
|
49
|
+
if !File.exists?(pdf) || timestamp(post, source_dir) > File.stat(pdf).mtime
|
50
50
|
puts "Converting #{post} to #{pdf}"
|
51
51
|
gen_pdf(post, pdf, source_dir, posts_dir, blog_url,
|
52
52
|
bib_dir, bib, p.url)
|
@@ -188,17 +188,23 @@ module Octopress
|
|
188
188
|
cmds << cmd
|
189
189
|
end
|
190
190
|
|
191
|
+
envs = []
|
192
|
+
for converter in converters
|
193
|
+
envs += converter.envs
|
194
|
+
end
|
195
|
+
File.open("#{base}.sh", 'w') { |f|
|
196
|
+
f.write(envs.join("\n"))
|
197
|
+
f.write("\n")
|
198
|
+
f.write(cmds.join("\n"))
|
199
|
+
}
|
200
|
+
FileUtils.chmod(0755, "#{base}.sh")
|
201
|
+
|
191
202
|
if ! @conf['dry_run']
|
192
|
-
|
193
|
-
system cmd
|
194
|
-
end
|
203
|
+
system "#{base}.sh"
|
195
204
|
end
|
196
205
|
|
197
|
-
if @conf['dump_cmds']
|
198
|
-
|
199
|
-
f.write(cmds.join("\n"))
|
200
|
-
}
|
201
|
-
FileUtils.chmod(0755, "#{base}.sh")
|
206
|
+
if ! @conf['dump_cmds']
|
207
|
+
FileUtils.rm_f("#{base}.sh")
|
202
208
|
end
|
203
209
|
|
204
210
|
if File.exists?("#{File.basename(base)}.pyg")
|
@@ -234,6 +240,18 @@ module Octopress
|
|
234
240
|
bib.cleanup
|
235
241
|
end
|
236
242
|
end
|
243
|
+
|
244
|
+
def timestamp(post, source_dir)
|
245
|
+
ts = [ File.stat(post).mtime ]
|
246
|
+
ts << MathConverter.timestamp(post, source_dir)
|
247
|
+
ts << ImgConverter.timestamp(post, source_dir)
|
248
|
+
ts << Tex2imgConverter.timestamp(post, source_dir)
|
249
|
+
ts << BibConverter.timestamp(post, source_dir)
|
250
|
+
ts << GistConverter.timestamp(post, source_dir)
|
251
|
+
ts << PostLinkConverter.timestamp(post, source_dir)
|
252
|
+
ts << LatexConverter.timestamp(post, source_dir)
|
253
|
+
ts.max
|
254
|
+
end
|
237
255
|
|
238
256
|
end
|
239
257
|
end
|
@@ -11,6 +11,7 @@ module Octopress
|
|
11
11
|
|
12
12
|
@source_dir = source_dir
|
13
13
|
@headers = []
|
14
|
+
@inputs = []
|
14
15
|
end
|
15
16
|
|
16
17
|
def convert(line)
|
@@ -19,18 +20,19 @@ module Octopress
|
|
19
20
|
if /{% tex2img (?<markup>.*) %}/ =~ str
|
20
21
|
@match = true
|
21
22
|
|
22
|
-
|
23
|
-
|
24
|
-
if !File.exists?(
|
25
|
-
raise ArgumentError.new("texfile[#{
|
23
|
+
texpath, *params = markup.strip.split(/\s/)
|
24
|
+
texpath = File.join(@source_dir, texpath)
|
25
|
+
if !File.exists?(texpath)
|
26
|
+
raise ArgumentError.new("texfile[#{texpath}] does not exist!")
|
26
27
|
end
|
27
28
|
|
28
29
|
img = Octopress::Printable::ImgConverter.get_img_label(params.join(" "))
|
29
|
-
str="\\begin{figure}[h]\\centering\\input{#{
|
30
|
+
str="\\begin{figure}[h]\\centering\\input{#{texpath}}\\caption{#{img['title']}}\\label{#{img['alt']}}\\end{figure}"
|
30
31
|
|
31
|
-
@headers += open(
|
32
|
+
@headers += open(texpath) { |f| f.grep(/\\usepackage/) }
|
33
|
+
|
34
|
+
add_envs(texpath)
|
32
35
|
end
|
33
|
-
|
34
36
|
str
|
35
37
|
end
|
36
38
|
|
@@ -40,6 +42,45 @@ module Octopress
|
|
40
42
|
@headers.each {|a| a.strip!if a.respond_to? :strip! }
|
41
43
|
@headers.uniq!
|
42
44
|
end
|
45
|
+
|
46
|
+
def add_envs(texpath)
|
47
|
+
File.open(texpath, 'r') do |ff|
|
48
|
+
while ll = ff.gets
|
49
|
+
if /\\input{(?<inputfile>.*)}/ =~ ll
|
50
|
+
@inputs << File.dirname(texpath)
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
def envs
|
57
|
+
["export TEXINPUTS+='#{@inputs.join(':')}:'"]
|
58
|
+
end
|
59
|
+
|
60
|
+
def self.get_includes(post, source_dir)
|
61
|
+
includes = []
|
62
|
+
File.open(post, 'r') do |f|
|
63
|
+
while l = f.gets
|
64
|
+
if /{% tex2img (?<markup>.*) %}/ =~ l
|
65
|
+
texpath, *params = markup.strip.split(/\s/)
|
66
|
+
texpath = File.join(source_dir, texpath)
|
67
|
+
if !File.exists?(texpath)
|
68
|
+
next
|
69
|
+
end
|
70
|
+
includes << texpath
|
71
|
+
|
72
|
+
File.open(texpath, 'r') do |ff|
|
73
|
+
while ll = ff.gets
|
74
|
+
if /\\input{(?<inputfile>.*)}/ =~ ll
|
75
|
+
includes << File.join(File.dirname(texpath), inputfile)
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
82
|
+
includes
|
83
|
+
end
|
43
84
|
end
|
44
85
|
end
|
45
86
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: octopress-printable
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Wang Jian
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-07-
|
11
|
+
date: 2015-07-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|