-rw-r--r-- | conf/httpd.conf.in | 2 | ||||
-rw-r--r-- | htdocs/ancestry/layout.chtml | 24 | ||||
-rw-r--r-- | htdocs/exceptions/compile.chtml | 2 | ||||
-rw-r--r-- | htdocs/exceptions/index.chtml | 4 | ||||
-rw-r--r-- | htdocs/exceptions/preprocess.chtml | 2 | ||||
-rw-r--r-- | htdocs/exceptions/runtime.chtml | 2 | ||||
-rw-r--r-- | htdocs/index.chtml | 3 | ||||
-rw-r--r-- | htdocs/simple.chtml | 2 | ||||
-rw-r--r-- | htdocs/sources.chtml | 1 | ||||
-rw-r--r-- | htdocs/style.css | 28 |
10 files changed, 69 insertions, 1 deletions
diff --git a/conf/httpd.conf.in b/conf/httpd.conf.in index 5910620..2184627 100644 --- a/conf/httpd.conf.in +++ b/conf/httpd.conf.in | |||
@@ -1,29 +1,29 @@ | |||
1 | FastCgiExternalServer @web_run_root@/fastcgi-bin/site-c-ing -socket @web_run_root@/run/sitecing-socket | 1 | FastCgiExternalServer @web_run_root@/fastcgi-bin/site-c-ing -socket @web_run_root@/run/sitecing-socket -flush |
2 | <VirtualHost *:80> | 2 | <VirtualHost *:80> |
3 | ServerName @v_hostname@ | 3 | ServerName @v_hostname@ |
4 | DocumentRoot @web_src_root@/htdocs | 4 | DocumentRoot @web_src_root@/htdocs |
5 | <Directory @web_src_root@/htdocs> | 5 | <Directory @web_src_root@/htdocs> |
6 | AllowOverride All | 6 | AllowOverride All |
7 | allow from all | 7 | allow from all |
8 | </Directory> | 8 | </Directory> |
9 | <DirectoryMatch /.svn/> | 9 | <DirectoryMatch /.svn/> |
10 | deny from all | 10 | deny from all |
11 | </DirectoryMatch> | 11 | </DirectoryMatch> |
12 | <Files .*> | 12 | <Files .*> |
13 | deny from all | 13 | deny from all |
14 | </Files> | 14 | </Files> |
15 | <Files Makefile*> | 15 | <Files Makefile*> |
16 | deny from all | 16 | deny from all |
17 | </Files> | 17 | </Files> |
18 | CustomLog @web_run_root@/logs/access.log combined | 18 | CustomLog @web_run_root@/logs/access.log combined |
19 | ErrorLog @web_run_root@/logs/error.log | 19 | ErrorLog @web_run_root@/logs/error.log |
20 | LogLevel error | 20 | LogLevel error |
21 | Alias /fastcgi-bin/ @web_run_root@/fastcgi-bin/ | 21 | Alias /fastcgi-bin/ @web_run_root@/fastcgi-bin/ |
22 | <Directory @web_run_root@/fastcgi-bin/> | 22 | <Directory @web_run_root@/fastcgi-bin/> |
23 | allow from all | 23 | allow from all |
24 | </Directory> | 24 | </Directory> |
25 | DefaultLanguage en | 25 | DefaultLanguage en |
26 | Action site-c-ing /fastcgi-bin/site-c-ing | 26 | Action site-c-ing /fastcgi-bin/site-c-ing |
27 | AddHandler site-c-ing .chtml | 27 | AddHandler site-c-ing .chtml |
28 | DirectoryIndex index | 28 | DirectoryIndex index |
29 | </VirtualHost> | 29 | </VirtualHost> |
diff --git a/htdocs/ancestry/layout.chtml b/htdocs/ancestry/layout.chtml index 6147d37..0c167bc 100644 --- a/htdocs/ancestry/layout.chtml +++ b/htdocs/ancestry/layout.chtml | |||
@@ -1,45 +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> | ||
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; | ||
6 | </%decl> | ||
7 | %%impl #include <sitecing/util.h> | ||
3 | %%impl #include "acconfig.h" | 8 | %%impl #include "acconfig.h" |
4 | %%var bool b_svn = false; | 9 | %%var bool b_svn = false; |
10 | %%var std::string urlPrev; | ||
11 | %%var std::string descPrev; | ||
12 | %%var std::string titlePrev; | ||
13 | %%var std::string urlNext; | ||
14 | %%var std::string descNext; | ||
15 | %%var std::string titleNext; | ||
5 | <%constructor> | 16 | <%constructor> |
6 | if(strstr(PACKAGE_STRING,"svn")) | 17 | if(strstr(PACKAGE_STRING,"svn")) |
7 | b_svn = true; | 18 | b_svn = true; |
8 | </%constructor> | 19 | </%constructor> |
20 | <%method void prevnext() %> | ||
21 | % if(urlPrev.empty() && urlNext.empty()) return; | ||
22 | % if(descPrev.empty() && descNext.empty()) return; | ||
23 | <div class="prevnext"> | ||
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> | ||
26 | % } | ||
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> | ||
29 | % } | ||
30 | </div> | ||
31 | </%method> | ||
9 | <%method void body() %> | 32 | <%method void body() %> |
10 | <div id="content"> | 33 | <div id="content"> |
11 | <%code> | 34 | <%code> |
12 | if(!access(WEB_RUN_ROOT "/conf/banner_top",R_OK)) { | 35 | if(!access(WEB_RUN_ROOT "/conf/banner_top",R_OK)) { |
13 | pass_file_through(WEB_RUN_ROOT "/conf/banner_top"); | 36 | pass_file_through(WEB_RUN_ROOT "/conf/banner_top"); |
14 | } | 37 | } |
38 | prevnext(); | ||
15 | content(); | 39 | content(); |
16 | 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)) { |
17 | pass_file_through(WEB_RUN_ROOT "/conf/banner_bottom"); | 41 | pass_file_through(WEB_RUN_ROOT "/conf/banner_bottom"); |
18 | } | 42 | } |
19 | </%code> | 43 | </%code> |
20 | </div> | 44 | </div> |
21 | <div id="sidepanel"> | 45 | <div id="sidepanel"> |
22 | % sidepanel(); | 46 | % sidepanel(); |
23 | </div> | 47 | </div> |
24 | </%method> | 48 | </%method> |
25 | <%method void content() %> | 49 | <%method void content() %> |
26 | </%method> | 50 | </%method> |
27 | <%method void sidepanel() %> | 51 | <%method void sidepanel() %> |
28 | <h1><% PACKAGE_STRING %></h1> | 52 | <h1><% PACKAGE_STRING %></h1> |
29 | % if(b_svn) { | 53 | % if(b_svn) { |
30 | <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 |
31 | 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 |
32 | href="http://kin.klever.net/sitecing/repository">source repository</a>.</h2> | 56 | href="http://kin.klever.net/sitecing/repository">source repository</a>.</h2> |
33 | % } | 57 | % } |
34 | % /* thank MSIE for this awful formatting */ | 58 | % /* thank MSIE for this awful formatting */ |
35 | <ul><li><a href="/" title="introduction to site-C-ing">overview</a><ul><li><a href="/simple" title="building a really simple page">simple page</a></li></ul></li><li><a href="/exceptions/" title="exceptions handling">exceptions</a><ul><li><a href="/exceptions/preprocess" title="preprocessor errors">preprocess</a></li><li><a href="/exceptions/compile" title="compiler errors">compile-time</a></li><li><a href="/exceptions/runtime" title="runtime exceptions">runtime</a></li></ul></li><li><a href="/sources" title="browse this site source files">sources</a></li></ul> | 59 | <ul><li><a href="/" title="introduction to site-C-ing">overview</a><ul><li><a href="/simple" title="building a really simple page">simple page</a></li></ul></li><li><a href="/exceptions/" title="exceptions handling">exceptions</a><ul><li><a href="/exceptions/preprocess" title="preprocessor errors">preprocess</a></li><li><a href="/exceptions/compile" title="compiler errors">compile-time</a></li><li><a href="/exceptions/runtime" title="runtime exceptions">runtime</a></li></ul></li><li><a href="/sources" title="browse this site source files">sources</a></li></ul> |
36 | <%code> | 60 | <%code> |
37 | if(!access(WEB_RUN_ROOT "/conf/banner_side",R_OK)) { | 61 | if(!access(WEB_RUN_ROOT "/conf/banner_side",R_OK)) { |
38 | pass_file_through(WEB_RUN_ROOT "/conf/banner_side"); | 62 | pass_file_through(WEB_RUN_ROOT "/conf/banner_side"); |
39 | } | 63 | } |
40 | </%code> | 64 | </%code> |
41 | <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> |
42 | <div class="copyright"> | 66 | <div class="copyright"> |
43 | © <a href="http://www.klever.net/">Klever Group</a> | 67 | © <a href="http://www.klever.net/">Klever Group</a> |
44 | </div> | 68 | </div> |
45 | </%method> | 69 | </%method> |
diff --git a/htdocs/exceptions/compile.chtml b/htdocs/exceptions/compile.chtml index aa4c8df..68dd034 100644 --- a/htdocs/exceptions/compile.chtml +++ b/htdocs/exceptions/compile.chtml | |||
@@ -1,50 +1,52 @@ | |||
1 | % html(); return; /* vim:set ft=sitecing: */ | 1 | % html(); return; /* vim:set ft=sitecing: */ |
2 | %%derive layout = "/ancestry/layout.chtml"; | 2 | %%derive layout = "/ancestry/layout.chtml"; |
3 | <%constructor> | 3 | <%constructor> |
4 | b_strict = false; | 4 | b_strict = false; |
5 | PN_PREV("/exceptions/preprocess","preprocess","preprocessing errors"); | ||
6 | PN_NEXT("/exceptions/runtime","runtime","runtime exceptions"); | ||
5 | </%constructor> | 7 | </%constructor> |
6 | <%codemethod string title() %> | 8 | <%codemethod string title() %> |
7 | return "compile-time exceptions handling"; | 9 | return "compile-time exceptions handling"; |
8 | </%codemethod> | 10 | </%codemethod> |
9 | <%method void content() %> | 11 | <%method void content() %> |
10 | <h1>site-C-ing compile-time exception handling</h1> | 12 | <h1>site-C-ing compile-time exception handling</h1> |
11 | <p> | 13 | <p> |
12 | Similar to <a href="/exceptions/preprocess">preprocessing exceptions</a> | 14 | Similar to <a href="/exceptions/preprocess">preprocessing exceptions</a> |
13 | there is a wide range of errors you may put into your code which will pass | 15 | there is a wide range of errors you may put into your code which will pass |
14 | through preprocessor and will be caught later at the compile-time. | 16 | through preprocessor and will be caught later at the compile-time. |
15 | </p> | 17 | </p> |
16 | <p> | 18 | <p> |
17 | Once you complete writing your <a | 19 | Once you complete writing your <a |
18 | href="/view/htdocs/exceptions/development/compile.chtml" target="insert" | 20 | href="/view/htdocs/exceptions/development/compile.chtml" target="insert" |
19 | title="the link opens in the frame below">erroneous code</a> and | 21 | title="the link opens in the frame below">erroneous code</a> and |
20 | <em>site-C-ing</em> is done preprocessing it, it will feed the preprocessed | 22 | <em>site-C-ing</em> is done preprocessing it, it will feed the preprocessed |
21 | code into c++ compiler which will refuse to compile the code like this. This | 23 | code into c++ compiler which will refuse to compile the code like this. This |
22 | is where <a href="/view/htdocs/handlers/exception_dev" target="insert" | 24 | is where <a href="/view/htdocs/handlers/exception_dev" target="insert" |
23 | title="the link opens in the frame below">the exception handler</a>, | 25 | title="the link opens in the frame below">the exception handler</a>, |
24 | specified in <a href="/view/htdocs/exceptions/development/.scrc" | 26 | specified in <a href="/view/htdocs/exceptions/development/.scrc" |
25 | target="insert" title="the link opens in the frame below">the configuration | 27 | target="insert" title="the link opens in the frame below">the configuration |
26 | file</a>, takes over the process and gives you <a | 28 | file</a>, takes over the process and gives you <a |
27 | href="/exceptions/development/compile" target="insert" title="the link opens | 29 | href="/exceptions/development/compile" target="insert" title="the link opens |
28 | in the frame below">the report</a>. Like with any handler, you may wish to | 30 | in the frame below">the report</a>. Like with any handler, you may wish to |
29 | set some <a href="/view/htdocs/handlers/exception_prod" target="insert" | 31 | set some <a href="/view/htdocs/handlers/exception_prod" target="insert" |
30 | title="the link opens in the frame below">different handler</a> in your <a | 32 | title="the link opens in the frame below">different handler</a> in your <a |
31 | href="/view/htdocs/exceptions/production/.scrc" target="insert" title="the | 33 | href="/view/htdocs/exceptions/production/.scrc" target="insert" title="the |
32 | link opens in the frame below">production configuration</a>, which just gives | 34 | link opens in the frame below">production configuration</a>, which just gives |
33 | user <a href="/exceptions/production/preprocess" target="insert" title="the | 35 | user <a href="/exceptions/production/preprocess" target="insert" title="the |
34 | link opens in the frame below">a friendly yet lame excuse</a>. | 36 | link opens in the frame below">a friendly yet lame excuse</a>. |
35 | </p> | 37 | </p> |
36 | <p class="note"> | 38 | <p class="note"> |
37 | Note, that these output pages are fakes -- I do not want to spawn the | 39 | Note, that these output pages are fakes -- I do not want to spawn the |
38 | compiler each time you want to see the output and put this unnecessary load | 40 | compiler each time you want to see the output and put this unnecessary load |
39 | on cpu. These static pages are in fact saved output of the real exception | 41 | on cpu. These static pages are in fact saved output of the real exception |
40 | handlers. | 42 | handlers. |
41 | </p> | 43 | </p> |
42 | 44 | ||
43 | <div class="insert"> | 45 | <div class="insert"> |
44 | <iframe id="insert" name="insert" src="about:blank" width="95%" height="300"> | 46 | <iframe id="insert" name="insert" src="about:blank" width="95%" height="300"> |
45 | <p>I wanted to put an <iframe> here, but your browser does not seem to | 47 | <p>I wanted to put an <iframe> here, but your browser does not seem to |
46 | support it. That is okay, it still will open links somehow.</p> | 48 | support it. That is okay, it still will open links somehow.</p> |
47 | </iframe> | 49 | </iframe> |
48 | </div> | 50 | </div> |
49 | 51 | ||
50 | </%method> | 52 | </%method> |
diff --git a/htdocs/exceptions/index.chtml b/htdocs/exceptions/index.chtml index cc0ed8a..e66620a 100644 --- a/htdocs/exceptions/index.chtml +++ b/htdocs/exceptions/index.chtml | |||
@@ -1,52 +1,56 @@ | |||
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> | ||
4 | PN_PREV("/simple","simple page","building a really simple page"); | ||
5 | PN_NEXT("/exceptions/preprocess","preprocess","preprocessing errors"); | ||
6 | </%constructor> | ||
3 | <%codemethod string title() %> | 7 | <%codemethod string title() %> |
4 | return "exceptions handling"; | 8 | return "exceptions handling"; |
5 | </%codemethod> | 9 | </%codemethod> |
6 | <%method void content() %> | 10 | <%method void content() %> |
7 | <h1>site-C-ing exception handling</h1> | 11 | <h1>site-C-ing exception handling</h1> |
8 | <p> | 12 | <p> |
9 | The purpose of this section is to give an overview of the <em>site-C-ing</em> | 13 | The purpose of this section is to give an overview of the <em>site-C-ing</em> |
10 | exception handling mechanism. Before the web visitor can see the page each | 14 | exception handling mechanism. Before the web visitor can see the page each |
11 | site-C-ing component goes through a few stages, namely, preprocessing, | 15 | site-C-ing component goes through a few stages, namely, preprocessing, |
12 | compiling and execution. Having three stages to go through also means the | 16 | compiling and execution. Having three stages to go through also means the |
13 | stages one can fail to go through and three exciting opportunities to handle | 17 | stages one can fail to go through and three exciting opportunities to handle |
14 | different errors. | 18 | different errors. |
15 | </p> | 19 | </p> |
16 | <p> | 20 | <p> |
17 | First each component is preprocessed so that you can feed the valid c++ code | 21 | First each component is preprocessed so that you can feed the valid c++ code |
18 | to the compiler. Here is where the preprocessor can choke at your broken | 22 | to the compiler. Here is where the preprocessor can choke at your broken |
19 | source code. Once preprocessor failes to parse your code it will throw an | 23 | source code. Once preprocessor failes to parse your code it will throw an |
20 | exception which <em>site-C-ing</em> will catch and pass to <a | 24 | exception which <em>site-C-ing</em> will catch and pass to <a |
21 | href="/sources/htdocs/handlers/exception_dev" title="development mode | 25 | href="/sources/htdocs/handlers/exception_dev" title="development mode |
22 | exception handler source">the exception handler component</a>. Want to <a | 26 | exception handler source">the exception handler component</a>. Want to <a |
23 | href="/exceptions/preprocess">read more</a> about preprocessor exception | 27 | href="/exceptions/preprocess">read more</a> about preprocessor exception |
24 | handling? | 28 | handling? |
25 | </p> | 29 | </p> |
26 | <p> | 30 | <p> |
27 | After the preprocessing stage is over we have a great opportunity to catch | 31 | After the preprocessing stage is over we have a great opportunity to catch |
28 | the compile-time errors. After <em>site-C-ing</em> fails to compile the | 32 | the compile-time errors. After <em>site-C-ing</em> fails to compile the |
29 | component it throws another exception and passes it to the same handler which | 33 | component it throws another exception and passes it to the same handler which |
30 | may show you some information on what's gone wrong with your source code from | 34 | may show you some information on what's gone wrong with your source code from |
31 | the compiler's perspective. If you've gone this far you definitely want to <a | 35 | the compiler's perspective. If you've gone this far you definitely want to <a |
32 | href="/exceptions/compile">read more</a> about the compiler error handling. | 36 | href="/exceptions/compile">read more</a> about the compiler error handling. |
33 | </p> | 37 | </p> |
34 | <p class="note"> | 38 | <p class="note"> |
35 | Note, that it is likely that you will want to disable the steps above for the | 39 | Note, that it is likely that you will want to disable the steps above for the |
36 | production environment to save time on unnecessary checking whether the | 40 | production environment to save time on unnecessary checking whether the |
37 | component is up to date. | 41 | component is up to date. |
38 | </p> | 42 | </p> |
39 | <p> | 43 | <p> |
40 | Finally, we need to execute the component and present its output to the web | 44 | Finally, we need to execute the component and present its output to the web |
41 | site visitor. This is also where things may go wrong and here is where your | 45 | site visitor. This is also where things may go wrong and here is where your |
42 | component may throw an exception for the engine to catch and pass to the | 46 | component may throw an exception for the engine to catch and pass to the |
43 | handler. Feel free to <a href="/exceptions/runtime">learn more</a> about it | 47 | handler. Feel free to <a href="/exceptions/runtime">learn more</a> about it |
44 | as well. | 48 | as well. |
45 | </p> | 49 | </p> |
46 | <p class="note"> | 50 | <p class="note"> |
47 | One more thing you will likely want to have differently in production | 51 | One more thing you will likely want to have differently in production |
48 | environment is <a href="/sources/htdocs/handlers/exception_prod" | 52 | environment is <a href="/sources/htdocs/handlers/exception_prod" |
49 | title="production mode exception handler source">an exception handler</a> | 53 | title="production mode exception handler source">an exception handler</a> |
50 | which will not give out that much unnecessary information to the user. | 54 | which will not give out that much unnecessary information to the user. |
51 | </p> | 55 | </p> |
52 | </%method> | 56 | </%method> |
diff --git a/htdocs/exceptions/preprocess.chtml b/htdocs/exceptions/preprocess.chtml index 8516139..88b8741 100644 --- a/htdocs/exceptions/preprocess.chtml +++ b/htdocs/exceptions/preprocess.chtml | |||
@@ -1,46 +1,48 @@ | |||
1 | % html(); return; /* vim:set ft=sitecing: */ | 1 | % html(); return; /* vim:set ft=sitecing: */ |
2 | %%derive layout = "/ancestry/layout.chtml"; | 2 | %%derive layout = "/ancestry/layout.chtml"; |
3 | <%constructor> | 3 | <%constructor> |
4 | b_strict = false; | 4 | b_strict = false; |
5 | PN_PREV("/exceptions","exceptions","exception handling overview"); | ||
6 | PN_NEXT("/exceptions/compile","compile-time","compile-time errors"); | ||
5 | </%constructor> | 7 | </%constructor> |
6 | <%codemethod string title() %> | 8 | <%codemethod string title() %> |
7 | return "preprocessor exceptions handling"; | 9 | return "preprocessor exceptions handling"; |
8 | </%codemethod> | 10 | </%codemethod> |
9 | <%method void content() %> | 11 | <%method void content() %> |
10 | <h1>site-C-ing preprocessor exception handling</h1> | 12 | <h1>site-C-ing preprocessor exception handling</h1> |
11 | <p> | 13 | <p> |
12 | It was one of those days when you just can't type right and can't think of | 14 | It was one of those days when you just can't type right and can't think of |
13 | what you're typing. It is not unusual that, under such circumstances, you end | 15 | what you're typing. It is not unusual that, under such circumstances, you end |
14 | up with a code like <a | 16 | up with a code like <a |
15 | href="/view/htdocs/exceptions/development/preprocess.chtml" target="insert" | 17 | href="/view/htdocs/exceptions/development/preprocess.chtml" target="insert" |
16 | title="the link opens in the frame below">this</a> -- by the time you were | 18 | title="the link opens in the frame below">this</a> -- by the time you were |
17 | about to close your <code><%code></code> block you were thinking about | 19 | about to close your <code><%code></code> block you were thinking about |
18 | some constructor in some component elsewhere in the universe. | 20 | some constructor in some component elsewhere in the universe. |
19 | </p> | 21 | </p> |
20 | <p> | 22 | <p> |
21 | <em>site-C-ing</em> parser will see the inconsistency and throw an exception | 23 | <em>site-C-ing</em> parser will see the inconsistency and throw an exception |
22 | which will be caught and passed to <a | 24 | which will be caught and passed to <a |
23 | href="/view/htdocs/handlers/exception_dev" target="insert" title="the link | 25 | href="/view/htdocs/handlers/exception_dev" target="insert" title="the link |
24 | opens in the frame below">the handler</a>, specified in <a | 26 | opens in the frame below">the handler</a>, specified in <a |
25 | href="/view/htdocs/exceptions/development/.scrc" target="insert" title="the | 27 | href="/view/htdocs/exceptions/development/.scrc" target="insert" title="the |
26 | link opens in the frame below">the configuration file</a>, which will produce | 28 | link opens in the frame below">the configuration file</a>, which will produce |
27 | some nice, human-readable <a href="/exceptions/development/preprocess" | 29 | some nice, human-readable <a href="/exceptions/development/preprocess" |
28 | target="insert" title="the link opens in the frame below">output</a>. Well, | 30 | target="insert" title="the link opens in the frame below">output</a>. Well, |
29 | you may not wish to give out all this information in the production | 31 | you may not wish to give out all this information in the production |
30 | environment, so you just put in your <a | 32 | environment, so you just put in your <a |
31 | href="/view/htdocs/exceptions/production/.scrc" target="insert" title="the | 33 | href="/view/htdocs/exceptions/production/.scrc" target="insert" title="the |
32 | link opens in the frame below">configuration file</a> some <a | 34 | link opens in the frame below">configuration file</a> some <a |
33 | href="/view/htdocs/handlers/exception_prod" target="insert" title="the link | 35 | href="/view/htdocs/handlers/exception_prod" target="insert" title="the link |
34 | opens in the frame below">different handler</a>, which just gives user <a | 36 | opens in the frame below">different handler</a>, which just gives user <a |
35 | href="/exceptions/production/preprocess" target="insert" title="the link | 37 | href="/exceptions/production/preprocess" target="insert" title="the link |
36 | opens in the frame below">a friendly yet lame excuse</a>. | 38 | opens in the frame below">a friendly yet lame excuse</a>. |
37 | </p> | 39 | </p> |
38 | 40 | ||
39 | <div class="insert"> | 41 | <div class="insert"> |
40 | <iframe id="insert" name="insert" src="about:blank" width="95%" height="300"> | 42 | <iframe id="insert" name="insert" src="about:blank" width="95%" height="300"> |
41 | <p>I wanted to put an <iframe> here, but your browser does not seem to | 43 | <p>I wanted to put an <iframe> here, but your browser does not seem to |
42 | support it. That is okay, it still will open links somehow.</p> | 44 | support it. That is okay, it still will open links somehow.</p> |
43 | </iframe> | 45 | </iframe> |
44 | </div> | 46 | </div> |
45 | 47 | ||
46 | </%method> | 48 | </%method> |
diff --git a/htdocs/exceptions/runtime.chtml b/htdocs/exceptions/runtime.chtml index d0a8e14..9a72afd 100644 --- a/htdocs/exceptions/runtime.chtml +++ b/htdocs/exceptions/runtime.chtml | |||
@@ -1,47 +1,49 @@ | |||
1 | % html(); return; /* vim:set ft=sitecing: */ | 1 | % html(); return; /* vim:set ft=sitecing: */ |
2 | %%derive layout = "/ancestry/layout.chtml"; | 2 | %%derive layout = "/ancestry/layout.chtml"; |
3 | <%constructor> | 3 | <%constructor> |
4 | b_strict = false; | 4 | b_strict = false; |
5 | PN_PREV("/exceptions/compile","compile-time","compile-time errors"); | ||
6 | PN_NEXT("/sources","sources","source browser"); | ||
5 | </%constructor> | 7 | </%constructor> |
6 | <%codemethod string title() %> | 8 | <%codemethod string title() %> |
7 | return "runtime exceptions handling"; | 9 | return "runtime exceptions handling"; |
8 | </%codemethod> | 10 | </%codemethod> |
9 | <%method void content() %> | 11 | <%method void content() %> |
10 | <h1>site-C-ing runtime exception handling</h1> | 12 | <h1>site-C-ing runtime exception handling</h1> |
11 | <p> | 13 | <p> |
12 | The component may throw an exception while executing and the | 14 | The component may throw an exception while executing and the |
13 | <em>site-C-ing</em> will gladly pass it to the handler component which will | 15 | <em>site-C-ing</em> will gladly pass it to the handler component which will |
14 | give the user appropriate output (unless it throws an exception itself, of | 16 | give the user appropriate output (unless it throws an exception itself, of |
15 | course). Here you will see an example output provided by the handler bundled | 17 | course). Here you will see an example output provided by the handler bundled |
16 | with the <em>site-C-ing</em>. | 18 | with the <em>site-C-ing</em>. |
17 | </p> | 19 | </p> |
18 | 20 | ||
19 | <p> | 21 | <p> |
20 | Suppose you have <a href="/view/htdocs/exceptions/development/runtime.chtml" | 22 | Suppose you have <a href="/view/htdocs/exceptions/development/runtime.chtml" |
21 | target="insert" title="the link opens in the frame below">a component</a>, | 23 | target="insert" title="the link opens in the frame below">a component</a>, |
22 | which at some point throws an exception. Of course, <em>site-C-ing</em> will | 24 | which at some point throws an exception. Of course, <em>site-C-ing</em> will |
23 | catch the exception and pass it to <a | 25 | catch the exception and pass it to <a |
24 | href="/view/htdocs/handlers/exception_dev" target="insert" title="the link | 26 | href="/view/htdocs/handlers/exception_dev" target="insert" title="the link |
25 | opens in the frame below">the handler</a>, specified in <a | 27 | opens in the frame below">the handler</a>, specified in <a |
26 | href="/view/htdocs/exceptions/development/.scrc" target="insert" title="the | 28 | href="/view/htdocs/exceptions/development/.scrc" target="insert" title="the |
27 | link opens in the frame below">the configuration file</a>, which will produce | 29 | link opens in the frame below">the configuration file</a>, which will produce |
28 | some nice, human-readable <a href="/exceptions/development/runtime" | 30 | some nice, human-readable <a href="/exceptions/development/runtime" |
29 | target="insert" title="the link opens in the frame below">output</a>. Well, | 31 | target="insert" title="the link opens in the frame below">output</a>. Well, |
30 | you may not wish to give out all this information in the production | 32 | you may not wish to give out all this information in the production |
31 | environment, so you just put in your <a | 33 | environment, so you just put in your <a |
32 | href="/view/htdocs/exceptions/production/.scrc" target="insert" title="the | 34 | href="/view/htdocs/exceptions/production/.scrc" target="insert" title="the |
33 | link opens in the frame below">configuration file</a> some <a | 35 | link opens in the frame below">configuration file</a> some <a |
34 | href="/view/htdocs/handlers/exception_prod" target="insert" title="the link | 36 | href="/view/htdocs/handlers/exception_prod" target="insert" title="the link |
35 | opens in the frame below">different handler</a>, which just gives user <a | 37 | opens in the frame below">different handler</a>, which just gives user <a |
36 | href="/exceptions/production/runtime" target="insert" title="the link opens | 38 | href="/exceptions/production/runtime" target="insert" title="the link opens |
37 | in the frame below">a friendly yet lame excuse</a>. | 39 | in the frame below">a friendly yet lame excuse</a>. |
38 | </p> | 40 | </p> |
39 | 41 | ||
40 | <div class="insert"> | 42 | <div class="insert"> |
41 | <iframe id="insert" name="insert" src="about:blank" width="95%" height="300"> | 43 | <iframe id="insert" name="insert" src="about:blank" width="95%" height="300"> |
42 | <p>I wanted to put an <iframe> here, but your browser does not seem to | 44 | <p>I wanted to put an <iframe> here, but your browser does not seem to |
43 | support it. That is okay, it still will open links somehow.</p> | 45 | support it. That is okay, it still will open links somehow.</p> |
44 | </iframe> | 46 | </iframe> |
45 | </div> | 47 | </div> |
46 | 48 | ||
47 | </%method> | 49 | </%method> |
diff --git a/htdocs/index.chtml b/htdocs/index.chtml index aa0979a..e8cedda 100644 --- a/htdocs/index.chtml +++ b/htdocs/index.chtml | |||
@@ -1,46 +1,49 @@ | |||
1 | % html(); return; /* vim:set ft=sitecing: */ | 1 | % html(); return; /* vim:set ft=sitecing: */ |
2 | %%derive layout = "/ancestry/layout.chtml"; | 2 | %%derive layout = "/ancestry/layout.chtml"; |
3 | <%constructor> | ||
4 | PN_NEXT("/simple","simple page","building a really simple page"); | ||
5 | </%constructor> | ||
3 | <%codemethod string title() %> | 6 | <%codemethod string title() %> |
4 | return "introduction"; | 7 | return "introduction"; |
5 | </%codemethod> | 8 | </%codemethod> |
6 | <%method void content() %> | 9 | <%method void content() %> |
7 | <h1>introduction to site-C-ing</h1> | 10 | <h1>introduction to site-C-ing</h1> |
8 | <p> | 11 | <p> |
9 | 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> |
10 | 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 |
11 | 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 |
12 | 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. |
13 | </p> | 16 | </p> |
14 | <p> | 17 | <p> |
15 | Once you download and install <a | 18 | Once you download and install <a |
16 | 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 |
17 | this sample site for yourself. The source is available from <a | 20 | this sample site for yourself. The source is available from <a |
18 | 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 |
19 | 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 |
20 | 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 |
21 | 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 |
22 | the apache virtual host. | 25 | the apache virtual host. |
23 | </p> | 26 | </p> |
24 | <p> | 27 | <p> |
25 | The configure script will generate the apache vhost configuration for you, | 28 | The configure script will generate the apache vhost configuration for you, |
26 | 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. |
27 | </p> | 30 | </p> |
28 | <p class="note"> | 31 | <p class="note"> |
29 | 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 |
30 | 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 |
31 | 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 |
32 | 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 |
33 | will need <a href="http://fastcgi.com/">mod_fastcgi</a> apache module, which | 36 | will need <a href="http://fastcgi.com/">mod_fastcgi</a> apache module, which |
34 | is the only CGI-interface supported by the <em>site-C-ing</em> engine at the | 37 | is the only CGI-interface supported by the <em>site-C-ing</em> engine at the |
35 | moment. | 38 | moment. |
36 | </p> | 39 | </p> |
37 | <p> | 40 | <p> |
38 | Once you get it all done you will want to restart your apache and start the | 41 | Once you get it all done you will want to restart your apache and start the |
39 | <em>site-C-ing</em> fastcgi server by issuing the <code>make restart</code> | 42 | <em>site-C-ing</em> fastcgi server by issuing the <code>make restart</code> |
40 | command. | 43 | command. |
41 | </p> | 44 | </p> |
42 | <p> | 45 | <p> |
43 | Before you download it, you may wish to <a href="/sources" title="source | 46 | Before you download it, you may wish to <a href="/sources" title="source |
44 | browser">examine the sources</a> to learn more about how it is done. | 47 | browser">examine the sources</a> to learn more about how it is done. |
45 | </p> | 48 | </p> |
46 | </%method> | 49 | </%method> |
diff --git a/htdocs/simple.chtml b/htdocs/simple.chtml index 9900f00..845b840 100644 --- a/htdocs/simple.chtml +++ b/htdocs/simple.chtml | |||
@@ -1,31 +1,33 @@ | |||
1 | % html(); return; /* vim:set ft=sitecing: */ | 1 | % html(); return; /* vim:set ft=sitecing: */ |
2 | %%derive layout = "/ancestry/layout.chtml"; | 2 | %%derive layout = "/ancestry/layout.chtml"; |
3 | <%constructor> | 3 | <%constructor> |
4 | b_strict = false; | 4 | b_strict = false; |
5 | PN_PREV("/","overview","introduction to site-C-ing"); | ||
6 | PN_NEXT("/exceptions","exceptions","exception handling overview"); | ||
5 | </%constructor> | 7 | </%constructor> |
6 | <%codemethod string title() %> | 8 | <%codemethod string title() %> |
7 | return "simple page"; | 9 | return "simple page"; |
8 | </%codemethod> | 10 | </%codemethod> |
9 | <%method void content() %> | 11 | <%method void content() %> |
10 | <h1>building a really simple page</h1> | 12 | <h1>building a really simple page</h1> |
11 | <p> | 13 | <p> |
12 | Building a really simple page is really simple. I will not go into much detail | 14 | Building a really simple page is really simple. I will not go into much detail |
13 | here. The example provided should speak for itself. | 15 | here. The example provided should speak for itself. |
14 | </p> | 16 | </p> |
15 | <p> | 17 | <p> |
16 | The component being written doesn't do much but show you the calendar for the | 18 | The component being written doesn't do much but show you the calendar for the |
17 | current month. First, take a look at <a | 19 | current month. First, take a look at <a |
18 | href="/view/htdocs/examples/calendar.chtml" title="the link opens in the frame | 20 | href="/view/htdocs/examples/calendar.chtml" title="the link opens in the frame |
19 | below" target="insert">the code</a> and, after you examined it, feel free to check out | 21 | below" target="insert">the code</a> and, after you examined it, feel free to check out |
20 | <a href="/examples/calendar" title="the link opens in the frame below" | 22 | <a href="/examples/calendar" title="the link opens in the frame below" |
21 | target="insert">the output</a>. | 23 | target="insert">the output</a>. |
22 | </p> | 24 | </p> |
23 | 25 | ||
24 | <div class="insert"> | 26 | <div class="insert"> |
25 | <iframe id="insert" name="insert" src="about:blank" width="95%" height="300"> | 27 | <iframe id="insert" name="insert" src="about:blank" width="95%" height="300"> |
26 | <p>I wanted to put an <iframe> here, but your browser does not seem to | 28 | <p>I wanted to put an <iframe> here, but your browser does not seem to |
27 | support it. That is okay, it still will open links somehow.</p> | 29 | support it. That is okay, it still will open links somehow.</p> |
28 | </iframe> | 30 | </iframe> |
29 | </div> | 31 | </div> |
30 | 32 | ||
31 | </%method> | 33 | </%method> |
diff --git a/htdocs/sources.chtml b/htdocs/sources.chtml index b1eeed3..6341f49 100644 --- a/htdocs/sources.chtml +++ b/htdocs/sources.chtml | |||
@@ -1,47 +1,48 @@ | |||
1 | % html(); return; /* vim:set ft=sitecing: */ | 1 | % html(); return; /* vim:set ft=sitecing: */ |
2 | %%derive layout = "/ancestry/layout.chtml"; | 2 | %%derive layout = "/ancestry/layout.chtml"; |
3 | %%derive sources = "/ancestry/sources.chtml"; | 3 | %%derive sources = "/ancestry/sources.chtml"; |
4 | <%impl> | 4 | <%impl> |
5 | #include <sitecing/sitecing_util.h> | 5 | #include <sitecing/sitecing_util.h> |
6 | </%impl> | 6 | </%impl> |
7 | <%constructor> | 7 | <%constructor> |
8 | b_strict = false; | 8 | b_strict = false; |
9 | PN_PREV("/exceptions/runtime","runtime","runtime exceptions"); | ||
9 | </%constructor> | 10 | </%constructor> |
10 | <%codemethod string title() %> | 11 | <%codemethod string title() %> |
11 | return "runtime exceptions handling"; | 12 | return "runtime exceptions handling"; |
12 | </%codemethod> | 13 | </%codemethod> |
13 | <%method void content() %> | 14 | <%method void content() %> |
14 | <h1>browse this site sources</h1> | 15 | <h1>browse this site sources</h1> |
15 | 16 | ||
16 | <ul class="sourcebrowser"> | 17 | <ul class="sourcebrowser"> |
17 | % for(int n=0;n<source_files_count;n++) { | 18 | % for(int n=0;n<source_files_count;n++) { |
18 | % sourcefile_t& sf = source_files[n]; | 19 | % sourcefile_t& sf = source_files[n]; |
19 | % if(!sf.name) { /* the beginning or the end of the directory */ | 20 | % if(!sf.name) { /* the beginning or the end of the directory */ |
20 | % if(sf.dir) { /* the beginning */ | 21 | % if(sf.dir) { /* the beginning */ |
21 | <li class="dir"><% sf.dir %>/<ul class="dir"> | 22 | <li class="dir"><% sf.dir %>/<ul class="dir"> |
22 | % }else{ /* the end */ | 23 | % }else{ /* the end */ |
23 | </ul></li> | 24 | </ul></li> |
24 | % } | 25 | % } |
25 | % }else{ | 26 | % }else{ |
26 | <li class="file"><a href="/view/<% sf.dir %>/<% sf.name %>" title="<% sf.desc %>" target="insert"><% sf.name %></a></li> | 27 | <li class="file"><a href="/view/<% sf.dir %>/<% sf.name %>" title="<% sf.desc %>" target="insert"><% sf.name %></a></li> |
27 | % } | 28 | % } |
28 | % } | 29 | % } |
29 | </ul> | 30 | </ul> |
30 | 31 | ||
31 | <%code> | 32 | <%code> |
32 | string rfile = sitecing::normalize_path( | 33 | string rfile = sitecing::normalize_path( |
33 | sitecing::strip_prefix(__CGI->get_meta("PATH_INFO"),"/sources.chtml"), | 34 | sitecing::strip_prefix(__CGI->get_meta("PATH_INFO"),"/sources.chtml"), |
34 | sitecing::restrict_dotdot|sitecing::strip_leading_slash ); | 35 | sitecing::restrict_dotdot|sitecing::strip_leading_slash ); |
35 | if(rfile.empty()) | 36 | if(rfile.empty()) |
36 | rfile = "about:blank"; | 37 | rfile = "about:blank"; |
37 | else | 38 | else |
38 | rfile = "/view/"+rfile; | 39 | rfile = "/view/"+rfile; |
39 | </%code> | 40 | </%code> |
40 | <div class="insert"> | 41 | <div class="insert"> |
41 | <iframe id="insert" name="insert" src="<% rfile %>" width="95%" height="300"> | 42 | <iframe id="insert" name="insert" src="<% rfile %>" width="95%" height="300"> |
42 | <p>I wanted to put an <iframe> here, but your browser does not seem to | 43 | <p>I wanted to put an <iframe> here, but your browser does not seem to |
43 | support it. That is okay, it still will open links somehow.</p> | 44 | support it. That is okay, it still will open links somehow.</p> |
44 | </iframe> | 45 | </iframe> |
45 | </div> | 46 | </div> |
46 | 47 | ||
47 | </%method> | 48 | </%method> |
diff --git a/htdocs/style.css b/htdocs/style.css index 3ab1b6f..83e308f 100644 --- a/htdocs/style.css +++ b/htdocs/style.css | |||
@@ -55,123 +55,151 @@ div#content { | |||
55 | margin: 0px; | 55 | margin: 0px; |
56 | width: 80%; | 56 | width: 80%; |
57 | } | 57 | } |
58 | 58 | ||
59 | div#sidepanel h1 { | 59 | div#sidepanel h1 { |
60 | font-size: 80%; | 60 | font-size: 80%; |
61 | text-align: center; | 61 | text-align: center; |
62 | font-weight: normal; | 62 | font-weight: normal; |
63 | color: #004080; | 63 | color: #004080; |
64 | white-space: nowrap; | 64 | white-space: nowrap; |
65 | margin-top: 2ex; margin-bottom: 2ex; | 65 | margin-top: 2ex; margin-bottom: 2ex; |
66 | } | 66 | } |
67 | div#sidepanel h2 { | 67 | div#sidepanel h2 { |
68 | font-size: 80%; | 68 | font-size: 80%; |
69 | text-align: justify; | 69 | text-align: justify; |
70 | font-weight: normal; | 70 | font-weight: normal; |
71 | color: gray; | 71 | color: gray; |
72 | margin: 1ex 1ex; | 72 | margin: 1ex 1ex; |
73 | } | 73 | } |
74 | div#sidepanel ul { | 74 | div#sidepanel ul { |
75 | padding: 1ex 0.5ex 1ex 1ex; | 75 | padding: 1ex 0.5ex 1ex 1ex; |
76 | margin: 0.5ex; | 76 | margin: 0.5ex; |
77 | border-color: #c0c0c0 #404040 #404040 #c0c0c0; | 77 | border-color: #c0c0c0 #404040 #404040 #c0c0c0; |
78 | border-width: 1px 2px 2px 1px; | 78 | border-width: 1px 2px 2px 1px; |
79 | border-style: solid; | 79 | border-style: solid; |
80 | background: #d0d0d0; | 80 | background: #d0d0d0; |
81 | list-style-type: none; | 81 | list-style-type: none; |
82 | } | 82 | } |
83 | div#sidepanel ul ul { | 83 | div#sidepanel ul ul { |
84 | margin: 0px; padding: 0px; | 84 | margin: 0px; padding: 0px; |
85 | border: none 0px; | 85 | border: none 0px; |
86 | } | 86 | } |
87 | div#sidepanel li { | 87 | div#sidepanel li { |
88 | list-style-type: none; | 88 | list-style-type: none; |
89 | margin: 0px; padding: 0px; | 89 | margin: 0px; padding: 0px; |
90 | display: block; | 90 | display: block; |
91 | } | 91 | } |
92 | div#sidepanel ul a { | 92 | div#sidepanel ul a { |
93 | display: block; | 93 | display: block; |
94 | padding: 1px 1ex; | 94 | padding: 1px 1ex; |
95 | margin: 0.5ex; | 95 | margin: 0.5ex; |
96 | border: 1px solid gray; | 96 | border: 1px solid gray; |
97 | text-decoration: none; | 97 | text-decoration: none; |
98 | background: white; | 98 | background: white; |
99 | color: black; | 99 | color: black; |
100 | } | 100 | } |
101 | div#sidepanel ul a:hover { | 101 | div#sidepanel ul a:hover { |
102 | background: gray; | 102 | background: gray; |
103 | color: white; | 103 | color: white; |
104 | } | 104 | } |
105 | div#sidepanel ul ul a { | 105 | div#sidepanel ul ul a { |
106 | padding-left: 2.5ex; | 106 | padding-left: 2.5ex; |
107 | background: #e0e0e0; | 107 | background: #e0e0e0; |
108 | } | 108 | } |
109 | div#sidepanel div.copyright { | 109 | div#sidepanel div.copyright { |
110 | text-align: center; | 110 | text-align: center; |
111 | } | 111 | } |
112 | 112 | ||
113 | div#content h1 { | 113 | div#content h1 { |
114 | font-size: 140%; | 114 | font-size: 140%; |
115 | color: gray; | 115 | color: gray; |
116 | font-weight: bold; | 116 | font-weight: bold; |
117 | text-align: center; | 117 | text-align: center; |
118 | margin: 1em; | 118 | margin: 1em; |
119 | clear: both; | ||
120 | } | ||
121 | div#content p a { | ||
122 | font-weight: bold; | ||
119 | } | 123 | } |
120 | 124 | ||
121 | div.insert { | 125 | div.insert { |
122 | text-align: center; | 126 | text-align: center; |
123 | } | 127 | } |
124 | iframe#insert { | 128 | iframe#insert { |
125 | border: 1px solid black; | 129 | border: 1px solid black; |
126 | } | 130 | } |
127 | 131 | ||
128 | div.source h1 { | 132 | div.source h1 { |
129 | background: #e0e0e0; | 133 | background: #e0e0e0; |
130 | border: 1px solid #808080; | 134 | border: 1px solid #808080; |
131 | padding-left: 1em; | 135 | padding-left: 1em; |
132 | margin: 0px; | 136 | margin: 0px; |
133 | font-size: 100%; | 137 | font-size: 100%; |
134 | color: #000060; | 138 | color: #000060; |
135 | overflow: hidden; | 139 | overflow: hidden; |
136 | } | 140 | } |
137 | div.source ul { | 141 | div.source ul { |
138 | background: #80c0c0; | 142 | background: #80c0c0; |
139 | margin: 0px; | 143 | margin: 0px; |
140 | padding: 1px 0px; | 144 | padding: 1px 0px; |
141 | font-family: monospace; | 145 | font-family: monospace; |
142 | font-size: 80%; | 146 | font-size: 80%; |
143 | overflow: hidden; | 147 | overflow: hidden; |
144 | width:100%; | 148 | width:100%; |
145 | } | 149 | } |
146 | div.source li { | 150 | div.source li { |
147 | list-style-type: none; | 151 | list-style-type: none; |
148 | white-space: nowrap; | 152 | white-space: nowrap; |
149 | margin: 0px 0.5ex; | 153 | margin: 0px 0.5ex; |
150 | } | 154 | } |
151 | 155 | ||
152 | ul.sourcebrowser { | 156 | ul.sourcebrowser { |
153 | font-size: 70%; | 157 | font-size: 70%; |
154 | } | 158 | } |
155 | ul.sourcebrowser ul.dir { | 159 | ul.sourcebrowser ul.dir { |
156 | padding: 1px 0px 2px 1em; | 160 | padding: 1px 0px 2px 1em; |
157 | margin: 1px 0px 1px 0px; | 161 | margin: 1px 0px 1px 0px; |
158 | } | 162 | } |
159 | ul.sourcebrowser li.dir { | 163 | ul.sourcebrowser li.dir { |
160 | margin: 1px 0px 1px 0px; | 164 | margin: 1px 0px 1px 0px; |
161 | } | 165 | } |
162 | ul.sourcebrowser li.file { | 166 | ul.sourcebrowser li.file { |
163 | list-style-type: none; | 167 | list-style-type: none; |
164 | white-space: nowrap; | 168 | white-space: nowrap; |
165 | display: inline; | 169 | display: inline; |
166 | } | 170 | } |
167 | ul.sourcebrowser li.file a { | 171 | ul.sourcebrowser li.file a { |
168 | border: 1px solid gray; | 172 | border: 1px solid gray; |
169 | padding: 1px 0.5ex; | 173 | padding: 1px 0.5ex; |
170 | text-decoration: none; | 174 | text-decoration: none; |
171 | font-family: monospace; | 175 | font-family: monospace; |
172 | } | 176 | } |
173 | ul.sourcebrowser li.file a:hover { | 177 | ul.sourcebrowser li.file a:hover { |
174 | background: gray; | 178 | background: gray; |
175 | border: 1px solid black; | 179 | border: 1px solid black; |
176 | color: white; | 180 | color: white; |
177 | } | 181 | } |
182 | |||
183 | div.prevnext { | ||
184 | margin: 1ex; | ||
185 | } | ||
186 | div.prevnext a { | ||
187 | margin: 0.5ex 1em; padding: 0.2ex 0.5ex; | ||
188 | display: block; width: 30%; | ||
189 | border: solid 1px gray; | ||
190 | color: black; | ||
191 | text-decoration: none; | ||
192 | } | ||
193 | div.prevnext a.prevnext-prev { | ||
194 | float: left; | ||
195 | text-align: left; | ||
196 | } | ||
197 | div.prevnext a.prevnext-next { | ||
198 | float: right; | ||
199 | text-align: right; | ||
200 | } | ||
201 | div.prevnext a:hover { | ||
202 | background: gray; | ||
203 | border: black 1px solid; | ||
204 | color: white; | ||
205 | } | ||