octopress-printable 0.1.3 → 0.1.4
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/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
|