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

Revision 8397, 1.3 KB checked in by daisuke, 10 years ago (diff)

update to new web design

RevLine 
[1284]1#!/usr/bin/ruby
[7251]2# -*- encoding: utf-8 -*-
[1284]3require 'erb'
4
5contentsdir = 'contents.d/'
[8372]6tmpdir = 'tmp/'
[1284]7
8class 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'))
[1284]17end
18
[8372]19Dir::glob(File.join(contentsdir, "*.html")) do |filename|
[8397]20
[7253]21  template = ERB.new(IO.read(filename),nil,'<>')
[8372]22  filebasename = File.basename(filename)
23  newfile = open(File.join(tmpdir, filebasename), "w")
[8397]24
[3102]25  header_title_base = 'Vine Linux'
[8397]26 
27  layout = Layout.new
28 
29  case filebasename
30  when /index.html/
31    layout_type = "layout_top"
32  when /projectvine.html/
33    layout_type = "layout_members"
34  when /package-info.html/
35    layout_type = "layout_pkginfo"
[1284]36  else
[8397]37    layout_type = "layout"
[1284]38  end
[8397]39 
40  title=File.read(filename).lines.grep(/h1 class=\"title/).first
41  if title
42    $header_title = header_title_base+' - '+title.gsub(/.*>(.*)<.*/,"\\1").chomp
43  else
44    $header_title = header_title_base
45  end
46
47  newfile.puts layout.send(layout_type) { template.result }
[1284]48  newfile.close
[8397]49
[1284]50end
Note: See TracBrowser for help on using the repository browser.