author | Michael Krelin <hacker@klever.net> | 2005-04-01 22:23:54 (UTC) |
---|---|---|
committer | Michael Krelin <hacker@klever.net> | 2005-04-01 22:23:54 (UTC) |
commit | 8e7ab6661815e333ee9377c2655a03aee89372c2 (patch) (unidiff) | |
tree | 9bd424c20665b85a46ba26e38a7504ed7ad7cf68 | |
parent | d379841850daab4693d596784b790b13e20e3a03 (diff) | |
download | sitecing-8e7ab6661815e333ee9377c2655a03aee89372c2.zip sitecing-8e7ab6661815e333ee9377c2655a03aee89372c2.tar.gz sitecing-8e7ab6661815e333ee9377c2655a03aee89372c2.tar.bz2 |
added a quick reference section
-rw-r--r-- | htdocs/ancestry/layout.chtml | 2 | ||||
-rw-r--r-- | htdocs/exceptions/runtime.chtml | 2 | ||||
-rw-r--r-- | htdocs/quickref/index.chtml | 16 | ||||
-rw-r--r-- | htdocs/quickref/metasyntax.chtml | 344 | ||||
-rw-r--r-- | htdocs/sources.chtml | 2 | ||||
-rw-r--r-- | htdocs/style.css | 55 |
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 | |||
@@ -11,59 +11,59 @@ | |||
11 | %%var std::string descPrev; | 11 | %%var std::string descPrev; |
12 | %%var std::string titlePrev; | 12 | %%var std::string titlePrev; |
13 | %%var std::string urlNext; | 13 | %%var std::string urlNext; |
14 | %%var std::string descNext; | 14 | %%var std::string descNext; |
15 | %%var std::string titleNext; | 15 | %%var std::string titleNext; |
16 | <%constructor> | 16 | <%constructor> |
17 | if(strstr(PACKAGE_STRING,"svn")) | 17 | if(strstr(PACKAGE_STRING,"svn")) |
18 | b_svn = true; | 18 | b_svn = true; |
19 | </%constructor> | 19 | </%constructor> |
20 | <%method void prevnext() %> | 20 | <%method void prevnext() %> |
21 | % if(urlPrev.empty() && urlNext.empty()) return; | 21 | % if(urlPrev.empty() && urlNext.empty()) return; |
22 | % if(descPrev.empty() && descNext.empty()) return; | 22 | % if(descPrev.empty() && descNext.empty()) return; |
23 | <div class="prevnext"> | 23 | <div class="prevnext"> |
24 | % if(!(urlPrev.empty() || descPrev.empty())) { | 24 | % if(!(urlPrev.empty() || descPrev.empty())) { |
25 | <a class="prevnext-prev" href="<% urlPrev %>" title="<% sitecing::html_escape(titlePrev.empty()?descPrev:titlePrev) %>"><% sitecing::html_escape(descPrev) %></a> | 25 | <a class="prevnext-prev" href="<% urlPrev %>" title="<% sitecing::html_escape(titlePrev.empty()?descPrev:titlePrev) %>"><% sitecing::html_escape(descPrev) %></a> |
26 | % } | 26 | % } |
27 | % if(!(urlNext.empty() || descNext.empty())) { | 27 | % if(!(urlNext.empty() || descNext.empty())) { |
28 | <a class="prevnext-next" href="<% urlNext %>" title="<% sitecing::html_escape(titleNext.empty()?descNext:titleNext) %>"><% sitecing::html_escape(descNext) %></a> | 28 | <a class="prevnext-next" href="<% urlNext %>" title="<% sitecing::html_escape(titleNext.empty()?descNext:titleNext) %>"><% sitecing::html_escape(descNext) %></a> |
29 | % } | 29 | % } |
30 | </div> | 30 | </div> |
31 | </%method> | 31 | </%method> |
32 | <%method void body() %> | 32 | <%method void body() %> |
33 | <div id="content"> | 33 | <div id="content"> |
34 | <%code> | 34 | <%code> |
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 | © <a href="http://www.klever.net/">Klever Group</a> | 67 | © <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,49 +1,49 @@ | |||
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" |
31 | target="insert" title="the link opens in the frame below">output</a>. Well, | 31 | target="insert" title="the link opens in the frame below">output</a>. Well, |
32 | you may not wish to give out all this information in the production | 32 | you may not wish to give out all this information in the production |
33 | environment, so you just put in your <a | 33 | environment, so you just put in your <a |
34 | href="/view/htdocs/exceptions/production/.scrc" target="insert" title="the | 34 | href="/view/htdocs/exceptions/production/.scrc" target="insert" title="the |
35 | link opens in the frame below">configuration file</a> some <a | 35 | link opens in the frame below">configuration file</a> some <a |
36 | href="/view/htdocs/handlers/exception_prod" target="insert" title="the link | 36 | href="/view/htdocs/handlers/exception_prod" target="insert" title="the link |
37 | opens in the frame below">different handler</a>, which just gives user <a | 37 | opens in the frame below">different handler</a>, which just gives user <a |
38 | href="/exceptions/production/runtime" target="insert" title="the link opens | 38 | href="/exceptions/production/runtime" target="insert" title="the link opens |
39 | in the frame below">a friendly yet lame excuse</a>. | 39 | in the frame below">a friendly yet lame excuse</a>. |
40 | </p> | 40 | </p> |
41 | 41 | ||
42 | <div class="insert"> | 42 | <div class="insert"> |
43 | <iframe id="insert" name="insert" src="about:blank" width="95%" height="300"> | 43 | <iframe id="insert" name="insert" src="about:blank" width="95%" height="300"> |
44 | <p>I wanted to put an <iframe> here, but your browser does not seem to | 44 | <p>I wanted to put an <iframe> here, but your browser does not seem to |
45 | support it. That is okay, it still will open links somehow.</p> | 45 | support it. That is okay, it still will open links somehow.</p> |
46 | </iframe> | 46 | </iframe> |
47 | </div> | 47 | </div> |
48 | 48 | ||
49 | </%method> | 49 | </%method> |
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"><% ... %></a></li> | ||
18 | <li><a href="#qr__code"><%code></a></li> | ||
19 | <li><a href="#qr__codemethod"><%codemethod ... ></a></li> | ||
20 | <li><a href="#qr__constructor"><%constructor></a></li> | ||
21 | <li><a href="#qr__decl"><%decl></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"><%destructor></a></li> | ||
25 | <li><a href="#qr__impl"><%impl></a></li> | ||
26 | <li><a href="#qr___impl">%%impl</a></li> | ||
27 | <li><a href="#qr__method"><%method ... ></a></li> | ||
28 | <li><a href="#qr__output"><%output></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 | <body><br/> | ||
47 | <em><a href="#qr__line" title="% description">%</a> for(int t=0;t<10;t++) {<br/></em> | ||
48 | Here is the way we count.<br/><br/> | ||
49 | Just saying out loud: <a href="#qr__inline" title="<% ... %> description"><%</a> t <a href="#qr__inline" title="<% ... %> description">%></a><br/><br/> | ||
50 | <em><a href="#qr__line" title="% description">%</a> }<br/></em> | ||
51 | </body> | ||
52 | </blockquote> | ||
53 | </dd> | ||
54 | |||
55 | % /* <% %> */ | ||
56 | <dt> | ||
57 | <a id="qr__inline" name="qr__inline" title="output expression"> | ||
58 | <code><% <kbd>expression</kbd> %></code> | ||
59 | </a> | ||
60 | </dt> | ||
61 | <dd> | ||
62 | <p> | ||
63 | << <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<10;t++) {<br/> | ||
67 | Here is the way we count.<br/><br/> | ||
68 | <em> Just saying out loud: <a href="#qr__inline" title="<% ... %> description"><%</a> t <a href="#qr__inline" title="<% ... %> description">%></a><br/><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 | <%code> <kbd>...</kbd> </%code> | ||
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="<%output> description"><%output></a></code>. Roughly the same as <code><a href="#qr__output" title="<%output> description"></%output></a> <kbd>...</kbd> <a href="#qr__output" title="<%output> description"><%output></a></code> (note the reverse order), but more self-explanatory and applies to more cases. | ||
83 | </p> | ||
84 | <blockquote class="qr_sample"> | ||
85 | <body><br/> | ||
86 | <em> <a href="#qr__code" title="<%code> descrption"><%code></a><br/></em> | ||
87 | for(int t=0;t<10;t++) {<br/> | ||
88 | <a href="#qr__output" title="<%output> descrption"><%output></a><br/> | ||
89 | Here is the way we count.<br/><br/> | ||
90 | Just saying out loud: <a href="#qr__inline" title="<% ... %> description"><%</a> t <a href="#qr__inline" title="<% ... %> description">%></a><br/><br/> | ||
91 | <a href="#qr__output" title="<%output> descrption"></%output></a><br/> | ||
92 | <em> <a href="#qr__code" title="<%code> descrption"></%code></a><br/></em> | ||
93 | </body> | ||
94 | </blockquote> | ||
95 | </dd> | ||
96 | |||
97 | % /* %codemethod */ | ||
98 | <dt> | ||
99 | <a id="qr__codemethod" name="qr__codemethod" title="member function definition"> | ||
100 | <code> | ||
101 | <%codemethod <kbd>return_type_t</kbd> <kbd>member_name</kbd>(<kbd>args,...</kbd>) %><br/> | ||
102 | <kbd>code</kbd><br/> | ||
103 | </%codemethod> | ||
104 | </code> | ||
105 | </a> | ||
106 | </dt> | ||
107 | <dd> | ||
108 | <p> | ||
109 | Define the member function. Essentially equivalent to <code><a href="#qr__method" title="<%method ... %> description" class="internal"><%method</a> <kbd>...</kbd> <a href="#qr__method" title="<%method ... %> description" class="internal">%></a><a href="#qr__code" title="<%code> description" class="internal"><%code></a> <kbd>...</kbd> <a href="#qr__code" title="<%code> description" class="internal"></%code></a><a href="#qr__method" title="<%method ... %> description" class="internal"></%method></a></code>. | ||
110 | </p> | ||
111 | <blockquote class="qr_sample"> | ||
112 | <em><a href="#qr__codemethod" title="<%codemethod ... %> description"><%codemethod</a> std::string ua() <a href="#qr__codemethod" title="<%codemethod ... %> description">%></a><br/> | ||
113 | return __CGI->get_meta("USER_AGENT");<br/> | ||
114 | <a href="#qr__codemethod" title="<%codemethod ... %> description"></%codemethod></a><br/></em> | ||
115 | The user agent is: <a href="#qr__inline" title="<% ... %> description"><%</a> ua() <a href="#qr__inline" title="<% ... %> description">%></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 | <%constructor><br/> | ||
124 | <kbd>code</kbd><br/> | ||
125 | </%constructor> | ||
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="<%constructor> description"><%constructor></a><br/> | ||
136 | is_msie = (__CGI->get_meta("USER_AGENT").find("MSIE")!=string::npos);<br/> | ||
137 | <a href="#qr__constructor" title="<%constructor> description"></%constructor></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 | <%decl><br/> | ||
151 | <kbd>lines of code</kbd><br/> | ||
152 | </%decl> | ||
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 <string><br/></em> | ||
163 | <a href="#qr___var" title="%%var description">%%var</a> std::string str = "default"<br/> | ||
164 | <em><a href="#qr__decl" title="<%decl> description"><%decl></a><br/> | ||
165 | typedef int integer_t;<br/> | ||
166 | <a href="#qr__decl" title="<%decl> description"></%decl></a><br/></em> | ||
167 | <a href="#qr__method" title="<%method ... %> description"><%method</a> void do_nothing(integer_t input) <a href="#qr__method" title="<%method ... %> description">%></a><br/> | ||
168 | nothing is done<br/> | ||
169 | <a href="#qr__method" title="<%method ... %> description"></%method></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 | <%destructor><br/> | ||
194 | <kbd>code</kbd><br/> | ||
195 | </%destructor> | ||
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="<%constructor> description"><%constructor></a><br/> | ||
206 | tmp = new type_t(type_t::option_1);<br/> | ||
207 | <a href="#qr__constructor" title="<%constructor> description"></%constructor></a><br/> | ||
208 | <em><a href="#qr__destructor" title="<%destructor> description"><%destructor></a><br/> | ||
209 | delete tmp;<br/> | ||
210 | <a href="#qr__destructor" title="<%destructor> description"></%destructor></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 | <%impl><br/> | ||
224 | <kbd>lines of code</kbd><br/> | ||
225 | </%impl> | ||
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 <string.h><br/></em> | ||
236 | <a href="#qr__method" title="<%method ... %gt; description"><%method</a> void output_if_contains(const char *haystack,const char *needle) <a href="#qr__method" title="<%method ... %gt; description">%></a><br/> | ||
237 | <a href="#qr__line" title="% description">%</a> if(strstr(haystack,needle)) {<br/> | ||
238 | <a href="#qr__inline" title="<% ... %> description"><%</a> haystack <a href="#qr__inline" title="<% ... %> description">%></a><br/> | ||
239 | <a href="#qr__line" title="% description">%</a> }<br/> | ||
240 | <a href="#qr__method" title="<%method ... %> description"></%method></a><br/> | ||
241 | <em><a href="#qr__impl" title="<%impl> description"><%impl></a><br/> | ||
242 | #include <konforka/exception.h> | ||
243 | static const char *tokens[] = {<br/> | ||
244 | "token 1", "token 2", "token 3"<br/> | ||
245 | };<br/> | ||
246 | <a href="#qr__impl" title="<%impl> description"></%impl></a><br/></em> | ||
247 | <a href="#qr__method" title="<%method ... %gt; description"><%method</a> void output_token(int toknum) <a href="#qr__method" title="<%method ... %gt; description">%></a><br/> | ||
248 | <a href="#qr__code" title="<%code> description"><%code></a><br/> | ||
249 | if(toknum<0 || toknum>=(sizeof(tokens)/sizeof(*tokens)))<br/> | ||
250 | throw konforka::exception(CODEPOINT,"out of bounds");<br/> | ||
251 | <a href="#qr__code" title="<%code> description"></%code></a><br/> | ||
252 | <a href="#qr__inline" title="<% ... %> description"><%</a> tokens[toknum] <a href="#qr__inline" title="<% ... %> description">%></a><br/> | ||
253 | <a href="#qr__method" title="<%method ... %> description"></%method></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 | <%method <kbd>return_type_t</kbd> <kbd>member_name</kbd>(<kbd>args,...</kbd>) %><br/> | ||
262 | <kbd>code</kbd><br/> | ||
263 | </%method> | ||
264 | </code> | ||
265 | </a> | ||
266 | </dt> | ||
267 | <dd> | ||
268 | <p> | ||
269 | Define the member function. Essentially equivalent to <code><a href="#qr__codemethod" title="<%codemethod ... %> description" class="internal"><%codemethod</a> <kbd>...</kbd> <a href="#qr__codemethod" title="<%codemethod ... %> description" class="internal">%></a><a href="#qr__output" title="<%output> description" class="internal"><%output></a> <kbd>...</kbd> <a href="#qr__output" title="<%output> description" class="internal"></%output></a><a href="#qr__codemethod" title="<%codemethod ... %> description" class="internal"></%codemethod></a></code>. | ||
270 | </p> | ||
271 | <blockquote class="qr_sample"> | ||
272 | <em><a href="#qr__method" title="<%method ... %> description"><%method</a> void emphasized(const char *t) <a href="#qr__method" title="<%method ... %> description">%></a><br/> | ||
273 | <em><a href="#qr__inline" title="<% ... %> description"><%</a> t <a href="#qr__inline" title="<% ... %> description">%></a></em><br/> | ||
274 | <a href="#qr__codemethod" title="<%codemethod ... %> description"></%method></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 | <%output> <kbd>...</kbd> </%output> | ||
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="<%code> description"><%code></a></code>. Roughly the same as <code><a href="#qr__code" title="<%code> description"></%code></a> <kbd>...</kbd> <a href="#qr__code" title="<%code> description"><%code></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="<%codemethod ... %> description"><%codemethod</a> void count() <a href="#qr__codemethod" title="<%codemethod ... > description">%></a><br/> | ||
293 | for(int t=0;t<10;t++) {<br/> | ||
294 | <em> <a href="#qr__output" title="<%output> descrption"><%output></a><br/> | ||
295 | Here is the way we count.<br/><br/> | ||
296 | Just saying out loud: <a href="#qr__inline" title="<% ... %> description"><%</a> t <a href="#qr__inline" title="<% ... %> description">%></a><br/><br/> | ||
297 | <a href="#qr__output" title="<%output> descrption"></%output></a><br/></em> | ||
298 | <a href="#qr__codemethod" title="</%codemethod ... %> description"></%codemethod></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,48 +1,48 @@ | |||
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( |
34 | sitecing::strip_prefix(__CGI->get_meta("PATH_INFO"),"/sources.chtml"), | 34 | sitecing::strip_prefix(__CGI->get_meta("PATH_INFO"),"/sources.chtml"), |
35 | sitecing::restrict_dotdot|sitecing::strip_leading_slash ); | 35 | sitecing::restrict_dotdot|sitecing::strip_leading_slash ); |
36 | if(rfile.empty()) | 36 | if(rfile.empty()) |
37 | rfile = "about:blank"; | 37 | rfile = "about:blank"; |
38 | else | 38 | else |
39 | rfile = "/view/"+rfile; | 39 | rfile = "/view/"+rfile; |
40 | </%code> | 40 | </%code> |
41 | <div class="insert"> | 41 | <div class="insert"> |
42 | <iframe id="insert" name="insert" src="<% rfile %>" width="95%" height="300"> | 42 | <iframe id="insert" name="insert" src="<% rfile %>" width="95%" height="300"> |
43 | <p>I wanted to put an <iframe> here, but your browser does not seem to | 43 | <p>I wanted to put an <iframe> here, but your browser does not seem to |
44 | support it. That is okay, it still will open links somehow.</p> | 44 | support it. That is okay, it still will open links somehow.</p> |
45 | </iframe> | 45 | </iframe> |
46 | </div> | 46 | </div> |
47 | 47 | ||
48 | </%method> | 48 | </%method> |
diff --git a/htdocs/style.css b/htdocs/style.css index 83e308f..96e4c59 100644 --- a/htdocs/style.css +++ b/htdocs/style.css | |||
@@ -1,205 +1,256 @@ | |||
1 | body { | 1 | body { |
2 | font-family: sans-serif; | 2 | font-family: sans-serif; |
3 | font-size: 11pt; | 3 | font-size: 11pt; |
4 | } | 4 | } |
5 | 5 | ||
6 | a { | 6 | a:link, a:visited { |
7 | text-decoration: none; | 7 | text-decoration: none; |
8 | } | 8 | } |
9 | a:hover { | 9 | a:link:hover, a:visited:hover { |
10 | text-decoration: underline; | 10 | text-decoration: underline; |
11 | } | 11 | } |
12 | p { | 12 | p { |
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 | } |
17 | p.note { | 17 | p.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 | } |
27 | code a, | ||
27 | code { | 28 | code { |
28 | color: #d04040; | 29 | color: #d04040; |
29 | } | 30 | } |
30 | em { | 31 | em { |
31 | white-space: nowrap; | 32 | white-space: nowrap; |
32 | } | 33 | } |
33 | 34 | ||
34 | div.google_ad { | 35 | div.google_ad { |
35 | text-align: center; | 36 | text-align: center; |
36 | margin: 1ex; | 37 | margin: 1ex; |
37 | } | 38 | } |
38 | div.google_ad.top { | 39 | div.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 | } |
42 | div.google_ad.bottom { | 43 | div.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 | ||
47 | div#sidepanel { | 48 | div#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%; |
51 | font-size: 80%; | 52 | font-size: 80%; |
52 | } | 53 | } |
53 | div#content { | 54 | div#content { |
54 | position: absolute; top: 0px; right: -0px; | 55 | position: absolute; top: 0px; right: -0px; |
55 | margin: 0px; | 56 | margin: 0px; |
56 | width: 80%; | 57 | width: 80%; |
57 | } | 58 | } |
58 | 59 | ||
59 | div#sidepanel h1 { | 60 | div#sidepanel h1 { |
60 | font-size: 80%; | 61 | font-size: 80%; |
61 | text-align: center; | 62 | text-align: center; |
62 | font-weight: normal; | 63 | font-weight: normal; |
63 | color: #004080; | 64 | color: #004080; |
64 | white-space: nowrap; | 65 | white-space: nowrap; |
65 | margin-top: 2ex; margin-bottom: 2ex; | 66 | margin-top: 2ex; margin-bottom: 2ex; |
66 | } | 67 | } |
67 | div#sidepanel h2 { | 68 | div#sidepanel h2 { |
68 | font-size: 80%; | 69 | font-size: 80%; |
69 | text-align: justify; | 70 | text-align: justify; |
70 | font-weight: normal; | 71 | font-weight: normal; |
71 | color: gray; | 72 | color: gray; |
72 | margin: 1ex 1ex; | 73 | margin: 1ex 1ex; |
73 | } | 74 | } |
74 | div#sidepanel ul { | 75 | div#sidepanel ul { |
75 | padding: 1ex 0.5ex 1ex 1ex; | 76 | padding: 1ex 0.5ex 1ex 1ex; |
76 | margin: 0.5ex; | 77 | margin: 0.5ex; |
77 | border-color: #c0c0c0 #404040 #404040 #c0c0c0; | 78 | border-color: #c0c0c0 #404040 #404040 #c0c0c0; |
78 | border-width: 1px 2px 2px 1px; | 79 | border-width: 1px 2px 2px 1px; |
79 | border-style: solid; | 80 | border-style: solid; |
80 | background: #d0d0d0; | 81 | background: #d0d0d0; |
81 | list-style-type: none; | 82 | list-style-type: none; |
82 | } | 83 | } |
83 | div#sidepanel ul ul { | 84 | div#sidepanel ul ul { |
84 | margin: 0px; padding: 0px; | 85 | margin: 0px; padding: 0px; |
85 | border: none 0px; | 86 | border: none 0px; |
86 | } | 87 | } |
87 | div#sidepanel li { | 88 | div#sidepanel li { |
88 | list-style-type: none; | 89 | list-style-type: none; |
89 | margin: 0px; padding: 0px; | 90 | margin: 0px; padding: 0px; |
90 | display: block; | 91 | display: block; |
91 | } | 92 | } |
92 | div#sidepanel ul a { | 93 | div#sidepanel ul a { |
93 | display: block; | 94 | display: block; |
94 | padding: 1px 1ex; | 95 | padding: 1px 1ex; |
95 | margin: 0.5ex; | 96 | margin: 0.5ex; |
96 | border: 1px solid gray; | 97 | border: 1px solid gray; |
97 | text-decoration: none; | 98 | text-decoration: none; |
98 | background: white; | 99 | background: white; |
99 | color: black; | 100 | color: black; |
100 | } | 101 | } |
101 | div#sidepanel ul a:hover { | 102 | div#sidepanel ul a:hover { |
102 | background: gray; | 103 | background: gray; |
103 | color: white; | 104 | color: white; |
104 | } | 105 | } |
105 | div#sidepanel ul ul a { | 106 | div#sidepanel ul ul a { |
106 | padding-left: 2.5ex; | 107 | padding-left: 2.5ex; |
107 | background: #e0e0e0; | 108 | background: #e0e0e0; |
108 | } | 109 | } |
109 | div#sidepanel div.copyright { | 110 | div#sidepanel div.copyright { |
110 | text-align: center; | 111 | text-align: center; |
111 | } | 112 | } |
112 | 113 | ||
113 | div#content h1 { | 114 | div#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 | } |
122 | div#content h2 { | ||
123 | font-size: 140%; | ||
124 | color: #8080a0; | ||
125 | font-weight: bold; | ||
126 | text-align: center; | ||
127 | margin: 1em; | ||
128 | clear: both; | ||
129 | } | ||
121 | div#content p a { | 130 | div#content p a { |
122 | font-weight: bold; | 131 | font-weight: bold; |
123 | } | 132 | } |
133 | div#content p a.internal { | ||
134 | font-weight: inherit !important; | ||
135 | } | ||
124 | 136 | ||
125 | div.insert { | 137 | div.insert { |
126 | text-align: center; | 138 | text-align: center; |
127 | } | 139 | } |
128 | iframe#insert { | 140 | iframe#insert { |
129 | border: 1px solid black; | 141 | border: 1px solid black; |
130 | } | 142 | } |
131 | 143 | ||
132 | div.source h1 { | 144 | div.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 | } |
141 | div.source ul { | 153 | div.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; |
148 | width:100%; | 160 | width:100%; |
149 | } | 161 | } |
150 | div.source li { | 162 | div.source li { |
151 | list-style-type: none; | 163 | list-style-type: none; |
152 | white-space: nowrap; | 164 | white-space: nowrap; |
153 | margin: 0px 0.5ex; | 165 | margin: 0px 0.5ex; |
154 | } | 166 | } |
155 | 167 | ||
156 | ul.sourcebrowser { | 168 | ul.sourcebrowser { |
157 | font-size: 70%; | 169 | font-size: 70%; |
158 | } | 170 | } |
159 | ul.sourcebrowser ul.dir { | 171 | ul.sourcebrowser ul.dir { |
160 | padding: 1px 0px 2px 1em; | 172 | padding: 1px 0px 2px 1em; |
161 | margin: 1px 0px 1px 0px; | 173 | margin: 1px 0px 1px 0px; |
162 | } | 174 | } |
163 | ul.sourcebrowser li.dir { | 175 | ul.sourcebrowser li.dir { |
164 | margin: 1px 0px 1px 0px; | 176 | margin: 1px 0px 1px 0px; |
165 | } | 177 | } |
166 | ul.sourcebrowser li.file { | 178 | ul.sourcebrowser li.file { |
167 | list-style-type: none; | 179 | list-style-type: none; |
168 | white-space: nowrap; | 180 | white-space: nowrap; |
169 | display: inline; | 181 | display: inline; |
170 | } | 182 | } |
171 | ul.sourcebrowser li.file a { | 183 | ul.sourcebrowser li.file a { |
172 | border: 1px solid gray; | 184 | border: 1px solid gray; |
173 | padding: 1px 0.5ex; | 185 | padding: 1px 0.5ex; |
174 | text-decoration: none; | 186 | text-decoration: none; |
175 | font-family: monospace; | 187 | font-family: monospace; |
176 | } | 188 | } |
177 | ul.sourcebrowser li.file a:hover { | 189 | ul.sourcebrowser li.file a:hover { |
178 | background: gray; | 190 | background: gray; |
179 | border: 1px solid black; | 191 | border: 1px solid black; |
180 | color: white; | 192 | color: white; |
181 | } | 193 | } |
182 | 194 | ||
183 | div.prevnext { | 195 | div.prevnext { |
184 | margin: 1ex; | 196 | margin: 1ex; |
185 | } | 197 | } |
186 | div.prevnext a { | 198 | div.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 | } |
193 | div.prevnext a.prevnext-prev { | 205 | div.prevnext a.prevnext-prev { |
194 | float: left; | 206 | float: left; |
195 | text-align: left; | 207 | text-align: left; |
196 | } | 208 | } |
197 | div.prevnext a.prevnext-next { | 209 | div.prevnext a.prevnext-next { |
198 | float: right; | 210 | float: right; |
199 | text-align: right; | 211 | text-align: right; |
200 | } | 212 | } |
201 | div.prevnext a:hover { | 213 | div.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 | |||
219 | ul.quickref.toc { | ||
220 | margin: 1em 20%; | ||
221 | font-size: 90%; | ||
222 | border: solid 1px gray; | ||
223 | } | ||
224 | |||
225 | dl.quickref { | ||
226 | margin: 1ex 1em; | ||
227 | } | ||
228 | dl.quickref dt { | ||
229 | margin: 0.4ex; | ||
230 | padding: 2px 0.5ex; | ||
231 | background: #e0e0e0; | ||
232 | display: compact; | ||
233 | } | ||
234 | dl.quickref dd { | ||
235 | margin: 0px 0.4ex 0.4ex 10%; | ||
236 | padding: 0px; | ||
237 | border: 1px solid grey; | ||
238 | } | ||
239 | dl.quickref code kbd { | ||
240 | font-style: italic; | ||
241 | color: #0000c0; | ||
242 | } | ||
243 | dl.quickref blockquote { | ||
244 | background: #ffffc0; | ||
245 | padding: 4px; | ||
246 | border: dotted 1px gray; | ||
247 | font-family: monospace; | ||
248 | } | ||
249 | dl.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 | } | ||