[1284] | 1 | #!/usr/bin/ruby |
---|
[7251] | 2 | # -*- encoding: utf-8 -*- |
---|
[1284] | 3 | require 'erb' |
---|
| 4 | |
---|
| 5 | contentsdir = 'contents.d/' |
---|
[8372] | 6 | tmpdir = 'tmp/' |
---|
[1284] | 7 | |
---|
| 8 | class Layout |
---|
[8397] | 9 | require './bin/render_rss.rb' |
---|
[8372] | 10 | include RenderRss |
---|
[1284] | 11 | extend ERB::DefMethod |
---|
[8372] | 12 | tmpldir = 'template/' |
---|
| 13 | def_erb_method('layout', File.join(tmpldir, 'layout.html.erb')) |
---|
| 14 | def_erb_method('layout_top', File.join(tmpldir, 'layout-top.html.erb')) |
---|
[8397] | 15 | def_erb_method('layout_pkginfo', File.join(tmpldir, 'layout-pkginfo.html.erb')) |
---|
| 16 | def_erb_method('layout_members', File.join(tmpldir, 'layout-members.html.erb')) |
---|
[8481] | 17 | def_erb_method('layout_goods', File.join(tmpldir, 'layout-goods.html.erb')) |
---|
[1284] | 18 | end |
---|
| 19 | |
---|
[8372] | 20 | Dir::glob(File.join(contentsdir, "*.html")) do |filename| |
---|
[8397] | 21 | |
---|
[7253] | 22 | template = ERB.new(IO.read(filename),nil,'<>') |
---|
[8372] | 23 | filebasename = File.basename(filename) |
---|
| 24 | newfile = open(File.join(tmpdir, filebasename), "w") |
---|
[8397] | 25 | |
---|
[3102] | 26 | header_title_base = 'Vine Linux' |
---|
[8397] | 27 | |
---|
| 28 | layout = Layout.new |
---|
| 29 | |
---|
| 30 | case filebasename |
---|
| 31 | when /index.html/ |
---|
| 32 | layout_type = "layout_top" |
---|
| 33 | when /projectvine.html/ |
---|
| 34 | layout_type = "layout_members" |
---|
| 35 | when /package-info.html/ |
---|
| 36 | layout_type = "layout_pkginfo" |
---|
[8481] | 37 | when /goods.html/ |
---|
| 38 | layout_type = "layout_goods" |
---|
[1284] | 39 | else |
---|
[8397] | 40 | layout_type = "layout" |
---|
[1284] | 41 | end |
---|
[8397] | 42 | |
---|
| 43 | title=File.read(filename).lines.grep(/h1 class=\"title/).first |
---|
| 44 | if title |
---|
| 45 | $header_title = header_title_base+' - '+title.gsub(/.*>(.*)<.*/,"\\1").chomp |
---|
| 46 | else |
---|
| 47 | $header_title = header_title_base |
---|
| 48 | end |
---|
| 49 | |
---|
| 50 | newfile.puts layout.send(layout_type) { template.result } |
---|
[1284] | 51 | newfile.close |
---|
[8397] | 52 | |
---|
[1284] | 53 | end |
---|