mizuho 0.9.17 → 0.9.18
Sign up to get free protection for your applications and to get access to all the features.
- data.tar.gz.asc +7 -7
- data/Rakefile +307 -22
- data/bin/mizuho-asciidoc +23 -2
- data/debian/{control → control.pp} +5 -1
- data/debian/mizuho.install.pp +4 -0
- data/debian/rules +2 -1
- data/lib/mizuho.rb +7 -3
- data/lib/mizuho/generator.rb +37 -15
- data/lib/mizuho/packaging.rb +0 -2
- metadata +5 -5
- metadata.gz.asc +7 -7
- data/debian/mizuho.install +0 -1
data.tar.gz.asc
CHANGED
@@ -2,11 +2,11 @@
|
|
2
2
|
Version: GnuPG/MacGPG2 v2.0.17 (Darwin)
|
3
3
|
Comment: GPGTools - http://gpgtools.org
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
=
|
5
|
+
iQEcBAABAgAGBQJRfZGvAAoJECrHRaUKISqMZA0H/2pCwpt1nTW5DD/1qT36IEmX
|
6
|
+
NnRePYM6El9Ccd7ZyhcThTTMpm6yp2Ao3hZMXGNh1UNdLwjvkaAoJBJC8Cvq5ckZ
|
7
|
+
rJlvPrVJPoxlT3JSnp8J59siWIBWQwkXqskHUGXWBYJ1sjvoTXw7svNwj0HIvZwP
|
8
|
+
d9qV1uOmCxCMiWt6HQjCa+74avVXAPQRzwqBfBBIxVRG2IqhRq+XdeyAWZ2qasVi
|
9
|
+
/t6eUR5EamygYbABgYWdSoOmP0E6ZVF3uti+ihiZ/KFr574s9+o7J35DByrZwTj8
|
10
|
+
JO167i04pKm1Ot2Unmi+bjTD8BGtom7VqQOZBATS16Z4Hvef52ul6cpxKADHZeM=
|
11
|
+
=0j4v
|
12
12
|
-----END PGP SIGNATURE-----
|
data/Rakefile
CHANGED
@@ -1,6 +1,273 @@
|
|
1
1
|
$LOAD_PATH.unshift(File.expand_path(File.dirname(__FILE__) + "/lib"))
|
2
2
|
require 'mizuho'
|
3
3
|
|
4
|
+
# Implements a simple preprocessor language:
|
5
|
+
#
|
6
|
+
# Today
|
7
|
+
# #if @today == :fine
|
8
|
+
# is a fine day.
|
9
|
+
# #elif @today == :good
|
10
|
+
# is a good day.
|
11
|
+
# #else
|
12
|
+
# is a sad day.
|
13
|
+
# #endif
|
14
|
+
# Let's go walking.
|
15
|
+
#
|
16
|
+
# When run with...
|
17
|
+
#
|
18
|
+
# Preprocessor.new.start('input.txt', 'output.txt', :today => :fine)
|
19
|
+
#
|
20
|
+
# ...will produce:
|
21
|
+
#
|
22
|
+
# Today
|
23
|
+
# is a fine day.
|
24
|
+
# Let's go walking.
|
25
|
+
#
|
26
|
+
# Highlights:
|
27
|
+
#
|
28
|
+
# * #if blocks can be nested.
|
29
|
+
# * Expressions are Ruby expressions, evaluated within the binding of a
|
30
|
+
# Preprocessor::Evaluator object.
|
31
|
+
# * Text inside #if/#elif/#else are automatically unindented.
|
32
|
+
class Preprocessor
|
33
|
+
def initialize
|
34
|
+
@indentation_size = 4
|
35
|
+
@debug = boolean_option('DEBUG')
|
36
|
+
end
|
37
|
+
|
38
|
+
def start(filename, output_filename, variables = {})
|
39
|
+
if output_filename
|
40
|
+
temp_output_filename = "#{output_filename}._new"
|
41
|
+
output = File.open(temp_output_filename, 'w')
|
42
|
+
else
|
43
|
+
output = STDOUT
|
44
|
+
end
|
45
|
+
the_binding = create_binding(variables)
|
46
|
+
context = []
|
47
|
+
@lineno = 1
|
48
|
+
@indentation = 0
|
49
|
+
|
50
|
+
each_line(filename) do |line|
|
51
|
+
debug("context=#{context.inspect}, line=#{line.inspect}")
|
52
|
+
|
53
|
+
name, args_string, cmd_indentation = recognize_command(line)
|
54
|
+
case name
|
55
|
+
when "if"
|
56
|
+
case context.last
|
57
|
+
when nil, :if_true, :else_true
|
58
|
+
check_indentation(cmd_indentation)
|
59
|
+
result = the_binding.eval(args_string, filename, @lineno)
|
60
|
+
context.push(result ? :if_true : :if_false)
|
61
|
+
inc_indentation
|
62
|
+
when :if_false, :else_false, :if_ignore
|
63
|
+
check_indentation(cmd_indentation)
|
64
|
+
inc_indentation
|
65
|
+
context.push(:if_ignore)
|
66
|
+
else
|
67
|
+
terminate "#if is not allowed in this context"
|
68
|
+
end
|
69
|
+
when "elif"
|
70
|
+
case context.last
|
71
|
+
when :if_true
|
72
|
+
dec_indentation
|
73
|
+
check_indentation(cmd_indentation)
|
74
|
+
inc_indentation
|
75
|
+
context[-1] = :if_false
|
76
|
+
when :if_false
|
77
|
+
dec_indentation
|
78
|
+
check_indentation(cmd_indentation)
|
79
|
+
inc_indentation
|
80
|
+
result = the_binding.eval(args_string, filename, @lineno)
|
81
|
+
context[-1] = result ? :if_true : :if_false
|
82
|
+
when :else_true, :else_false
|
83
|
+
terminate "#elif is not allowed after #else"
|
84
|
+
when :if_ignore
|
85
|
+
dec_indentation
|
86
|
+
check_indentation(cmd_indentation)
|
87
|
+
inc_indentation
|
88
|
+
else
|
89
|
+
terminate "#elif is not allowed outside #if block"
|
90
|
+
end
|
91
|
+
when "else"
|
92
|
+
case context.last
|
93
|
+
when :if_true
|
94
|
+
dec_indentation
|
95
|
+
check_indentation(cmd_indentation)
|
96
|
+
inc_indentation
|
97
|
+
context[-1] = :else_false
|
98
|
+
when :if_false
|
99
|
+
dec_indentation
|
100
|
+
check_indentation(cmd_indentation)
|
101
|
+
inc_indentation
|
102
|
+
context[-1] = :else_true
|
103
|
+
when :else_true, :else_false
|
104
|
+
terminate "it is not allowed to have multiple #else clauses in one #if block"
|
105
|
+
when :if_ignore
|
106
|
+
dec_indentation
|
107
|
+
check_indentation(cmd_indentation)
|
108
|
+
inc_indentation
|
109
|
+
else
|
110
|
+
terminate "#else is not allowed outside #if block"
|
111
|
+
end
|
112
|
+
when "endif"
|
113
|
+
case context.last
|
114
|
+
when :if_true, :if_false, :else_true, :else_false, :if_ignore
|
115
|
+
dec_indentation
|
116
|
+
check_indentation(cmd_indentation)
|
117
|
+
context.pop
|
118
|
+
else
|
119
|
+
terminate "#endif is not allowed outside #if block"
|
120
|
+
end
|
121
|
+
when "", nil
|
122
|
+
# Either a comment or not a preprocessor command.
|
123
|
+
case context.last
|
124
|
+
when nil, :if_true, :else_true
|
125
|
+
output.puts(unindent(line))
|
126
|
+
else
|
127
|
+
# Check indentation but do not output.
|
128
|
+
unindent(line)
|
129
|
+
end
|
130
|
+
else
|
131
|
+
terminate "Unrecognized preprocessor command ##{name.inspect}"
|
132
|
+
end
|
133
|
+
|
134
|
+
@lineno += 1
|
135
|
+
end
|
136
|
+
ensure
|
137
|
+
if output_filename && output
|
138
|
+
output.close
|
139
|
+
stat = File.stat(filename)
|
140
|
+
File.chmod(stat.mode, temp_output_filename)
|
141
|
+
File.chown(stat.uid, stat.gid, temp_output_filename) rescue nil
|
142
|
+
File.rename(temp_output_filename, output_filename)
|
143
|
+
end
|
144
|
+
end
|
145
|
+
|
146
|
+
private
|
147
|
+
UBUNTU_DISTRIBUTIONS = {
|
148
|
+
"lucid" => "10.04",
|
149
|
+
"maverick" => "10.10",
|
150
|
+
"natty" => "11.04",
|
151
|
+
"oneiric" => "11.10",
|
152
|
+
"precise" => "12.04",
|
153
|
+
"quantal" => "12.10",
|
154
|
+
"raring" => "13.04",
|
155
|
+
"saucy" => "13.10"
|
156
|
+
}
|
157
|
+
|
158
|
+
class Evaluator
|
159
|
+
def _infer_distro_table(name)
|
160
|
+
if UBUNTU_DISTRIBUTIONS.has_key?(name)
|
161
|
+
return UBUNTU_DISTRIBUTIONS
|
162
|
+
end
|
163
|
+
end
|
164
|
+
|
165
|
+
def is_distribution?(expr)
|
166
|
+
if @distribution.nil?
|
167
|
+
raise "The :distribution variable must be set"
|
168
|
+
else
|
169
|
+
if expr =~ /^(>=|>|<=|<|==|\!=)[\s]*(.+)/
|
170
|
+
comparator = $1
|
171
|
+
name = $2
|
172
|
+
else
|
173
|
+
raise "Invalid expression #{expr.inspect}"
|
174
|
+
end
|
175
|
+
|
176
|
+
table1 = _infer_distro_table(@distribution)
|
177
|
+
table2 = _infer_distro_table(name)
|
178
|
+
raise "Distribution name #{@distribution.inspect} not recognized" if !table1
|
179
|
+
raise "Distribution name #{name.inspect} not recognized" if !table2
|
180
|
+
v1 = table1[@distribution]
|
181
|
+
v2 = table2[name]
|
182
|
+
|
183
|
+
case comparator
|
184
|
+
when ">"
|
185
|
+
return v1 > v2
|
186
|
+
when ">="
|
187
|
+
return v1 >= v2
|
188
|
+
when "<"
|
189
|
+
return v1 < v2
|
190
|
+
when "<="
|
191
|
+
return v1 <= v2
|
192
|
+
when "=="
|
193
|
+
return v1 == v2
|
194
|
+
when "!="
|
195
|
+
return v1 != v2
|
196
|
+
else
|
197
|
+
raise "BUG"
|
198
|
+
end
|
199
|
+
end
|
200
|
+
end
|
201
|
+
end
|
202
|
+
|
203
|
+
def each_line(filename)
|
204
|
+
File.open(filename, 'r') do |f|
|
205
|
+
while true
|
206
|
+
begin
|
207
|
+
line = f.readline.chomp
|
208
|
+
rescue EOFError
|
209
|
+
break
|
210
|
+
end
|
211
|
+
yield line
|
212
|
+
end
|
213
|
+
end
|
214
|
+
end
|
215
|
+
|
216
|
+
def recognize_command(line)
|
217
|
+
if line =~ /^([\s\t]*)#(.+)/
|
218
|
+
indentation_str = $1
|
219
|
+
command = $2
|
220
|
+
name = command.scan(/^\w+/).first
|
221
|
+
args_string = command.sub(/^#{Regexp.escape(name)}[\s\t]*/, '')
|
222
|
+
return [name, args_string, indentation_str.to_s.size]
|
223
|
+
else
|
224
|
+
return nil
|
225
|
+
end
|
226
|
+
end
|
227
|
+
|
228
|
+
def create_binding(variables)
|
229
|
+
object = Evaluator.new
|
230
|
+
variables.each_pair do |key, val|
|
231
|
+
object.send(:instance_variable_set, "@#{key}", val)
|
232
|
+
end
|
233
|
+
return object.instance_eval do
|
234
|
+
binding
|
235
|
+
end
|
236
|
+
end
|
237
|
+
|
238
|
+
def inc_indentation
|
239
|
+
@indentation += @indentation_size
|
240
|
+
end
|
241
|
+
|
242
|
+
def dec_indentation
|
243
|
+
@indentation -= @indentation_size
|
244
|
+
end
|
245
|
+
|
246
|
+
def check_indentation(expected)
|
247
|
+
if expected != @indentation
|
248
|
+
terminate "wrong indentation: found #{expected} characters, should be #{@indentation}"
|
249
|
+
end
|
250
|
+
end
|
251
|
+
|
252
|
+
def unindent(line)
|
253
|
+
line =~ /^([\s\t]*)/
|
254
|
+
found = $1.to_s.size
|
255
|
+
if found >= @indentation
|
256
|
+
return line[@indentation .. -1]
|
257
|
+
else
|
258
|
+
terminate "wrong indentation: found #{found} characters, should be at least #{@indentation}"
|
259
|
+
end
|
260
|
+
end
|
261
|
+
|
262
|
+
def debug(message)
|
263
|
+
puts "DEBUG:#{@lineno}: #{message}" if @debug
|
264
|
+
end
|
265
|
+
|
266
|
+
def terminate(message)
|
267
|
+
abort "*** ERROR: line #{@lineno}: #{message}"
|
268
|
+
end
|
269
|
+
end
|
270
|
+
|
4
271
|
def string_option(name, default_value = nil)
|
5
272
|
value = ENV[name]
|
6
273
|
if value.nil? || value.empty?
|
@@ -19,7 +286,7 @@ def boolean_option(name, default_value = false)
|
|
19
286
|
end
|
20
287
|
end
|
21
288
|
|
22
|
-
def recursive_copy_files(files, destination_dir)
|
289
|
+
def recursive_copy_files(files, destination_dir, preprocess = false, variables = {})
|
23
290
|
require 'fileutils' if !defined?(FileUtils)
|
24
291
|
files.each_with_index do |filename, i|
|
25
292
|
dir = File.dirname(filename)
|
@@ -27,7 +294,14 @@ def recursive_copy_files(files, destination_dir)
|
|
27
294
|
FileUtils.mkdir_p("#{destination_dir}/#{dir}")
|
28
295
|
end
|
29
296
|
if !File.directory?(filename)
|
30
|
-
|
297
|
+
if preprocess && filename =~ /\.pp$/
|
298
|
+
real_filename = filename.sub(/\.pp$/, '')
|
299
|
+
FileUtils.install(filename, "#{destination_dir}/#{real_filename}")
|
300
|
+
Preprocessor.new.start(filename, "#{destination_dir}/#{real_filename}",
|
301
|
+
variables)
|
302
|
+
else
|
303
|
+
FileUtils.install(filename, "#{destination_dir}/#{filename}")
|
304
|
+
end
|
31
305
|
end
|
32
306
|
printf "\r[%5d/%5d] [%3.0f%%] Copying files...", i + 1, files.size, i * 100.0 / files.size
|
33
307
|
STDOUT.flush
|
@@ -39,11 +313,16 @@ def create_debian_package_dir(distribution)
|
|
39
313
|
require 'mizuho/packaging'
|
40
314
|
require 'time'
|
41
315
|
|
316
|
+
variables = {
|
317
|
+
:distribution => distribution
|
318
|
+
}
|
319
|
+
|
42
320
|
sh "rm -rf #{PKG_DIR}/#{distribution}"
|
43
321
|
sh "mkdir -p #{PKG_DIR}/#{distribution}"
|
44
322
|
recursive_copy_files(Dir[*MIZUHO_FILES] - Dir[*MIZUHO_DEBIAN_EXCLUDE_FILES],
|
45
323
|
"#{PKG_DIR}/#{distribution}")
|
46
|
-
recursive_copy_files(Dir["debian/**/*"], "#{PKG_DIR}/#{distribution}"
|
324
|
+
recursive_copy_files(Dir["debian/**/*"], "#{PKG_DIR}/#{distribution}",
|
325
|
+
true, variables)
|
47
326
|
changelog = File.read("#{PKG_DIR}/#{distribution}/debian/changelog")
|
48
327
|
changelog =
|
49
328
|
"mizuho (#{Mizuho::VERSION_STRING}-1~#{distribution}1) #{distribution}; urgency=low\n" +
|
@@ -80,14 +359,7 @@ task 'package:release' do
|
|
80
359
|
end
|
81
360
|
end
|
82
361
|
|
83
|
-
|
84
|
-
# remake tarball
|
85
|
-
# make package
|
86
|
-
# Production
|
87
|
-
# use existing tarball or make new
|
88
|
-
# make package
|
89
|
-
|
90
|
-
task 'package:debian:orig_tarball' do
|
362
|
+
task 'debian:orig_tarball' do
|
91
363
|
if File.exist?("#{PKG_DIR}/mizuho_#{Mizuho::VERSION_STRING}.orig.tar.gz")
|
92
364
|
puts "Debian orig tarball #{PKG_DIR}/mizuho_#{Mizuho::VERSION_STRING}.orig.tar.gz already exists."
|
93
365
|
else
|
@@ -95,33 +367,46 @@ task 'package:debian:orig_tarball' do
|
|
95
367
|
|
96
368
|
sh "rm -rf #{PKG_DIR}/#{BASENAME}"
|
97
369
|
sh "mkdir -p #{PKG_DIR}/#{BASENAME}"
|
98
|
-
recursive_copy_files(
|
99
|
-
|
370
|
+
recursive_copy_files(
|
371
|
+
Dir[*MIZUHO_FILES] - Dir[*MIZUHO_DEBIAN_EXCLUDE_FILES],
|
372
|
+
"#{PKG_DIR}/#{BASENAME}"
|
373
|
+
)
|
100
374
|
sh "cd #{PKG_DIR} && tar -c #{BASENAME} | gzip --best > #{BASENAME}.orig.tar.gz"
|
101
375
|
end
|
102
376
|
end
|
103
377
|
|
104
378
|
desc "Build a Debian package for local testing"
|
105
|
-
task '
|
106
|
-
sh "dpkg-checkbuilddeps"
|
379
|
+
task 'debian:dev' do
|
107
380
|
sh "rm -f #{PKG_DIR}/mizuho_#{Mizuho::VERSION_STRING}.orig.tar.gz"
|
108
|
-
Rake::Task["
|
109
|
-
Rake::Task["
|
110
|
-
|
111
|
-
|
381
|
+
Rake::Task["debian:clean"].invoke
|
382
|
+
Rake::Task["debian:orig_tarball"].invoke
|
383
|
+
if distro = string_option('DISTRO')
|
384
|
+
distributions = [distro]
|
385
|
+
else
|
386
|
+
distributions = DISTRIBUTIONS
|
387
|
+
end
|
388
|
+
distributions.each do |distribution|
|
389
|
+
create_debian_package_dir(distribution)
|
390
|
+
sh "cd #{PKG_DIR}/#{distribution} && dpkg-checkbuilddeps"
|
391
|
+
end
|
392
|
+
distributions.each do |distribution|
|
393
|
+
sh "cd #{PKG_DIR}/#{distribution} && debuild -F -us -uc"
|
394
|
+
end
|
112
395
|
end
|
113
396
|
|
114
397
|
desc "Build Debian multiple source packages to be uploaded to repositories"
|
115
|
-
task '
|
116
|
-
sh "dpkg-checkbuilddeps"
|
398
|
+
task 'debian:production' => 'debian:orig_tarball' do
|
117
399
|
DISTRIBUTIONS.each do |distribution|
|
118
400
|
create_debian_package_dir(distribution)
|
401
|
+
sh "cd #{PKG_DIR}/#{distribution} && dpkg-checkbuilddeps"
|
402
|
+
end
|
403
|
+
DISTRIBUTIONS.each do |distribution|
|
119
404
|
sh "cd #{PKG_DIR}/#{distribution} && debuild -S -k0x0A212A8C"
|
120
405
|
end
|
121
406
|
end
|
122
407
|
|
123
408
|
desc "Clean Debian packaging products, except for orig tarball"
|
124
|
-
task '
|
409
|
+
task 'debian:clean' do
|
125
410
|
files = Dir["#{PKG_DIR}/*.{changes,build,deb,dsc,upload}"]
|
126
411
|
sh "rm -f #{files.join(' ')}"
|
127
412
|
sh "rm -rf #{PKG_DIR}/dev"
|
data/bin/mizuho-asciidoc
CHANGED
@@ -1,4 +1,25 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
-
|
2
|
+
# Copyright (c) 2013 Hongli Lai
|
3
|
+
#
|
4
|
+
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
5
|
+
# of this software and associated documentation files (the "Software"), to deal
|
6
|
+
# in the Software without restriction, including without limitation the rights
|
7
|
+
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
8
|
+
# copies of the Software, and to permit persons to whom the Software is
|
9
|
+
# furnished to do so, subject to the following conditions:
|
10
|
+
#
|
11
|
+
# The above copyright notice and this permission notice shall be included in
|
12
|
+
# all copies or substantial portions of the Software.
|
13
|
+
#
|
14
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
15
|
+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
16
|
+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
17
|
+
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
18
|
+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
19
|
+
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
20
|
+
# THE SOFTWARE.
|
21
|
+
|
22
|
+
$LOAD_PATH.unshift(File.expand_path(File.dirname(__FILE__) + "/../lib"))
|
23
|
+
require 'mizuho'
|
3
24
|
require 'mizuho/source_highlight'
|
4
|
-
exec(
|
25
|
+
exec(*[Mizuho::ASCIIDOC, ARGV].flatten)
|
@@ -12,7 +12,11 @@ XS-Ruby-Versions: all
|
|
12
12
|
Package: mizuho
|
13
13
|
Architecture: all
|
14
14
|
XB-Ruby-Versions: ${ruby:Versions}
|
15
|
-
|
15
|
+
#if is_distribution?('>= precise')
|
16
|
+
Depends: ${shlibs:Depends}, ${misc:Depends}, ruby | ruby-interpreter, ruby-nokogiri (>= 1.4.0), source-highlight, asciidoc (>= 8.6.0)
|
17
|
+
#else
|
18
|
+
Depends: ${shlibs:Depends}, ${misc:Depends}, ruby | ruby-interpreter, libnokogiri-ruby (>= 1.4.0), source-highlight
|
19
|
+
#endif
|
16
20
|
Description: Documentation formatting tool
|
17
21
|
Converts Asciidoc input files into nicely
|
18
22
|
outputted HTML, possibly one file per chapter.
|
data/debian/rules
CHANGED
@@ -6,4 +6,5 @@ export DH_VERBOSE=1
|
|
6
6
|
|
7
7
|
override_dh_install:
|
8
8
|
dh_install
|
9
|
-
sed -i 's/NATIVELY_PACKAGED = .*/NATIVELY_PACKAGED = true/' debian/mizuho/usr/lib/ruby/vendor_ruby/mizuho.rb
|
9
|
+
sed -i 's/NATIVELY_PACKAGED = .*/NATIVELY_PACKAGED = true/' debian/mizuho/usr/lib/ruby/vendor_ruby/mizuho.rb
|
10
|
+
sed -i 's/\/usr\/bin\/env ruby/\/usr\/bin\/ruby/' debian/mizuho/usr/bin/mizuho
|
data/lib/mizuho.rb
CHANGED
@@ -19,12 +19,16 @@
|
|
19
19
|
# THE SOFTWARE.
|
20
20
|
|
21
21
|
module Mizuho
|
22
|
-
VERSION_STRING = "0.9.
|
22
|
+
VERSION_STRING = "0.9.18"
|
23
23
|
NATIVELY_PACKAGED = false
|
24
24
|
|
25
25
|
if NATIVELY_PACKAGED
|
26
|
-
TEMPLATES_DIR
|
27
|
-
|
26
|
+
TEMPLATES_DIR = "/usr/share/mizuho/templates"
|
27
|
+
if File.exist?("/usr/share/mizuho/asciidoc")
|
28
|
+
ASCIIDOC = ["/usr/bin/python", "/usr/share/mizuho/asciidoc/asciidoc.py"]
|
29
|
+
else
|
30
|
+
ASCIIDOC = "/usr/bin/asciidoc"
|
31
|
+
end
|
28
32
|
else
|
29
33
|
SOURCE_ROOT = File.expand_path(File.dirname(__FILE__) + "/..")
|
30
34
|
LIBDIR = "#{SOURCE_ROOT}/lib"
|
data/lib/mizuho/generator.rb
CHANGED
@@ -138,7 +138,7 @@ private
|
|
138
138
|
header_div = (doc / "#header")[0]
|
139
139
|
headers = (doc / "#content" / "h1, h2, h3, h4")
|
140
140
|
|
141
|
-
head.add_child(stylesheet_tag)
|
141
|
+
head.add_child(make_node(stylesheet_tag, doc))
|
142
142
|
|
143
143
|
# Remove footer with generation timestamp.
|
144
144
|
(doc / "#footer-text").remove
|
@@ -156,37 +156,37 @@ private
|
|
156
156
|
if header['class'] !~ /float/
|
157
157
|
titles << header.text
|
158
158
|
header['data-comment-topic'] = @id_map.associations[header.text]
|
159
|
-
header.add_previous_sibling(create_comment_balloon)
|
159
|
+
header.add_previous_sibling(make_node(create_comment_balloon, doc))
|
160
160
|
end
|
161
161
|
end
|
162
162
|
end
|
163
163
|
|
164
164
|
# Add top bar.
|
165
165
|
if @enable_topbar
|
166
|
-
body.children.first.add_previous_sibling(topbar(title))
|
166
|
+
body.children.first.add_previous_sibling(make_node(topbar(title), doc))
|
167
167
|
end
|
168
168
|
|
169
169
|
# Add Mizuho Javascript.
|
170
|
-
body.add_child(javascript_tag)
|
170
|
+
body.add_child(javascript_tag(doc))
|
171
171
|
|
172
172
|
# Move preamble from content area to header area.
|
173
173
|
if preamble = (doc / "#preamble")[0]
|
174
174
|
preamble.remove
|
175
|
-
header_div.add_child(preamble)
|
175
|
+
header_div.add_child(make_node(preamble, doc))
|
176
176
|
end
|
177
177
|
|
178
178
|
# Create a TOC after the preamble.
|
179
|
-
toc_div = header_div
|
179
|
+
toc_div = add_child_and_get(header_div, %Q{<div id="toc"></div>})
|
180
180
|
if @commenting_system
|
181
181
|
# Add a commenting balloon to the TOC title.
|
182
|
-
toc_div.add_child(create_comment_balloon)
|
182
|
+
toc_div.add_child(make_node(create_comment_balloon, doc))
|
183
183
|
end
|
184
|
-
toc_div.add_child(%Q{<div id="toctitle">Table of Contents</div>})
|
184
|
+
toc_div.add_child(make_node(%Q{<div id="toctitle">Table of Contents</div>}, doc))
|
185
185
|
headers.each do |header|
|
186
186
|
if header['class'] !~ /float/
|
187
187
|
level = header.name.scan(/\d+/).first
|
188
|
-
div = toc_div
|
189
|
-
link = div
|
188
|
+
div = add_child_and_get(toc_div, "<div class=\"foo toclevel#{level}\"></div>")
|
189
|
+
link = add_child_and_get(div, "<a></a>")
|
190
190
|
link['href'] = '#' + header['id']
|
191
191
|
link.content = header.text
|
192
192
|
end
|
@@ -197,7 +197,7 @@ private
|
|
197
197
|
# don't hide the header behind the top bar.
|
198
198
|
# http://nicolasgallagher.com/jump-links-and-viewport-positioning/
|
199
199
|
headers.each do |header|
|
200
|
-
span = header
|
200
|
+
span = add_previous_sibling_and_get(header, '<span class="anchor_helper"></span>')
|
201
201
|
span['id'] = header['data-anchor'] = header['id']
|
202
202
|
header.remove_attribute('id')
|
203
203
|
end
|
@@ -255,8 +255,9 @@ private
|
|
255
255
|
return content
|
256
256
|
end
|
257
257
|
|
258
|
-
def javascript_tag
|
259
|
-
|
258
|
+
def javascript_tag(doc)
|
259
|
+
node = Nokogiri::XML::Node.new('script', doc)
|
260
|
+
content = ""
|
260
261
|
content << File.read("#{TEMPLATES_DIR}/jquery-1.7.1.min.js") << "\n"
|
261
262
|
content << File.read("#{TEMPLATES_DIR}/jquery.hashchange-1.0.0.js") << "\n"
|
262
263
|
content << File.read("#{TEMPLATES_DIR}/mizuho.js") << "\n"
|
@@ -270,8 +271,8 @@ private
|
|
270
271
|
}
|
271
272
|
content << File.read("#{TEMPLATES_DIR}/juvia.js") << "\n"
|
272
273
|
end
|
273
|
-
content
|
274
|
-
return
|
274
|
+
node.content = content
|
275
|
+
return node
|
275
276
|
end
|
276
277
|
|
277
278
|
def create_comment_balloon
|
@@ -303,6 +304,27 @@ private
|
|
303
304
|
exit 1 if fail
|
304
305
|
end
|
305
306
|
|
307
|
+
# For Nokogiri 1.4.0 compatibility
|
308
|
+
def make_node(html, doc)
|
309
|
+
result = Nokogiri::XML::Node.new('div', doc)
|
310
|
+
result.inner_html = html
|
311
|
+
return result.children[0]
|
312
|
+
end
|
313
|
+
|
314
|
+
# For Nokogiri 1.4.0 compatibility
|
315
|
+
def add_child_and_get(node, html)
|
316
|
+
result = node.add_child(make_node(html, node.document))
|
317
|
+
result = result[0] if result.is_a?(Array)
|
318
|
+
return result
|
319
|
+
end
|
320
|
+
|
321
|
+
# For Nokogiri 1.4.0 compatibility
|
322
|
+
def add_previous_sibling_and_get(node, html)
|
323
|
+
result = node.add_previous_sibling(make_node(html, node.document))
|
324
|
+
result = result[0] if result.is_a?(Array)
|
325
|
+
return result
|
326
|
+
end
|
327
|
+
|
306
328
|
def gather_content(header)
|
307
329
|
result = []
|
308
330
|
elem = header
|
data/lib/mizuho/packaging.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mizuho
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.18
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -18,7 +18,7 @@ dependencies:
|
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: 1.
|
21
|
+
version: 1.4.0
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -26,7 +26,7 @@ dependencies:
|
|
26
26
|
requirements:
|
27
27
|
- - ! '>='
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version: 1.
|
29
|
+
version: 1.4.0
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
31
|
name: sqlite3
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|
@@ -67,9 +67,9 @@ files:
|
|
67
67
|
- lib/mizuho.rb
|
68
68
|
- debian/changelog
|
69
69
|
- debian/compat
|
70
|
-
- debian/control
|
70
|
+
- debian/control.pp
|
71
71
|
- debian/copyright
|
72
|
-
- debian/mizuho.install
|
72
|
+
- debian/mizuho.install.pp
|
73
73
|
- debian/rules
|
74
74
|
- debian/source/format
|
75
75
|
- test/generator_spec.rb
|
metadata.gz.asc
CHANGED
@@ -2,11 +2,11 @@
|
|
2
2
|
Version: GnuPG/MacGPG2 v2.0.17 (Darwin)
|
3
3
|
Comment: GPGTools - http://gpgtools.org
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
+
|
10
|
-
|
11
|
-
=
|
5
|
+
iQEcBAABAgAGBQJRfZGvAAoJECrHRaUKISqMbMIH/2nKsOHJx3cpvpm4TDYBu1bH
|
6
|
+
/3/JWQl5p7XatzxntKWce7WyGDFk3+lfmYRfu+WDGC8AEqlq4Vo/wctVwgx48HWp
|
7
|
+
8GP89+2VUEBaMynFNkxH2Uq4fzs95AZGWUDOq35BN7i1JkcPdjJIt5341ak7UPLr
|
8
|
+
x096QNFUwqH5b/Fnd7hVog9eR8zA1pokKWf2FPKNv7XWrsvPr3iTVd9L2Uui2Bzn
|
9
|
+
DzbuaRWMkt7naJlHLoahEdUhuZFWmjFRmTVsI+ZsC/y7hHz+KaFL7n++Um3dasSn
|
10
|
+
Wl+NKEtqZ5wis0Rgvb7cPeb08Mm6j36qxFCQMFqleTTR+91vzyfiD3HLB4jBHyo=
|
11
|
+
=FC1H
|
12
12
|
-----END PGP SIGNATURE-----
|
data/debian/mizuho.install
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
templates/* usr/share/mizuho/templates
|