source: git/trunk/doc/news2html.pl @ 7bb8184

Last change on this file since 7bb8184 was 7bb8184, checked in by Olly Betts <olly@…>, 13 years ago

Retagging 1.2.0

git-svn-id: file:///home/survex-svn/survex/tags/1.2.0@3664 4b37db11-9a0c-4f06-9ece-9ab7cdaee568

  • Property mode set to 100755
File size: 1.6 KB
Line 
1#!/usr/bin/perl -w
2require 5.008;
3use bytes;
4use strict;
5
6# run on a NEWS file
7
8my $title = 'Summary of User-Visible Changes';
9$title .= " in $ARGV[0]" if defined $ARGV[0];
10 
11print <<END;
12<HTML><HEAD>
13<TITLE>$title</TITLE>
14<STYLE type="text/css"><!--
15BODY, TD, CENTER, UL, OL {font-family: sans-serif;}
16H1 {font-size: 16px;}
17-->
18</STYLE>
19</HEAD><BODY BGCOLOR=white TEXT=black>
20
21END
22
23my $rec;
24
25my $in_ul = 0;
26my $in_li = 0;
27
28while (<STDIN>) {
29    if (s/^\*\s*//) {
30        if ($in_ul == 2) {
31            if ($in_li) {
32                print "</p></li>\n";
33                $in_li = 0;
34            }
35            print "</ul></li>\n";
36            --$in_ul;
37        }
38        if (!$in_ul) {
39            print "<ul>";
40            $in_ul = 1;
41        }
42        if ($in_li) {
43            print "</p></li>";
44            $in_li = 0;
45        }
46        print "<li><p>", html($_);
47        $in_li = 1;
48    } elsif (s/^\s+\+\s+//) {
49        if (!$in_ul) {
50            print "<ul>";
51            $in_ul = 1;
52        }
53        if ($in_ul != 2) {
54            if (!$in_li) {
55                print "<li><p>";
56            }
57            print "<ul>";
58            $in_ul = 2;
59            $in_li = 0;
60        }
61        if ($in_li) {
62            print "</p></li>";
63            $in_li = 0;
64        }
65        print "<li><p>", html($_);
66        $in_li = 1;
67    } elsif (s/^[ \t]+//) {
68        print html($_);
69    } elsif (/^$/) {
70        # do nothing
71    } else {
72        if ($in_li) {
73            print "</p></li>";
74            $in_li = 0;
75        }
76        while ($in_ul) {
77            print "</ul>";
78            --$in_ul;
79            if ($in_ul) { print "</p></li>"; }
80        }
81        $_ = html($_);
82        s!(\(.*\))!<small>$1</small>!;
83        print "<h1>$_</h1>\n";
84    }
85}       
86
87if ($in_li) {
88    print "</p></li>";
89    $in_li = 0;
90}
91while ($in_ul) {
92    print "</ul>";
93    --$in_ul;
94    if ($in_ul) { print "</p></li>"; }
95}
96
97print <<END;
98</BODY>
99</HTML>
100END
101
102sub html {
103    my $t = shift;
104    $t =~ s/&/&amp;/g;
105    $t =~ s/</&lt;/g;
106    $t =~ s/>/&gt;/g;
107    return $t;
108}
Note: See TracBrowser for help on using the repository browser.