madowu 0.0.7 → 0.0.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGES +10 -0
- data/Gemfile +1 -0
- data/VERSION +1 -1
- data/bin/dirmap +5 -1
- data/bin/figchange +56 -0
- data/bin/isbninfo +24 -10
- data/bin/tex2image +1 -1
- data/example/Rakefile +70 -58
- data/example/doc/.gitignore +2 -0
- data/example/doc/Rakefile +121 -0
- data/example/doc/gnuplot_with_dat.dat +20 -0
- data/example/doc/gnuplot_with_dat.plt +10 -0
- data/example/doc/gnuplot_without_dat.plt +20 -0
- data/example/doc/graphviz.dot +6 -0
- data/example/doc/index.md +20 -0
- data/example/doc/madowu.css +183 -0
- data/example/doc/povray.pov +15 -0
- data/example/doc/ruby_with_dat.dat +431 -0
- data/example/doc/ruby_with_dat.rb +60 -0
- data/example/doc/ruby_without_dat.rb +36 -0
- data/example/doc/svg.svg +6703 -0
- data/example/doc/tex.tex +7 -0
- data/lib/madowu.rb +3 -1
- data/lib/madowu/bookinfo.rb +99 -0
- data/lib/madowu/directorymapper.rb +13 -7
- data/lib/madowu/htmlgenerator.rb +1 -1
- data/madowu.gemspec +26 -6
- data/test/directorymapper/dir3/dir/foo.md +0 -0
- data/test/test_bookinfo.rb +69 -0
- data/test/test_directorymapper.rb +29 -3
- metadata +36 -4
- data/lib/madowu/isbn.rb +0 -74
- data/test/test_isbn.rb +0 -56
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: decfbfaf61dffe9a4ba5fee8ada06b22f80c5dd1
|
4
|
+
data.tar.gz: c4d98b1223c6bc20c5fa9fda7dffff29e5c6713b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 560b45d6783bb1cc40099412fe804c06837ffdab0f8468597556cb5d4f1fe25bc77516285e840c455693d1eaf3da9e539990e89bd7362a9311edaf06506758d1
|
7
|
+
data.tar.gz: ba320592204afc4e654be3e312d2cc51a449cb63e173904dab919eca046f961219e532c2ae0ac456e61c23e0eddc1c385c69ce21c6e03288e7943eb99aff960d
|
data/CHANGES
CHANGED
@@ -2,6 +2,16 @@
|
|
2
2
|
|
3
3
|
<!-- Master -->
|
4
4
|
|
5
|
+
== Version 0.0.8 [2017-04-11]
|
6
|
+
|
7
|
+
* Apply escape_zsh to string for kakasi command
|
8
|
+
* Add example/doc
|
9
|
+
* Add bin/figchange
|
10
|
+
* add bin/tex2image --background white
|
11
|
+
* Add bin/dirmap --index-link
|
12
|
+
* Rename Madowu::Isbn to Madowu::BookInfo
|
13
|
+
* Bugfix of bin/isbninfo
|
14
|
+
|
5
15
|
== Version 0.0.7 [2016-07-14]
|
6
16
|
|
7
17
|
* /bin/madowu is abolished
|
data/Gemfile
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.8
|
data/bin/dirmap
CHANGED
@@ -19,6 +19,7 @@ op.banner = [
|
|
19
19
|
op.on("-v" , "--verbose" , "Output to stdout too"){ options[:verbose] = true}
|
20
20
|
op.on("-f" , "--force" , "Force output"){ options[:force] = true}
|
21
21
|
op.on("-k" , "--kakasi" , "Sort by Japanese yomi"){ options[:kakasi] = true}
|
22
|
+
op.on("-i" , "--index-link" , "Link to index.html even when not exist"){ options[:index] = true}
|
22
23
|
op.parse!(ARGV)
|
23
24
|
|
24
25
|
if ARGV.size > 1
|
@@ -42,7 +43,10 @@ def should_update?(options, outfile, new_contents)
|
|
42
43
|
end
|
43
44
|
|
44
45
|
outfile = DEFAULT_OUTFILE
|
45
|
-
contents = Madowu::DirectoryMapper.dirmap(dir,
|
46
|
+
contents = Madowu::DirectoryMapper.dirmap(path: dir,
|
47
|
+
kakasi: options[:kakasi],
|
48
|
+
index: options[:index],
|
49
|
+
)
|
46
50
|
|
47
51
|
if should_update?(options, outfile, contents)
|
48
52
|
io = File.open(outfile, 'w')
|
data/bin/figchange
ADDED
@@ -0,0 +1,56 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
# coding: utf-8
|
3
|
+
|
4
|
+
require "optparse"
|
5
|
+
require "pp"
|
6
|
+
require "string/escapezsh"
|
7
|
+
|
8
|
+
USAGE = <<HERE
|
9
|
+
Usage: #{File.basename("#{__FILE__}")} [options] old_name new_name
|
10
|
+
HERE
|
11
|
+
|
12
|
+
## option analysis
|
13
|
+
options = {}
|
14
|
+
op = OptionParser.new
|
15
|
+
op.banner = USAGE
|
16
|
+
op.on("-g" , "--git" , "git mv"){options[:git] = true}
|
17
|
+
op.parse!(ARGV)
|
18
|
+
|
19
|
+
old_name = ARGV.shift
|
20
|
+
new_name = ARGV.shift
|
21
|
+
|
22
|
+
def execute(command)
|
23
|
+
puts command
|
24
|
+
system command
|
25
|
+
end
|
26
|
+
|
27
|
+
if Dir.glob("#{new_name}*").empty?
|
28
|
+
option = ''
|
29
|
+
option += " --git " if options[:git]
|
30
|
+
command = "rensub --global #{option} -y #{old_name} #{new_name}"
|
31
|
+
execute(command)
|
32
|
+
else
|
33
|
+
puts "already exist: #{ Dir.glob("#{new_name}*").join(' ')}"
|
34
|
+
exit
|
35
|
+
end
|
36
|
+
|
37
|
+
targets = ARGV
|
38
|
+
if targets.empty?
|
39
|
+
targets += Dir.glob("*.md")
|
40
|
+
targets += Dir.glob("*.tex")
|
41
|
+
targets += Dir.glob("Rakefile")
|
42
|
+
targets.flatten
|
43
|
+
end
|
44
|
+
|
45
|
+
targets.each do |file|
|
46
|
+
execute("linesub --global --overwrite #{old_name} #{new_name} #{file}")
|
47
|
+
|
48
|
+
old_label = "#fig:#{old_name}".escape_zsh
|
49
|
+
new_label = "#fig:#{new_name}".escape_zsh
|
50
|
+
execute("linesub --global --overwrite #{old_label} #{new_label} #{file}")
|
51
|
+
|
52
|
+
old_label = "#fig:#{old_name.sub(/^fig/, '')}".escape_zsh
|
53
|
+
new_label = "#fig:#{new_name.sub(/^fig/, '')}".escape_zsh
|
54
|
+
execute("linesub --global --overwrite #{old_label} #{new_label} #{file}")
|
55
|
+
end
|
56
|
+
|
data/bin/isbninfo
CHANGED
@@ -6,17 +6,31 @@ require 'nokogiri'
|
|
6
6
|
require "madowu"
|
7
7
|
|
8
8
|
ARGF.each do |isbn|
|
9
|
-
|
9
|
+
begin
|
10
|
+
#book = Madowu::Isbn.new(isbn, true)
|
11
|
+
book = Madowu::BookInfo.load_isbn(isbn)
|
12
|
+
end
|
10
13
|
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
14
|
+
printf("[ ![%s](%s)\n%s,\n%s,\nISBN:\n%s,%s,\n%s\n](%s)\n",
|
15
|
+
book.title,
|
16
|
+
book.img_url,
|
17
|
+
book.title,
|
18
|
+
book.author,
|
19
|
+
book.isbn,
|
20
|
+
book.publisher,
|
21
|
+
book.publication_date,
|
22
|
+
book.url
|
23
|
+
)
|
24
|
+
|
25
|
+
# puts <<HERE
|
26
|
+
#[ ![#{book.title}](#{book.img_url})
|
27
|
+
# #{book.title},
|
28
|
+
# #{book.author},
|
29
|
+
# ISBN:#{book.isbn},
|
30
|
+
# #{book.publisher},
|
31
|
+
# #{book.publication_date}
|
32
|
+
#](#{book.url})
|
33
|
+
#HERE
|
20
34
|
|
21
35
|
|
22
36
|
|
data/bin/tex2image
CHANGED
@@ -60,7 +60,7 @@ img_file = Pathname(tex_file).sub_ext(".#{img_ext}").to_s
|
|
60
60
|
|
61
61
|
commands = []
|
62
62
|
commands << "#{LATEX} #{tex_file} > /dev/null"
|
63
|
-
commands << "#{CONVERT} -trim -density #{density}x#{density} #{dvi_file} #{img_file}"
|
63
|
+
commands << "#{CONVERT} -background white -alpha deactivate -trim -density #{density}x#{density} #{dvi_file} #{img_file}"
|
64
64
|
execute(commands)
|
65
65
|
commands = []
|
66
66
|
|
data/example/Rakefile
CHANGED
@@ -1,16 +1,17 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
# Rakefile for Markdown documents.
|
3
3
|
|
4
|
-
DIRMAP_MD
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
CONVERT_COMMAND = "convert -alpha deactivate -density 150x150"
|
4
|
+
DIRMAP_MD = '.dirmap.md'
|
5
|
+
HTML2PDF = "wkhtmltopdf -B 1cm -L 1.5cm -R 1.5cm -T 1.5cm -s A4 --encoding UTF-8 "
|
6
|
+
TEX2IMAGE = "tex2image"
|
7
|
+
IMAGEMAGICK = "convert -alpha deactivate -density 144x144"
|
8
|
+
INKSCAPE = "inkscape"
|
10
9
|
|
11
10
|
require "pp"
|
12
11
|
require "fileutils"
|
13
12
|
require "pathname"
|
13
|
+
require "tempfile"
|
14
|
+
require "rake/clean"
|
14
15
|
|
15
16
|
## .dirmap.md
|
16
17
|
# dirmap コマンドは必ず実行なので task タスク。
|
@@ -22,7 +23,7 @@ require "pathname"
|
|
22
23
|
desc "update .dirmap.md if directory changed."
|
23
24
|
file DIRMAP_MD => :dirmap_command
|
24
25
|
task :dirmap_command do
|
25
|
-
sh "dirmap
|
26
|
+
sh "dirmap --kakasi"
|
26
27
|
end
|
27
28
|
|
28
29
|
## *.html
|
@@ -35,75 +36,86 @@ html_files.each do |html_file|
|
|
35
36
|
dirpath = md_path.dirname
|
36
37
|
src = FileList[md_file, DIRMAP_MD]
|
37
38
|
file html_file => [DIRMAP_MD, md_file] do
|
38
|
-
|
39
|
+
puts "Update: #{md_file} -> #{html_file}"
|
40
|
+
|
41
|
+
side_lines = `pandoc #{DIRMAP_MD}`.split("\n")
|
42
|
+
side_lines.unshift "<div class='sidebar'>"
|
43
|
+
side_lines.push "</div>"
|
44
|
+
|
45
|
+
line = `pandoc -s -N --toc -c madowu.css --mathjax --filter pandoc-crossref #{md_file}`
|
46
|
+
lines = line.split("\n")
|
47
|
+
end_body = lines.index('</body>')
|
48
|
+
lines.insert(end_body, side_lines)
|
49
|
+
lines.flatten
|
50
|
+
# -N = --number-sections
|
51
|
+
# -s = --standalone
|
52
|
+
File.open(html_file, "w") {|io| io.puts lines}
|
39
53
|
end
|
40
54
|
html_tasks << html_file
|
41
55
|
end
|
42
|
-
|
56
|
+
CLEAN.include(html_files)
|
43
57
|
desc "make *.html from *.md"
|
44
58
|
task :md2html => [DIRMAP_MD, * html_tasks]
|
45
59
|
|
46
|
-
|
47
|
-
desc "make *.pdf from *.html"
|
48
|
-
pdf_files = html_files.ext("pdf")
|
49
|
-
task :html2pdf => FileList[pdf_files]
|
50
|
-
pdf_files.each do |pdf_file|
|
51
|
-
html_file = pdf_file.ext("html")
|
52
|
-
file pdf_file => html_file do
|
53
|
-
sh "#{HTML2PDF} #{HTML2PDF_OPTIONS} #{html_file} #{pdf_file}"
|
54
|
-
end
|
55
|
-
end
|
56
|
-
|
57
|
-
|
58
|
-
desc "make .png from .eps."
|
59
|
-
eps_files = FileList["*.eps"]
|
60
|
-
png_files = eps_files.ext("png")
|
61
|
-
task :eps2png => FileList[png_files]
|
62
|
-
png_files.each do |png_file|
|
63
|
-
eps_file = png_file.ext("eps")
|
64
|
-
t = [eps_file]
|
65
|
-
file png_file => t do
|
66
|
-
sh "#{CONVERT_COMMAND} #{eps_file} #{png_file}"
|
67
|
-
end
|
68
|
-
end
|
69
|
-
|
70
|
-
|
71
|
-
desc "make *.png from *.tex"
|
72
|
-
tex_files = FileList["*.tex"]
|
73
|
-
png_files = tex_files.ext("png")
|
74
|
-
task :tex2png => FileList[png_files]
|
75
|
-
png_files.each do |png_file|
|
76
|
-
tex_file = png_file.ext("tex")
|
77
|
-
file png_file => tex_file do
|
78
|
-
#pp png_file, tex_file; exit
|
79
|
-
sh "#{TEX2IMAGE} #{tex_file}"
|
80
|
-
end
|
81
|
-
end
|
82
|
-
|
83
|
-
|
84
60
|
# recursive だと、サブディレクトリの Rakefile も
|
85
61
|
# recursive ターゲットを持っているという前提が必要。
|
86
62
|
desc "execute 'rake' in all subdirs with Rakefile"
|
87
63
|
rakefiles = FileList["**/Rakefile"]
|
88
64
|
dirs = rakefiles.map{|path| Pathname.new(path).dirname.to_s}
|
89
|
-
dirs.delete_if {|i| i == '.' }
|
65
|
+
#dirs.delete_if {|i| i == '.' }
|
90
66
|
dirs.map!{|path| File.absolute_path(path)}
|
67
|
+
#pp dirs; exit
|
91
68
|
task :subdir do
|
92
69
|
dirs.each do |dir|
|
70
|
+
puts "■" + dir
|
93
71
|
Dir.chdir dir
|
94
72
|
system "rake"
|
95
73
|
end
|
96
74
|
end
|
97
75
|
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
76
|
+
############################################################
|
77
|
+
## extension rules
|
78
|
+
## src_exts: array of the extentions that the destination file depends on.
|
79
|
+
## src_exts[0] is used as a 'src' of rake target.
|
80
|
+
def rule_src2dst(src_exts, dst_ext)
|
81
|
+
desc "convert from .#{src_exts[0]} to #{dst_ext}."
|
82
|
+
dst_files = []
|
83
|
+
FileList["*.#{src_exts[0]}"].each do |src_file|
|
84
|
+
dst_file = src_file.ext(dst_ext)
|
85
|
+
basename = File.basename(src_file, ".#{src_exts[0]}")
|
86
|
+
src_files = src_exts.map {|ext| FileList["#{basename}.#{ext}"]}.flatten
|
87
|
+
src_files.select!{|path| FileTest.exist? path }
|
88
|
+
file dst_file => src_files do
|
89
|
+
yield(src_files, dst_file)
|
90
|
+
end
|
91
|
+
dst_files << dst_file
|
92
|
+
end
|
93
|
+
task "#{src_exts[0]}2#{dst_ext}".to_sym => dst_files
|
94
|
+
CLEAN.include(dst_files)
|
95
|
+
end
|
103
96
|
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
])
|
97
|
+
rule_src2dst(['pov'], 'png') { |srcs, dst| sh "povray -D #{srcs[0]}"}
|
98
|
+
rule_src2dst(['eps'], 'png') { |srcs, dst| sh "#{IMAGEMAGICK} #{srcs[0]} #{dst}"}
|
99
|
+
rule_src2dst(['dot'], 'png') { |srcs, dst| sh "dot -Tpng #{srcs[0]} -o #{dst}"}
|
100
|
+
rule_src2dst(['tex'], 'png') { |srcs, dst| sh "#{TEX2IMAGE} #{srcs[0]}" }
|
101
|
+
rule_src2dst(['svg'], 'eps') { |srcs, dst| sh "#{INKSCAPE} -T -z -E #{dst} #{srcs[0]}" }
|
102
|
+
rule_src2dst(['svg'], 'png') { |srcs, dst|
|
103
|
+
#直接 png にすると、透明背景で余白ありになる。
|
104
|
+
eps_file = Tempfile.new.path
|
105
|
+
sh "#{INKSCAPE} -T -z -E #{eps_file} #{srcs[0]}"
|
106
|
+
sh "#{IMAGEMAGICK} #{srcs[0]} #{dst}"
|
107
|
+
FileUtils.rm eps_file
|
108
|
+
}
|
109
|
+
rule_src2dst(['rb', 'dat'] , 'png') { |srcs, dst| sh "ruby #{srcs[0]}" }
|
110
|
+
rule_src2dst(['rb', 'dat'] , 'eps') { |srcs, dst| sh "ruby #{srcs[0]} --eps"}
|
111
|
+
rule_src2dst(['plt', 'dat'] , 'eps') { |srcs, dst| sh "gnuplot ./#{srcs[0]}"}
|
112
|
+
rule_src2dst(['html'], 'pdf') { |srcs, dst| sh "#{HTML2PDF} #{srcs[0]} #{dst}"}
|
113
|
+
|
114
|
+
############################################################
|
115
|
+
|
116
|
+
#task :all => [:md2html, :subdir]
|
117
|
+
task :default => [:md2html, :tex2png, :svg2png, :rb2png, :pov2png, :dot2png]
|
118
|
+
# 基本方針として、html を生成するのをデフォルトとする。
|
119
|
+
# :eps2png は、rb2eps と rb2png の関係に干渉する
|
120
|
+
# :plt2eps
|
109
121
|
|
@@ -0,0 +1,121 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
# Rakefile for Markdown documents.
|
3
|
+
|
4
|
+
DIRMAP_MD = '.dirmap.md'
|
5
|
+
HTML2PDF = "wkhtmltopdf -B 1cm -L 1.5cm -R 1.5cm -T 1.5cm -s A4 --encoding UTF-8 "
|
6
|
+
TEX2IMAGE = "tex2image"
|
7
|
+
IMAGEMAGICK = "convert -alpha deactivate -density 144x144"
|
8
|
+
INKSCAPE = "inkscape"
|
9
|
+
|
10
|
+
require "pp"
|
11
|
+
require "fileutils"
|
12
|
+
require "pathname"
|
13
|
+
require "tempfile"
|
14
|
+
require "rake/clean"
|
15
|
+
|
16
|
+
## .dirmap.md
|
17
|
+
# dirmap コマンドは必ず実行なので task タスク。
|
18
|
+
# これを file にすると存在するときに実行されない。
|
19
|
+
# 生成物の .dirmap.md から task タスクへの依存を設定すると、
|
20
|
+
# .dirmap.md に依存する file タスクに「必ず実行」が伝播して必ず実行になってしまう。
|
21
|
+
# DIRMAP_MD というファイルに対する file タスクへの依存として扱うことで、
|
22
|
+
# .dirmap.md に依存する file タスクに「必ず実行」が伝播するのを防いでいる。
|
23
|
+
desc "update .dirmap.md if directory changed."
|
24
|
+
file DIRMAP_MD => :dirmap_command
|
25
|
+
task :dirmap_command do
|
26
|
+
sh "dirmap --kakasi"
|
27
|
+
end
|
28
|
+
|
29
|
+
## *.html
|
30
|
+
md_files = FileList["*.md"]
|
31
|
+
html_files = md_files.ext("html")
|
32
|
+
html_tasks = []
|
33
|
+
html_files.each do |html_file|
|
34
|
+
md_file = html_file.ext("md")
|
35
|
+
md_path = Pathname.new( md_file)
|
36
|
+
dirpath = md_path.dirname
|
37
|
+
src = FileList[md_file, DIRMAP_MD]
|
38
|
+
file html_file => [DIRMAP_MD, md_file] do
|
39
|
+
puts "Update: #{md_file} -> #{html_file}"
|
40
|
+
|
41
|
+
side_lines = `pandoc #{DIRMAP_MD}`.split("\n")
|
42
|
+
side_lines.unshift "<div class='sidebar'>"
|
43
|
+
side_lines.push "</div>"
|
44
|
+
|
45
|
+
line = `pandoc -s -N --toc -c madowu.css --mathjax --filter pandoc-crossref #{md_file}`
|
46
|
+
lines = line.split("\n")
|
47
|
+
end_body = lines.index('</body>')
|
48
|
+
lines.insert(end_body, side_lines)
|
49
|
+
lines.flatten
|
50
|
+
# -N = --number-sections
|
51
|
+
# -s = --standalone
|
52
|
+
File.open(html_file, "w") {|io| io.puts lines}
|
53
|
+
end
|
54
|
+
html_tasks << html_file
|
55
|
+
end
|
56
|
+
CLEAN.include(html_files)
|
57
|
+
desc "make *.html from *.md"
|
58
|
+
task :md2html => [DIRMAP_MD, * html_tasks]
|
59
|
+
|
60
|
+
# recursive だと、サブディレクトリの Rakefile も
|
61
|
+
# recursive ターゲットを持っているという前提が必要。
|
62
|
+
desc "execute 'rake' in all subdirs with Rakefile"
|
63
|
+
rakefiles = FileList["**/Rakefile"]
|
64
|
+
dirs = rakefiles.map{|path| Pathname.new(path).dirname.to_s}
|
65
|
+
#dirs.delete_if {|i| i == '.' }
|
66
|
+
dirs.map!{|path| File.absolute_path(path)}
|
67
|
+
#pp dirs; exit
|
68
|
+
task :subdir do
|
69
|
+
dirs.each do |dir|
|
70
|
+
puts "■" + dir
|
71
|
+
Dir.chdir dir
|
72
|
+
system "rake"
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
############################################################
|
77
|
+
## extension rules
|
78
|
+
## src_exts: array of the extentions that the destination file depends on.
|
79
|
+
## src_exts[0] is used as a 'src' of rake target.
|
80
|
+
def rule_src2dst(src_exts, dst_ext)
|
81
|
+
desc "convert from .#{src_exts[0]} to #{dst_ext}."
|
82
|
+
dst_files = []
|
83
|
+
FileList["*.#{src_exts[0]}"].each do |src_file|
|
84
|
+
dst_file = src_file.ext(dst_ext)
|
85
|
+
basename = File.basename(src_file, ".#{src_exts[0]}")
|
86
|
+
src_files = src_exts.map {|ext| FileList["#{basename}.#{ext}"]}.flatten
|
87
|
+
src_files.select!{|path| FileTest.exist? path }
|
88
|
+
file dst_file => src_files do
|
89
|
+
yield(src_files, dst_file)
|
90
|
+
end
|
91
|
+
dst_files << dst_file
|
92
|
+
end
|
93
|
+
task "#{src_exts[0]}2#{dst_ext}".to_sym => dst_files
|
94
|
+
CLEAN.include(dst_files)
|
95
|
+
end
|
96
|
+
|
97
|
+
rule_src2dst(['pov'], 'png') { |srcs, dst| sh "povray -D #{srcs[0]}"}
|
98
|
+
rule_src2dst(['eps'], 'png') { |srcs, dst| sh "#{IMAGEMAGICK} #{srcs[0]} #{dst}"}
|
99
|
+
rule_src2dst(['dot'], 'png') { |srcs, dst| sh "dot -Tpng #{srcs[0]} -o #{dst}"}
|
100
|
+
rule_src2dst(['tex'], 'png') { |srcs, dst| sh "#{TEX2IMAGE} #{srcs[0]}" }
|
101
|
+
rule_src2dst(['svg'], 'eps') { |srcs, dst| sh "#{INKSCAPE} -T -z -E #{dst} #{srcs[0]}" }
|
102
|
+
rule_src2dst(['svg'], 'png') { |srcs, dst|
|
103
|
+
#直接 png にすると、透明背景で余白ありになるので eps を経由する
|
104
|
+
eps_file = Tempfile.new.path
|
105
|
+
sh "#{INKSCAPE} -T -z -E #{eps_file} #{srcs[0]}"
|
106
|
+
sh "#{IMAGEMAGICK} #{srcs[0]} #{dst}"
|
107
|
+
FileUtils.rm eps_file
|
108
|
+
}
|
109
|
+
rule_src2dst(['rb' , 'dat'], 'png') { |srcs, dst| sh "ruby #{srcs[0]}" }
|
110
|
+
rule_src2dst(['rb' , 'dat'], 'eps') { |srcs, dst| sh "ruby #{srcs[0]} --eps"}
|
111
|
+
rule_src2dst(['plt', 'dat'], 'eps') { |srcs, dst| sh "gnuplot ./#{srcs[0]}"}
|
112
|
+
rule_src2dst(['html' ], 'pdf') { |srcs, dst| sh "#{HTML2PDF} #{srcs[0]} #{dst}"}
|
113
|
+
|
114
|
+
############################################################
|
115
|
+
|
116
|
+
#task :all => [:md2html, :subdir]
|
117
|
+
task :default => [:md2html, :tex2png, :svg2png, :rb2png, :pov2png, :dot2png]
|
118
|
+
# 基本方針として、html を生成するのをデフォルトとする。
|
119
|
+
# :eps2png は、rb2eps と rb2png の関係に干渉する
|
120
|
+
# :plt2eps
|
121
|
+
|