Introspection fixes
[gnumeric.git] / tools / news-to-html
blob213640da540c024f78aacc54d99575169dd7b6f3
1 #!/usr/bin/perl -w
2 # -----------------------------------------------------------------------------
4 # Note: this isn't perfect, but a very fine start.
6 my $version = $ARGV[0];
7 die "$0: must specify version number as argument.\n" unless $version;
9 my $version2 = $version;
10 $version2 =~ s/^(\d+\.\d+)\..*/$1/;
12 my $bug_prefix = "https://bugzilla.gnome.org/show_bug.cgi?id=";
13 my $debian_bug_prefix = "http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=";
14 my $redhat_bug_prefix = "https://bugzilla.redhat.com/show_bug.cgi?id=";
15 my $ubuntu_bug_prefix = "https://bugs.launchpad.net/ubuntu/+bug/";
17 my $state = 0;
18 my $who = undef;
19 my $item = '';
20 my $have_item = 0;
21 my $bug = undef;
22 my $module = undef;
24 open (FIL, "<NEWS") or die "$0: cannot open NEWS: $!\n";
25 while (<FIL>) {
26 chomp;
28 if (/^(Gnumeric|goffice|libgsf)\s*([^ :]*)\s*:?\s*$/i) {
29 if ($2 eq $version) {
30 $state = 1;
31 $module = $1;
33 &prolog ();
35 next;
38 if (/^-+$/) {
39 $state = 0;
40 next;
43 if ($state == 1) {
44 if (/^(.*\S)\s*:\s*$/) {
45 &finish_author () if $who;
46 $who = $1;
47 $have_item = 0;
48 next;
51 if (s/^\s+\*\s*//) {
52 &finish_item () if $have_item;
53 $item .= "\t <li>";
54 &add_to_item ($_);
55 next;
58 if (m{^\s+http://bugzilla\.gnome\.org/show_bug\.cgi\?id=(\d+)\s*}) {
59 my $this_bug = $1;
60 &finish_item () if $have_item;
61 $bug = $this_bug;
62 next;
65 if ($have_item && s/^\s+//) {
66 &add_to_item ($_);
67 next;
71 close (FIL);
72 &finish_author () if $who;
74 &epilog ();
76 # -----------------------------------------------------------------------------
78 sub finish_author {
79 &finish_item () if $have_item;
81 print " <li>$who\n";
82 print " <ul>\n";
83 print $item;
84 print " </ul>\n";
85 print " </li>\n";
86 $item = '';
87 $who = undef;
90 sub finish_item {
91 if ($item && $item !~ /[.?!]\s*$/) {
92 $item .= ".";
94 if ($bug) {
95 $item .= " (<a href=\"$bug_prefix$bug\">Bug $bug</a>.)";
96 $bug = '';
98 $item =~ s/\s+$//;
99 $item .= "\n\t </li>\n";
100 $have_item = 0;
103 sub add_to_item {
104 my ($txt) = @_;
106 $txt =~ s{Debian\s+\#(\d\d\d\d\d+)}{Debian <a href=\"$debian_bug_prefix$1\"\>Bug $1</a>}g;
107 $txt =~ s{Redhat\s+\#(\d\d\d\d\d+)}{Redhat <a href=\"$redhat_bug_prefix$1\"\>Bug $1</a>}g;
108 $txt =~ s{Ubuntu\s+\#(\d\d\d\d\d+)}{Ubuntu <a href=\"$ubuntu_bug_prefix$1\"\>Bug $1</a>}g;
109 $txt =~ s{\#(\d\d\d\d\d+)}{<a href=\"$bug_prefix$1\"\>Bug $1</a>}g;
111 $item .= "\n\t $txt";
112 $have_item = 1;
115 # -----------------------------------------------------------------------------
117 sub prolog {
118 print <<PROLOG;
119 <?xml version="1.0" encoding="UTF-8"?>
120 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
121 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
122 <!-- MARKER: start-header -->
123 <head>
124 <title>Gnumeric</title>
125 <link rel="stylesheet" href="/style/style.css" type="text/css" />
126 <link rel="icon" type="image/png" href="/logo.png" />
127 </head>
128 <body>
129 <div id="wrap">
130 <a href="/"><div id="header">
131 <h1 id="logo-text"><span>Gnumeric</span></h1>
132 <p id="slogan">Free, Fast, Accurate &mdash; Pick Any Three!</p>
133 <img id="logo" src="/gnumeric.png" alt="logo" class="float-right"/>
134 </div></a>
136 <div id="nav">
137 <ul>
138 <li><a href="/">Home</a></li>
139 <li><a href="/development.html">Development</a></li>
140 <li><a href="/contact.html">Contact</a></li>
141 </ul>
142 </div>
144 <div id="content-wrap">
145 <!-- MARKER: start-main -->
146 <div id="fullmain">
147 <div class="generalitem">
148 PROLOG
150 print " <h2><span class=\"gnumeric-bullet\"></span>$module $version aka &quot;TBD&quot; is now available.</h2>\n";
151 print " <p>The Gnumeric Team is pleased to announce the availability of\n";
152 print " $module version $version.</p>\n";
153 print " <p>Noteworthy news in this release:</p>\n";
154 print " <ul>\n";
155 print " <li>...</li>\n";
156 print " </ul>\n\n";
157 print " <p>Details of changes by contributor:</p>\n";
158 print " <ul>\n";
161 # -----------------------------------------------------------------------------
163 sub epilog {
164 my $link = "http://ftp.gnome.org/pub/GNOME/sources/" . lc $module . "/$version2/";
166 print " </ul>\n";
168 print " </div>\n";
169 print " <div class=\"generalitem\">\n";
170 print " <h2><span class=\"gnumeric-bullet\"></span>Availability</h2>\n";
171 print " <blockquote>\n";
172 print " <p><a href=\"$link\">$link</a></p>\n";
173 print " </blockquote>\n";
174 print " </div>\n";
175 print " </div>\n";
176 print " <!-- MARKER: end-main -->\n";
177 print " <!-- MARKER: start-sidebar -->\n";
178 print " <!-- MARKER: end-sidebar -->\n";
179 print " </div>\n";
180 print "</div>\n";
181 print "</body>\n";
182 print "</html>\n";
185 # -----------------------------------------------------------------------------