summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--htdocs/ancestry/layout.chtml2
-rw-r--r--htdocs/exceptions/runtime.chtml2
-rw-r--r--htdocs/quickref/index.chtml16
-rw-r--r--htdocs/quickref/metasyntax.chtml344
-rw-r--r--htdocs/sources.chtml2
-rw-r--r--htdocs/style.css55
6 files changed, 416 insertions, 5 deletions
diff --git a/htdocs/ancestry/layout.chtml b/htdocs/ancestry/layout.chtml
index 0c167bc..df34ad7 100644
--- a/htdocs/ancestry/layout.chtml
+++ b/htdocs/ancestry/layout.chtml
@@ -35,35 +35,35 @@
35 if(!access(WEB_RUN_ROOT "/conf/banner_top",R_OK)) { 35 if(!access(WEB_RUN_ROOT "/conf/banner_top",R_OK)) {
36 pass_file_through(WEB_RUN_ROOT "/conf/banner_top"); 36 pass_file_through(WEB_RUN_ROOT "/conf/banner_top");
37 } 37 }
38 prevnext(); 38 prevnext();
39 content(); 39 content();
40 if(b_strict && !access(WEB_RUN_ROOT "/conf/banner_bottom",R_OK)) { 40 if(b_strict && !access(WEB_RUN_ROOT "/conf/banner_bottom",R_OK)) {
41 pass_file_through(WEB_RUN_ROOT "/conf/banner_bottom"); 41 pass_file_through(WEB_RUN_ROOT "/conf/banner_bottom");
42 } 42 }
43 </%code> 43 </%code>
44 </div> 44 </div>
45 <div id="sidepanel"> 45 <div id="sidepanel">
46% sidepanel(); 46% sidepanel();
47 </div> 47 </div>
48</%method> 48</%method>
49<%method void content() %> 49<%method void content() %>
50</%method> 50</%method>
51<%method void sidepanel() %> 51<%method void sidepanel() %>
52 <h1><% PACKAGE_STRING %></h1> 52 <h1><% PACKAGE_STRING %></h1>
53% if(b_svn) { 53% if(b_svn) {
54 <h2>The site is running source from the source repository which may differ 54 <h2>The site is running source from the source repository which may differ
55 from the one available for download. You can check it out from the <a 55 from the one available for download. You can check it out from the <a
56 href="http://kin.klever.net/sitecing/repository">source repository</a>.</h2> 56 href="http://kin.klever.net/sitecing/repository">source repository</a>.</h2>
57% } 57% }
58% /* thank MSIE for this awful formatting */ 58% /* thank MSIE for this awful formatting */
59 <ul><li><a href="/" title="introduction to site-C-ing">overview</a><ul><li><a href="/simple" title="building a really simple page">simple page</a></li></ul></li><li><a href="/exceptions/" title="exceptions handling">exceptions</a><ul><li><a href="/exceptions/preprocess" title="preprocessor errors">preprocess</a></li><li><a href="/exceptions/compile" title="compiler errors">compile-time</a></li><li><a href="/exceptions/runtime" title="runtime exceptions">runtime</a></li></ul></li><li><a href="/sources" title="browse this site source files">sources</a></li></ul> 59 <ul><li><a href="/" title="introduction to site-C-ing">overview</a><ul><li><a href="/simple" title="building a really simple page">simple page</a></li></ul></li><li><a href="/exceptions/" title="exceptions handling">exceptions</a><ul><li><a href="/exceptions/preprocess" title="preprocessor errors">preprocess</a></li><li><a href="/exceptions/compile" title="compiler errors">compile-time</a></li><li><a href="/exceptions/runtime" title="runtime exceptions">runtime</a></li></ul></li><li><a href="/quickref/" title="quick reference">reference</a><ul><li><a href="/quickref/metasyntax" title="meta syntax">syntax</a></li></ul></li><li><a href="/sources" title="browse this site source files">sources</a></li></ul>
60 <%code> 60 <%code>
61 if(!access(WEB_RUN_ROOT "/conf/banner_side",R_OK)) { 61 if(!access(WEB_RUN_ROOT "/conf/banner_side",R_OK)) {
62 pass_file_through(WEB_RUN_ROOT "/conf/banner_side"); 62 pass_file_through(WEB_RUN_ROOT "/conf/banner_side");
63 } 63 }
64 </%code> 64 </%code>
65 <ul><li><a href="http://kin.klever.net/sitecing/" title="main site-C-ing page">site-C-ing</a></li><li><a href="http://kin.klever.net/sitecing/sources" title="site-C-ing download page">downloads</a></li></ul> 65 <ul><li><a href="http://kin.klever.net/sitecing/" title="main site-C-ing page">site-C-ing</a></li><li><a href="http://kin.klever.net/sitecing/sources" title="site-C-ing download page">downloads</a></li></ul>
66 <div class="copyright"> 66 <div class="copyright">
67 &copy; <a href="http://www.klever.net/">Klever Group</a> 67 &copy; <a href="http://www.klever.net/">Klever Group</a>
68 </div> 68 </div>
69</%method> 69</%method>
diff --git a/htdocs/exceptions/runtime.chtml b/htdocs/exceptions/runtime.chtml
index 9a72afd..1fcd80f 100644
--- a/htdocs/exceptions/runtime.chtml
+++ b/htdocs/exceptions/runtime.chtml
@@ -1,30 +1,30 @@
1% html(); return; /* vim:set ft=sitecing: */ 1% html(); return; /* vim:set ft=sitecing: */
2%%derive layout = "/ancestry/layout.chtml"; 2%%derive layout = "/ancestry/layout.chtml";
3<%constructor> 3<%constructor>
4 b_strict = false; 4 b_strict = false;
5 PN_PREV("/exceptions/compile","compile-time","compile-time errors"); 5 PN_PREV("/exceptions/compile","compile-time","compile-time errors");
6 PN_NEXT("/sources","sources","source browser"); 6 PN_NEXT("/quickref/","quick reference","quick reference");
7</%constructor> 7</%constructor>
8<%codemethod string title() %> 8<%codemethod string title() %>
9 return "runtime exceptions handling"; 9 return "runtime exceptions handling";
10</%codemethod> 10</%codemethod>
11<%method void content() %> 11<%method void content() %>
12 <h1>site-C-ing runtime exception handling</h1> 12 <h1>site-C-ing runtime exception handling</h1>
13 <p> 13 <p>
14 The component may throw an exception while executing and the 14 The component may throw an exception while executing and the
15 <em>site-C-ing</em> will gladly pass it to the handler component which will 15 <em>site-C-ing</em> will gladly pass it to the handler component which will
16 give the user appropriate output (unless it throws an exception itself, of 16 give the user appropriate output (unless it throws an exception itself, of
17 course). Here you will see an example output provided by the handler bundled 17 course). Here you will see an example output provided by the handler bundled
18 with the <em>site-C-ing</em>. 18 with the <em>site-C-ing</em>.
19 </p> 19 </p>
20 20
21 <p> 21 <p>
22 Suppose you have <a href="/view/htdocs/exceptions/development/runtime.chtml" 22 Suppose you have <a href="/view/htdocs/exceptions/development/runtime.chtml"
23 target="insert" title="the link opens in the frame below">a component</a>, 23 target="insert" title="the link opens in the frame below">a component</a>,
24 which at some point throws an exception. Of course, <em>site-C-ing</em> will 24 which at some point throws an exception. Of course, <em>site-C-ing</em> will
25 catch the exception and pass it to <a 25 catch the exception and pass it to <a
26 href="/view/htdocs/handlers/exception_dev" target="insert" title="the link 26 href="/view/htdocs/handlers/exception_dev" target="insert" title="the link
27 opens in the frame below">the handler</a>, specified in <a 27 opens in the frame below">the handler</a>, specified in <a
28 href="/view/htdocs/exceptions/development/.scrc" target="insert" title="the 28 href="/view/htdocs/exceptions/development/.scrc" target="insert" title="the
29 link opens in the frame below">the configuration file</a>, which will produce 29 link opens in the frame below">the configuration file</a>, which will produce
30 some nice, human-readable <a href="/exceptions/development/runtime" 30 some nice, human-readable <a href="/exceptions/development/runtime"
diff --git a/htdocs/quickref/index.chtml b/htdocs/quickref/index.chtml
new file mode 100644
index 0000000..20ef217
--- a/dev/null
+++ b/htdocs/quickref/index.chtml
@@ -0,0 +1,16 @@
1% html(); return; /* vim:set ft=sitecing: */
2%%derive layout = "/ancestry/layout.chtml";
3<%constructor>
4 PN_PREV("/exceptions/runtime","runtime","runtime exceptions");
5 PN_NEXT("/quickref/metasyntax","syntax","meta syntax");
6</%constructor>
7<%codemethod string title() %>
8 return "quick reference";
9</%codemethod>
10<%method void content() %>
11 <h1>site-C-ing quick reference</h1>
12 <p>
13 I am hoping to put together some quick reference documentation here. For now,
14 I am adding the component meta-syntax quick reference.
15 </p>
16</%method>
diff --git a/htdocs/quickref/metasyntax.chtml b/htdocs/quickref/metasyntax.chtml
new file mode 100644
index 0000000..a63f596
--- a/dev/null
+++ b/htdocs/quickref/metasyntax.chtml
@@ -0,0 +1,344 @@
1% html(); return; /* vim:set ft=sitecing: */
2%%derive layout = "/ancestry/layout.chtml";
3<%constructor>
4 PN_PREV("/quickref/","quick reference","quick reference");
5 PN_NEXT("/sources","sources","source browser");
6</%constructor>
7<%codemethod string title() %>
8 return "meta syntax quick reference";
9</%codemethod>
10<%method void content() %>
11 <h1>site-C-ing meta syntax quick reference</h1>
12
13 <h2>Table of Contents</h2>
14
15 <ul class="quickref toc">
16 <li><a href="#qr__line">% ...</a></li>
17 <li><a href="#qr__inline">&lt;% ... %&gt;</a></li>
18 <li><a href="#qr__code">&lt;%code&gt;</a></li>
19 <li><a href="#qr__codemethod">&lt;%codemethod ... &gt;</a></li>
20 <li><a href="#qr__constructor">&lt;%constructor&gt;</a></li>
21 <li><a href="#qr__decl">&lt;%decl&gt;</a></li>
22 <li><a href="#qr___decl">%%decl</a></li>
23 <li><a href="#qr___derive">%%derive</a></li>
24 <li><a href="#qr__destructor">&lt;%destructor&gt;</a></li>
25 <li><a href="#qr__impl">&lt;%impl&gt;</a></li>
26 <li><a href="#qr___impl">%%impl</a></li>
27 <li><a href="#qr__method">&lt;%method ... &gt;</a></li>
28 <li><a href="#qr__output">&lt;%output&gt;</a></li>
29 <li><a href="#qr___pragma">%%pragma</a></li>
30 <li><a href="#qr___var">%%var</a></li>
31 </ul>
32
33 <dl class="metasyntax quickref">
34
35% /* % */
36 <dt>
37 <a id="qr__line" name="qr__line" title="line of code">
38 <code>% <kbd>line of code</kbd></code>
39 </a>
40 </dt>
41 <dd>
42 <p>
43 Break out into the code mode for just one line.
44 </p>
45 <blockquote class="qr_sample">
46 &nbsp;&lt;body&gt;<br/>
47 <em><a href="#qr__line" title="% description">%</a> for(int t=0;t&lt;10;t++) {<br/></em>
48 &nbsp;&nbsp;&nbsp;Here is the way we count.&lt;br/&gt;<br/>
49 &nbsp;&nbsp;&nbsp;Just saying out loud: <a href="#qr__inline" title="&lt;% ... %&gt; description">&lt;%</a> t <a href="#qr__inline" title="&lt;% ... %&gt; description">%&gt;</a>&lt;br/&gt;<br/>
50 <em><a href="#qr__line" title="% description">%</a> }<br/></em>
51 &nbsp;&lt;/body&gt;
52 </blockquote>
53 </dd>
54
55% /* <% %> */
56 <dt>
57 <a id="qr__inline" name="qr__inline" title="output expression">
58 <code>&lt;% <kbd>expression</kbd> %&gt;</code>
59 </a>
60 </dt>
61 <dd>
62 <p>
63 &lt;&lt; <kbd>expression</kbd> into output stream (think c++).
64 </p>
65 <blockquote class="qr_sample">
66 <a href="#qr__line" title="% description">%</a> for(int t=0;t&lt;10;t++) {<br/>
67 &nbsp;&nbsp;&nbsp;Here is the way we count.&lt;br/&gt;<br/>
68 <em>&nbsp;&nbsp;&nbsp;Just saying out loud: <a href="#qr__inline" title="&lt;% ... %&gt; description">&lt;%</a> t <a href="#qr__inline" title="&lt;% ... %&gt; description">%&gt;</a>&lt;br/&gt;<br/></em>
69 <a href="#qr__line" title="% description">%</a> }
70 </blockquote>
71 </dd>
72
73% /* %code */
74 <dt>
75 <a id="qr__code" name="qr__code" title="switching to code mode">
76 <code>
77 &lt;%code&gt; <kbd>...</kbd> &lt;/%code&gt;
78 </code>
79 </a>
80 </dt>
81 <dd>
82 Escape from the output mode to code mode. Opposite to <code><a href="#qr__output" title="&lt;%output&gt; description">&lt;%output&gt;</a></code>. Roughly the same as <code><a href="#qr__output" title="&lt;%output&gt; description">&lt;/%output&gt;</a> <kbd>...</kbd> <a href="#qr__output" title="&lt;%output&gt; description">&lt;%output&gt;</a></code> (note the reverse order), but more self-explanatory and applies to more cases.
83 </p>
84 <blockquote class="qr_sample">
85 &lt;body&gt;<br/>
86 <em>&nbsp;<a href="#qr__code" title="&lt;%code&gt; descrption">&lt;%code&gt;</a><br/></em>
87 &nbsp;&nbsp;for(int t=0;t&lt;10;t++) {<br/>
88 &nbsp;&nbsp;&nbsp;<a href="#qr__output" title="&lt;%output&gt; descrption">&lt;%output&gt;</a><br/>
89 &nbsp;&nbsp;&nbsp;&nbsp;Here is the way we count.&lt;br/&gt;<br/>
90 &nbsp;&nbsp;&nbsp;&nbsp;Just saying out loud: <a href="#qr__inline" title="&lt;% ... %&gt; description">&lt;%</a> t <a href="#qr__inline" title="&lt;% ... %&gt; description">%&gt;</a>&lt;br/&gt;<br/>
91 &nbsp;&nbsp;&nbsp;<a href="#qr__output" title="&lt;%output&gt; descrption">&lt;/%output&gt;</a><br/>
92 <em>&nbsp;<a href="#qr__code" title="&lt;%code&gt; descrption">&lt;/%code&gt;</a><br/></em>
93 &lt;/body&gt;
94 </blockquote>
95 </dd>
96
97% /* %codemethod */
98 <dt>
99 <a id="qr__codemethod" name="qr__codemethod" title="member function definition">
100 <code>
101 &lt;%codemethod <kbd>return_type_t</kbd> <kbd>member_name</kbd>(<kbd>args,...</kbd>) %&gt;<br/>
102 &nbsp;<kbd>code</kbd><br/>
103 &lt;/%codemethod&gt;
104 </code>
105 </a>
106 </dt>
107 <dd>
108 <p>
109 Define the member function. Essentially equivalent to <code><a href="#qr__method" title="&lt;%method ... %&gt; description" class="internal">&lt;%method</a> <kbd>...</kbd> <a href="#qr__method" title="&lt;%method ... %&gt; description" class="internal">%&gt;</a><a href="#qr__code" title="&lt;%code&gt; description" class="internal">&lt;%code&gt;</a> <kbd>...</kbd> <a href="#qr__code" title="&lt;%code&gt; description" class="internal">&lt;/%code&gt;</a><a href="#qr__method" title="&lt;%method ... %&gt; description" class="internal">&lt;/%method&gt;</a></code>.
110 </p>
111 <blockquote class="qr_sample">
112 <em><a href="#qr__codemethod" title="&lt;%codemethod ... %&gt; description">&lt;%codemethod</a> std::string ua() <a href="#qr__codemethod" title="&lt;%codemethod ... %&gt; description">%&gt;</a><br/>
113 &nbsp;return __CGI-&gt;get_meta("USER_AGENT");<br/>
114 <a href="#qr__codemethod" title="&lt;%codemethod ... %&gt; description">&lt;/%codemethod&gt;</a><br/></em>
115 The user agent is: <a href="#qr__inline" title="&lt;% ... %&gt; description">&lt;%</a> ua() <a href="#qr__inline" title="&lt;% ... %&gt; description">%&gt;</a><br/>
116 </blockquote>
117 </dd>
118
119% /* %constructor */
120 <dt>
121 <a id="qr__constructor" name="qr__constructor" title="constructor code">
122 <code>
123 &lt;%constructor&gt;<br/>
124 &nbsp;<kbd>code</kbd><br/>
125 &lt;/%constructor&gt;
126 </code>
127 </a>
128 </dt>
129 <dd>
130 <p>
131 Provide the code for constructor.
132 </p>
133 <blockquote class="qr_sample">
134 <a href="#qr___var" title="%%var description">%%var</a> bool is_msie;<br/>
135 <em><a href="#qr__constructor" title="&lt;%constructor&gt; description">&lt;%constructor&gt;</a><br/>
136 &nbsp;is_msie = (__CGI-&gt;get_meta("USER_AGENT").find("MSIE")!=string::npos);<br/>
137 <a href="#qr__constructor" title="&lt;%constructor&gt; description">&lt;/%constructor&gt;</a><br/></em>
138 </blockquote>
139 </dd>
140
141% /* %decl / %%decl */
142 <dt>
143 <a id="qr___decl" name="qr___decl" title="verbatim declaration">
144 <code>%%decl <kbd>line of code</kbd></code>
145 </a>
146 </dt>
147 <dt>
148 <a id="qr__decl" name="qr__decl" title="verbatim declaration">
149 <code>
150 &lt;%decl&gt;<br/>
151 &nbsp;<kbd>lines of code</kbd><br/>
152 &lt;/%decl&gt;
153 </code>
154 </a>
155 </dt>
156 <dd>
157 <p>
158 Put the line(s) of code into the resulting <em>.h</em> file before the
159 class declaration.
160 </p>
161 <blockquote class="qr_sample">
162 <em><a href="#qr___decl" title="%%decl description">%%decl</a> #include &lt;string&gt;<br/></em>
163 <a href="#qr___var" title="%%var description">%%var</a> std::string str = "default"<br/>
164 <em><a href="#qr__decl" title="&lt;%decl&gt; description">&lt;%decl&gt;</a><br/>
165 &nbsp;typedef int integer_t;<br/>
166 <a href="#qr__decl" title="&lt;%decl&gt; description">&lt;/%decl&gt;</a><br/></em>
167 <a href="#qr__method" title="&lt;%method ... %&gt; description">&lt;%method</a> void do_nothing(integer_t input) <a href="#qr__method" title="&lt;%method ... %&gt; description">%&gt;</a><br/>
168 &nbsp;nothing is done<br/>
169 <a href="#qr__method" title="&lt;%method ... %&gt; description">&lt;/%method&gt;</a>
170 </blockquote>
171 </dd>
172
173% /* %%derive */
174 <dt>
175 <a id="qr___derive" name="qr___derive" title="base class(es) specification">
176 <code>%%derive <kbd>name</kbd> = "<kbd>base-component</kbd>";</code>
177 </a>
178 </dt>
179 <dd>
180 <p>
181 Inherit what is there to be inherited from the base component specified.
182 </p>
183 <blockquote class="qr_sample">
184 <em><a href="#qr___derive" title="%%derive description">%%derive</a> pagelayout = "/ancestry/page_layout.chtml";<br/></em>
185 <a href="#qr__line" title="% description">%</a> pagelayout::member_function();
186 </blockquote>
187 </dd>
188
189% /* %destructor */
190 <dt>
191 <a id="qr__destructor" name="qr__destructor" title="destructor code">
192 <code>
193 &lt;%destructor&gt;<br/>
194 &nbsp;<kbd>code</kbd><br/>
195 &lt;/%destructor&gt;
196 </code>
197 </a>
198 </dt>
199 <dd>
200 <p>
201 Provide the code for destructor.
202 </p>
203 <blockquote class="qr_sample">
204 <a href="#qr___var" title="%%var description">%%var</a> type_t *tmp = 0;<br/>
205 <a href="#qr__constructor" title="&lt;%constructor&gt; description">&lt;%constructor&gt;</a><br/>
206 &nbsp;tmp = new type_t(type_t::option_1);<br/>
207 <a href="#qr__constructor" title="&lt;%constructor&gt; description">&lt;/%constructor&gt;</a><br/>
208 <em><a href="#qr__destructor" title="&lt;%destructor&gt; description">&lt;%destructor&gt;</a><br/>
209 &nbsp;delete tmp;<br/>
210 <a href="#qr__destructor" title="&lt;%destructor&gt; description">&lt;/%destructor&gt;</a><br/></em>
211 </blockquote>
212 </dd>
213
214% /* %impl / %%impl */
215 <dt>
216 <a id="qr___impl" name="qr__impl" title="verbatim definition">
217 <code>%%impl <kbd>line of code</kbd></code>
218 </a>
219 </dt>
220 <dt>
221 <a id="qr__impl" name="qr__impl" title="verbatim definition">
222 <code>
223 &lt;%impl&gt;<br/>
224 &nbsp;<kbd>lines of code</kbd><br/>
225 &lt;/%impl&gt;
226 </code>
227 </a>
228 </dt>
229 <dd>
230 <p>
231 Put the line(s) of code into the resulting <em>.cc</em> implementation file
232 before any members definitions.
233 </p>
234 <blockquote class="qr_sample">
235 <em><a href"#qr___impl" title="%%impl description">%%impl</a> #include &lt;string.h&gt;<br/></em>
236 <a href="#qr__method" title="&lt;%method ... %gt; description">&lt;%method</a> void output_if_contains(const char *haystack,const char *needle) <a href="#qr__method" title="&lt;%method ... %gt; description">%&gt;</a><br/>
237 <a href="#qr__line" title="% description">%</a> if(strstr(haystack,needle)) {<br/>
238 &nbsp;&nbsp;&nbsp;<a href="#qr__inline" title="&lt;% ... %&gt; description">&lt;%</a> haystack <a href="#qr__inline" title="&lt;% ... %&gt; description">%&gt;</a><br/>
239 <a href="#qr__line" title="% description">%</a> }<br/>
240 <a href="#qr__method" title="&lt;%method ... %&gt; description">&lt;/%method&gt;</a><br/>
241 <em><a href="#qr__impl" title="&lt;%impl&gt; description">&lt;%impl&gt;</a><br/>
242 &nbsp;#include &lt;konforka/exception.h&gt;
243 &nbsp;static const char *tokens[] = {<br/>
244 &nbsp;&nbsp;"token 1", "token 2", "token 3"<br/>
245 &nbsp;};<br/>
246 <a href="#qr__impl" title="&lt;%impl&gt; description">&lt;/%impl&gt;</a><br/></em>
247 <a href="#qr__method" title="&lt;%method ... %gt; description">&lt;%method</a> void output_token(int toknum) <a href="#qr__method" title="&lt;%method ... %gt; description">%&gt;</a><br/>
248 &nbsp;<a href="#qr__code" title="&lt;%code&gt; description">&lt;%code&gt;</a><br/>
249 &nbsp;&nbsp;if(toknum&lt;0 || toknum&gt;=(sizeof(tokens)/sizeof(*tokens)))<br/>
250 &nbsp;&nbsp;&nbsp;throw konforka::exception(CODEPOINT,"out of bounds");<br/>
251 &nbsp;<a href="#qr__code" title="&lt;%code&gt; description">&lt;/%code&gt;</a><br/>
252 &nbsp;<a href="#qr__inline" title="&lt;% ... %&gt; description">&lt;%</a> tokens[toknum] <a href="#qr__inline" title="&lt;% ... %&gt; description">%&gt;</a><br/>
253 <a href="#qr__method" title="&lt;%method ... %&gt; description">&lt;/%method&gt;</a><br/>
254 </blockquote>
255 </dd>
256
257% /* %method */
258 <dt>
259 <a id="qr__method" name="qr__method" title="member function definition">
260 <code>
261 &lt;%method <kbd>return_type_t</kbd> <kbd>member_name</kbd>(<kbd>args,...</kbd>) %&gt;<br/>
262 &nbsp;<kbd>code</kbd><br/>
263 &lt;/%method&gt;
264 </code>
265 </a>
266 </dt>
267 <dd>
268 <p>
269 Define the member function. Essentially equivalent to <code><a href="#qr__codemethod" title="&lt;%codemethod ... %&gt; description" class="internal">&lt;%codemethod</a> <kbd>...</kbd> <a href="#qr__codemethod" title="&lt;%codemethod ... %&gt; description" class="internal">%&gt;</a><a href="#qr__output" title="&lt;%output&gt; description" class="internal">&lt;%output&gt;</a> <kbd>...</kbd> <a href="#qr__output" title="&lt;%output&gt; description" class="internal">&lt;/%output&gt;</a><a href="#qr__codemethod" title="&lt;%codemethod ... %&gt; description" class="internal">&lt;/%codemethod&gt;</a></code>.
270 </p>
271 <blockquote class="qr_sample">
272 <em><a href="#qr__method" title="&lt;%method ... %&gt; description">&lt;%method</a> void emphasized(const char *t) <a href="#qr__method" title="&lt;%method ... %&gt; description">%&gt;</a><br/>
273 &nbsp;&lt;em&gt;<a href="#qr__inline" title="&lt;% ... %&gt; description">&lt;%</a> t <a href="#qr__inline" title="&lt;% ... %&gt; description">%&gt;</a>&lt;/em&gt;<br/>
274 <a href="#qr__codemethod" title="&lt;%codemethod ... %&gt; description">&lt;/%method&gt;</a><br/></em>
275 <a href="#qr__line" title="% description">%</a> emphasized("emphasized text");
276 </blockquote>
277 </dd>
278
279% /* %output */
280 <dt>
281 <a id="qr__output" name="qr__output" title="switching to output mode">
282 <code>
283 &lt;%output&gt; <kbd>...</kbd> &lt;/%output&gt;
284 </code>
285 </a>
286 </dt>
287 <dd>
288 <p>
289 Escape from the code mode to output mode. Opposite to <code><a href="#qr__code" title="&lt;%code&gt; description">&lt;%code&gt;</a></code>. Roughly the same as <code><a href="#qr__code" title="&lt;%code&gt; description">&lt;/%code&gt;</a> <kbd>...</kbd> <a href="#qr__code" title="&lt;%code&gt; description">&lt;%code&gt;</a></code> (note the reverse order), but more self-explanatory and applies to more cases.
290 </p>
291 <blockquote class="qr_sample">
292 <a href="#qr__codemethod" title="&lt;%codemethod ... %&gt; description">&lt;%codemethod</a> void count() <a href="#qr__codemethod" title="&lt;%codemethod ... &gt; description">%&gt;</a><br/>
293 &nbsp;for(int t=0;t&lt;10;t++) {<br/>
294 <em>&nbsp;&nbsp;<a href="#qr__output" title="&lt;%output&gt; descrption">&lt;%output&gt;</a><br/>
295 &nbsp;&nbsp;&nbsp;Here is the way we count.&lt;br/&gt;<br/>
296 &nbsp;&nbsp;&nbsp;Just saying out loud: <a href="#qr__inline" title="&lt;% ... %&gt; description">&lt;%</a> t <a href="#qr__inline" title="&lt;% ... %&gt; description">%&gt;</a>&lt;br/&gt;<br/>
297 &nbsp;&nbsp;<a href="#qr__output" title="&lt;%output&gt; descrption">&lt;/%output&gt;</a><br/></em>
298 <a href="#qr__codemethod" title="&lt;/%codemethod ... %&gt; description">&lt;/%codemethod&gt;</a><br/>
299 <a href="#qr__line" title="% description">%</a> count();
300 </blockquote>
301 </dd>
302
303% /* %%pragma */
304 <dt>
305 <a id="qr___pragma" name="qr___pragma" title="pragma">
306 <code>
307 %%pragma <kbd>pragma_name</kbd><br/>
308 %%pragma <kbd>pragma_name</kbd>=<kbd>pragma_value</kbd>
309 </code>
310 </a>
311 </dt>
312 <dd>
313 <p>provide pseudo instructions to the preprocessor. At this time only pragma
314 named <code>main</code> is defined, which instructs preprocessor to discard
315 the 'main' member that would be generated for the component and call the
316 <code>main</code> member of the named base class.</p>
317 <blockquote class="qr_sample">
318 <a href="#qr___derive" title="%%derive description">%%derive</a> pagelayout = "/ancestry/page_layout.chtml";<br/>
319 <em><a href="#qr___pragma" title="%%pragma description">%%pragma</a> main=pagelayout</em>
320 </blockquote>
321 </dd>
322
323% /* %%var */
324 <dt>
325 <a id="qr___var" name="qr___var" title="member variable declaration">
326 <code>%%var <kbd>type_t</kbd> <kbd>varname</kbd>;<br/>
327 <code>%%var <kbd>type_t</kbd> <kbd>varname</kbd> = <kbd>initalizer</kbd>;<br/>
328 </a>
329 </dt>
330 <dd>
331 <p>
332 Define the member variable with optional default value (suitable for
333 putting into the <code>: <kbd>varname</kbd>(<kbd>initializer</kbd>)</code>
334 part of the c++ constructor.
335 </p>
336 <blockquote class="qr_sample">
337 <em><a href="#qr___var" title="%%var description">%%var</a> std::string strval = "default value";<br/>
338 <a href="#qr___var" title="%%var description">%%var</a> int usecount = 0;<br/>
339 <a href="#qr___var" title="%%var description">%%var</a> int whatnot;</em>
340 </blockquote>
341 </dd>
342
343 </dl>
344</%method>
diff --git a/htdocs/sources.chtml b/htdocs/sources.chtml
index 6341f49..8c0c701 100644
--- a/htdocs/sources.chtml
+++ b/htdocs/sources.chtml
@@ -1,33 +1,33 @@
1% html(); return; /* vim:set ft=sitecing: */ 1% html(); return; /* vim:set ft=sitecing: */
2%%derive layout = "/ancestry/layout.chtml"; 2%%derive layout = "/ancestry/layout.chtml";
3%%derive sources = "/ancestry/sources.chtml"; 3%%derive sources = "/ancestry/sources.chtml";
4<%impl> 4<%impl>
5 #include <sitecing/sitecing_util.h> 5 #include <sitecing/sitecing_util.h>
6</%impl> 6</%impl>
7<%constructor> 7<%constructor>
8 b_strict = false; 8 b_strict = false;
9 PN_PREV("/exceptions/runtime","runtime","runtime exceptions"); 9 PN_PREV("/quickref/metasyntax","syntax","meta syntax");
10</%constructor> 10</%constructor>
11<%codemethod string title() %> 11<%codemethod string title() %>
12 return "runtime exceptions handling"; 12 return "runtime exceptions handling";
13</%codemethod> 13</%codemethod>
14<%method void content() %> 14<%method void content() %>
15 <h1>browse this site sources</h1> 15 <h1>browse this site sources</h1>
16 16
17 <ul class="sourcebrowser"> 17 <ul class="sourcebrowser">
18% for(int n=0;n<source_files_count;n++) { 18% for(int n=0;n<source_files_count;n++) {
19% sourcefile_t& sf = source_files[n]; 19% sourcefile_t& sf = source_files[n];
20% if(!sf.name) { /* the beginning or the end of the directory */ 20% if(!sf.name) { /* the beginning or the end of the directory */
21% if(sf.dir) { /* the beginning */ 21% if(sf.dir) { /* the beginning */
22 <li class="dir"><% sf.dir %>/<ul class="dir"> 22 <li class="dir"><% sf.dir %>/<ul class="dir">
23% }else{ /* the end */ 23% }else{ /* the end */
24 </ul></li> 24 </ul></li>
25% } 25% }
26% }else{ 26% }else{
27 <li class="file"><a href="/view/<% sf.dir %>/<% sf.name %>" title="<% sf.desc %>" target="insert"><% sf.name %></a></li> 27 <li class="file"><a href="/view/<% sf.dir %>/<% sf.name %>" title="<% sf.desc %>" target="insert"><% sf.name %></a></li>
28% } 28% }
29% } 29% }
30 </ul> 30 </ul>
31 31
32 <%code> 32 <%code>
33 string rfile = sitecing::normalize_path( 33 string rfile = sitecing::normalize_path(
diff --git a/htdocs/style.css b/htdocs/style.css
index 83e308f..96e4c59 100644
--- a/htdocs/style.css
+++ b/htdocs/style.css
@@ -1,50 +1,51 @@
1body { 1body {
2 font-family: sans-serif; 2 font-family: sans-serif;
3 font-size: 11pt; 3 font-size: 11pt;
4} 4}
5 5
6a { 6a:link, a:visited {
7 text-decoration: none; 7 text-decoration: none;
8} 8}
9a:hover { 9a:link:hover, a:visited:hover {
10 text-decoration: underline; 10 text-decoration: underline;
11} 11}
12p { 12p {
13 margin: 1ex 1em; 13 margin: 1ex 1em;
14 text-indent: 2em; 14 text-indent: 2em;
15 text-align: justify; 15 text-align: justify;
16} 16}
17p.note { 17p.note {
18 margin-left: 10%; 18 margin-left: 10%;
19 border-width: 1px 1px 1px 6px; 19 border-width: 1px 1px 1px 6px;
20 border-color: gray gray gray #0000a0; 20 border-color: gray gray gray #0000a0;
21 border-style: solid solid solid double; 21 border-style: solid solid solid double;
22 padding: 1ex 1ex 1ex 2em; 22 padding: 1ex 1ex 1ex 2em;
23 font-size: 80%; 23 font-size: 80%;
24 background: #c0c0e0; 24 background: #c0c0e0;
25 color: #202020; 25 color: #202020;
26} 26}
27code a,
27code { 28code {
28 color: #d04040; 29 color: #d04040;
29} 30}
30em { 31em {
31 white-space: nowrap; 32 white-space: nowrap;
32} 33}
33 34
34div.google_ad { 35div.google_ad {
35 text-align: center; 36 text-align: center;
36 margin: 1ex; 37 margin: 1ex;
37} 38}
38div.google_ad.top { 39div.google_ad.top {
39 padding-bottom: 1ex; 40 padding-bottom: 1ex;
40 border-bottom: 1px gray solid; 41 border-bottom: 1px gray solid;
41} 42}
42div.google_ad.bottom { 43div.google_ad.bottom {
43 padding-top: 1ex; 44 padding-top: 1ex;
44 border-top: 1px gray solid; 45 border-top: 1px gray solid;
45} 46}
46 47
47div#sidepanel { 48div#sidepanel {
48 position: absolute; top: 0px; left: 0px; 49 position: absolute; top: 0px; left: 0px;
49 margin: 0px; 50 margin: 0px;
50 width: 20%; 51 width: 20%;
@@ -97,51 +98,62 @@ div#sidepanel ul a {
97 text-decoration: none; 98 text-decoration: none;
98 background: white; 99 background: white;
99 color: black; 100 color: black;
100} 101}
101div#sidepanel ul a:hover { 102div#sidepanel ul a:hover {
102 background: gray; 103 background: gray;
103 color: white; 104 color: white;
104} 105}
105div#sidepanel ul ul a { 106div#sidepanel ul ul a {
106 padding-left: 2.5ex; 107 padding-left: 2.5ex;
107 background: #e0e0e0; 108 background: #e0e0e0;
108} 109}
109div#sidepanel div.copyright { 110div#sidepanel div.copyright {
110 text-align: center; 111 text-align: center;
111} 112}
112 113
113div#content h1 { 114div#content h1 {
114 font-size: 140%; 115 font-size: 140%;
115 color: gray; 116 color: gray;
116 font-weight: bold; 117 font-weight: bold;
117 text-align: center; 118 text-align: center;
118 margin: 1em; 119 margin: 1em;
119 clear: both; 120 clear: both;
120} 121}
122div#content h2 {
123 font-size: 140%;
124 color: #8080a0;
125 font-weight: bold;
126 text-align: center;
127 margin: 1em;
128 clear: both;
129}
121div#content p a { 130div#content p a {
122 font-weight: bold; 131 font-weight: bold;
123} 132}
133div#content p a.internal {
134 font-weight: inherit !important;
135}
124 136
125div.insert { 137div.insert {
126 text-align: center; 138 text-align: center;
127} 139}
128iframe#insert { 140iframe#insert {
129 border: 1px solid black; 141 border: 1px solid black;
130} 142}
131 143
132div.source h1 { 144div.source h1 {
133 background: #e0e0e0; 145 background: #e0e0e0;
134 border: 1px solid #808080; 146 border: 1px solid #808080;
135 padding-left: 1em; 147 padding-left: 1em;
136 margin: 0px; 148 margin: 0px;
137 font-size: 100%; 149 font-size: 100%;
138 color: #000060; 150 color: #000060;
139 overflow: hidden; 151 overflow: hidden;
140} 152}
141div.source ul { 153div.source ul {
142 background: #80c0c0; 154 background: #80c0c0;
143 margin: 0px; 155 margin: 0px;
144 padding: 1px 0px; 156 padding: 1px 0px;
145 font-family: monospace; 157 font-family: monospace;
146 font-size: 80%; 158 font-size: 80%;
147 overflow: hidden; 159 overflow: hidden;
@@ -182,24 +194,63 @@ ul.sourcebrowser li.file a:hover {
182 194
183div.prevnext { 195div.prevnext {
184 margin: 1ex; 196 margin: 1ex;
185} 197}
186div.prevnext a { 198div.prevnext a {
187 margin: 0.5ex 1em; padding: 0.2ex 0.5ex; 199 margin: 0.5ex 1em; padding: 0.2ex 0.5ex;
188 display: block; width: 30%; 200 display: block; width: 30%;
189 border: solid 1px gray; 201 border: solid 1px gray;
190 color: black; 202 color: black;
191 text-decoration: none; 203 text-decoration: none;
192} 204}
193div.prevnext a.prevnext-prev { 205div.prevnext a.prevnext-prev {
194 float: left; 206 float: left;
195 text-align: left; 207 text-align: left;
196} 208}
197div.prevnext a.prevnext-next { 209div.prevnext a.prevnext-next {
198 float: right; 210 float: right;
199 text-align: right; 211 text-align: right;
200} 212}
201div.prevnext a:hover { 213div.prevnext a:hover {
202 background: gray; 214 background: gray;
203 border: black 1px solid; 215 border: black 1px solid;
204 color: white; 216 color: white;
205} 217}
218
219ul.quickref.toc {
220 margin: 1em 20%;
221 font-size: 90%;
222 border: solid 1px gray;
223}
224
225dl.quickref {
226 margin: 1ex 1em;
227}
228dl.quickref dt {
229 margin: 0.4ex;
230 padding: 2px 0.5ex;
231 background: #e0e0e0;
232 display: compact;
233}
234dl.quickref dd {
235 margin: 0px 0.4ex 0.4ex 10%;
236 padding: 0px;
237 border: 1px solid grey;
238}
239dl.quickref code kbd {
240 font-style: italic;
241 color: #0000c0;
242}
243dl.quickref blockquote {
244 background: #ffffc0;
245 padding: 4px;
246 border: dotted 1px gray;
247 font-family: monospace;
248}
249dl.quickref blockquote em {
250 display: block;
251 font-family: inherit !important;
252 font-size: inherit !important;
253 font-weight: inherit !important;
254 font-style: inherit !important;
255 background: #ffc0c0;
256}