source: projects/web/trunk/bin/layout-vlmagazine.rb @ 1380

Revision 1380, 2.9 KB checked in by daisuke, 14 years ago (diff)

update ads code, add link-unit, ...

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/"
15newsdir="./"
16topdir=".."
17tmpdir = topdir+'/template/'
18targetname="vlmagazine"
19rssname=targetname+'.rdf'
20
21header=File.open(topdir+"/template/header.tmpl")
22footer=File.open(topdir+"/template/footer.tmpl")
23
24# Create rss object
25rss = RSS::Maker.make("1.0") do |maker|
26  maker.channel.about = "http://vinelinux.org/#{targetname}/rss"
27  maker.channel.title = "Vine Linux Magazine"
28  maker.channel.description = "Vine Linux Magazine です"
29  maker.channel.link = "http://vinelinux.org/#{targetname}/"
30  maker.items.do_sort = true
31
32# create news indexhtml contents
33newsindex = <<EOF
34<h1 class="title">Vine Linux Magazine</h1>
35<div class="news">
36<p>
37Vine Linux Magazine では Vine Linux を活用するのに便利な情報を記事として定期的に提供していきます。
38</p>
39<h2>記事一覧</h2>
40<table>
41EOF
42
43# create all news page
44Dir.open(newsdir) { |dir|
45 for filename in dir.grep(/.dat$/).sort.reverse
46
47  news = NewsParser.new IO.read(newsdir+filename)
48  titletext = news.item['title'].gsub("\n","").gsub(/<[^>]+>/,"").strip
49
50  if (news.item['date'].gsub(/\,/,"") <= Time.now.strftime('%Y%m%d'))
51   # index content
52   newsindex += <<-EOF
53   <tr>
54    <td class="date">[#{news.item['date']}]</td>
55    <td class="title"><a href="/#{targetname}/#{filename.gsub(/.dat/,".html")}">
56        #{titletext}</a></td>
57   </tr>
58   EOF
59
60   # rss
61   rssitem = maker.items.new_item
62   rssitem.link = urlhead+"#{targetname}/#{filename.gsub(/.dat/,".html")}"
63   rssitem.title = news.item['title']
64   rssitem.date = Time.parse(news.item['date'].gsub(/\,/,"/"))
65   rssitem.dc_date = Time.parse(news.item['date'].gsub(/\,/,"/"))
66   rssitem.content_encoded = news.item['description']
67  end
68
69  # news page content
70  newshtml = <<-EOF
71  <h1 class="title">Vine Linux Magazine<br/>#{news.item['title']}</h1>
72  <div class="ads-middle-linkunit">
73<script type="text/javascript"><!--
74google_ad_client = "pub-0334540465096658";
75/* vinelinux link-unit */
76google_ad_slot = "4566651758";
77google_ad_width = 728;
78google_ad_height = 15;
79//-->
80</script>
81<script type="text/javascript"
82src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
83</script>
84  </div>
85  <div align="right">発行日:#{news.item['date']}</div>
86  <div class="news">
87  <p>
88#{news.item['description']}
89  </p>
90  </div>
91  EOF
92
93  # wrtite news page
94  template = ERB.new(newshtml)
95  newfile = open(filename.gsub(/.dat/,".html"), "w")
96  newfile.puts Layout.new.layout { template.result }
97  newfile.close
98 end
99}
100
101newsindex += <<EOF
102</table>
103</div>
104EOF
105
106# write news indexhtml
107template = ERB.new(newsindex)
108newsindexhtml = open("index.html", "w")
109newsindexhtml.puts Layout.new.layout { template.result }
110newsindexhtml.close
111
112end
113
114# write news rss
115File.open(rssname, "w") do |file|
116  file.puts rss.to_s
117end
Note: See TracBrowser for help on using the repository browser.