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

Revision 7367, 3.4 KB checked in by daisuke, 11 years ago (diff)

fix page title

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