-rw-r--r-- | htdocs/ancestry/layout.chtml | 4 | ||||
-rw-r--r-- | htdocs/ancestry/sources.chtml | 4 | ||||
-rw-r--r-- | htdocs/examples/calendar.chtml | 1 | ||||
-rw-r--r-- | htdocs/index.chtml | 8 | ||||
-rw-r--r-- | htdocs/quickref/index.chtml | 3 | ||||
-rw-r--r-- | htdocs/quickref/metasyntax.chtml | 193 | ||||
-rw-r--r-- | htdocs/style.css | 8 |
7 files changed, 131 insertions, 90 deletions
diff --git a/htdocs/ancestry/layout.chtml b/htdocs/ancestry/layout.chtml index df34ad7..4551d04 100644 --- a/htdocs/ancestry/layout.chtml +++ b/htdocs/ancestry/layout.chtml | |||
@@ -1,69 +1,69 @@ | |||
1 | % html(); return; /* vim:set ft=sitecing: */ | 1 | % html(); return; /* vim:set ft=sitecing: */ |
2 | %%derive page = "/ancestry/page.chtml"; | 2 | %%derive page = "/ancestry/page.chtml"; |
3 | <%decl> | 3 | <%decl> |
4 | #define PN_PREV(h,d,t) urlPrev=h; descPrev=d; titlePrev=t; | 4 | #define PN_PREV(h,d,t) urlPrev=h; descPrev=d; titlePrev=t; |
5 | #define PN_NEXT(h,d,t) urlNext=h; descNext=d; titleNext=t; | 5 | #define PN_NEXT(h,d,t) urlNext=h; descNext=d; titleNext=t; |
6 | </%decl> | 6 | </%decl> |
7 | %%impl #include <sitecing/util.h> | 7 | %%impl #include <sitecing/util.h> |
8 | %%impl #include "acconfig.h" | 8 | %%impl #include "acconfig.h" |
9 | %%var bool b_svn = false; | 9 | %%var bool b_svn = false; |
10 | %%var std::string urlPrev; | 10 | %%var std::string urlPrev; |
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="/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> | 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/ancestry/sources.chtml b/htdocs/ancestry/sources.chtml index 35ced64..1d9fcc9 100644 --- a/htdocs/ancestry/sources.chtml +++ b/htdocs/ancestry/sources.chtml | |||
@@ -1,78 +1,82 @@ | |||
1 | <%decl> | 1 | <%decl> |
2 | typedef struct { | 2 | typedef struct { |
3 | const char *dir; | 3 | const char *dir; |
4 | const char *name; | 4 | const char *name; |
5 | const char *desc; | 5 | const char *desc; |
6 | } sourcefile_t; | 6 | } sourcefile_t; |
7 | extern sourcefile_t source_files[]; | 7 | extern sourcefile_t source_files[]; |
8 | extern int source_files_count; | 8 | extern int source_files_count; |
9 | </%decl> | 9 | </%decl> |
10 | <%impl> | 10 | <%impl> |
11 | sourcefile_t source_files[] = { | 11 | sourcefile_t source_files[] = { |
12 | { "", 0, "the root" }, | 12 | { "", 0, "the root" }, |
13 | { "", "configure.ac", "main configuration file" }, | 13 | { "", "configure.ac", "main configuration file" }, |
14 | { "", "acinclude.m4", "autoconf macros" }, | 14 | { "", "acinclude.m4", "autoconf macros" }, |
15 | { "", "autogen.sh", "shell script for building out of source repository" }, | 15 | { "", "autogen.sh", "shell script for building out of source repository" }, |
16 | { "", "Makefile.am", "automake makefile template" }, | 16 | { "", "Makefile.am", "automake makefile template" }, |
17 | { "", "NEWS.xml", "news since the last release (if any)" }, | 17 | { "", "NEWS.xml", "news since the last release (if any)" }, |
18 | { "", "NEWS.xsl", "the styleshhet to make a plaintext version of NEWS.xml" }, | 18 | { "", "NEWS.xsl", "the styleshhet to make a plaintext version of NEWS.xml" }, |
19 | { "", "COPYING", "copyright notice" }, | 19 | { "", "COPYING", "copyright notice" }, |
20 | { "", "AUTHORS", "Klever dissected" }, | 20 | { "", "AUTHORS", "Klever dissected" }, |
21 | { 0, 0, 0 }, | 21 | { 0, 0, 0 }, |
22 | { "bin", 0, "various scripts" }, | 22 | { "bin", 0, "various scripts" }, |
23 | { "bin", "build.in", "the template of the script used to precompile the code" }, | 23 | { "bin", "build.in", "the template of the script used to precompile the code" }, |
24 | { "bin", "run.in", "the template of the script used to start fastcgi server" }, | 24 | { "bin", "run.in", "the template of the script used to start fastcgi server" }, |
25 | { 0, 0, 0 }, | 25 | { 0, 0, 0 }, |
26 | { "conf", 0, "configuration files" }, | 26 | { "conf", 0, "configuration files" }, |
27 | { "conf", "dudki.conf.in", "the template for the dudki daemon configuration file" }, | 27 | { "conf", "dudki.conf.in", "the template for the dudki daemon configuration file" }, |
28 | { "conf", "httpd.conf.in", "the template for the apache configuration" }, | 28 | { "conf", "httpd.conf.in", "the template for the apache configuration" }, |
29 | { "conf", "sitecing.conf.in", "the template for the site-C-ing configuration" }, | 29 | { "conf", "sitecing.conf.in", "the template for the site-C-ing configuration" }, |
30 | { 0, 0, 0 }, | 30 | { 0, 0, 0 }, |
31 | { "htdocs", 0, "the source files" }, | 31 | { "htdocs", 0, "the source files" }, |
32 | { "htdocs", ".htaccess", "apache access-control file" }, | 32 | { "htdocs", ".htaccess", "apache access-control file" }, |
33 | { "htdocs", "index.chtml", "the introduction" }, | 33 | { "htdocs", "index.chtml", "the introduction" }, |
34 | { "htdocs", "sources.chtml", "the source browser" }, | 34 | { "htdocs", "sources.chtml", "the source browser" }, |
35 | { "htdocs", "style.css", "the CSS style sheet" }, | 35 | { "htdocs", "style.css", "the CSS style sheet" }, |
36 | { "htdocs", "view.chtml", "the source viewer" }, | 36 | { "htdocs", "view.chtml", "the source viewer" }, |
37 | { "htdocs/examples", 0, "examples" }, | 37 | { "htdocs/examples", 0, "examples" }, |
38 | { "htdocs/examples", "calendar.chtml", "really simple page" }, | 38 | { "htdocs/examples", "calendar.chtml", "really simple page" }, |
39 | { 0,0,0 }, | 39 | { 0,0,0 }, |
40 | { "htdocs/exceptions", 0, "exceptions handling overview" }, | 40 | { "htdocs/exceptions", 0, "exceptions handling overview" }, |
41 | { "htdocs/exceptions", "index.chtml", "the overview" }, | 41 | { "htdocs/exceptions", "index.chtml", "the overview" }, |
42 | { "htdocs/exceptions", "preprocess.chtml", "preprocessor exceptions" }, | 42 | { "htdocs/exceptions", "preprocess.chtml", "preprocessor exceptions" }, |
43 | { "htdocs/exceptions", "compile.chtml", "compile-time exceptions" }, | 43 | { "htdocs/exceptions", "compile.chtml", "compile-time exceptions" }, |
44 | { "htdocs/exceptions", "runtime.chtml", "runtime exceptions" }, | 44 | { "htdocs/exceptions", "runtime.chtml", "runtime exceptions" }, |
45 | { "htdocs/exceptions/development", 0, "development-mode exceptions samples" }, | 45 | { "htdocs/exceptions/development", 0, "development-mode exceptions samples" }, |
46 | { "htdocs/exceptions/development", ".htaccess", "apache access control file" }, | 46 | { "htdocs/exceptions/development", ".htaccess", "apache access control file" }, |
47 | { "htdocs/exceptions/development", ".scrc", "site-C-ing local configuration" }, | 47 | { "htdocs/exceptions/development", ".scrc", "site-C-ing local configuration" }, |
48 | { "htdocs/exceptions/development", "preprocess.chtml", "the file that can not be preprocessed" }, | 48 | { "htdocs/exceptions/development", "preprocess.chtml", "the file that can not be preprocessed" }, |
49 | { "htdocs/exceptions/development", "runtime.chtml", "exception thrown at runtime" }, | 49 | { "htdocs/exceptions/development", "runtime.chtml", "exception thrown at runtime" }, |
50 | { "htdocs/exceptions/development", "compile.chtml", "the file that can not be compiled" }, | 50 | { "htdocs/exceptions/development", "compile.chtml", "the file that can not be compiled" }, |
51 | { "htdocs/exceptions/development", "erroneous.h", "the file to include for more errors" }, | 51 | { "htdocs/exceptions/development", "erroneous.h", "the file to include for more errors" }, |
52 | { "htdocs/exceptions/development", "compile.html", "compile-time exception handler output" }, | 52 | { "htdocs/exceptions/development", "compile.html", "compile-time exception handler output" }, |
53 | { 0,0,0 }, | 53 | { 0,0,0 }, |
54 | { "htdocs/exceptions/production", 0, "production-mode exceptions samples" }, | 54 | { "htdocs/exceptions/production", 0, "production-mode exceptions samples" }, |
55 | { "htdocs/exceptions/production", ".htaccess", "apache access control file" }, | 55 | { "htdocs/exceptions/production", ".htaccess", "apache access control file" }, |
56 | { "htdocs/exceptions/production", ".scrc", "site-C-ing local configuration" }, | 56 | { "htdocs/exceptions/production", ".scrc", "site-C-ing local configuration" }, |
57 | { "htdocs/exceptions/production", "preprocess.chtml", "the file that can not be preprocessed" }, | 57 | { "htdocs/exceptions/production", "preprocess.chtml", "the file that can not be preprocessed" }, |
58 | { "htdocs/exceptions/production", "runtime.chtml", "exception thrown at runtime" }, | 58 | { "htdocs/exceptions/production", "runtime.chtml", "exception thrown at runtime" }, |
59 | { "htdocs/exceptions/production", "compile.chtml", "the file that can not be compiled" }, | 59 | { "htdocs/exceptions/production", "compile.chtml", "the file that can not be compiled" }, |
60 | { "htdocs/exceptions/production", "erroneous.h", "the file to include for more errors" }, | 60 | { "htdocs/exceptions/production", "erroneous.h", "the file to include for more errors" }, |
61 | { "htdocs/exceptions/production", "compile.html", "compile-time exception handler output" }, | 61 | { "htdocs/exceptions/production", "compile.html", "compile-time exception handler output" }, |
62 | { 0,0,0 }, | 62 | { 0,0,0 }, |
63 | { "htdocs/quickref", 0, "reference documentation" }, | ||
64 | { "htdocs/quickref", "index.chtml", "the overview" }, | ||
65 | { "htdocs/quickref", "metasyntax.chtml", "component meta syntax quick reference" }, | ||
66 | { 0,0,0 }, | ||
63 | { 0,0,0 }, | 67 | { 0,0,0 }, |
64 | { "htdocs/handlers", 0, "exception handlers" }, | 68 | { "htdocs/handlers", 0, "exception handlers" }, |
65 | { "htdocs/handlers", ".htaccess", "apache access-control file" }, | 69 | { "htdocs/handlers", ".htaccess", "apache access-control file" }, |
66 | { "htdocs/handlers", "exception_dev", "development mode exception handler" }, | 70 | { "htdocs/handlers", "exception_dev", "development mode exception handler" }, |
67 | { "htdocs/handlers", "exception_prod", "production mode exception handler" }, | 71 | { "htdocs/handlers", "exception_prod", "production mode exception handler" }, |
68 | { 0,0,0 }, | 72 | { 0,0,0 }, |
69 | { "htdocs/ancestry", 0, "base components to build the rest upon" }, | 73 | { "htdocs/ancestry", 0, "base components to build the rest upon" }, |
70 | { "htdocs/ancestry", ".htaccess", "apache access control file" }, | 74 | { "htdocs/ancestry", ".htaccess", "apache access control file" }, |
71 | { "htdocs/ancestry", "page.chtml", "the xhtml skeleton" }, | 75 | { "htdocs/ancestry", "page.chtml", "the xhtml skeleton" }, |
72 | { "htdocs/ancestry", "layout.chtml", "the layout for the most pages" }, | 76 | { "htdocs/ancestry", "layout.chtml", "the layout for the most pages" }, |
73 | { "htdocs/ancestry", "sources.chtml", "the list of files for source browser" }, | 77 | { "htdocs/ancestry", "sources.chtml", "the list of files for source browser" }, |
74 | { 0,0,0 }, | 78 | { 0,0,0 }, |
75 | { 0,0,0 } | 79 | { 0,0,0 } |
76 | }; | 80 | }; |
77 | int source_files_count = sizeof(source_files)/sizeof(*source_files); | 81 | int source_files_count = sizeof(source_files)/sizeof(*source_files); |
78 | </%impl> | 82 | </%impl> |
diff --git a/htdocs/examples/calendar.chtml b/htdocs/examples/calendar.chtml index eea20cb..85aa7ba 100644 --- a/htdocs/examples/calendar.chtml +++ b/htdocs/examples/calendar.chtml | |||
@@ -1,101 +1,102 @@ | |||
1 | <%impl> | 1 | <%impl> |
2 | /* vim:set ft=sitecing: */ | 2 | /* vim:set ft=sitecing: */ |
3 | #include <time.h> | 3 | #include <time.h> |
4 | #include <konforka/exception.h> | 4 | #include <konforka/exception.h> |
5 | </%impl> | 5 | </%impl> |
6 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> | 6 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> |
7 | % __SCIF->flush(); | ||
7 | <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> | 8 | <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> |
8 | <head> | 9 | <head> |
9 | <title>really simple page</title> | 10 | <title>really simple page</title> |
10 | <style type="text/css"> | 11 | <style type="text/css"> |
11 | table.calendar { | 12 | table.calendar { |
12 | font-family: monospace; | 13 | font-family: monospace; |
13 | } | 14 | } |
14 | table.calendar th.heading { | 15 | table.calendar th.heading { |
15 | border: double blue 3px; | 16 | border: double blue 3px; |
16 | } | 17 | } |
17 | table.calendar td { | 18 | table.calendar td { |
18 | text-align: right; | 19 | text-align: right; |
19 | margin: 0.5ex; padding: 2px; | 20 | margin: 0.5ex; padding: 2px; |
20 | border: solid 1px black; | 21 | border: solid 1px black; |
21 | } | 22 | } |
22 | table.calendar .wd-0, table.calendar .wd-6 { | 23 | table.calendar .wd-0, table.calendar .wd-6 { |
23 | color: red; | 24 | color: red; |
24 | } | 25 | } |
25 | table.calendar td.unexistant { | 26 | table.calendar td.unexistant { |
26 | border: none; | 27 | border: none; |
27 | } | 28 | } |
28 | table.calendar td.today { | 29 | table.calendar td.today { |
29 | background: #ffffc0; | 30 | background: #ffffc0; |
30 | color: blue; | 31 | color: blue; |
31 | font-weight: bold; | 32 | font-weight: bold; |
32 | } | 33 | } |
33 | </style> | 34 | </style> |
34 | </head> | 35 | </head> |
35 | <body> | 36 | <body> |
36 | % /* Just call the calendar member function */ | 37 | % /* Just call the calendar member function */ |
37 | % calendar(); | 38 | % calendar(); |
38 | </body> | 39 | </body> |
39 | </html> | 40 | </html> |
40 | <%method void calendar() %> | 41 | <%method void calendar() %> |
41 | <%code> | 42 | <%code> |
42 | time_t tt = time(0); | 43 | time_t tt = time(0); |
43 | struct tm t; | 44 | struct tm t; |
44 | if(!localtime_r(&tt,&t)) | 45 | if(!localtime_r(&tt,&t)) |
45 | throw konforka::exception(CODEPOINT,"couldn't fetch current date"); | 46 | throw konforka::exception(CODEPOINT,"couldn't fetch current date"); |
46 | char h[16]; | 47 | char h[16]; |
47 | if(strftime(h,sizeof(h),"%B, %Y",&t)>=sizeof(h)) | 48 | if(strftime(h,sizeof(h),"%B, %Y",&t)>=sizeof(h)) |
48 | throw konforka::exception(CODEPOINT,"couldn't produce heading for the calendar"); | 49 | throw konforka::exception(CODEPOINT,"couldn't produce heading for the calendar"); |
49 | int today = t.tm_mday; | 50 | int today = t.tm_mday; |
50 | t.tm_mday = 1; | 51 | t.tm_mday = 1; |
51 | tt=mktime(&t); | 52 | tt=mktime(&t); |
52 | if(!localtime_r(&tt,&t)) | 53 | if(!localtime_r(&tt,&t)) |
53 | throw konforka::exception(CODEPOINT,"couldn't fetch current date"); | 54 | throw konforka::exception(CODEPOINT,"couldn't fetch current date"); |
54 | int dim = 31; | 55 | int dim = 31; |
55 | if(t.tm_mon==3 || t.tm_mon==5 || t.tm_mon==8 || t.tm_mon==10) { | 56 | if(t.tm_mon==3 || t.tm_mon==5 || t.tm_mon==8 || t.tm_mon==10) { |
56 | dim = 30; | 57 | dim = 30; |
57 | }else if(t.tm_mon==1) { | 58 | }else if(t.tm_mon==1) { |
58 | dim = (t.tm_year%4)?28:29; | 59 | dim = (t.tm_year%4)?28:29; |
59 | } | 60 | } |
60 | </%code> | 61 | </%code> |
61 | <table class="calendar"> | 62 | <table class="calendar"> |
62 | <tr> | 63 | <tr> |
63 | <th class="heading" colspan="7"><% h %></th> | 64 | <th class="heading" colspan="7"><% h %></th> |
64 | </tr> | 65 | </tr> |
65 | <tr> | 66 | <tr> |
66 | <th class="wd-0">Sun</th> | 67 | <th class="wd-0">Sun</th> |
67 | <th class="wd-1">Mon</th> | 68 | <th class="wd-1">Mon</th> |
68 | <th class="wd-2">Tue</th> | 69 | <th class="wd-2">Tue</th> |
69 | <th class="wd-3">Wed</th> | 70 | <th class="wd-3">Wed</th> |
70 | <th class="wd-4">Thu</th> | 71 | <th class="wd-4">Thu</th> |
71 | <th class="wd-5">Fri</th> | 72 | <th class="wd-5">Fri</th> |
72 | <th class="wd-6">Sat</th> | 73 | <th class="wd-6">Sat</th> |
73 | </tr> | 74 | </tr> |
74 | <%code> | 75 | <%code> |
75 | int dow=0; int dom=1-t.tm_wday; | 76 | int dow=0; int dom=1-t.tm_wday; |
76 | for(;;dom++,dow=(dow+1)%7) { | 77 | for(;;dom++,dow=(dow+1)%7) { |
77 | if(!dow) { | 78 | if(!dow) { |
78 | <%output> | 79 | <%output> |
79 | <tr> | 80 | <tr> |
80 | </%output> | 81 | </%output> |
81 | } | 82 | } |
82 | bool be = (dom>=1 && dom<=dim); | 83 | bool be = (dom>=1 && dom<=dim); |
83 | std::string ec = be?" existant":" unexistant"; | 84 | std::string ec = be?" existant":" unexistant"; |
84 | if(dom==today) | 85 | if(dom==today) |
85 | ec+=" today"; | 86 | ec+=" today"; |
86 | <%output><td class="wd-<% dow %><% ec %>"></%output> | 87 | <%output><td class="wd-<% dow %><% ec %>"></%output> |
87 | if(be) { | 88 | if(be) { |
88 | <%output><% dom %></%output> | 89 | <%output><% dom %></%output> |
89 | } | 90 | } |
90 | <%output></td></%output> | 91 | <%output></td></%output> |
91 | if(dow==6) { | 92 | if(dow==6) { |
92 | <%output> | 93 | <%output> |
93 | </tr> | 94 | </tr> |
94 | </%output> | 95 | </%output> |
95 | if(dom>=dim) | 96 | if(dom>=dim) |
96 | break; | 97 | break; |
97 | } | 98 | } |
98 | } | 99 | } |
99 | </%code> | 100 | </%code> |
100 | </table> | 101 | </table> |
101 | </%method> | 102 | </%method> |
diff --git a/htdocs/index.chtml b/htdocs/index.chtml index e8cedda..20d34c2 100644 --- a/htdocs/index.chtml +++ b/htdocs/index.chtml | |||
@@ -1,49 +1,51 @@ | |||
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 | PN_NEXT("/simple","simple page","building a really simple page"); | 4 | PN_NEXT("/simple","simple page","building a really simple page"); |
5 | </%constructor> | 5 | </%constructor> |
6 | <%codemethod string title() %> | 6 | <%codemethod string title() %> |
7 | return "introduction"; | 7 | return "introduction"; |
8 | </%codemethod> | 8 | </%codemethod> |
9 | <%method void content() %> | 9 | <%method void content() %> |
10 | <h1>introduction to site-C-ing</h1> | 10 | <h1>introduction to site-C-ing</h1> |
11 | <p> | 11 | <p> |
12 | This is a sample site, which is supposed to demonstrate <em>site-C-ing</em> | 12 | This is a sample site, which is supposed to demonstrate <em>site-C-ing</em> |
13 | features. Since the <em>site-C-ing</em> is still at the early stages of | 13 | features. Since the <em>site-C-ing</em> is still at the early stages of |
14 | development or rather proof of concept, this site is also far from being | 14 | development or rather proof of concept, this site is also far from being |
15 | complete. I am planning to add more pages as the time permits, though. | 15 | complete. I am planning to add more pages as the time permits, though. |
16 | </p> | 16 | </p> |
17 | <p> | 17 | <p> |
18 | Once you download and install <a | 18 | Once you download and install <a |
19 | href="http://kin.klever.net/sitecing/">site-C-ing</a> you may wish to try | 19 | href="http://kin.klever.net/sitecing/">site-C-ing</a> you may wish to try |
20 | this sample site for yourself. The source is available from <a | 20 | this sample site for yourself. The source is available from <a |
21 | href="http://kin.klever.net/sitecing/sources">the site-C-ing download | 21 | href="http://kin.klever.net/sitecing/sources">the site-C-ing download |
22 | page</a>. After you download the source code, you should configure it using | 22 | page</a>. After you download the source code, you should configure it using |
23 | the ever so popular <code>configure</code> script. It is likely that you will | 23 | the ever so popular <code>configure</code> script. It is likely that you will |
24 | want to pass the <code>--with-vhostname</code> option to configure to name | 24 | want to pass the <code>--with-vhostname</code> option to configure to name |
25 | the apache virtual host. | 25 | the apache virtual host. |
26 | </p> | 26 | </p> |
27 | <p> | 27 | <p> |
28 | The configure script will generate the apache vhost configuration for you, | 28 | The configure script will generate the apache vhost configuration for you, |
29 | which you can <code>Include</code> in the main apache configuration file. | 29 | which you can <code>Include</code> in the main apache configuration file. |
30 | </p> | 30 | </p> |
31 | <p class="note"> | 31 | <p class="note"> |
32 | Note, that the configuration is tailored for apache 2.x. It is no problem to | 32 | Note, that the configuration is tailored for apache 2.x. It is no problem to |
33 | get it working with apache 1.3.x, although I haven't tried and so I am not | 33 | get it working with apache 1.3.x, although I haven't tried and so I am not |
34 | sure if it will run out of the box (your patches are <a | 34 | sure if it will run out of the box (your patches are <a |
35 | href="mailto:sitecing-patches@klever.net">welcome</a>). Also note that you | 35 | href="mailto:sitecing-patches@klever.net">welcome</a>). Also note that you |
36 | will need <a href="http://fastcgi.com/">mod_fastcgi</a> apache module, which | 36 | may need <a href="http://fastcgi.com/">mod_fastcgi</a> apache module, |
37 | is the only CGI-interface supported by the <em>site-C-ing</em> engine at the | 37 | although now that fastcgi is not the only supported interface you may get the |
38 | moment. | 38 | thing running with 'plain' CGI with a bit of tweaking. Again, if you got it |
39 | working without breaking the fastcgi part your patches are <a | ||
40 | href="mailto:sitecing-patches@klever.net">welcome</a>. | ||
39 | </p> | 41 | </p> |
40 | <p> | 42 | <p> |
41 | Once you get it all done you will want to restart your apache and start the | 43 | Once you get it all done you will want to restart your apache and start the |
42 | <em>site-C-ing</em> fastcgi server by issuing the <code>make restart</code> | 44 | <em>site-C-ing</em> fastcgi server by issuing the <code>make restart</code> |
43 | command. | 45 | command. |
44 | </p> | 46 | </p> |
45 | <p> | 47 | <p> |
46 | Before you download it, you may wish to <a href="/sources" title="source | 48 | Before you download it, you may wish to <a href="/sources" title="source |
47 | browser">examine the sources</a> to learn more about how it is done. | 49 | browser">examine the sources</a> to learn more about how it is done. |
48 | </p> | 50 | </p> |
49 | </%method> | 51 | </%method> |
diff --git a/htdocs/quickref/index.chtml b/htdocs/quickref/index.chtml index 20ef217..d139190 100644 --- a/htdocs/quickref/index.chtml +++ b/htdocs/quickref/index.chtml | |||
@@ -1,16 +1,17 @@ | |||
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 | PN_PREV("/exceptions/runtime","runtime","runtime exceptions"); | 4 | PN_PREV("/exceptions/runtime","runtime","runtime exceptions"); |
5 | PN_NEXT("/quickref/metasyntax","syntax","meta syntax"); | 5 | PN_NEXT("/quickref/metasyntax","syntax","meta syntax"); |
6 | </%constructor> | 6 | </%constructor> |
7 | <%codemethod string title() %> | 7 | <%codemethod string title() %> |
8 | return "quick reference"; | 8 | return "quick reference"; |
9 | </%codemethod> | 9 | </%codemethod> |
10 | <%method void content() %> | 10 | <%method void content() %> |
11 | <h1>site-C-ing quick reference</h1> | 11 | <h1>site-C-ing quick reference</h1> |
12 | <p> | 12 | <p> |
13 | I am hoping to put together some quick reference documentation here. For now, | 13 | I am hoping to put together some quick reference documentation here. For now, |
14 | I am adding the component meta-syntax quick reference. | 14 | I am adding the <a href="/quickref/metasyntax">component meta-syntax quick |
15 | reference</a>. | ||
15 | </p> | 16 | </p> |
16 | </%method> | 17 | </%method> |
diff --git a/htdocs/quickref/metasyntax.chtml b/htdocs/quickref/metasyntax.chtml index a63f596..4efc37c 100644 --- a/htdocs/quickref/metasyntax.chtml +++ b/htdocs/quickref/metasyntax.chtml | |||
@@ -1,344 +1,371 @@ | |||
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 | PN_PREV("/quickref/","quick reference","quick reference"); | 4 | PN_PREV("/quickref/","quick reference","quick reference"); |
5 | PN_NEXT("/sources","sources","source browser"); | 5 | PN_NEXT("/sources","sources","source browser"); |
6 | </%constructor> | 6 | </%constructor> |
7 | <%codemethod string title() %> | 7 | <%codemethod string title() %> |
8 | return "meta syntax quick reference"; | 8 | return "meta syntax quick reference"; |
9 | </%codemethod> | 9 | </%codemethod> |
10 | <%method void content() %> | 10 | <%method void content() %> |
11 | <h1>site-C-ing meta syntax quick reference</h1> | 11 | <h1>site-C-ing meta syntax quick reference</h1> |
12 | 12 | ||
13 | <h2>Table of Contents</h2> | 13 | <h2>Table of Contents</h2> |
14 | 14 | ||
15 | <ul class="quickref toc"> | 15 | <ul class="quickref toc"> |
16 | <li><a href="#qr__line">% ...</a></li> | 16 | <li><a href="#qr__line">% ...</a></li> |
17 | <li><a href="#qr__inline"><% ... %></a></li> | 17 | <li><a href="#qr__inline"><% ... %></a></li> |
18 | <li><a href="#qr__code"><%code></a></li> | 18 | <li><a href="#qr__code"><%code></a></li> |
19 | <li><a href="#qr__codemethod"><%codemethod ... ></a></li> | 19 | <li><a href="#qr__codemethod"><%codemethod ... ></a></li> |
20 | <li><a href="#qr__constructor"><%constructor></a></li> | 20 | <li><a href="#qr__constructor"><%constructor></a></li> |
21 | <li><a href="#qr__decl"><%decl></a></li> | 21 | <li><a href="#qr__decl"><%decl></a></li> |
22 | <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> | 23 | <li><a href="#qr___derive">%%derive</a></li> |
24 | <li><a href="#qr__destructor"><%destructor></a></li> | 24 | <li><a href="#qr__destructor"><%destructor></a></li> |
25 | <li><a href="#qr__impl"><%impl></a></li> | 25 | <li><a href="#qr__impl"><%impl></a></li> |
26 | <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> | 27 | <li><a href="#qr__method"><%method ... ></a></li> |
28 | <li><a href="#qr__output"><%output></a></li> | 28 | <li><a href="#qr__output"><%output></a></li> |
29 | <li><a href="#qr___pragma">%%pragma</a></li> | 29 | <li><a href="#qr___pragma">%%pragma</a></li> |
30 | <li><a href="#qr___var">%%var</a></li> | 30 | <li><a href="#qr___var">%%var</a></li> |
31 | </ul> | 31 | </ul> |
32 | 32 | ||
33 | <dl class="metasyntax quickref"> | 33 | <dl class="metasyntax quickref"> |
34 | 34 | ||
35 | % /* % */ | 35 | % /* % */ |
36 | <dt> | 36 | <dt> |
37 | <a id="qr__line" name="qr__line" title="line of code"> | 37 | <a id="qr__line" name="qr__line" title="line of code"> |
38 | <code>% <kbd>line of code</kbd></code> | 38 | <code>% <kbd>line of code</kbd></code> |
39 | </a> | 39 | </a> |
40 | </dt> | 40 | </dt> |
41 | <dd> | 41 | <dd> |
42 | <p> | 42 | <p> |
43 | Break out into the code mode for just one line. | 43 | Break out into the code mode for just one line. |
44 | </p> | 44 | </p> |
45 | <blockquote class="qr_sample"> | 45 | <blockquote class="qr_sample"> |
46 | <body><br/> | 46 | <div> |
47 | <em><a href="#qr__line" title="% description">%</a> for(int t=0;t<10;t++) {<br/></em> | 47 | <body><br/> |
48 | Here is the way we count.<br/><br/> | 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/> | 49 | <em><a href="#qr__line" title="% description">%</a> for(int t=0;t<10;t++) {<br/></em> |
50 | <em><a href="#qr__line" title="% description">%</a> }<br/></em> | 50 | Just saying out loud: <a href="#qr__inline" title="<% ... %> description"><%</a> t <a href="#qr__inline" title="<% ... %> description">%></a><br/><br/> |
51 | </body> | 51 | <em><a href="#qr__line" title="% description">%</a> }<br/></em> |
52 | </body> | ||
53 | </div> | ||
52 | </blockquote> | 54 | </blockquote> |
53 | </dd> | 55 | </dd> |
54 | 56 | ||
55 | % /* <% %> */ | 57 | % /* <% %> */ |
56 | <dt> | 58 | <dt> |
57 | <a id="qr__inline" name="qr__inline" title="output expression"> | 59 | <a id="qr__inline" name="qr__inline" title="output expression"> |
58 | <code><% <kbd>expression</kbd> %></code> | 60 | <code><% <kbd>expression</kbd> %></code> |
59 | </a> | 61 | </a> |
60 | </dt> | 62 | </dt> |
61 | <dd> | 63 | <dd> |
62 | <p> | 64 | <p> |
63 | << <kbd>expression</kbd> into output stream (think c++). | 65 | << <kbd>expression</kbd> into output stream (think c++). |
64 | </p> | 66 | </p> |
65 | <blockquote class="qr_sample"> | 67 | <blockquote class="qr_sample"> |
66 | <a href="#qr__line" title="% description">%</a> for(int t=0;t<10;t++) {<br/> | 68 | <div> |
67 | Here is the way we count.<br/><br/> | 69 | 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> | 70 | <a href="#qr__line" title="% description">%</a> for(int t=0;t<10;t++) {<br/> |
69 | <a href="#qr__line" title="% description">%</a> } | 71 | <em> Just saying out loud: <a href="#qr__inline" title="<% ... %> description"><%</a> t <a href="#qr__inline" title="<% ... %> description">%></a><br/><br/></em> |
72 | <a href="#qr__line" title="% description">%</a> } | ||
73 | </div> | ||
70 | </blockquote> | 74 | </blockquote> |
71 | </dd> | 75 | </dd> |
72 | 76 | ||
73 | % /* %code */ | 77 | % /* %code */ |
74 | <dt> | 78 | <dt> |
75 | <a id="qr__code" name="qr__code" title="switching to code mode"> | 79 | <a id="qr__code" name="qr__code" title="switching to code mode"> |
76 | <code> | 80 | <code> |
77 | <%code> <kbd>...</kbd> </%code> | 81 | <%code> <kbd>...</kbd> </%code> |
78 | </code> | 82 | </code> |
79 | </a> | 83 | </a> |
80 | </dt> | 84 | </dt> |
81 | <dd> | 85 | <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. | 86 | <p> |
87 | 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> | 88 | </p> |
84 | <blockquote class="qr_sample"> | 89 | <blockquote class="qr_sample"> |
85 | <body><br/> | 90 | <div> |
86 | <em> <a href="#qr__code" title="<%code> descrption"><%code></a><br/></em> | 91 | <body><br/> |
87 | for(int t=0;t<10;t++) {<br/> | 92 | <em> <a href="#qr__code" title="<%code> descrption"><%code></a><br/></em> |
88 | <a href="#qr__output" title="<%output> descrption"><%output></a><br/> | 93 | for(int t=0;t<10;t++) {<br/> |
89 | Here is the way we count.<br/><br/> | 94 | <a href="#qr__output" title="<%output> descrption"><%output></a><br/> |
90 | Just saying out loud: <a href="#qr__inline" title="<% ... %> description"><%</a> t <a href="#qr__inline" title="<% ... %> description">%></a><br/><br/> | 95 | Here is the way we count.<br/><br/> |
91 | <a href="#qr__output" title="<%output> descrption"></%output></a><br/> | 96 | Just saying out loud: <a href="#qr__inline" title="<% ... %> description"><%</a> t <a href="#qr__inline" title="<% ... %> description">%></a><br/><br/> |
92 | <em> <a href="#qr__code" title="<%code> descrption"></%code></a><br/></em> | 97 | <a href="#qr__output" title="<%output> descrption"></%output></a><br/> |
93 | </body> | 98 | <em> <a href="#qr__code" title="<%code> descrption"></%code></a><br/></em> |
99 | </body> | ||
100 | </div> | ||
94 | </blockquote> | 101 | </blockquote> |
95 | </dd> | 102 | </dd> |
96 | 103 | ||
97 | % /* %codemethod */ | 104 | % /* %codemethod */ |
98 | <dt> | 105 | <dt> |
99 | <a id="qr__codemethod" name="qr__codemethod" title="member function definition"> | 106 | <a id="qr__codemethod" name="qr__codemethod" title="member function definition"> |
100 | <code> | 107 | <code> |
101 | <%codemethod <kbd>return_type_t</kbd> <kbd>member_name</kbd>(<kbd>args,...</kbd>) %><br/> | 108 | <%codemethod <kbd>return_type_t</kbd> <kbd>member_name</kbd>(<kbd>args,...</kbd>) %><br/> |
102 | <kbd>code</kbd><br/> | 109 | <kbd>code</kbd><br/> |
103 | </%codemethod> | 110 | </%codemethod> |
104 | </code> | 111 | </code> |
105 | </a> | 112 | </a> |
106 | </dt> | 113 | </dt> |
107 | <dd> | 114 | <dd> |
108 | <p> | 115 | <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>. | 116 | 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> | 117 | </p> |
111 | <blockquote class="qr_sample"> | 118 | <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/> | 119 | <div> |
113 | return __CGI->get_meta("USER_AGENT");<br/> | 120 | <em><a href="#qr__codemethod" title="<%codemethod ... %> description"><%codemethod</a> std::string ua() <a href="#qr__codemethod" title="<%codemethod ... %> description">%></a><br/> |
114 | <a href="#qr__codemethod" title="<%codemethod ... %> description"></%codemethod></a><br/></em> | 121 | return __CGI->get_meta("USER_AGENT");<br/> |
115 | The user agent is: <a href="#qr__inline" title="<% ... %> description"><%</a> ua() <a href="#qr__inline" title="<% ... %> description">%></a><br/> | 122 | <a href="#qr__codemethod" title="<%codemethod ... %> description"></%codemethod></a><br/></em> |
123 | The user agent is: <a href="#qr__inline" title="<% ... %> description"><%</a> ua() <a href="#qr__inline" title="<% ... %> description">%></a><br/> | ||
124 | </div> | ||
116 | </blockquote> | 125 | </blockquote> |
117 | </dd> | 126 | </dd> |
118 | 127 | ||
119 | % /* %constructor */ | 128 | % /* %constructor */ |
120 | <dt> | 129 | <dt> |
121 | <a id="qr__constructor" name="qr__constructor" title="constructor code"> | 130 | <a id="qr__constructor" name="qr__constructor" title="constructor code"> |
122 | <code> | 131 | <code> |
123 | <%constructor><br/> | 132 | <%constructor><br/> |
124 | <kbd>code</kbd><br/> | 133 | <kbd>code</kbd><br/> |
125 | </%constructor> | 134 | </%constructor> |
126 | </code> | 135 | </code> |
127 | </a> | 136 | </a> |
128 | </dt> | 137 | </dt> |
129 | <dd> | 138 | <dd> |
130 | <p> | 139 | <p> |
131 | Provide the code for constructor. | 140 | Provide the code for constructor. |
132 | </p> | 141 | </p> |
133 | <blockquote class="qr_sample"> | 142 | <blockquote class="qr_sample"> |
134 | <a href="#qr___var" title="%%var description">%%var</a> bool is_msie;<br/> | 143 | <div> |
135 | <em><a href="#qr__constructor" title="<%constructor> description"><%constructor></a><br/> | 144 | <a href="#qr___var" title="%%var description">%%var</a> bool is_msie;<br/> |
136 | is_msie = (__CGI->get_meta("USER_AGENT").find("MSIE")!=string::npos);<br/> | 145 | <em><a href="#qr__constructor" title="<%constructor> description"><%constructor></a><br/> |
137 | <a href="#qr__constructor" title="<%constructor> description"></%constructor></a><br/></em> | 146 | is_msie = (__CGI->get_meta("USER_AGENT").find("MSIE")!=string::npos);<br/> |
147 | <a href="#qr__constructor" title="<%constructor> description"></%constructor></a><br/></em> | ||
148 | </div> | ||
138 | </blockquote> | 149 | </blockquote> |
139 | </dd> | 150 | </dd> |
140 | 151 | ||
141 | % /* %decl / %%decl */ | 152 | % /* %decl / %%decl */ |
142 | <dt> | 153 | <dt> |
143 | <a id="qr___decl" name="qr___decl" title="verbatim declaration"> | 154 | <a id="qr___decl" name="qr___decl" title="verbatim declaration"> |
144 | <code>%%decl <kbd>line of code</kbd></code> | 155 | <code>%%decl <kbd>line of code</kbd></code> |
145 | </a> | 156 | </a> |
146 | </dt> | 157 | </dt> |
147 | <dt> | 158 | <dt> |
148 | <a id="qr__decl" name="qr__decl" title="verbatim declaration"> | 159 | <a id="qr__decl" name="qr__decl" title="verbatim declaration"> |
149 | <code> | 160 | <code> |
150 | <%decl><br/> | 161 | <%decl><br/> |
151 | <kbd>lines of code</kbd><br/> | 162 | <kbd>lines of code</kbd><br/> |
152 | </%decl> | 163 | </%decl> |
153 | </code> | 164 | </code> |
154 | </a> | 165 | </a> |
155 | </dt> | 166 | </dt> |
156 | <dd> | 167 | <dd> |
157 | <p> | 168 | <p> |
158 | Put the line(s) of code into the resulting <em>.h</em> file before the | 169 | Put the line(s) of code into the resulting <em>.h</em> file before the |
159 | class declaration. | 170 | class declaration. |
160 | </p> | 171 | </p> |
161 | <blockquote class="qr_sample"> | 172 | <blockquote class="qr_sample"> |
162 | <em><a href="#qr___decl" title="%%decl description">%%decl</a> #include <string><br/></em> | 173 | <div> |
163 | <a href="#qr___var" title="%%var description">%%var</a> std::string str = "default"<br/> | 174 | <em><a href="#qr___decl" title="%%decl description">%%decl</a> #include <string><br/></em> |
164 | <em><a href="#qr__decl" title="<%decl> description"><%decl></a><br/> | 175 | <a href="#qr___var" title="%%var description">%%var</a> std::string str = "default"<br/> |
165 | typedef int integer_t;<br/> | 176 | <em><a href="#qr__decl" title="<%decl> description"><%decl></a><br/> |
166 | <a href="#qr__decl" title="<%decl> description"></%decl></a><br/></em> | 177 | typedef int integer_t;<br/> |
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/> | 178 | <a href="#qr__decl" title="<%decl> description"></%decl></a><br/></em> |
168 | nothing is done<br/> | 179 | <a href="#qr__method" title="<%method ... %> description"><%method</a> void do_nothing(integer_t input) <a href="#qr__method" title="<%method ... %> description">%></a><br/> |
169 | <a href="#qr__method" title="<%method ... %> description"></%method></a> | 180 | nothing is done<br/> |
181 | <a href="#qr__method" title="<%method ... %> description"></%method></a> | ||
182 | </div> | ||
170 | </blockquote> | 183 | </blockquote> |
171 | </dd> | 184 | </dd> |
172 | 185 | ||
173 | % /* %%derive */ | 186 | % /* %%derive */ |
174 | <dt> | 187 | <dt> |
175 | <a id="qr___derive" name="qr___derive" title="base class(es) specification"> | 188 | <a id="qr___derive" name="qr___derive" title="base class(es) specification"> |
176 | <code>%%derive <kbd>name</kbd> = "<kbd>base-component</kbd>";</code> | 189 | <code>%%derive <kbd>name</kbd> = "<kbd>base-component</kbd>";</code> |
177 | </a> | 190 | </a> |
178 | </dt> | 191 | </dt> |
179 | <dd> | 192 | <dd> |
180 | <p> | 193 | <p> |
181 | Inherit what is there to be inherited from the base component specified. | 194 | Inherit what is there to be inherited from the base component specified. |
182 | </p> | 195 | </p> |
183 | <blockquote class="qr_sample"> | 196 | <blockquote class="qr_sample"> |
184 | <em><a href="#qr___derive" title="%%derive description">%%derive</a> pagelayout = "/ancestry/page_layout.chtml";<br/></em> | 197 | <div> |
185 | <a href="#qr__line" title="% description">%</a> pagelayout::member_function(); | 198 | <em><a href="#qr___derive" title="%%derive description">%%derive</a> pagelayout = "/ancestry/page_layout.chtml";<br/></em> |
199 | <a href="#qr__line" title="% description">%</a> pagelayout::member_function(); | ||
200 | </div> | ||
186 | </blockquote> | 201 | </blockquote> |
187 | </dd> | 202 | </dd> |
188 | 203 | ||
189 | % /* %destructor */ | 204 | % /* %destructor */ |
190 | <dt> | 205 | <dt> |
191 | <a id="qr__destructor" name="qr__destructor" title="destructor code"> | 206 | <a id="qr__destructor" name="qr__destructor" title="destructor code"> |
192 | <code> | 207 | <code> |
193 | <%destructor><br/> | 208 | <%destructor><br/> |
194 | <kbd>code</kbd><br/> | 209 | <kbd>code</kbd><br/> |
195 | </%destructor> | 210 | </%destructor> |
196 | </code> | 211 | </code> |
197 | </a> | 212 | </a> |
198 | </dt> | 213 | </dt> |
199 | <dd> | 214 | <dd> |
200 | <p> | 215 | <p> |
201 | Provide the code for destructor. | 216 | Provide the code for destructor. |
202 | </p> | 217 | </p> |
203 | <blockquote class="qr_sample"> | 218 | <blockquote class="qr_sample"> |
204 | <a href="#qr___var" title="%%var description">%%var</a> type_t *tmp = 0;<br/> | 219 | <div> |
205 | <a href="#qr__constructor" title="<%constructor> description"><%constructor></a><br/> | 220 | <a href="#qr___var" title="%%var description">%%var</a> type_t *tmp = 0;<br/> |
206 | tmp = new type_t(type_t::option_1);<br/> | 221 | <a href="#qr__constructor" title="<%constructor> description"><%constructor></a><br/> |
207 | <a href="#qr__constructor" title="<%constructor> description"></%constructor></a><br/> | 222 | tmp = new type_t(type_t::option_1);<br/> |
208 | <em><a href="#qr__destructor" title="<%destructor> description"><%destructor></a><br/> | 223 | <a href="#qr__constructor" title="<%constructor> description"></%constructor></a><br/> |
209 | delete tmp;<br/> | 224 | <em><a href="#qr__destructor" title="<%destructor> description"><%destructor></a><br/> |
210 | <a href="#qr__destructor" title="<%destructor> description"></%destructor></a><br/></em> | 225 | delete tmp;<br/> |
226 | <a href="#qr__destructor" title="<%destructor> description"></%destructor></a><br/></em> | ||
227 | </div> | ||
211 | </blockquote> | 228 | </blockquote> |
212 | </dd> | 229 | </dd> |
213 | 230 | ||
214 | % /* %impl / %%impl */ | 231 | % /* %impl / %%impl */ |
215 | <dt> | 232 | <dt> |
216 | <a id="qr___impl" name="qr__impl" title="verbatim definition"> | 233 | <a id="qr___impl" name="qr__impl" title="verbatim definition"> |
217 | <code>%%impl <kbd>line of code</kbd></code> | 234 | <code>%%impl <kbd>line of code</kbd></code> |
218 | </a> | 235 | </a> |
219 | </dt> | 236 | </dt> |
220 | <dt> | 237 | <dt> |
221 | <a id="qr__impl" name="qr__impl" title="verbatim definition"> | 238 | <a id="qr__impl" name="qr__impl" title="verbatim definition"> |
222 | <code> | 239 | <code> |
223 | <%impl><br/> | 240 | <%impl><br/> |
224 | <kbd>lines of code</kbd><br/> | 241 | <kbd>lines of code</kbd><br/> |
225 | </%impl> | 242 | </%impl> |
226 | </code> | 243 | </code> |
227 | </a> | 244 | </a> |
228 | </dt> | 245 | </dt> |
229 | <dd> | 246 | <dd> |
230 | <p> | 247 | <p> |
231 | Put the line(s) of code into the resulting <em>.cc</em> implementation file | 248 | Put the line(s) of code into the resulting <em>.cc</em> implementation file |
232 | before any members definitions. | 249 | before any members definitions. |
233 | </p> | 250 | </p> |
234 | <blockquote class="qr_sample"> | 251 | <blockquote class="qr_sample"> |
235 | <em><a href"#qr___impl" title="%%impl description">%%impl</a> #include <string.h><br/></em> | 252 | <div> |
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/> | 253 | <em><a href="#qr___impl" title="%%impl description">%%impl</a> #include <string.h><br/></em> |
237 | <a href="#qr__line" title="% description">%</a> if(strstr(haystack,needle)) {<br/> | 254 | <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/> |
238 | <a href="#qr__inline" title="<% ... %> description"><%</a> haystack <a href="#qr__inline" title="<% ... %> description">%></a><br/> | 255 | <a href="#qr__line" title="% description">%</a> if(strstr(haystack,needle)) {<br/> |
239 | <a href="#qr__line" title="% description">%</a> }<br/> | 256 | <a href="#qr__inline" title="<% ... %> description"><%</a> haystack <a href="#qr__inline" title="<% ... %> description">%></a><br/> |
240 | <a href="#qr__method" title="<%method ... %> description"></%method></a><br/> | 257 | <a href="#qr__line" title="% description">%</a> }<br/> |
241 | <em><a href="#qr__impl" title="<%impl> description"><%impl></a><br/> | 258 | <a href="#qr__method" title="<%method ... %> description"></%method></a><br/> |
242 | #include <konforka/exception.h> | 259 | <em><a href="#qr__impl" title="<%impl> description"><%impl></a><br/> |
243 | static const char *tokens[] = {<br/> | 260 | #include <konforka/exception.h> |
244 | "token 1", "token 2", "token 3"<br/> | 261 | static const char *tokens[] = {<br/> |
245 | };<br/> | 262 | "token 1", "token 2", "token 3"<br/> |
246 | <a href="#qr__impl" title="<%impl> description"></%impl></a><br/></em> | 263 | };<br/> |
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/> | 264 | <a href="#qr__impl" title="<%impl> description"></%impl></a><br/></em> |
248 | <a href="#qr__code" title="<%code> description"><%code></a><br/> | 265 | <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/> |
249 | if(toknum<0 || toknum>=(sizeof(tokens)/sizeof(*tokens)))<br/> | 266 | <a href="#qr__code" title="<%code> description"><%code></a><br/> |
250 | throw konforka::exception(CODEPOINT,"out of bounds");<br/> | 267 | if(toknum<0 || toknum>=(sizeof(tokens)/sizeof(*tokens)))<br/> |
251 | <a href="#qr__code" title="<%code> description"></%code></a><br/> | 268 | throw konforka::exception(CODEPOINT,"out of bounds");<br/> |
252 | <a href="#qr__inline" title="<% ... %> description"><%</a> tokens[toknum] <a href="#qr__inline" title="<% ... %> description">%></a><br/> | 269 | <a href="#qr__code" title="<%code> description"></%code></a><br/> |
253 | <a href="#qr__method" title="<%method ... %> description"></%method></a><br/> | 270 | <a href="#qr__inline" title="<% ... %> description"><%</a> tokens[toknum] <a href="#qr__inline" title="<% ... %> description">%></a><br/> |
271 | <a href="#qr__method" title="<%method ... %> description"></%method></a><br/> | ||
272 | </div> | ||
254 | </blockquote> | 273 | </blockquote> |
255 | </dd> | 274 | </dd> |
256 | 275 | ||
257 | % /* %method */ | 276 | % /* %method */ |
258 | <dt> | 277 | <dt> |
259 | <a id="qr__method" name="qr__method" title="member function definition"> | 278 | <a id="qr__method" name="qr__method" title="member function definition"> |
260 | <code> | 279 | <code> |
261 | <%method <kbd>return_type_t</kbd> <kbd>member_name</kbd>(<kbd>args,...</kbd>) %><br/> | 280 | <%method <kbd>return_type_t</kbd> <kbd>member_name</kbd>(<kbd>args,...</kbd>) %><br/> |
262 | <kbd>code</kbd><br/> | 281 | <kbd>code</kbd><br/> |
263 | </%method> | 282 | </%method> |
264 | </code> | 283 | </code> |
265 | </a> | 284 | </a> |
266 | </dt> | 285 | </dt> |
267 | <dd> | 286 | <dd> |
268 | <p> | 287 | <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>. | 288 | 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> | 289 | </p> |
271 | <blockquote class="qr_sample"> | 290 | <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/> | 291 | <div> |
273 | <em><a href="#qr__inline" title="<% ... %> description"><%</a> t <a href="#qr__inline" title="<% ... %> description">%></a></em><br/> | 292 | <em><a href="#qr__method" title="<%method ... %> description"><%method</a> void emphasized(const char *t) <a href="#qr__method" title="<%method ... %> description">%></a><br/> |
274 | <a href="#qr__codemethod" title="<%codemethod ... %> description"></%method></a><br/></em> | 293 | <em><a href="#qr__inline" title="<% ... %> description"><%</a> t <a href="#qr__inline" title="<% ... %> description">%></a></em><br/> |
275 | <a href="#qr__line" title="% description">%</a> emphasized("emphasized text"); | 294 | <a href="#qr__codemethod" title="<%codemethod ... %> description"></%method></a><br/></em> |
295 | <a href="#qr__line" title="% description">%</a> emphasized("emphasized text"); | ||
296 | </div> | ||
276 | </blockquote> | 297 | </blockquote> |
277 | </dd> | 298 | </dd> |
278 | 299 | ||
279 | % /* %output */ | 300 | % /* %output */ |
280 | <dt> | 301 | <dt> |
281 | <a id="qr__output" name="qr__output" title="switching to output mode"> | 302 | <a id="qr__output" name="qr__output" title="switching to output mode"> |
282 | <code> | 303 | <code> |
283 | <%output> <kbd>...</kbd> </%output> | 304 | <%output> <kbd>...</kbd> </%output> |
284 | </code> | 305 | </code> |
285 | </a> | 306 | </a> |
286 | </dt> | 307 | </dt> |
287 | <dd> | 308 | <dd> |
288 | <p> | 309 | <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. | 310 | 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> | 311 | </p> |
291 | <blockquote class="qr_sample"> | 312 | <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/> | 313 | <div> |
293 | for(int t=0;t<10;t++) {<br/> | 314 | <a href="#qr__codemethod" title="<%codemethod ... %> description"><%codemethod</a> void count() <a href="#qr__codemethod" title="<%codemethod ... > description">%></a><br/> |
294 | <em> <a href="#qr__output" title="<%output> descrption"><%output></a><br/> | 315 | for(int t=0;t<10;t++) {<br/> |
295 | Here is the way we count.<br/><br/> | 316 | <em> <a href="#qr__output" title="<%output> descrption"><%output></a><br/> |
296 | Just saying out loud: <a href="#qr__inline" title="<% ... %> description"><%</a> t <a href="#qr__inline" title="<% ... %> description">%></a><br/><br/> | 317 | Here is the way we count.<br/><br/> |
297 | <a href="#qr__output" title="<%output> descrption"></%output></a><br/></em> | 318 | Just saying out loud: <a href="#qr__inline" title="<% ... %> description"><%</a> t <a href="#qr__inline" title="<% ... %> description">%></a><br/><br/> |
298 | <a href="#qr__codemethod" title="</%codemethod ... %> description"></%codemethod></a><br/> | 319 | <a href="#qr__output" title="<%output> descrption"></%output></a><br/></em> |
299 | <a href="#qr__line" title="% description">%</a> count(); | 320 | <a href="#qr__codemethod" title="</%codemethod ... %> description"></%codemethod></a><br/> |
321 | <a href="#qr__line" title="% description">%</a> count(); | ||
322 | </div> | ||
300 | </blockquote> | 323 | </blockquote> |
301 | </dd> | 324 | </dd> |
302 | 325 | ||
303 | % /* %%pragma */ | 326 | % /* %%pragma */ |
304 | <dt> | 327 | <dt> |
305 | <a id="qr___pragma" name="qr___pragma" title="pragma"> | 328 | <a id="qr___pragma" name="qr___pragma" title="pragma"> |
306 | <code> | 329 | <code> |
307 | %%pragma <kbd>pragma_name</kbd><br/> | 330 | %%pragma <kbd>pragma_name</kbd><br/> |
308 | %%pragma <kbd>pragma_name</kbd>=<kbd>pragma_value</kbd> | 331 | %%pragma <kbd>pragma_name</kbd>=<kbd>pragma_value</kbd> |
309 | </code> | 332 | </code> |
310 | </a> | 333 | </a> |
311 | </dt> | 334 | </dt> |
312 | <dd> | 335 | <dd> |
313 | <p>provide pseudo instructions to the preprocessor. At this time only pragma | 336 | <p>provide pseudo instructions to the preprocessor. At this time only pragma |
314 | named <code>main</code> is defined, which instructs preprocessor to discard | 337 | 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 | 338 | the 'main' member that would be generated for the component and call the |
316 | <code>main</code> member of the named base class.</p> | 339 | <code>main</code> member of the named base class.</p> |
317 | <blockquote class="qr_sample"> | 340 | <blockquote class="qr_sample"> |
318 | <a href="#qr___derive" title="%%derive description">%%derive</a> pagelayout = "/ancestry/page_layout.chtml";<br/> | 341 | <div> |
319 | <em><a href="#qr___pragma" title="%%pragma description">%%pragma</a> main=pagelayout</em> | 342 | <a href="#qr___derive" title="%%derive description">%%derive</a> pagelayout = "/ancestry/page_layout.chtml";<br/> |
343 | <em><a href="#qr___pragma" title="%%pragma description">%%pragma</a> main=pagelayout</em> | ||
344 | </div> | ||
320 | </blockquote> | 345 | </blockquote> |
321 | </dd> | 346 | </dd> |
322 | 347 | ||
323 | % /* %%var */ | 348 | % /* %%var */ |
324 | <dt> | 349 | <dt> |
325 | <a id="qr___var" name="qr___var" title="member variable declaration"> | 350 | <a id="qr___var" name="qr___var" title="member variable declaration"> |
326 | <code>%%var <kbd>type_t</kbd> <kbd>varname</kbd>;<br/> | 351 | <code>%%var <kbd>type_t</kbd> <kbd>varname</kbd>;</code><br/> |
327 | <code>%%var <kbd>type_t</kbd> <kbd>varname</kbd> = <kbd>initalizer</kbd>;<br/> | 352 | <code>%%var <kbd>type_t</kbd> <kbd>varname</kbd> = <kbd>initalizer</kbd>;</code><br/> |
328 | </a> | 353 | </a> |
329 | </dt> | 354 | </dt> |
330 | <dd> | 355 | <dd> |
331 | <p> | 356 | <p> |
332 | Define the member variable with optional default value (suitable for | 357 | Define the member variable with optional default value (suitable for |
333 | putting into the <code>: <kbd>varname</kbd>(<kbd>initializer</kbd>)</code> | 358 | putting into the <code>: <kbd>varname</kbd>(<kbd>initializer</kbd>)</code> |
334 | part of the c++ constructor. | 359 | part of the c++ constructor. |
335 | </p> | 360 | </p> |
336 | <blockquote class="qr_sample"> | 361 | <blockquote class="qr_sample"> |
337 | <em><a href="#qr___var" title="%%var description">%%var</a> std::string strval = "default value";<br/> | 362 | <div> |
338 | <a href="#qr___var" title="%%var description">%%var</a> int usecount = 0;<br/> | 363 | <em><a href="#qr___var" title="%%var description">%%var</a> std::string strval = "default value";<br/> |
339 | <a href="#qr___var" title="%%var description">%%var</a> int whatnot;</em> | 364 | <a href="#qr___var" title="%%var description">%%var</a> int usecount = 0;<br/> |
365 | <a href="#qr___var" title="%%var description">%%var</a> int whatnot;</em> | ||
366 | </div> | ||
340 | </blockquote> | 367 | </blockquote> |
341 | </dd> | 368 | </dd> |
342 | 369 | ||
343 | </dl> | 370 | </dl> |
344 | </%method> | 371 | </%method> |
diff --git a/htdocs/style.css b/htdocs/style.css index 96e4c59..28aa8df 100644 --- a/htdocs/style.css +++ b/htdocs/style.css | |||
@@ -25,232 +25,238 @@ p.note { | |||
25 | color: #202020; | 25 | color: #202020; |
26 | } | 26 | } |
27 | code a, | 27 | code a, |
28 | code { | 28 | code { |
29 | color: #d04040; | 29 | color: #d04040; |
30 | } | 30 | } |
31 | em { | 31 | em { |
32 | white-space: nowrap; | 32 | white-space: nowrap; |
33 | } | 33 | } |
34 | 34 | ||
35 | div.google_ad { | 35 | div.google_ad { |
36 | text-align: center; | 36 | text-align: center; |
37 | margin: 1ex; | 37 | margin: 1ex; |
38 | } | 38 | } |
39 | div.google_ad.top { | 39 | div.google_ad.top { |
40 | padding-bottom: 1ex; | 40 | padding-bottom: 1ex; |
41 | border-bottom: 1px gray solid; | 41 | border-bottom: 1px gray solid; |
42 | } | 42 | } |
43 | div.google_ad.bottom { | 43 | div.google_ad.bottom { |
44 | padding-top: 1ex; | 44 | padding-top: 1ex; |
45 | border-top: 1px gray solid; | 45 | border-top: 1px gray solid; |
46 | } | 46 | } |
47 | 47 | ||
48 | div#sidepanel { | 48 | div#sidepanel { |
49 | position: absolute; top: 0px; left: 0px; | 49 | position: absolute; top: 0px; left: 0px; |
50 | margin: 0px; | 50 | margin: 0px; |
51 | width: 20%; | 51 | width: 20%; |
52 | font-size: 80%; | 52 | font-size: 80%; |
53 | } | 53 | } |
54 | div#content { | 54 | div#content { |
55 | position: absolute; top: 0px; right: -0px; | 55 | position: absolute; top: 0px; right: -0px; |
56 | margin: 0px; | 56 | margin: 0px; |
57 | width: 80%; | 57 | width: 80%; |
58 | } | 58 | } |
59 | 59 | ||
60 | div#sidepanel h1 { | 60 | div#sidepanel h1 { |
61 | font-size: 80%; | 61 | font-size: 80%; |
62 | text-align: center; | 62 | text-align: center; |
63 | font-weight: normal; | 63 | font-weight: normal; |
64 | color: #004080; | 64 | color: #004080; |
65 | white-space: nowrap; | 65 | white-space: nowrap; |
66 | margin-top: 2ex; margin-bottom: 2ex; | 66 | margin-top: 2ex; margin-bottom: 2ex; |
67 | } | 67 | } |
68 | div#sidepanel h2 { | 68 | div#sidepanel h2 { |
69 | font-size: 80%; | 69 | font-size: 80%; |
70 | text-align: justify; | 70 | text-align: justify; |
71 | font-weight: normal; | 71 | font-weight: normal; |
72 | color: gray; | 72 | color: gray; |
73 | margin: 1ex 1ex; | 73 | margin: 1ex 1ex; |
74 | } | 74 | } |
75 | div#sidepanel ul { | 75 | div#sidepanel ul { |
76 | padding: 1ex 0.5ex 1ex 1ex; | 76 | padding: 1ex 0.5ex 1ex 1ex; |
77 | margin: 0.5ex; | 77 | margin: 0.5ex; |
78 | border-color: #c0c0c0 #404040 #404040 #c0c0c0; | 78 | border-color: #c0c0c0 #404040 #404040 #c0c0c0; |
79 | border-width: 1px 2px 2px 1px; | 79 | border-width: 1px 2px 2px 1px; |
80 | border-style: solid; | 80 | border-style: solid; |
81 | background: #d0d0d0; | 81 | background: #d0d0d0; |
82 | list-style-type: none; | 82 | list-style-type: none; |
83 | } | 83 | } |
84 | div#sidepanel ul ul { | 84 | div#sidepanel ul ul { |
85 | margin: 0px; padding: 0px; | 85 | margin: 0px; padding: 0px; |
86 | border: none 0px; | 86 | border: none 0px; |
87 | } | 87 | } |
88 | div#sidepanel li { | 88 | div#sidepanel li { |
89 | list-style-type: none; | 89 | list-style-type: none; |
90 | margin: 0px; padding: 0px; | 90 | margin: 0px; padding: 0px; |
91 | display: block; | 91 | display: block; |
92 | } | 92 | } |
93 | div#sidepanel ul a { | 93 | div#sidepanel ul a { |
94 | display: block; | 94 | display: block; |
95 | padding: 1px 1ex; | 95 | padding: 1px 1ex; |
96 | margin: 0.5ex; | 96 | margin: 0.5ex; |
97 | border: 1px solid gray; | 97 | border: 1px solid gray; |
98 | text-decoration: none; | 98 | text-decoration: none; |
99 | background: white; | 99 | background: white; |
100 | color: black; | 100 | color: black; |
101 | } | 101 | } |
102 | div#sidepanel ul a:hover { | 102 | div#sidepanel ul a:hover { |
103 | background: gray; | 103 | background: gray; |
104 | color: white; | 104 | color: white; |
105 | } | 105 | } |
106 | div#sidepanel ul ul a { | 106 | div#sidepanel ul ul a { |
107 | padding-left: 2.5ex; | 107 | padding-left: 2.5ex; |
108 | background: #e0e0e0; | 108 | background: #e0e0e0; |
109 | } | 109 | } |
110 | div#sidepanel div.copyright { | 110 | div#sidepanel div.copyright { |
111 | text-align: center; | 111 | text-align: center; |
112 | } | 112 | } |
113 | 113 | ||
114 | div#content h1 { | 114 | div#content h1 { |
115 | font-size: 140%; | 115 | font-size: 140%; |
116 | color: gray; | 116 | color: gray; |
117 | font-weight: bold; | 117 | font-weight: bold; |
118 | text-align: center; | 118 | text-align: center; |
119 | margin: 1em; | 119 | margin: 1em; |
120 | clear: both; | 120 | clear: both; |
121 | } | 121 | } |
122 | div#content h2 { | 122 | div#content h2 { |
123 | font-size: 140%; | 123 | font-size: 140%; |
124 | color: #8080a0; | 124 | color: #8080a0; |
125 | font-weight: bold; | 125 | font-weight: bold; |
126 | text-align: center; | 126 | text-align: center; |
127 | margin: 1em; | 127 | margin: 1em; |
128 | clear: both; | 128 | clear: both; |
129 | } | 129 | } |
130 | div#content p a { | 130 | div#content p a { |
131 | font-weight: bold; | 131 | font-weight: bold; |
132 | } | 132 | } |
133 | div#content p a.internal { | 133 | div#content p a.internal { |
134 | font-weight: inherit !important; | 134 | font-weight: inherit !important; |
135 | } | 135 | } |
136 | 136 | ||
137 | div.insert { | 137 | div.insert { |
138 | text-align: center; | 138 | text-align: center; |
139 | } | 139 | } |
140 | iframe#insert { | 140 | iframe#insert { |
141 | border: 1px solid black; | 141 | border: 1px solid black; |
142 | } | 142 | } |
143 | 143 | ||
144 | div.source h1 { | 144 | div.source h1 { |
145 | background: #e0e0e0; | 145 | background: #e0e0e0; |
146 | border: 1px solid #808080; | 146 | border: 1px solid #808080; |
147 | padding-left: 1em; | 147 | padding-left: 1em; |
148 | margin: 0px; | 148 | margin: 0px; |
149 | font-size: 100%; | 149 | font-size: 100%; |
150 | color: #000060; | 150 | color: #000060; |
151 | overflow: hidden; | 151 | overflow: hidden; |
152 | } | 152 | } |
153 | div.source ul { | 153 | div.source ul { |
154 | background: #80c0c0; | 154 | background: #80c0c0; |
155 | margin: 0px; | 155 | margin: 0px; |
156 | padding: 1px 0px; | 156 | padding: 1px 0px; |
157 | font-family: monospace; | 157 | font-family: monospace; |
158 | font-size: 80%; | 158 | font-size: 80%; |
159 | overflow: hidden; | 159 | overflow: hidden; |
160 | width:100%; | 160 | width:100%; |
161 | } | 161 | } |
162 | div.source li { | 162 | div.source li { |
163 | list-style-type: none; | 163 | list-style-type: none; |
164 | white-space: nowrap; | 164 | white-space: nowrap; |
165 | margin: 0px 0.5ex; | 165 | margin: 0px 0.5ex; |
166 | } | 166 | } |
167 | 167 | ||
168 | ul.sourcebrowser { | 168 | ul.sourcebrowser { |
169 | font-size: 70%; | 169 | font-size: 70%; |
170 | } | 170 | } |
171 | ul.sourcebrowser ul.dir { | 171 | ul.sourcebrowser ul.dir { |
172 | padding: 1px 0px 2px 1em; | 172 | padding: 1px 0px 2px 1em; |
173 | margin: 1px 0px 1px 0px; | 173 | margin: 1px 0px 1px 0px; |
174 | } | 174 | } |
175 | ul.sourcebrowser li.dir { | 175 | ul.sourcebrowser li.dir { |
176 | margin: 1px 0px 1px 0px; | 176 | margin: 1px 0px 1px 0px; |
177 | } | 177 | } |
178 | ul.sourcebrowser li.file { | 178 | ul.sourcebrowser li.file { |
179 | list-style-type: none; | 179 | list-style-type: none; |
180 | white-space: nowrap; | 180 | white-space: nowrap; |
181 | display: inline; | 181 | display: inline; |
182 | } | 182 | } |
183 | ul.sourcebrowser li.file a { | 183 | ul.sourcebrowser li.file a { |
184 | border: 1px solid gray; | 184 | border: 1px solid gray; |
185 | padding: 1px 0.5ex; | 185 | padding: 1px 0.5ex; |
186 | text-decoration: none; | 186 | text-decoration: none; |
187 | font-family: monospace; | 187 | font-family: monospace; |
188 | } | 188 | } |
189 | ul.sourcebrowser li.file a:hover { | 189 | ul.sourcebrowser li.file a:hover { |
190 | background: gray; | 190 | background: gray; |
191 | border: 1px solid black; | 191 | border: 1px solid black; |
192 | color: white; | 192 | color: white; |
193 | } | 193 | } |
194 | 194 | ||
195 | div.prevnext { | 195 | div.prevnext { |
196 | margin: 1ex; | 196 | margin: 1ex; |
197 | } | 197 | } |
198 | div.prevnext a { | 198 | div.prevnext a { |
199 | margin: 0.5ex 1em; padding: 0.2ex 0.5ex; | 199 | margin: 0.5ex 1em; padding: 0.2ex 0.5ex; |
200 | display: block; width: 30%; | 200 | display: block; width: 30%; |
201 | border: solid 1px gray; | 201 | border: solid 1px gray; |
202 | color: black; | 202 | color: black; |
203 | text-decoration: none; | 203 | text-decoration: none; |
204 | } | 204 | } |
205 | div.prevnext a.prevnext-prev { | 205 | div.prevnext a.prevnext-prev { |
206 | float: left; | 206 | float: left; |
207 | text-align: left; | 207 | text-align: left; |
208 | } | 208 | } |
209 | div.prevnext a.prevnext-next { | 209 | div.prevnext a.prevnext-next { |
210 | float: right; | 210 | float: right; |
211 | text-align: right; | 211 | text-align: right; |
212 | } | 212 | } |
213 | div.prevnext a:hover { | 213 | div.prevnext a:hover { |
214 | background: gray; | 214 | background: gray; |
215 | border: black 1px solid; | 215 | border: black 1px solid; |
216 | color: white; | 216 | color: white; |
217 | text-decoration: none; | ||
217 | } | 218 | } |
218 | 219 | ||
219 | ul.quickref.toc { | 220 | ul.quickref.toc { |
220 | margin: 1em 20%; | 221 | margin: 1em 20%; |
221 | font-size: 90%; | 222 | font-size: 90%; |
222 | border: solid 1px gray; | 223 | border: solid 1px gray; |
223 | } | 224 | } |
224 | 225 | ||
225 | dl.quickref { | 226 | dl.quickref { |
226 | margin: 1ex 1em; | 227 | margin: 1ex 1em; |
228 | overflow: hidden; | ||
227 | } | 229 | } |
228 | dl.quickref dt { | 230 | dl.quickref dt { |
229 | margin: 0.4ex; | 231 | margin: 0.4ex; |
230 | padding: 2px 0.5ex; | 232 | padding: 2px 0.5ex; |
231 | background: #e0e0e0; | 233 | background: #e0e0e0; |
232 | display: compact; | 234 | display: compact; |
233 | } | 235 | } |
234 | dl.quickref dd { | 236 | dl.quickref dd { |
235 | margin: 0px 0.4ex 0.4ex 10%; | 237 | margin: 0px 0.4ex 0.4ex 10%; |
236 | padding: 0px; | 238 | padding: 0px; |
237 | border: 1px solid grey; | 239 | border: 1px solid gray; |
240 | overflow: hidden; | ||
238 | } | 241 | } |
239 | dl.quickref code kbd { | 242 | dl.quickref code kbd { |
240 | font-style: italic; | 243 | font-style: italic; |
241 | color: #0000c0; | 244 | color: #0000c0; |
242 | } | 245 | } |
243 | dl.quickref blockquote { | 246 | dl.quickref blockquote { |
244 | background: #ffffc0; | 247 | background: #ffffc0; |
245 | padding: 4px; | 248 | padding: 4px; |
246 | border: dotted 1px gray; | 249 | border: dotted 1px gray; |
247 | font-family: monospace; | 250 | font-family: monospace; |
251 | font-size: 90%; | ||
252 | overflow: hidden; | ||
248 | } | 253 | } |
249 | dl.quickref blockquote em { | 254 | dl.quickref blockquote em { |
250 | display: block; | 255 | display: block; |
251 | font-family: inherit !important; | 256 | font-family: inherit !important; |
252 | font-size: inherit !important; | 257 | font-size: inherit !important; |
253 | font-weight: inherit !important; | 258 | font-weight: inherit !important; |
254 | font-style: inherit !important; | 259 | font-style: inherit !important; |
255 | background: #ffc0c0; | 260 | background: #ffc0c0; |
261 | overflow: hidden; | ||
256 | } | 262 | } |