| 1 | #!/usr/bin/ruby |
|---|
| 2 | # -*- encoding: utf-8 -*- |
|---|
| 3 | require 'erb' |
|---|
| 4 | |
|---|
| 5 | contentsdir = 'contents.d/' |
|---|
| 6 | tmpdir = 'tmp/' |
|---|
| 7 | |
|---|
| 8 | class Layout |
|---|
| 9 | require './bin/render_rss.rb' |
|---|
| 10 | include RenderRss |
|---|
| 11 | extend ERB::DefMethod |
|---|
| 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')) |
|---|
| 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')) |
|---|
| 17 | def_erb_method('layout_goods', File.join(tmpldir, 'layout-goods.html.erb')) |
|---|
| 18 | end |
|---|
| 19 | |
|---|
| 20 | Dir::glob(File.join(contentsdir, "*.html")) do |filename| |
|---|
| 21 | |
|---|
| 22 | template = ERB.new(IO.read(filename),nil,'<>') |
|---|
| 23 | filebasename = File.basename(filename) |
|---|
| 24 | newfile = open(File.join(tmpdir, filebasename), "w") |
|---|
| 25 | |
|---|
| 26 | header_title_base = 'Vine Linux' |
|---|
| 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" |
|---|
| 37 | when /goods.html/ |
|---|
| 38 | layout_type = "layout_goods" |
|---|
| 39 | else |
|---|
| 40 | layout_type = "layout" |
|---|
| 41 | end |
|---|
| 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 } |
|---|
| 51 | newfile.close |
|---|
| 52 | |
|---|
| 53 | end |
|---|