#!/usr/bin/ruby # -*- encoding: utf-8 -*- require 'erb' require 'rss' require '../bin/rss_cdata.rb' require '../bin/newsparser.rb' # Layout class class Layout extend ERB::DefMethod def_erb_method('layout', '../template/layout-news.html.erb') end # urlhead="http://vinelinux.org/" eventsdir="./" topdir=".." tmpdir = topdir+'/template/' targetname="events" rssname=targetname+'.rdf' header=File.open(topdir+"/template/header.tmpl") footer=File.open(topdir+"/template/footer.tmpl") # Create rss object rss = RSS::Maker.make("1.0") do |maker| maker.channel.about = "http://vinelinux.org/events/rss" maker.channel.title = "イベント・勉強会等" maker.channel.description = "Vine Linux 関連のイベント情報です" maker.channel.link = "http://vinelinux.org/events/" maker.items.do_sort = true # create events indexhtml contents eventsindex = <Vine Linux のイベント情報

Project Vine が主催、後援または協力のイベント・セミナー・勉強会の情報です。
ユーザの皆さんが主導で企画されたイベントでもこちらに掲載することができますので、 ML, IRC や Project Vine 宛にお問い合せください。

EOF # create all events page Dir.open(eventsdir) { |dir| for filename in dir.grep(/.dat$/).sort.reverse events = NewsParser.new IO.read(eventsdir+filename) titletext = events.item['title'].gsub("\n","").gsub(/<[^>]+>/,"").strip $header_title = 'Vine Linux Events - '+titletext # index content eventsindex += <<-EOF EOF if (events.item['description']) eventsindex += <<-EOF EOF else eventsindex += <<-EOF EOF end # rss rssitem = maker.items.new_item rssitem.link = "#{events.item['url']}" if events.item['date'].gsub(/\,/,"") < Time.now.strftime('%Y%m%d') rssitem.title = "#{events.item['title']} [終了]" else rssitem.title = events.item['title'] end rssitem.date = Time.parse(events.item['date'].gsub(/\,/,"/")) rssitem.dc_date = Time.parse(events.item['date'].gsub(/\,/,"/")) if (events.item['description']) rssitem.content_encoded = events.item['description'] else rssitem.content_encoded = events.item['title'] end if (events.item['description']) # event page content eventshtml = <<-EOF

#{events.item['title']}

発行日:#{events.item['date']}

#{events.item['description']}

EOF # wrtite news page template = ERB.new(eventshtml) newfile = open(filename.gsub(/.dat/,".html"), "w") newfile.puts Layout.new.layout { template.result } newfile.close end end } eventsindex += < EOF # write events indexhtml $header_title = 'Vine Linux Events' template = ERB.new(eventsindex) eventsindexhtml = open("index.html", "w") eventsindexhtml.puts Layout.new.layout { template.result } eventsindexhtml.close end # write events rss File.open("events.rdf", "w") do |file| file.puts rss.to_s end
[#{events.item['date']}] #{titletext}
#{titletext}