sc2epub 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGES CHANGED
@@ -1,3 +1,9 @@
1
+ = 0.0.3
2
+ Rewrite some class.
3
+ Add encoding-convert.
4
+ Add tests.
5
+ Add lang options.
6
+
1
7
  = 0.0.2
2
8
  use Makefile. add cover.jpg
3
9
 
data/bin/sc2epub CHANGED
@@ -1,251 +1,4 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- require 'kconv'
4
- require 'optparse'
5
- require 'fileutils'
6
- TEMPLATE = <<EOS
7
- <?xml version="1.0" encoding="UTF-8"?>
8
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
9
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja-JP" lang="ja-JP"><head><title>%(title)</title><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/><head/><body>
10
- <h1>%(title)</h1>
11
- <pre>
12
- %(body)
13
- </pre>
14
- </body>
15
- </html>
16
- EOS
17
- TEMPLATE_INDEX = <<EOS
18
- <?xml version="1.0" encoding="UTF-8"?>
19
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
20
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja-JP" lang="ja-JP"><head><title>%(title)</title><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/><head/><body>
21
- <a name='#TOC' /><h1>INDEX</h1>
22
- %(body)
23
- </body>
24
- </html>
25
- EOS
26
- TEMPLATE_LINK = <<EOS
27
- <a href="%(url)">%(title)</a>
28
- EOS
29
- TEMPLATE_OPF = <<EOS
30
- <?xml version="1.0" encoding="utf-8"?>
31
- <package unique-identifier="uid">
32
- <metadata>
33
- <meta name="cover" content="cover" />
34
- <dc-metadata xmlns:dc="http://purl.org/metadata/dublin_core"
35
- xmlns:oebpackage="http://openebook.org/namespaces/oeb-package/1.0/">
36
- <dc:Title>%(title)</dc:Title>
37
- <dc:Language>ja</dc:Language>
38
- <dc:Creator>%(author)</dc:Creator>
39
- <dc:Description>..</dc:Description>
40
- <dc:Date>%(date)</dc:Date>
41
- </dc-metadata>
42
- <x-metadata>
43
- <output encoding="utf-8" content-type="text/x-oeb1-document">
44
- </output>
45
- </x-metadata>
46
- </metadata>
47
- <manifest>
48
- <item id="index" media-type-"text/x-oeb1-document" href="index.html"></item>
49
- %(items)
50
- <item id="toc" media-type="application/x-dtbncx+xml" href="toc.ncx"></item>
51
- <item id="cover" href="cover.jpg" media-type="image/jpeg" />
52
- </manifest>
53
- <spine toc="toc">
54
- <itemref idref="index" />
55
- </spine>
56
- <tours></tours>
57
- <guide>
58
- <reference type="toc" title="Table of Contents" href="index.html"></reference>
59
- <reference type="start" title="Table of Contents" href="index.html"></reference>
60
- </guide>
61
- </package>
62
- EOS
63
- TEMPLATE_ITEM = <<EOS
64
- <item id="%(id)" media-type="text/x-oeb1-document" href="%(link)"></item>
65
- EOS
66
- TEMPLATE_NCX = <<EOS
67
- <?xml version="1.0" encoding="UTF-8"?>
68
- <!DOCTYPE ncx PUBLIC "-//NISO//DTD ncx 2005-1//EN" "http://www.daisy.org/z3986/2005/ncx-2005-1.dtd">
69
- <ncx xmlns="http://www.daisy.org/z3986/2005/ncx/" version="2005-1">
70
- <docTitle><text>%(title)</text></docTitle>
71
- <navMap>
72
- %(navitems)
73
- </navMap>
74
- </ncx>
75
- EOS
76
- TEMPLATE_NAVITEM = <<EOS
77
- <navPoint id="%(id)" playOrder="%(order)">
78
- <navLabel><text>%(title)</text></navLabel><content src="%(link)"/>
79
- </navPoint>
80
- EOS
81
- TEMPLATE_MAKEFILE = <<EOS
82
- PROJECT = %(title)
83
- EPUB = $(PROJECT).epub
84
- MOBI = $(PROJECT).mobi
85
- KINDLEGEN = kindlegen
86
-
87
- .PHONY: all
88
- all: $(EPUB)
89
-
90
- .PHONY: kindle
91
- kindle: $(MOBI)
92
-
93
- .PHONY: clean
94
- clean:
95
- \tfind ./ -name "*.epub" -exec rm {} \\;
96
- \tfind ./ -name "*.mobi" -exec rm {} \\;
97
-
98
- $(EPUB):
99
- \tzip -Xr9D $(EPUB) mimetype META-INF toc.ncx $(PROJECT).opf
100
- \tfind ./ -name "*.html" -o -name "*.jpg" | xargs zip -Xr9D $(EPUB)
101
-
102
- $(MOBI): $(EPUB)
103
- \t$(KINDLEGEN) $(EPUB)
104
- EOS
105
- $env = {}
106
- def local path
107
- if path.index($root)==0
108
- path = path[$root.size, path.size]
109
- end
110
- if path[0,1] == "/"
111
- path = path[1, path.size]
112
- end
113
- return path
114
- end
115
- def title path
116
- path.gsub(/\//, "_").gsub(/\./, '_')
117
- end
118
- def dogenerate output, doctitle
119
- indexhtml = ''
120
- items = ''; c=0;
121
- nvitems = ''
122
- cover = File::join(File::dirname(__FILE__), '../lib/cover.jpg')
123
- FileUtils::cp(cover, output)
124
- $indexes.each do |data|
125
- title = data[:name]
126
- link = data[:src]
127
- if data[:type]==:dir && data[:level]+2<=4
128
- tagname = "h" + (data[:level]+2).to_s
129
- else
130
- tagname = 'p'
131
- end
132
- indexhtml += "<#{tagname}>" + dotemplate(TEMPLATE_LINK, 'url'=>link, 'title'=>title) + "</#{tagname}>\n"
133
- if data[:type]==:file
134
- items += dotemplate(TEMPLATE_ITEM, 'id'=>"item#{c+=1}", 'link'=>link)
135
- nvitems += dotemplate(TEMPLATE_NAVITEM, 'id'=>"navPoint-#{c}", 'order'=>c.to_s, 'link'=>link, 'title'=>title)
136
- end
137
- end
138
- author = $env[:author]
139
- indexhtml = dotemplate(TEMPLATE_INDEX, 'title'=>'index', 'body'=>indexhtml)
140
- opf = dotemplate(TEMPLATE_OPF, 'title'=>doctitle, 'date'=>Time::now.strftime("%Y/%m/%d"), 'items'=>items, 'author'=>author)
141
- ncx = dotemplate(TEMPLATE_NCX, 'title'=>doctitle, 'navitems'=>nvitems)
142
- open(File::join(output, 'index.html'), 'w') do |io|
143
- io.write(indexhtml)
144
- end
145
- opfpath = "#{doctitle}.opf"
146
- open(File::join(output, opfpath), 'w') do |io|
147
- io.write(opf)
148
- end
149
- open(File::join(output, 'toc.ncx'), 'w') do |io|
150
- io.write(ncx)
151
- end
152
- Dir::mkdir(File::join(output, 'META-INF')) unless FileTest::exists? File::join(output, 'META-INF')
153
- open(File::join(output, 'META-INF', 'container.xml'), 'w') do |io|
154
- io.write <<EOS
155
- <?xml version="1.0"?>
156
- <container version="1.0" xmlns="urn:oasis:names:tc:opendocument:xmlns:container">
157
- <rootfiles>
158
- <rootfile full-path="#{opfpath}" media-type="application/oebps-package+xml"/>
159
- </rootfiles>
160
- </container>
161
- EOS
162
- end
163
- open(File::join(output, 'mimetype'), 'w') do |io|
164
- io.puts('application/epub+zip')
165
- end
166
- makefile = dotemplate(TEMPLATE_MAKEFILE, 'title'=>doctitle)
167
- open(File::join(output, 'Makefile'), 'w') do |io|
168
- io.write(makefile)
169
- end
170
- end
171
- def dotemplate template, params
172
- t = template
173
- for k,v in params
174
- t = t.gsub(/%\(#{k}\)/, v)
175
- end
176
- t
177
- end
178
- def dofile path, output
179
- s = open(path){|io|io.read}
180
- return nil if Kconv::guess(s)==Kconv::BINARY
181
- title = title(local(path))
182
- s = dotemplate(TEMPLATE, 'title'=>local(path), 'body'=>s)
183
- npath = title+".html"
184
- if $dirstack.last and not $dirstack.last[:src]
185
- $dirstack.last[:src] = npath
186
- $indexes << $dirstack.last
187
- end
188
- open(File::join(output, npath), "w") do |io|
189
- io.write(s)
190
- end
191
- level = $dirstack.empty? ? 1 : $dirstack.last[:level]+1
192
- $indexes << {:src => npath, :name =>local(path), :type => :file, :level => level}
193
- title
194
- end
195
- $dirstack = []
196
- $indexes = []
197
- def dodir dir, output
198
- return [] if File::basename(dir)=~/^\..*/
199
- $dirstack.push({:name =>local(dir), :src =>nil, :type => :dir, :level => $dirstack.size})
200
- Dir::foreach(dir) do |i|
201
- next if i=="."||i==".."
202
- path = File::join(dir, i)
203
- if FileTest::directory? path
204
- dodir(path, output)
205
- elsif FileTest::file? path
206
- dofile(path, output)
207
- end
208
- end
209
- $dirstack.pop
210
- end
211
- def doroot dir, output
212
- $root = dir
213
- Dir::foreach(dir) do |i|
214
- next if i=="."||i==".."
215
- path = File::join(dir, i)
216
- if FileTest::directory? path
217
- dodir(path, output)
218
- elsif FileTest::file? path
219
- dofile(path, output)
220
- end
221
- end
222
- end
223
3
  require 'sc2epub'
224
- def main
225
- input = ARGV[0]
226
- output = ARGV[1]
227
- user = ENV['USER']
228
- opts = OptionParser.new("Usage: #{File::basename($0)} SOME_DIR OUTPUT_DIR PROJECT_NAME")
229
- opts.on("-v", "--version", "show version") do
230
- puts "%s %s" %[File.basename($0), Sc2epub::VERSION]
231
- puts "ruby %s" % RUBY_VERSION
232
- exit
233
- end
234
- opts.on("-u", "--user", "set user name") do |v|
235
- user = v
236
- end
237
- opts.on_tail("-h", "--help", "show this message") do
238
- puts opts
239
- exit
240
- end
241
- if ARGV.size < 3
242
- puts opts
243
- exit
244
- end
245
-
246
- $env[:author] = user
247
- Dir::mkdir(output) unless FileTest::exists? output
248
- doroot(input, output)
249
- dogenerate(output, ARGV[2])
250
- end
251
- main
4
+ Sc2epub::Main::new.main
@@ -0,0 +1,129 @@
1
+ class Sc2epub::Converter
2
+ require 'kconv'
3
+ require 'fileutils'
4
+ def initialize env, root, output
5
+ @root = path(root)
6
+ @output = output
7
+ @template = Sc2epub::Template::new
8
+ @dirstack = []
9
+ @indexes = []
10
+ @env = env
11
+ end
12
+ def path path
13
+ r = File::expand_path(path)
14
+ end
15
+ def local path
16
+ if path.index(@root)==0
17
+ path = path[@root.size, path.size]
18
+ end
19
+ if path[0,1] == "/"
20
+ path = path[1, path.size]
21
+ end
22
+ return path
23
+ end
24
+ def title path
25
+ path.gsub(/\//, "_").gsub(/\./, '_')
26
+ end
27
+ def dogenerate doctitle
28
+ output = @output
29
+ indexhtml = ''
30
+ items = ''; c=0;
31
+ nvitems = ''
32
+ cover = File::join(File::dirname(__FILE__), 'cover.jpg')
33
+ FileUtils::cp(cover, output)
34
+ @indexes.each do |data|
35
+ title = data[:name]
36
+ link = data[:src]
37
+ if data[:type]==:dir && data[:level]+2<=4
38
+ tagname = "h" + (data[:level]+2).to_s
39
+ else
40
+ tagname = 'p'
41
+ end
42
+ indexhtml += "<#{tagname}>" + @template.link('url'=>link, 'title'=>title) + "</#{tagname}>\n"
43
+ if data[:type]==:file
44
+ items += @template.item('id'=>"item#{c+=1}", 'link'=>link)
45
+ nvitems += @template.navi('id'=>"navPoint-#{c}", 'order'=>c.to_s, 'link'=>link, 'title'=>title)
46
+ end
47
+ end
48
+ indexhtml = @template.index('title'=>'index', 'body'=>indexhtml)
49
+ opf = @template.opf('title'=>doctitle, 'date'=>Time::now.strftime("%Y/%m/%d"),
50
+ 'lang' => @env[:lang],
51
+ 'items'=>items, 'author'=>@env[:author])
52
+ ncx = @template.ncx('title'=>doctitle, 'navitems'=>nvitems)
53
+ open(File::join(output, 'index.html'), 'w') do |io|
54
+ io.write(indexhtml)
55
+ end
56
+ opfpath = "#{doctitle}.opf"
57
+ open(File::join(output, opfpath), 'w') do |io|
58
+ io.write(opf)
59
+ end
60
+ open(File::join(output, 'toc.ncx'), 'w') do |io|
61
+ io.write(ncx)
62
+ end
63
+ Dir::mkdir(File::join(output, 'META-INF')) unless FileTest::exists? File::join(output, 'META-INF')
64
+ open(File::join(output, 'META-INF', 'container.xml'), 'w') do |io|
65
+ io.write(@template.container('opfpath'=>opfpath))
66
+ end
67
+ open(File::join(output, 'mimetype'), 'w') do |io|
68
+ io.puts('application/epub+zip')
69
+ end
70
+ makefile = @template.makefile('title'=>doctitle)
71
+ open(File::join(output, 'Makefile'), 'w') do |io|
72
+ io.write(makefile)
73
+ end
74
+ end
75
+ def dofile path
76
+ if File::extname(path) == '.html' or File::extname(path) == '.xhtml'
77
+ FileUtils::cp(path, @output)
78
+ return
79
+ end
80
+ output = @output
81
+ s = open(path){|io|io.read}
82
+ enc = Kconv::guess(s)
83
+ if enc==Kconv::BINARY
84
+ return nil
85
+ elsif enc!=Kconv::UTF8
86
+ s = s.toutf8
87
+ end
88
+ title = title(local(path))
89
+ s = @template.xhtml('title'=>local(path), 'body'=>s)
90
+ npath = title+".html"
91
+ if @dirstack.last and not @dirstack.last[:src]
92
+ @dirstack.last[:src] = npath
93
+ @indexes << @dirstack.last
94
+ end
95
+ open(File::join(output, npath), "w") do |io|
96
+ io.write(s)
97
+ end
98
+ level = @dirstack.empty? ? 1 : @dirstack.last[:level]+1
99
+ @indexes << {:src => npath, :name =>local(path), :type => :file, :level => level}
100
+ title
101
+ end
102
+ def dodir dir
103
+ return [] if File::basename(dir)=~/^\..*/
104
+ @dirstack.push({:name =>local(dir), :src =>nil,
105
+ :type => :dir, :level => @dirstack.size})
106
+ Dir::foreach(dir) do |i|
107
+ next if i=="."||i==".."
108
+ path = File::join(dir, i)
109
+ if FileTest::directory? path
110
+ dodir(path)
111
+ elsif FileTest::file? path
112
+ dofile(path)
113
+ end
114
+ end
115
+ @dirstack.pop
116
+ end
117
+ def doroot dir
118
+ dir = path(dir)
119
+ Dir::foreach(dir) do |i|
120
+ next if i=="."||i==".."
121
+ path = File::join(dir, i)
122
+ if FileTest::directory? path
123
+ dodir(path)
124
+ elsif FileTest::file? path
125
+ dofile(path)
126
+ end
127
+ end
128
+ end
129
+ end
File without changes
@@ -0,0 +1,37 @@
1
+ class Sc2epub::Main
2
+ require 'optparse'
3
+ def main
4
+ input = ARGV[0]
5
+ output = ARGV[1]
6
+ opts = OptionParser.new("Usage: #{File::basename($0)} SOME_DIR OUTPUT_DIR PROJECT_NAME")
7
+ opts.on("-v", "--version", "show version") do
8
+ puts "%s %s" %[File.basename($0), Sc2epub::VERSION]
9
+ puts "ruby %s" % RUBY_VERSION
10
+ exit
11
+ end
12
+ opts.on("-u", "--user", "set user name") do |v|
13
+ user = v
14
+ end
15
+ lang = 'ja'
16
+ opts.on('-l', '--lang', 'set language') do |v|
17
+ lang = v
18
+ end
19
+ opts.on_tail("-h", "--help", "show this message") do
20
+ puts opts
21
+ exit
22
+ end
23
+ if ARGV.size < 3
24
+ puts opts
25
+ exit
26
+ end
27
+ user = ENV['USER']
28
+ env = {
29
+ :author => user,
30
+ :lang => lang
31
+ }
32
+ Dir::mkdir(output) unless FileTest::exists? output
33
+ @converter = Sc2epub::Converter::new(env, input, output)
34
+ @converter.doroot(input)
35
+ @converter.dogenerate(ARGV[2])
36
+ end
37
+ end
@@ -0,0 +1,6 @@
1
+ <?xml version="1.0"?>
2
+ <container version="1.0" xmlns="urn:oasis:names:tc:opendocument:xmlns:container">
3
+ <rootfiles>
4
+ <rootfile full-path="#{opfpath}" media-type="application/oebps-package+xml"/>
5
+ </rootfiles>
6
+ </container>
@@ -0,0 +1,7 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja-JP" lang="ja-JP"><head><title>%(title)</title><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/><head/><body>
4
+ <a name='#TOC' /><h1>INDEX</h1>
5
+ %(body)
6
+ </body>
7
+ </html>
@@ -0,0 +1,22 @@
1
+ PROJECT = %(title)
2
+ EPUB = $(PROJECT).epub
3
+ MOBI = $(PROJECT).mobi
4
+ KINDLEGEN = kindlegen
5
+
6
+ .PHONY: all
7
+ all: $(EPUB)
8
+
9
+ .PHONY: kindle
10
+ kindle: $(MOBI)
11
+
12
+ .PHONY: clean
13
+ clean:
14
+ find ./ -name "*.epub" -exec rm {} \\;
15
+ find ./ -name "*.mobi" -exec rm {} \\;
16
+
17
+ $(EPUB):
18
+ zip -Xr9D $(EPUB) mimetype META-INF toc.ncx $(PROJECT).opf
19
+ find ./ -name "*.html" -o -name "*.jpg" | xargs zip -Xr9D $(EPUB)
20
+
21
+ $(MOBI): $(EPUB)
22
+ $(KINDLEGEN) $(EPUB)
@@ -0,0 +1,8 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE ncx PUBLIC "-//NISO//DTD ncx 2005-1//EN" "http://www.daisy.org/z3986/2005/ncx-2005-1.dtd">
3
+ <ncx xmlns="http://www.daisy.org/z3986/2005/ncx/" version="2005-1">
4
+ <docTitle><text>%(title)</text></docTitle>
5
+ <navMap>
6
+ %(navitems)
7
+ </navMap>
8
+ </ncx>
@@ -0,0 +1,32 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <package unique-identifier="uid">
3
+ <metadata>
4
+ <meta name="cover" content="cover" />
5
+ <dc-metadata xmlns:dc="http://purl.org/metadata/dublin_core"
6
+ xmlns:oebpackage="http://openebook.org/namespaces/oeb-package/1.0/">
7
+ <dc:Title>%(title)</dc:Title>
8
+ <dc:Language>%(lang)</dc:Language>
9
+ <dc:Creator>%(author)</dc:Creator>
10
+ <dc:Description>..</dc:Description>
11
+ <dc:Date>%(date)</dc:Date>
12
+ </dc-metadata>
13
+ <x-metadata>
14
+ <output encoding="utf-8" content-type="text/x-oeb1-document">
15
+ </output>
16
+ </x-metadata>
17
+ </metadata>
18
+ <manifest>
19
+ <item id="index" media-type-"text/x-oeb1-document" href="index.html"></item>
20
+ %(items)
21
+ <item id="toc" media-type="application/x-dtbncx+xml" href="toc.ncx"></item>
22
+ <item id="cover" href="cover.jpg" media-type="image/jpeg" />
23
+ </manifest>
24
+ <spine toc="toc">
25
+ <itemref idref="index" />
26
+ </spine>
27
+ <tours></tours>
28
+ <guide>
29
+ <reference type="toc" title="Table of Contents" href="index.html"></reference>
30
+ <reference type="start" title="Table of Contents" href="index.html"></reference>
31
+ </guide>
32
+ </package>
@@ -0,0 +1,9 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja-JP" lang="ja-JP"><head><title>%(title)</title><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/><head/><body>
4
+ <h1>%(title)</h1>
5
+ <pre>
6
+ %(body)
7
+ </pre>
8
+ </body>
9
+ </html>
@@ -0,0 +1,56 @@
1
+ class Sc2epub::Template
2
+ TEMPLATE_MAKEFILE = 'makefile.tmpl'
3
+ TEMPLATE_OPF = 'opf.tmpl'
4
+ TEMPLATE_NCX = 'ncx.tmpl'
5
+ TEMPLATE_XHTML = 'xhtml.tmpl'
6
+ TEMPLATE_INDEX = 'index.tmpl'
7
+ TEMPLATE_LINK = "<a href=\"%(url)\">%(title)</a>"
8
+ TEMPLATE_NAVITEM = <<EOS
9
+ <navPoint id="%(id)" playOrder="%(order)">
10
+ <navLabel><text>%(title)</text></navLabel><content src="%(link)"/>
11
+ </navPoint>
12
+ EOS
13
+ TEMPLATE_ITEM = "<item id=\"%(id)\" media-type=\"text/x-oeb1-document\" href=\"%(link)\"></item>"
14
+ TEMPLATE_CONTAINER = 'container.tmpl'
15
+ def initialize
16
+ @dir = File::join(File::dirname(__FILE__), 'template')
17
+ end
18
+ def container params
19
+ dotemplate TEMPLATE_CONTAINER, params
20
+ end
21
+ def link params
22
+ dotemplate TEMPLATE_LINK, params
23
+ end
24
+ def item params
25
+ dotemplate TEMPLATE_ITEM, params
26
+ end
27
+ def navi params
28
+ dotemplate TEMPLATE_NAVITEM, params
29
+ end
30
+ def index params
31
+ dotemplate TEMPLATE_INDEX, params
32
+ end
33
+ def opf params
34
+ dotemplate TEMPLATE_OPF, params
35
+ end
36
+ def ncx params
37
+ dotemplate TEMPLATE_NCX, params
38
+ end
39
+ def makefile params
40
+ dotemplate TEMPLATE_MAKEFILE, params
41
+ end
42
+ def xhtml params
43
+ dotemplate TEMPLATE_XHTML, params
44
+ end
45
+ def dotemplate template, params
46
+ if template.rindex('.tmpl')
47
+ t = open(File::join(@dir, template)){|io|io.read}
48
+ else
49
+ t = template
50
+ end
51
+ for k,v in params
52
+ t = t.gsub(/%\(#{k}\)/, v)
53
+ end
54
+ t
55
+ end
56
+ end
data/lib/sc2epub.rb CHANGED
@@ -1,3 +1,6 @@
1
1
  module Sc2epub
2
- VERSION = "0.0.2"
2
+ require 'sc2epub/converter'
3
+ require 'sc2epub/template'
4
+ require 'sc2epub/main'
5
+ VERSION = "0.0.3"
3
6
  end
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 0
8
- - 2
9
- version: 0.0.2
8
+ - 3
9
+ version: 0.0.3
10
10
  platform: ruby
11
11
  authors:
12
12
  - takada-at
@@ -29,8 +29,17 @@ extensions: []
29
29
  extra_rdoc_files: []
30
30
 
31
31
  files:
32
- - lib/cover.jpg
33
32
  - lib/sc2epub.rb
33
+ - lib/sc2epub/template/makefile.tmpl
34
+ - lib/sc2epub/template/xhtml.tmpl
35
+ - lib/sc2epub/template/opf.tmpl
36
+ - lib/sc2epub/template/ncx.tmpl
37
+ - lib/sc2epub/template/index.tmpl
38
+ - lib/sc2epub/template/container.tmpl
39
+ - lib/sc2epub/cover.jpg
40
+ - lib/sc2epub/template.rb
41
+ - lib/sc2epub/converter.rb
42
+ - lib/sc2epub/main.rb
34
43
  - bin/sc2epub
35
44
  - sc2epub.gemspec
36
45
  - README