1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
|
#use wml::debian::common_tags
<bind-gettext-domain domain="security" />
<define-tag small_Q whitespace=delete>
<gettext domain="security">Q</gettext>
</define-tag>
<:
$item_count = 0;
:>
<define-tag toc-add-entry endtag=required>
<preserve name>
<set-var %attributes>
<if <not <get-var name>>
<set-var name="<:=++$item_count:>">
>
<p><em><a name="<get-var name>"><small_Q>: %body</a></em></p>
<restore name>
</define-tag>
<define-tag maketoc>
<ol>
<:
$numid = 0;
if (open (F, $WML_SRC_FILENAME)) {
$state = 0;
while (<F>) {
if ($state == 0 && m,[<]toc-add-entry(.*),) {
$state = 1;
if (m,[<]toc-add-entry[>](.*)[<]/toc-add-entry[>],) {
$id = ++$numid;
$topic = $1;
$state = 2;
} elsif (m,[<]toc-add-entry\s+name="?([^">]*)"?[>](.*)[<]/toc-add-entry[>],) {
$id = $1;
$topic = $2;
$state = 2;
} elsif (m,[<]toc-add-entry[>](.*),) {
$id = ++$numid;
$topic = $1;
$state = 1;
} elsif (m,[<]toc-add-entry\s+name="?([^">]*)"?[>](.*),) {
$id = $1;
$topic = $2;
$state = 1;
} else {
}
} elsif ($state == 1) {
if (m,\s*(.*)[<]/toc-add-entry[>],) {
$topic .= " " . $1;
$state = 2;
} elsif (m,\s*(.*),) {
$topic .= " " . $1;
}
} # else just skip it
if ($state == 2) {
printf "<li> <a href=\"#%s\">%s</a>\n", $id, $topic;
$state = 0;
}
}
close (F);
}
:>
</ol>
</define-tag>
# Local variables:
# mode: indented-text
# end:
|