-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 | 37 | ||||
-rw-r--r-- | htdocs/style.css | 8 |
7 files changed, 53 insertions, 12 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 @@ % html(); return; /* vim:set ft=sitecing: */ %%derive page = "/ancestry/page.chtml"; <%decl> #define PN_PREV(h,d,t) urlPrev=h; descPrev=d; titlePrev=t; #define PN_NEXT(h,d,t) urlNext=h; descNext=d; titleNext=t; </%decl> %%impl #include <sitecing/util.h> %%impl #include "acconfig.h" %%var bool b_svn = false; %%var std::string urlPrev; %%var std::string descPrev; %%var std::string titlePrev; %%var std::string urlNext; %%var std::string descNext; %%var std::string titleNext; <%constructor> if(strstr(PACKAGE_STRING,"svn")) b_svn = true; </%constructor> <%method void prevnext() %> % if(urlPrev.empty() && urlNext.empty()) return; % if(descPrev.empty() && descNext.empty()) return; <div class="prevnext"> % if(!(urlPrev.empty() || descPrev.empty())) { - <a class="prevnext-prev" href="<% urlPrev %>" title="<% sitecing::html_escape(titlePrev.empty()?descPrev:titlePrev) %>"><% sitecing::html_escape(descPrev) %></a> + <a class="prevnext-prev" href="<% urlPrev %>" title="<% sitecing::html_escape(titlePrev.empty()?descPrev:titlePrev) %>">◄ <% sitecing::html_escape(descPrev) %></a> % } % if(!(urlNext.empty() || descNext.empty())) { - <a class="prevnext-next" href="<% urlNext %>" title="<% sitecing::html_escape(titleNext.empty()?descNext:titleNext) %>"><% sitecing::html_escape(descNext) %></a> + <a class="prevnext-next" href="<% urlNext %>" title="<% sitecing::html_escape(titleNext.empty()?descNext:titleNext) %>"><% sitecing::html_escape(descNext) %> ►</a> % } </div> </%method> <%method void body() %> <div id="content"> <%code> if(!access(WEB_RUN_ROOT "/conf/banner_top",R_OK)) { pass_file_through(WEB_RUN_ROOT "/conf/banner_top"); } prevnext(); content(); if(b_strict && !access(WEB_RUN_ROOT "/conf/banner_bottom",R_OK)) { pass_file_through(WEB_RUN_ROOT "/conf/banner_bottom"); } </%code> </div> <div id="sidepanel"> % sidepanel(); </div> </%method> <%method void content() %> </%method> <%method void sidepanel() %> <h1><% PACKAGE_STRING %></h1> % if(b_svn) { <h2>The site is running source from the source repository which may differ from the one available for download. You can check it out from the <a href="http://kin.klever.net/sitecing/repository">source repository</a>.</h2> % } % /* thank MSIE for this awful formatting */ <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> <%code> if(!access(WEB_RUN_ROOT "/conf/banner_side",R_OK)) { pass_file_through(WEB_RUN_ROOT "/conf/banner_side"); } </%code> <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> <div class="copyright"> © <a href="http://www.klever.net/">Klever Group</a> </div> </%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 @@ <%decl> typedef struct { const char *dir; const char *name; const char *desc; } sourcefile_t; extern sourcefile_t source_files[]; extern int source_files_count; </%decl> <%impl> sourcefile_t source_files[] = { { "", 0, "the root" }, { "", "configure.ac", "main configuration file" }, { "", "acinclude.m4", "autoconf macros" }, { "", "autogen.sh", "shell script for building out of source repository" }, { "", "Makefile.am", "automake makefile template" }, { "", "NEWS.xml", "news since the last release (if any)" }, { "", "NEWS.xsl", "the styleshhet to make a plaintext version of NEWS.xml" }, { "", "COPYING", "copyright notice" }, { "", "AUTHORS", "Klever dissected" }, { 0, 0, 0 }, { "bin", 0, "various scripts" }, { "bin", "build.in", "the template of the script used to precompile the code" }, { "bin", "run.in", "the template of the script used to start fastcgi server" }, { 0, 0, 0 }, { "conf", 0, "configuration files" }, { "conf", "dudki.conf.in", "the template for the dudki daemon configuration file" }, { "conf", "httpd.conf.in", "the template for the apache configuration" }, { "conf", "sitecing.conf.in", "the template for the site-C-ing configuration" }, { 0, 0, 0 }, { "htdocs", 0, "the source files" }, { "htdocs", ".htaccess", "apache access-control file" }, { "htdocs", "index.chtml", "the introduction" }, { "htdocs", "sources.chtml", "the source browser" }, { "htdocs", "style.css", "the CSS style sheet" }, { "htdocs", "view.chtml", "the source viewer" }, { "htdocs/examples", 0, "examples" }, { "htdocs/examples", "calendar.chtml", "really simple page" }, { 0,0,0 }, { "htdocs/exceptions", 0, "exceptions handling overview" }, { "htdocs/exceptions", "index.chtml", "the overview" }, { "htdocs/exceptions", "preprocess.chtml", "preprocessor exceptions" }, { "htdocs/exceptions", "compile.chtml", "compile-time exceptions" }, { "htdocs/exceptions", "runtime.chtml", "runtime exceptions" }, { "htdocs/exceptions/development", 0, "development-mode exceptions samples" }, { "htdocs/exceptions/development", ".htaccess", "apache access control file" }, { "htdocs/exceptions/development", ".scrc", "site-C-ing local configuration" }, { "htdocs/exceptions/development", "preprocess.chtml", "the file that can not be preprocessed" }, { "htdocs/exceptions/development", "runtime.chtml", "exception thrown at runtime" }, { "htdocs/exceptions/development", "compile.chtml", "the file that can not be compiled" }, { "htdocs/exceptions/development", "erroneous.h", "the file to include for more errors" }, { "htdocs/exceptions/development", "compile.html", "compile-time exception handler output" }, { 0,0,0 }, { "htdocs/exceptions/production", 0, "production-mode exceptions samples" }, { "htdocs/exceptions/production", ".htaccess", "apache access control file" }, { "htdocs/exceptions/production", ".scrc", "site-C-ing local configuration" }, { "htdocs/exceptions/production", "preprocess.chtml", "the file that can not be preprocessed" }, { "htdocs/exceptions/production", "runtime.chtml", "exception thrown at runtime" }, { "htdocs/exceptions/production", "compile.chtml", "the file that can not be compiled" }, { "htdocs/exceptions/production", "erroneous.h", "the file to include for more errors" }, { "htdocs/exceptions/production", "compile.html", "compile-time exception handler output" }, { 0,0,0 }, + { "htdocs/quickref", 0, "reference documentation" }, + { "htdocs/quickref", "index.chtml", "the overview" }, + { "htdocs/quickref", "metasyntax.chtml", "component meta syntax quick reference" }, + { 0,0,0 }, { 0,0,0 }, { "htdocs/handlers", 0, "exception handlers" }, { "htdocs/handlers", ".htaccess", "apache access-control file" }, { "htdocs/handlers", "exception_dev", "development mode exception handler" }, { "htdocs/handlers", "exception_prod", "production mode exception handler" }, { 0,0,0 }, { "htdocs/ancestry", 0, "base components to build the rest upon" }, { "htdocs/ancestry", ".htaccess", "apache access control file" }, { "htdocs/ancestry", "page.chtml", "the xhtml skeleton" }, { "htdocs/ancestry", "layout.chtml", "the layout for the most pages" }, { "htdocs/ancestry", "sources.chtml", "the list of files for source browser" }, { 0,0,0 }, { 0,0,0 } }; int source_files_count = sizeof(source_files)/sizeof(*source_files); </%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,70 +1,71 @@ <%impl> /* vim:set ft=sitecing: */ #include <time.h> #include <konforka/exception.h> </%impl> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +% __SCIF->flush(); <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <head> <title>really simple page</title> <style type="text/css"> table.calendar { font-family: monospace; } table.calendar th.heading { border: double blue 3px; } table.calendar td { text-align: right; margin: 0.5ex; padding: 2px; border: solid 1px black; } table.calendar .wd-0, table.calendar .wd-6 { color: red; } table.calendar td.unexistant { border: none; } table.calendar td.today { background: #ffffc0; color: blue; font-weight: bold; } </style> </head> <body> % /* Just call the calendar member function */ % calendar(); </body> </html> <%method void calendar() %> <%code> time_t tt = time(0); struct tm t; if(!localtime_r(&tt,&t)) throw konforka::exception(CODEPOINT,"couldn't fetch current date"); char h[16]; if(strftime(h,sizeof(h),"%B, %Y",&t)>=sizeof(h)) throw konforka::exception(CODEPOINT,"couldn't produce heading for the calendar"); int today = t.tm_mday; t.tm_mday = 1; tt=mktime(&t); if(!localtime_r(&tt,&t)) throw konforka::exception(CODEPOINT,"couldn't fetch current date"); int dim = 31; if(t.tm_mon==3 || t.tm_mon==5 || t.tm_mon==8 || t.tm_mon==10) { dim = 30; }else if(t.tm_mon==1) { dim = (t.tm_year%4)?28:29; } </%code> <table class="calendar"> <tr> <th class="heading" colspan="7"><% h %></th> </tr> <tr> <th class="wd-0">Sun</th> <th class="wd-1">Mon</th> <th class="wd-2">Tue</th> <th class="wd-3">Wed</th> <th class="wd-4">Thu</th> 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 @@ % html(); return; /* vim:set ft=sitecing: */ %%derive layout = "/ancestry/layout.chtml"; <%constructor> PN_NEXT("/simple","simple page","building a really simple page"); </%constructor> <%codemethod string title() %> return "introduction"; </%codemethod> <%method void content() %> <h1>introduction to site-C-ing</h1> <p> This is a sample site, which is supposed to demonstrate <em>site-C-ing</em> features. Since the <em>site-C-ing</em> is still at the early stages of development or rather proof of concept, this site is also far from being complete. I am planning to add more pages as the time permits, though. </p> <p> Once you download and install <a href="http://kin.klever.net/sitecing/">site-C-ing</a> you may wish to try this sample site for yourself. The source is available from <a href="http://kin.klever.net/sitecing/sources">the site-C-ing download page</a>. After you download the source code, you should configure it using the ever so popular <code>configure</code> script. It is likely that you will want to pass the <code>--with-vhostname</code> option to configure to name the apache virtual host. </p> <p> The configure script will generate the apache vhost configuration for you, which you can <code>Include</code> in the main apache configuration file. </p> <p class="note"> Note, that the configuration is tailored for apache 2.x. It is no problem to get it working with apache 1.3.x, although I haven't tried and so I am not sure if it will run out of the box (your patches are <a href="mailto:sitecing-patches@klever.net">welcome</a>). Also note that you - will need <a href="http://fastcgi.com/">mod_fastcgi</a> apache module, which - is the only CGI-interface supported by the <em>site-C-ing</em> engine at the - moment. + may need <a href="http://fastcgi.com/">mod_fastcgi</a> apache module, + although now that fastcgi is not the only supported interface you may get the + thing running with 'plain' CGI with a bit of tweaking. Again, if you got it + working without breaking the fastcgi part your patches are <a + href="mailto:sitecing-patches@klever.net">welcome</a>. </p> <p> Once you get it all done you will want to restart your apache and start the <em>site-C-ing</em> fastcgi server by issuing the <code>make restart</code> command. </p> <p> Before you download it, you may wish to <a href="/sources" title="source browser">examine the sources</a> to learn more about how it is done. </p> </%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 @@ % html(); return; /* vim:set ft=sitecing: */ %%derive layout = "/ancestry/layout.chtml"; <%constructor> PN_PREV("/exceptions/runtime","runtime","runtime exceptions"); PN_NEXT("/quickref/metasyntax","syntax","meta syntax"); </%constructor> <%codemethod string title() %> return "quick reference"; </%codemethod> <%method void content() %> <h1>site-C-ing quick reference</h1> <p> I am hoping to put together some quick reference documentation here. For now, - I am adding the component meta-syntax quick reference. + I am adding the <a href="/quickref/metasyntax">component meta-syntax quick + reference</a>. </p> </%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 @@ % html(); return; /* vim:set ft=sitecing: */ %%derive layout = "/ancestry/layout.chtml"; <%constructor> PN_PREV("/quickref/","quick reference","quick reference"); PN_NEXT("/sources","sources","source browser"); </%constructor> <%codemethod string title() %> return "meta syntax quick reference"; </%codemethod> <%method void content() %> <h1>site-C-ing meta syntax quick reference</h1> <h2>Table of Contents</h2> <ul class="quickref toc"> <li><a href="#qr__line">% ...</a></li> <li><a href="#qr__inline"><% ... %></a></li> <li><a href="#qr__code"><%code></a></li> <li><a href="#qr__codemethod"><%codemethod ... ></a></li> <li><a href="#qr__constructor"><%constructor></a></li> <li><a href="#qr__decl"><%decl></a></li> <li><a href="#qr___decl">%%decl</a></li> <li><a href="#qr___derive">%%derive</a></li> <li><a href="#qr__destructor"><%destructor></a></li> <li><a href="#qr__impl"><%impl></a></li> <li><a href="#qr___impl">%%impl</a></li> <li><a href="#qr__method"><%method ... ></a></li> <li><a href="#qr__output"><%output></a></li> <li><a href="#qr___pragma">%%pragma</a></li> <li><a href="#qr___var">%%var</a></li> </ul> <dl class="metasyntax quickref"> % /* % */ <dt> <a id="qr__line" name="qr__line" title="line of code"> <code>% <kbd>line of code</kbd></code> </a> </dt> <dd> <p> Break out into the code mode for just one line. </p> <blockquote class="qr_sample"> + <div> <body><br/> + Here is the way we count.<br/><br/> <em><a href="#qr__line" title="% description">%</a> for(int t=0;t<10;t++) {<br/></em> - Here is the way we count.<br/><br/> Just saying out loud: <a href="#qr__inline" title="<% ... %> description"><%</a> t <a href="#qr__inline" title="<% ... %> description">%></a><br/><br/> <em><a href="#qr__line" title="% description">%</a> }<br/></em> </body> + </div> </blockquote> </dd> % /* <% %> */ <dt> <a id="qr__inline" name="qr__inline" title="output expression"> <code><% <kbd>expression</kbd> %></code> </a> </dt> <dd> <p> << <kbd>expression</kbd> into output stream (think c++). </p> <blockquote class="qr_sample"> + <div> + Here is the way we count.<br/><br/> <a href="#qr__line" title="% description">%</a> for(int t=0;t<10;t++) {<br/> - Here is the way we count.<br/><br/> <em> Just saying out loud: <a href="#qr__inline" title="<% ... %> description"><%</a> t <a href="#qr__inline" title="<% ... %> description">%></a><br/><br/></em> <a href="#qr__line" title="% description">%</a> } + </div> </blockquote> </dd> % /* %code */ <dt> <a id="qr__code" name="qr__code" title="switching to code mode"> <code> <%code> <kbd>...</kbd> </%code> </code> </a> </dt> <dd> + <p> 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. </p> <blockquote class="qr_sample"> + <div> <body><br/> <em> <a href="#qr__code" title="<%code> descrption"><%code></a><br/></em> for(int t=0;t<10;t++) {<br/> <a href="#qr__output" title="<%output> descrption"><%output></a><br/> Here is the way we count.<br/><br/> Just saying out loud: <a href="#qr__inline" title="<% ... %> description"><%</a> t <a href="#qr__inline" title="<% ... %> description">%></a><br/><br/> <a href="#qr__output" title="<%output> descrption"></%output></a><br/> <em> <a href="#qr__code" title="<%code> descrption"></%code></a><br/></em> </body> + </div> </blockquote> </dd> % /* %codemethod */ <dt> <a id="qr__codemethod" name="qr__codemethod" title="member function definition"> <code> <%codemethod <kbd>return_type_t</kbd> <kbd>member_name</kbd>(<kbd>args,...</kbd>) %><br/> <kbd>code</kbd><br/> </%codemethod> </code> </a> </dt> <dd> <p> 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>. </p> <blockquote class="qr_sample"> + <div> <em><a href="#qr__codemethod" title="<%codemethod ... %> description"><%codemethod</a> std::string ua() <a href="#qr__codemethod" title="<%codemethod ... %> description">%></a><br/> return __CGI->get_meta("USER_AGENT");<br/> <a href="#qr__codemethod" title="<%codemethod ... %> description"></%codemethod></a><br/></em> The user agent is: <a href="#qr__inline" title="<% ... %> description"><%</a> ua() <a href="#qr__inline" title="<% ... %> description">%></a><br/> + </div> </blockquote> </dd> % /* %constructor */ <dt> <a id="qr__constructor" name="qr__constructor" title="constructor code"> <code> <%constructor><br/> <kbd>code</kbd><br/> </%constructor> </code> </a> </dt> <dd> <p> Provide the code for constructor. </p> <blockquote class="qr_sample"> + <div> <a href="#qr___var" title="%%var description">%%var</a> bool is_msie;<br/> <em><a href="#qr__constructor" title="<%constructor> description"><%constructor></a><br/> is_msie = (__CGI->get_meta("USER_AGENT").find("MSIE")!=string::npos);<br/> <a href="#qr__constructor" title="<%constructor> description"></%constructor></a><br/></em> + </div> </blockquote> </dd> % /* %decl / %%decl */ <dt> <a id="qr___decl" name="qr___decl" title="verbatim declaration"> <code>%%decl <kbd>line of code</kbd></code> </a> </dt> <dt> <a id="qr__decl" name="qr__decl" title="verbatim declaration"> <code> <%decl><br/> <kbd>lines of code</kbd><br/> </%decl> </code> </a> </dt> <dd> <p> Put the line(s) of code into the resulting <em>.h</em> file before the class declaration. </p> <blockquote class="qr_sample"> + <div> <em><a href="#qr___decl" title="%%decl description">%%decl</a> #include <string><br/></em> <a href="#qr___var" title="%%var description">%%var</a> std::string str = "default"<br/> <em><a href="#qr__decl" title="<%decl> description"><%decl></a><br/> typedef int integer_t;<br/> <a href="#qr__decl" title="<%decl> description"></%decl></a><br/></em> <a href="#qr__method" title="<%method ... %> description"><%method</a> void do_nothing(integer_t input) <a href="#qr__method" title="<%method ... %> description">%></a><br/> nothing is done<br/> <a href="#qr__method" title="<%method ... %> description"></%method></a> + </div> </blockquote> </dd> % /* %%derive */ <dt> <a id="qr___derive" name="qr___derive" title="base class(es) specification"> <code>%%derive <kbd>name</kbd> = "<kbd>base-component</kbd>";</code> </a> </dt> <dd> <p> Inherit what is there to be inherited from the base component specified. </p> <blockquote class="qr_sample"> + <div> <em><a href="#qr___derive" title="%%derive description">%%derive</a> pagelayout = "/ancestry/page_layout.chtml";<br/></em> <a href="#qr__line" title="% description">%</a> pagelayout::member_function(); + </div> </blockquote> </dd> % /* %destructor */ <dt> <a id="qr__destructor" name="qr__destructor" title="destructor code"> <code> <%destructor><br/> <kbd>code</kbd><br/> </%destructor> </code> </a> </dt> <dd> <p> Provide the code for destructor. </p> <blockquote class="qr_sample"> + <div> <a href="#qr___var" title="%%var description">%%var</a> type_t *tmp = 0;<br/> <a href="#qr__constructor" title="<%constructor> description"><%constructor></a><br/> tmp = new type_t(type_t::option_1);<br/> <a href="#qr__constructor" title="<%constructor> description"></%constructor></a><br/> <em><a href="#qr__destructor" title="<%destructor> description"><%destructor></a><br/> delete tmp;<br/> <a href="#qr__destructor" title="<%destructor> description"></%destructor></a><br/></em> + </div> </blockquote> </dd> % /* %impl / %%impl */ <dt> <a id="qr___impl" name="qr__impl" title="verbatim definition"> <code>%%impl <kbd>line of code</kbd></code> </a> </dt> <dt> <a id="qr__impl" name="qr__impl" title="verbatim definition"> <code> <%impl><br/> <kbd>lines of code</kbd><br/> </%impl> </code> </a> </dt> <dd> <p> Put the line(s) of code into the resulting <em>.cc</em> implementation file before any members definitions. </p> <blockquote class="qr_sample"> - <em><a href"#qr___impl" title="%%impl description">%%impl</a> #include <string.h><br/></em> + <div> + <em><a href="#qr___impl" title="%%impl description">%%impl</a> #include <string.h><br/></em> <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/> <a href="#qr__line" title="% description">%</a> if(strstr(haystack,needle)) {<br/> <a href="#qr__inline" title="<% ... %> description"><%</a> haystack <a href="#qr__inline" title="<% ... %> description">%></a><br/> <a href="#qr__line" title="% description">%</a> }<br/> <a href="#qr__method" title="<%method ... %> description"></%method></a><br/> <em><a href="#qr__impl" title="<%impl> description"><%impl></a><br/> #include <konforka/exception.h> static const char *tokens[] = {<br/> "token 1", "token 2", "token 3"<br/> };<br/> <a href="#qr__impl" title="<%impl> description"></%impl></a><br/></em> <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/> <a href="#qr__code" title="<%code> description"><%code></a><br/> if(toknum<0 || toknum>=(sizeof(tokens)/sizeof(*tokens)))<br/> throw konforka::exception(CODEPOINT,"out of bounds");<br/> <a href="#qr__code" title="<%code> description"></%code></a><br/> <a href="#qr__inline" title="<% ... %> description"><%</a> tokens[toknum] <a href="#qr__inline" title="<% ... %> description">%></a><br/> <a href="#qr__method" title="<%method ... %> description"></%method></a><br/> + </div> </blockquote> </dd> % /* %method */ <dt> <a id="qr__method" name="qr__method" title="member function definition"> <code> <%method <kbd>return_type_t</kbd> <kbd>member_name</kbd>(<kbd>args,...</kbd>) %><br/> <kbd>code</kbd><br/> </%method> </code> </a> </dt> <dd> <p> 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>. </p> <blockquote class="qr_sample"> + <div> <em><a href="#qr__method" title="<%method ... %> description"><%method</a> void emphasized(const char *t) <a href="#qr__method" title="<%method ... %> description">%></a><br/> <em><a href="#qr__inline" title="<% ... %> description"><%</a> t <a href="#qr__inline" title="<% ... %> description">%></a></em><br/> <a href="#qr__codemethod" title="<%codemethod ... %> description"></%method></a><br/></em> <a href="#qr__line" title="% description">%</a> emphasized("emphasized text"); + </div> </blockquote> </dd> % /* %output */ <dt> <a id="qr__output" name="qr__output" title="switching to output mode"> <code> <%output> <kbd>...</kbd> </%output> </code> </a> </dt> <dd> <p> 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. </p> <blockquote class="qr_sample"> + <div> <a href="#qr__codemethod" title="<%codemethod ... %> description"><%codemethod</a> void count() <a href="#qr__codemethod" title="<%codemethod ... > description">%></a><br/> for(int t=0;t<10;t++) {<br/> <em> <a href="#qr__output" title="<%output> descrption"><%output></a><br/> Here is the way we count.<br/><br/> Just saying out loud: <a href="#qr__inline" title="<% ... %> description"><%</a> t <a href="#qr__inline" title="<% ... %> description">%></a><br/><br/> <a href="#qr__output" title="<%output> descrption"></%output></a><br/></em> <a href="#qr__codemethod" title="</%codemethod ... %> description"></%codemethod></a><br/> <a href="#qr__line" title="% description">%</a> count(); + </div> </blockquote> </dd> % /* %%pragma */ <dt> <a id="qr___pragma" name="qr___pragma" title="pragma"> <code> %%pragma <kbd>pragma_name</kbd><br/> %%pragma <kbd>pragma_name</kbd>=<kbd>pragma_value</kbd> </code> </a> </dt> <dd> <p>provide pseudo instructions to the preprocessor. At this time only pragma named <code>main</code> is defined, which instructs preprocessor to discard the 'main' member that would be generated for the component and call the <code>main</code> member of the named base class.</p> <blockquote class="qr_sample"> + <div> <a href="#qr___derive" title="%%derive description">%%derive</a> pagelayout = "/ancestry/page_layout.chtml";<br/> <em><a href="#qr___pragma" title="%%pragma description">%%pragma</a> main=pagelayout</em> + </div> </blockquote> </dd> % /* %%var */ <dt> <a id="qr___var" name="qr___var" title="member variable declaration"> - <code>%%var <kbd>type_t</kbd> <kbd>varname</kbd>;<br/> - <code>%%var <kbd>type_t</kbd> <kbd>varname</kbd> = <kbd>initalizer</kbd>;<br/> + <code>%%var <kbd>type_t</kbd> <kbd>varname</kbd>;</code><br/> + <code>%%var <kbd>type_t</kbd> <kbd>varname</kbd> = <kbd>initalizer</kbd>;</code><br/> </a> </dt> <dd> <p> Define the member variable with optional default value (suitable for putting into the <code>: <kbd>varname</kbd>(<kbd>initializer</kbd>)</code> part of the c++ constructor. </p> <blockquote class="qr_sample"> + <div> <em><a href="#qr___var" title="%%var description">%%var</a> std::string strval = "default value";<br/> <a href="#qr___var" title="%%var description">%%var</a> int usecount = 0;<br/> <a href="#qr___var" title="%%var description">%%var</a> int whatnot;</em> + </div> </blockquote> </dd> </dl> </%method> diff --git a/htdocs/style.css b/htdocs/style.css index 96e4c59..28aa8df 100644 --- a/htdocs/style.css +++ b/htdocs/style.css @@ -153,104 +153,110 @@ div.source h1 { div.source ul { background: #80c0c0; margin: 0px; padding: 1px 0px; font-family: monospace; font-size: 80%; overflow: hidden; width:100%; } div.source li { list-style-type: none; white-space: nowrap; margin: 0px 0.5ex; } ul.sourcebrowser { font-size: 70%; } ul.sourcebrowser ul.dir { padding: 1px 0px 2px 1em; margin: 1px 0px 1px 0px; } ul.sourcebrowser li.dir { margin: 1px 0px 1px 0px; } ul.sourcebrowser li.file { list-style-type: none; white-space: nowrap; display: inline; } ul.sourcebrowser li.file a { border: 1px solid gray; padding: 1px 0.5ex; text-decoration: none; font-family: monospace; } ul.sourcebrowser li.file a:hover { background: gray; border: 1px solid black; color: white; } div.prevnext { margin: 1ex; } div.prevnext a { margin: 0.5ex 1em; padding: 0.2ex 0.5ex; display: block; width: 30%; border: solid 1px gray; color: black; text-decoration: none; } div.prevnext a.prevnext-prev { float: left; text-align: left; } div.prevnext a.prevnext-next { float: right; text-align: right; } div.prevnext a:hover { background: gray; border: black 1px solid; color: white; + text-decoration: none; } ul.quickref.toc { margin: 1em 20%; font-size: 90%; border: solid 1px gray; } dl.quickref { margin: 1ex 1em; + overflow: hidden; } dl.quickref dt { margin: 0.4ex; padding: 2px 0.5ex; background: #e0e0e0; display: compact; } dl.quickref dd { margin: 0px 0.4ex 0.4ex 10%; padding: 0px; - border: 1px solid grey; + border: 1px solid gray; + overflow: hidden; } dl.quickref code kbd { font-style: italic; color: #0000c0; } dl.quickref blockquote { background: #ffffc0; padding: 4px; border: dotted 1px gray; font-family: monospace; + font-size: 90%; + overflow: hidden; } dl.quickref blockquote em { display: block; font-family: inherit !important; font-size: inherit !important; font-weight: inherit !important; font-style: inherit !important; background: #ffc0c0; + overflow: hidden; } |