-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathmkmd.rb
63 lines (55 loc) · 1.1 KB
/
mkmd.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
require 'fileutils'
RAW_BASE = "https://raw.githubusercontent.com/ruby-numo/numo-gnuplot-demo/master/misc"
def put_code(f,base,img,code)
f.puts <<EOL
### #{img.to_i}
```ruby
#{code.join}
```

EOL
end
Dir.glob("image.rb").map.sort.each do |rb|
base = File.basename(rb,".rb")
list = []
img = "001"
gpl = false
code = []
r = open(rb,"rt")
r.gets
# title
if /^#+(.*)$/ =~ r.gets
title = $1.strip
else
title = base
end
# original url
if /^#+(.*)$/ =~ r.gets
url = $1.strip
else
url = nil
end
list << [base,title,url]
while /^require_relative "gpl"/ !~ r.gets
end
open("README.md","wt") do |w|
w.puts "## #{title}"
w.puts "[Original Demo](#{url})" if url
r.each do |line|
case line
when /^gpl do$/
code << "Numo.gnuplot do\n"
when /^end$/
code << "end"
put_code(w,base,img,code)
gpl = false
code = []
img = img.succ
else
if !(line.strip.empty? && code.empty?)
code << line
end
end
end
end
end