source: projects/web/trunk/bin/layout.rb @ 8481

Revision 8481, 1.4 KB checked in by daisuke, 10 years ago (diff)

オフィシャルグッズページを作成、リンク追加

Line 
1#!/usr/bin/ruby
2# -*- encoding: utf-8 -*-
3require 'erb'
4
5contentsdir = 'contents.d/'
6tmpdir = 'tmp/'
7
8class 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'))
18end
19
20Dir::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
53end
Note: See TracBrowser for help on using the repository browser.