source: projects/web/trunk/bin/layout-events.rb @ 1295

Revision 1295, 2.3 KB checked in by daisuke, 14 years ago (diff)

update url

Line 
1#!/usr/bin/ruby
2require 'erb'
3require 'rss'
4require '../bin/rss_cdata.rb'
5require '../bin/newsparser.rb'
6
7# Layout class
8class Layout
9  extend ERB::DefMethod
10  def_erb_method('layout', '../template/layout-news.html.erb')
11end
12
13#
14urlhead="http://vinelinux.org/"
15eventsdir="./"
16topdir=".."
17tmpdir = topdir+'/template/'
18
19header=File.open(topdir+"/template/header.tmpl")
20footer=File.open(topdir+"/template/footer.tmpl")
21
22# Create rss object
23rss = RSS::Maker.make("1.0") do |maker|
24  maker.channel.about = "http://vinelinux.org/event/rss"
25  maker.channel.title = "Vine Linux イベント情報"
26  maker.channel.description = "Vine Linux 関連のイベント情報です"
27  maker.channel.link = "http://vinelinux.org/events/"
28  maker.items.do_sort = true
29
30# create events indexhtml contents
31eventsindex = <<EOF
32<h1>Vine Linux のイベント情報</h1>
33<div class="news">
34<p>
35Project Vine が主催、後援または協力のイベント・セミナー・勉強会の情報です。<br/>
36ユーザの皆さんが主導で企画されたイベントでもこちらに掲載することができますので、
37ML, IRC や Project Vine 宛にお問い合せください。
38</p>
39<table>
40EOF
41
42# create all events page
43Dir.open(eventsdir) { |dir|
44 for filename in dir.grep(/.dat$/).sort.reverse
45
46  events = NewsParser.new IO.read(eventsdir+filename)
47  titletext = events.item['title'].gsub("\n","").gsub(/<[^>]+>/,"").strip
48
49  # index content
50  eventsindex += <<-EOF
51  <tr>
52   <td class="date">[#{events.item['date']}]</td>
53   <td class="title"><a href="#{events.item['url']}">
54       #{titletext}</a></td>
55  </tr>
56  EOF
57
58  # rss
59  rssitem = maker.items.new_item
60  rssitem.link = "#{events.item['url']}"
61  if events.item['date'].gsub(/\,/,"") < Time.now.strftime('%Y%m%d')
62    rssitem.title = "#{events.item['title']} (終了しました)"
63  else
64    rssitem.title = events.item['title']
65  end
66  rssitem.date = Time.parse(events.item['date'].gsub(/\,/,"/"))
67  rssitem.dc_date = Time.parse(events.item['date'].gsub(/\,/,"/"))
68  rssitem.content_encoded = events.item['title']
69
70 end
71}
72
73eventsindex += <<EOF
74</table>
75</div>
76EOF
77
78# write events indexhtml
79template = ERB.new(eventsindex)
80eventsindexhtml = open("index.html", "w")
81eventsindexhtml.puts Layout.new.layout { template.result }
82eventsindexhtml.close
83
84end
85
86# write events rss
87File.open("events.rdf", "w") do |file|
88  file.puts rss.to_s
89end
Note: See TracBrowser for help on using the repository browser.