view doc/manual/document.tema @ 2:6c41a0b43e58

Tema 0.3 (imported from CVS).
author Mikhail Kryshen <mikhail@kryshen.net>
date Tue, 19 Feb 2008 20:32:17 +0300
parents
children
line source
1 [%\
2 Macro definitions used in manual.tema to generate HTML document.
3 %]
5 [%!\
6 Create HTML document.
7 Arguments are read in pairs (name value) until "content" name is found.
8 Then follows the document content.
10 TODO: generate TOC.
11 %]
12 <%define#document
13 <%silent while#
14 <%if:<%not equal:<%set:arg <%next_arg:%>%> content%>
15 <%export:<%arg:%> <%next_arg:%>%>
16 %>
17 %>\\
18 <%if:<%not embedded:%>
19 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
21 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
23 <head>
24 <title><%html_escape title:%></title>
25 <meta http-equiv="Content-Type" content="text/html; charset=<%charset:%>" />
26 <meta name="generator" content="<%tema:%>" />
27 </head>
29 <body>
30 <h1><%html_escape title:%><%optional:<br /><%html_escape subtitle:%>%></h1>
31 %>\
32 <%html_escape data:%>
33 <%if:<%not embedded:%>
34 </body>
35 </html>
36 %>\
37 %>
39 <%set:charset iso-8859-1%>
40 <%set:escape <%char:0%>%>
42 [%!\
43 Create HTML tag.
44 %]
45 <%define#tag <%false:<%escape:%><<%data:%><%escape:%>>%>%>
47 [%!\
48 Escape special HTML characters (except those preceded with <%escape:%>).
49 %]
50 <%define#html_escape
51 <%replace:<%escape:%> <%:%>
52 <%regex_replace_all:(?<!<%escape:%>)-- &ndash;
53 <%regex_replace_all:(?<!<%escape:%>)--- &mdash;
54 <%regex_replace_all:(?<!<%escape:%>)< &lt;
55 <%regex_replace_all:(?<!<%escape:%>)> &gt;
56 <%regex_replace_all:(?<!<%escape:%>)& &amp;
57 <%data:%>\\
58 %>%>%>%>%>%>\
59 %>
61 <%define#section
62 <%tag:h2<%if:<%first_section:%> <%: class="first"%>%>%><%data:%><%tag:/h2%>\\
63 <%unset:first_section%>\\
64 %>
66 <%define#subsection <%tag:h3%><%data:%><%tag:/h3%>%>
68 <%define#par <%tag:p%><%data:%><%tag:/p%>%>
70 <%define#itemize
71 <%tag:ul%>
72 <%while#\
73 <%tag:li%><%next_arg:%><%tag:/li%>
74 %>\
75 <%tag:/ul%>
76 %>
78 <%define#code <%tag:code%><%replace:-- <%escape:%>-- <%data:%>%><%tag:/code%>%>
80 <%define#emph <%tag:i%><%data:%><%tag:/i%>%>
82 <%define#link
83 <%silent set:url <%next_arg:%>%>\\
84 <%tag:a href="<%url:%>"%>\\
85 <%if_else:<%has_more_data:%>
86 <%data:%>
87 <%url:%>%>\\
88 <%tag:/a%>\\
89 %>
91 <%define#function
92 <%silent set:name <%next_arg:%>%>\\
93 <%silent while#
94 <%set:<%next_arg:%> <%next_arg:%>%>
95 %>\\
96 <%tag:div%>
97 <%tag:b%><%name:%><%tag:/b%><%tag:br /%>
98 <%tag:/div%>
99 <%optional:<%tag:div style="padding-left:1em; margin-bottom: 0.5em;"%>
100 <%description:%>
101 <%tag:/div%>%>
102 <%tag:div style="padding-left:1em; margin-bottom: 1em;"%>
103 <%optional:<%tag:b%>Arguments:<%tag:/b%> <%arguments:%><%tag:br /%>%>
104 <%optional:<%tag:b%>Data:<%tag:/b%> <%input_data:%><%tag:br /%>%>
105 <%optional:<%tag:b%>Output:<%tag:/b%> <%output:%><%tag:br /%>%>
106 <%tag:/div%>
107 %>