ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/www/generate
Revision: 1.30
Committed: Wed Apr 28 05:41:31 2010 UTC (14 years, 2 months ago) by elmex
Branch: MAIN
Changes since 1.29: +25 -24 lines
Log Message:
*** empty log message ***

File Contents

# Content
1 #!/opt/perl/bin/perl
2
3 use common::sense;
4
5 use Pod::POM;
6 use YAML;
7
8 my $parser = new Pod::POM meta => 1;
9
10 my ($pom, $html);
11
12 our $top_news;
13
14 $pom = $parser->parse ("src/news.pod")
15 or die $parser->error;
16 $html = join '', $pom->present ("PodHTML");
17 $html =~ s/\[/</g;
18 $html =~ s/\]/>/g;
19 open FH, ">", "src/news.html.inc" or die "src/news.html.inc: $!";
20 print FH $html;
21 close FH;
22
23 open FH, ">", "src/news.top.html.inc" or die "src/news.top.html.inc: $!";
24 print FH $top_news;
25 close FH;
26
27 %PodRSS::metadata = %{ $pom->metadata };
28 $html = join '', $pom->present ("PodRSS");
29 open FH, ">", "src/news.rss" or die "src/news.rss: $!";
30 print FH $html;
31 close FH;
32
33 system "rsync -avP src/. html/. --exclude CVS";
34
35 =head1 AUTHOR
36
37 Copyright © 2010 The Deliantra Team
38 Copyright © 2007 Pippijn van Steenhoven
39
40 =head1 LICENSE
41
42 This library is free software, you can redistribute it and/or modify
43 it under the terms of the GNU General Public License.
44
45 =cut
46
47 1;
48
49 package PodHTML;
50
51 use strict;
52 use warnings;
53 use utf8;
54
55 my $rcsid = '$Id: generate,v 1.29 2010-04-28 05:23:41 elmex Exp $';
56
57 use base "Pod::POM::View";
58
59 our $subdir;
60 our $dir;
61 our $menu;
62
63 sub view_pod {
64 my ($self, $item) = @_;
65 $item->content->present ($self)
66 }
67
68 sub view_head1 {
69 my ($self, $item) = @_;
70 $item->content->present ($self)
71 }
72
73 sub view_head2 {
74 my ($self, $item) = @_;
75 my $str =
76 "<span class=\"date\">"
77 . $item->title
78 . "</span>\n"
79 . $item->content->present ($self)
80 . "\n\n";
81
82 unless (defined $top_news) {
83 $top_news = $str
84 }
85
86 $str
87 }
88
89 sub view_textblock {
90 my ($self, $item) = @_;
91 "<p>$item</p>\n"
92 }
93
94 sub view_seq_bold {
95 my ($self, $item) = @_;
96 "<b>$item</b>"
97 }
98
99 sub view_seq_italic {
100 my ($self, $item) = @_;
101 "<i>$item</i>"
102 }
103
104 sub view_seq_file {
105 my ($self, $item) = @_;
106 "<tt>$item</tt>"
107 }
108
109 sub view_seq_link {
110 my ($self, $item) = @_;
111 my ($name, $href) = split /\|/, $item, 2;
112 "<a href=\"$href\">$name</a>"
113 }
114
115
116 package PodRSS;
117
118 use strict;
119 use warnings;
120 use utf8;
121
122 use base "Pod::POM::View";
123
124 our %metadata;
125
126 sub view_pod {
127 my ($self, $item) = @_;
128 "<?xml version='1.0' encoding='utf-8'?>\n"
129 . "<rss version='2.0'>\n"
130 . $item->content->present ($self)
131 . "</rss>\n"
132 }
133
134 sub view_head1 {
135 my ($self, $item) = @_;
136 my $title = $item->title->present ($self);
137 " <channel>\n"
138 . " <link>$metadata{link}</link>\n"
139 . " <language>$metadata{language}</language>\n"
140 . " <title>$title</title>\n"
141 . $item->content->present ($self)
142 . " </channel>\n"
143 }
144
145 sub view_head2 {
146 my ($self, $item) = @_;
147 my $title = $item->title->present ($self);
148 " <item>\n"
149 . " <title>$title</title>\n"
150 . " <description>"
151 . $item->content->present ($self)
152 . " </description>"
153 . " </item>\n"
154 }
155
156 sub view_textblock {
157 my ($self, $item) = @_;
158 " <![CDATA[$item]]>\n"
159 }