checked in mising files in the blog demo.

This commit is contained in:
agentzh (章亦春) 2010-01-25 03:05:37 +08:00
parent 3079df6d8c
commit c5a7c04b77
35 changed files with 2771 additions and 0 deletions

62
.gitignore vendored Normal file
View File

@ -0,0 +1,62 @@
.rsync
bin/openresty.fcgi
demo/Admin/.rsync
*~
*.json
*.o
*.hi
haskell/bin/openhesty
haskell/openhesty.txt
!*.t.json
cover_db
Makefile
bin/test-account.sh
blib
haskell/big.sql
demo/Springbot/staff/update.sh
demo/*/out
demo/Blog2/js
demo/Blog2/template
demo/Springbot/staff/import
demo/*/script/import-localhost
*.old
*.swp
bin/.openresty.shell.hist
demo/Springbot/staff/staff.*
pm_to_blib
demo/Springbot/staff/staff.html
demo/Blog2/script/init.pl
share/openresty_revision
etc/site_openresty.conf
share/font
haskell/bin/restyscript
t/*.dat
*.tar.gz
demo/Blog2/script/upload
demo/Blog/script/upload
demo/Springbot/staff/*.sql
demo/Click4honor/JSON.js
demo/Click4honor/jquery.js
demo/Click4honor/openresty.js
demo/RestyCheck/JSON.js
demo/RestyCheck/jquery.js
demo/RestyCheck/openresty.js
demo/RestyCheck/upload
demo/*/script/upload
metamodel
demo/Onccf/pack_out
log.txt
TODO1
demo/Onccf/out1
demo/Onccf/out2
demo/Onccf/out3
demo/Onccf/out4
demo/Onccf/out5
demo/Onccf/out6
demo/Onccf/out7
demo/Onccf/out8
diff.txt
etc/compiled.actions
etc/taobao_vip.conf
lib/OpenResty/Handler/YLogin.pm

103
clients/js/JSON.js Normal file
View File

@ -0,0 +1,103 @@
var JSON = (function () {
var m = {
'\b': '\\b',
'\t': '\\t',
'\n': '\\n',
'\f': '\\f',
'\r': '\\r',
'"' : '\\"',
'\\': '\\\\'
},
s = {
'boolean': function (x) {
return String(x);
},
number: function (x) {
return isFinite(x) ? String(x) : 'null';
},
string: function (x) {
if (/["\\\x00-\x1f]/.test(x)) {
x = x.replace(/([\x00-\x1f\\"])/g, function(a, b) {
var c = m[b];
if (c) {
return c;
}
c = b.charCodeAt();
return '\\u00' +
Math.floor(c / 16).toString(16) +
(c % 16).toString(16);
});
}
return '"' + x + '"';
},
object: function (x) {
if (x) {
var a = [], b, f, i, l, v;
if (x instanceof Array) {
a[0] = '[';
l = x.length;
for (i = 0; i < l; i += 1) {
v = x[i];
f = s[typeof v];
if (f) {
v = f(v);
if (typeof v == 'string') {
if (b) {
a[a.length] = ',';
}
a[a.length] = v;
b = true;
}
}
}
a[a.length] = ']';
} else if (x instanceof Object) {
a[0] = '{';
for (i in x) {
v = x[i];
f = s[typeof v];
if (f) {
v = f(v);
if (typeof v == 'string') {
if (b) {
a[a.length] = ',';
}
a.push(s.string(i), ':', v);
b = true;
}
}
}
a[a.length] = '}';
} else {
return;
}
return a.join('');
}
return 'null';
}
};
return {
copyright: '(c)2005 JSON.org',
license: 'http://www.crockford.com/JSON/license.html',
stringify: function (v) {
var f = s[typeof v];
if (f) {
v = f(v);
if (typeof v == 'string') {
return v;
}
}
return null;
},
parse: function (text) {
try {
return !(/[^,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]/.test(
text.replace(/"(\\.|[^"\\])*"/g, ''))) &&
eval('(' + text + ')');
} catch (e) {
return false;
}
}
};
}());

256
clients/js/md5.js Normal file
View File

@ -0,0 +1,256 @@
/*
* A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
* Digest Algorithm, as defined in RFC 1321.
* Version 2.1 Copyright (C) Paul Johnston 1999 - 2002.
* Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
* Distributed under the BSD License
* See http://pajhome.org.uk/crypt/md5 for more info.
*/
/*
* Configurable variables. You may need to tweak these to be compatible with
* the server-side, but the defaults work in most cases.
*/
var hexcase = 0; /* hex output format. 0 - lowercase; 1 - uppercase */
var b64pad = ""; /* base-64 pad character. "=" for strict RFC compliance */
var chrsz = 8; /* bits per input character. 8 - ASCII; 16 - Unicode */
/*
* These are the functions you'll usually want to call
* They take string arguments and return either hex or base-64 encoded strings
*/
function hex_md5(s){ return binl2hex(core_md5(str2binl(s), s.length * chrsz));}
function b64_md5(s){ return binl2b64(core_md5(str2binl(s), s.length * chrsz));}
function str_md5(s){ return binl2str(core_md5(str2binl(s), s.length * chrsz));}
function hex_hmac_md5(key, data) { return binl2hex(core_hmac_md5(key, data)); }
function b64_hmac_md5(key, data) { return binl2b64(core_hmac_md5(key, data)); }
function str_hmac_md5(key, data) { return binl2str(core_hmac_md5(key, data)); }
/*
* Perform a simple self-test to see if the VM is working
*/
function md5_vm_test()
{
return hex_md5("abc") == "900150983cd24fb0d6963f7d28e17f72";
}
/*
* Calculate the MD5 of an array of little-endian words, and a bit length
*/
function core_md5(x, len)
{
/* append padding */
x[len >> 5] |= 0x80 << ((len) % 32);
x[(((len + 64) >>> 9) << 4) + 14] = len;
var a = 1732584193;
var b = -271733879;
var c = -1732584194;
var d = 271733878;
for(var i = 0; i < x.length; i += 16)
{
var olda = a;
var oldb = b;
var oldc = c;
var oldd = d;
a = md5_ff(a, b, c, d, x[i+ 0], 7 , -680876936);
d = md5_ff(d, a, b, c, x[i+ 1], 12, -389564586);
c = md5_ff(c, d, a, b, x[i+ 2], 17, 606105819);
b = md5_ff(b, c, d, a, x[i+ 3], 22, -1044525330);
a = md5_ff(a, b, c, d, x[i+ 4], 7 , -176418897);
d = md5_ff(d, a, b, c, x[i+ 5], 12, 1200080426);
c = md5_ff(c, d, a, b, x[i+ 6], 17, -1473231341);
b = md5_ff(b, c, d, a, x[i+ 7], 22, -45705983);
a = md5_ff(a, b, c, d, x[i+ 8], 7 , 1770035416);
d = md5_ff(d, a, b, c, x[i+ 9], 12, -1958414417);
c = md5_ff(c, d, a, b, x[i+10], 17, -42063);
b = md5_ff(b, c, d, a, x[i+11], 22, -1990404162);
a = md5_ff(a, b, c, d, x[i+12], 7 , 1804603682);
d = md5_ff(d, a, b, c, x[i+13], 12, -40341101);
c = md5_ff(c, d, a, b, x[i+14], 17, -1502002290);
b = md5_ff(b, c, d, a, x[i+15], 22, 1236535329);
a = md5_gg(a, b, c, d, x[i+ 1], 5 , -165796510);
d = md5_gg(d, a, b, c, x[i+ 6], 9 , -1069501632);
c = md5_gg(c, d, a, b, x[i+11], 14, 643717713);
b = md5_gg(b, c, d, a, x[i+ 0], 20, -373897302);
a = md5_gg(a, b, c, d, x[i+ 5], 5 , -701558691);
d = md5_gg(d, a, b, c, x[i+10], 9 , 38016083);
c = md5_gg(c, d, a, b, x[i+15], 14, -660478335);
b = md5_gg(b, c, d, a, x[i+ 4], 20, -405537848);
a = md5_gg(a, b, c, d, x[i+ 9], 5 , 568446438);
d = md5_gg(d, a, b, c, x[i+14], 9 , -1019803690);
c = md5_gg(c, d, a, b, x[i+ 3], 14, -187363961);
b = md5_gg(b, c, d, a, x[i+ 8], 20, 1163531501);
a = md5_gg(a, b, c, d, x[i+13], 5 , -1444681467);
d = md5_gg(d, a, b, c, x[i+ 2], 9 , -51403784);
c = md5_gg(c, d, a, b, x[i+ 7], 14, 1735328473);
b = md5_gg(b, c, d, a, x[i+12], 20, -1926607734);
a = md5_hh(a, b, c, d, x[i+ 5], 4 , -378558);
d = md5_hh(d, a, b, c, x[i+ 8], 11, -2022574463);
c = md5_hh(c, d, a, b, x[i+11], 16, 1839030562);
b = md5_hh(b, c, d, a, x[i+14], 23, -35309556);
a = md5_hh(a, b, c, d, x[i+ 1], 4 , -1530992060);
d = md5_hh(d, a, b, c, x[i+ 4], 11, 1272893353);
c = md5_hh(c, d, a, b, x[i+ 7], 16, -155497632);
b = md5_hh(b, c, d, a, x[i+10], 23, -1094730640);
a = md5_hh(a, b, c, d, x[i+13], 4 , 681279174);
d = md5_hh(d, a, b, c, x[i+ 0], 11, -358537222);
c = md5_hh(c, d, a, b, x[i+ 3], 16, -722521979);
b = md5_hh(b, c, d, a, x[i+ 6], 23, 76029189);
a = md5_hh(a, b, c, d, x[i+ 9], 4 , -640364487);
d = md5_hh(d, a, b, c, x[i+12], 11, -421815835);
c = md5_hh(c, d, a, b, x[i+15], 16, 530742520);
b = md5_hh(b, c, d, a, x[i+ 2], 23, -995338651);
a = md5_ii(a, b, c, d, x[i+ 0], 6 , -198630844);
d = md5_ii(d, a, b, c, x[i+ 7], 10, 1126891415);
c = md5_ii(c, d, a, b, x[i+14], 15, -1416354905);
b = md5_ii(b, c, d, a, x[i+ 5], 21, -57434055);
a = md5_ii(a, b, c, d, x[i+12], 6 , 1700485571);
d = md5_ii(d, a, b, c, x[i+ 3], 10, -1894986606);
c = md5_ii(c, d, a, b, x[i+10], 15, -1051523);
b = md5_ii(b, c, d, a, x[i+ 1], 21, -2054922799);
a = md5_ii(a, b, c, d, x[i+ 8], 6 , 1873313359);
d = md5_ii(d, a, b, c, x[i+15], 10, -30611744);
c = md5_ii(c, d, a, b, x[i+ 6], 15, -1560198380);
b = md5_ii(b, c, d, a, x[i+13], 21, 1309151649);
a = md5_ii(a, b, c, d, x[i+ 4], 6 , -145523070);
d = md5_ii(d, a, b, c, x[i+11], 10, -1120210379);
c = md5_ii(c, d, a, b, x[i+ 2], 15, 718787259);
b = md5_ii(b, c, d, a, x[i+ 9], 21, -343485551);
a = safe_add(a, olda);
b = safe_add(b, oldb);
c = safe_add(c, oldc);
d = safe_add(d, oldd);
}
return Array(a, b, c, d);
}
/*
* These functions implement the four basic operations the algorithm uses.
*/
function md5_cmn(q, a, b, x, s, t)
{
return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s),b);
}
function md5_ff(a, b, c, d, x, s, t)
{
return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t);
}
function md5_gg(a, b, c, d, x, s, t)
{
return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t);
}
function md5_hh(a, b, c, d, x, s, t)
{
return md5_cmn(b ^ c ^ d, a, b, x, s, t);
}
function md5_ii(a, b, c, d, x, s, t)
{
return md5_cmn(c ^ (b | (~d)), a, b, x, s, t);
}
/*
* Calculate the HMAC-MD5, of a key and some data
*/
function core_hmac_md5(key, data)
{
var bkey = str2binl(key);
if(bkey.length > 16) bkey = core_md5(bkey, key.length * chrsz);
var ipad = Array(16), opad = Array(16);
for(var i = 0; i < 16; i++)
{
ipad[i] = bkey[i] ^ 0x36363636;
opad[i] = bkey[i] ^ 0x5C5C5C5C;
}
var hash = core_md5(ipad.concat(str2binl(data)), 512 + data.length * chrsz);
return core_md5(opad.concat(hash), 512 + 128);
}
/*
* Add integers, wrapping at 2^32. This uses 16-bit operations internally
* to work around bugs in some JS interpreters.
*/
function safe_add(x, y)
{
var lsw = (x & 0xFFFF) + (y & 0xFFFF);
var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
return (msw << 16) | (lsw & 0xFFFF);
}
/*
* Bitwise rotate a 32-bit number to the left.
*/
function bit_rol(num, cnt)
{
return (num << cnt) | (num >>> (32 - cnt));
}
/*
* Convert a string to an array of little-endian words
* If chrsz is ASCII, characters >255 have their hi-byte silently ignored.
*/
function str2binl(str)
{
var bin = Array();
var mask = (1 << chrsz) - 1;
for(var i = 0; i < str.length * chrsz; i += chrsz)
bin[i>>5] |= (str.charCodeAt(i / chrsz) & mask) << (i%32);
return bin;
}
/*
* Convert an array of little-endian words to a string
*/
function binl2str(bin)
{
var str = "";
var mask = (1 << chrsz) - 1;
for(var i = 0; i < bin.length * 32; i += chrsz)
str += String.fromCharCode((bin[i>>5] >>> (i % 32)) & mask);
return str;
}
/*
* Convert an array of little-endian words to a hex string.
*/
function binl2hex(binarray)
{
var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef";
var str = "";
for(var i = 0; i < binarray.length * 4; i++)
{
str += hex_tab.charAt((binarray[i>>2] >> ((i%4)*8+4)) & 0xF) +
hex_tab.charAt((binarray[i>>2] >> ((i%4)*8 )) & 0xF);
}
return str;
}
/*
* Convert an array of little-endian words to a base-64 string
*/
function binl2b64(binarray)
{
var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
var str = "";
for(var i = 0; i < binarray.length * 4; i += 3)
{
var triplet = (((binarray[i >> 2] >> 8 * ( i %4)) & 0xFF) << 16)
| (((binarray[i+1 >> 2] >> 8 * ((i+1)%4)) & 0xFF) << 8 )
| ((binarray[i+2 >> 2] >> 8 * ((i+2)%4)) & 0xFF);
for(var j = 0; j < 4; j++)
{
if(i * 8 + j * 6 > binarray.length * 32) str += b64pad;
else str += tab.charAt((triplet >> 6*(3-j)) & 0x3F);
}
}
return str;
}

82
demo/Blog/css/blog.css Normal file
View File

@ -0,0 +1,82 @@
.entry-header b {
color: #cc0022;
}
#beta-inner.pkg b {
color: #cc0022;
font-weight: normal;
}
input#searchbox {
margin-top: 5px;
margin-bottom: 5px;
color:#369;
background:#fff;
width: 180px;
}
div#wait-message {
color: red !important;
background: white !important;
font-size: 18px !important;
float: right;
position: fixed;
top: 2px;
right: 30px;
padding: 4px;
border-width: 2px;
border-style: outset;
border-color: white;
display: block;
}
td.today-cell {
background: #fff;
}
td.highlight {
font-weight: bold;
color:#A90A08;
}
input.required {
background: #ffa;
}
ins.item-body {
text-decoration: none;
}
a.nav-arrow {
font-size: 10pt;
font-weight: bold;
}
ins {
font-style: normal;
}
table.paging {
border: 0;
width: 1%;
}
table.paging td {
font-size: 90%;
white-space: nowrap;
}
.prev-page {
text-align: right;
font-size: 12pt;
color: #00c;
font-weight: bold;
}
.next-page {
text-align: left;
font-size: 12pt;
color: #00c;
font-weight: bold;
}

49
demo/Blog/css/styles.css Normal file
View File

@ -0,0 +1,49 @@
/* Base */
@import url(themes/common/base-weblog.css);
/* Tip Jar */
@import url(themes/common/tipjar.css);
/* Portal */
/* Theme */
@import url(themes/lilia/theme-bluecrush.css);
/* Custom */
body
{
font-family: 'Corbel', 'Cambria', 'trebuchet ms', helvetica, arial, sans-serif;
font-size: 15px;
color: black;
}
tt
{
font-family: 'Consolas', 'Courier New', 'FreeMono', monospace;
}
h1, h2, h3, h4, h5, h6
{
font-family: 'Cambria', 'Corbel', 'Candara', 'trebuchet ms', helvetica, arial, sans-serif;
font-weight: bold;
}
a { color: #009; text-decoration: underline; }
a:visited { color: #306 }
.entry h2 {
color: #930;
font-size: 18px;
border-bottom: 1px dotted #930;
margin-bottom: 15px;
font-weight: bold;
}
h3 {
color: #000;
font-size: 15px;
margin-bottom: 10px;
}

View File

@ -0,0 +1,492 @@
/* $Id: base-weblog.css 66356 2007-11-02 17:15:45Z kgoess $ */
/* basic elements */
html
{
margin: 0;
/* setting border: 0 hoses ie6 win window inner well border */
padding: 0;
}
body
{
margin: 0;
/* setting border: 0 hoses ie5 win window inner well border */
padding: 0;
font-family: verdana, 'trebuchet ms', sans-serif;
font-size: 12px;
}
form { margin: 0; padding: 0; }
a { text-decoration: underline; }
a img { border: 0; }
h1, h2, h3, h4, h5, h6 { font-weight: normal; }
h1, h2, h3, h4, h5, h6, p, ol, ul, pre, blockquote
{
margin-top: 10px;
margin-bottom: 10px;
}
/* standard helper classes */
.clr
{
clear: both;
overflow: hidden;
width: 1px;
height: 1px;
margin: 0 -1px -1px 0;
border: 0;
padding: 0;
font-size: 0;
line-height: 0;
}
/* .pkg class wraps enclosing block element around inner floated elements */
.pkg:after
{
content: " ";
display: block;
visibility: hidden;
clear: both;
height: 0.1px;
font-size: 0.1em;
line-height: 0;
}
.pkg { display: inline-block; }
/* no ie mac \*/
* html .pkg { height: 1%; }
.pkg { display: block; }
/* */
/* page layout */
body { text-align: center; } /* center on ie */
#container
{
position: relative;
margin: 0 auto; /* center on everything else */
width: 720px;
text-align: left;
}
#container-inner { position: static; width: auto; }
#banner { position: relative; }
#banner-inner { position: static; }
#pagebody { position: relative; width: 100%; }
#pagebody-inner { position: static; width: 100%; }
#alpha, #beta, #gamma, #delta
{
display: inline; /* ie win bugfix */
position: relative;
float: left;
min-height: 1px;
}
#delta { float: right; }
#alpha-inner, #beta-inner, #gamma-inner, #delta-inner
{
position: static;
}
/* banner user/photo */
.banner-user
{
float: left;
overflow: hidden;
width: 64px;
margin: 0 15px 0 0;
border: 0;
padding: 0;
text-align: center;
}
.banner-user-photo
{
display: block;
margin: 0 0 2px;
border: 0;
padding: 0;
background-position: center center;
background-repeat: no-repeat;
text-decoration: none !important;
}
.banner-user-photo img
{
width: 64px;
height: auto;
margin: 0;
border: 0;
padding: 0;
}
/* content */
.content-nav
{
margin: 10px;
text-align: center;
}
.date-header,
.entry-content
{
position: static;
clear: both;
}
.entry,
.trackbacks,
.comments,
.archive
{
position: static;
overflow: hidden;
clear: both;
width: 100%;
margin-bottom: 20px;
}
.entry-content,
.trackbacks-info,
.trackback-content,
.comments-info,
.comment-content,
.comments-open-content,
.comments-closed
{
clear: both;
margin: 5px 10px;
}
.trackbacks-info p,
.comments-info p
{
margin-top: 5px;
}
.trackbacks-link
{
font-size: 0.8em;
}
.entry-excerpt,
.entry-body,
.entry-more-link,
.entry-more
{
clear: both;
}
.entry-footer,
.trackback-footer,
.comment-footer,
.comments-open-footer,
.archive-content
{
clear: both;
margin: 5px 10px 20px;
}
.entry-footer p
{
margin-top: 0;
margin-bottom: 2px;
}
.comments-open label { display: block; }
#comment-author, #comment-email, #comment-url, #comment-text
{
width: 240px;
}
#comment-bake-cookie
{
margin-left: 0;
vertical-align: middle;
}
#comment-post
{
font-weight: bold;
}
img.image-full { width: 100%; }
.image-thumbnail
{
float: left;
width: 115px;
margin: 0 10px 10px 0;
}
.image-thumbnail img
{
width: 115px;
height: 115px;
margin: 0 0 2px;
}
/* modules */
.module
{
position: relative;
overflow: hidden;
width: 100%;
}
.module-content
{
position: relative;
margin: 5px 10px 20px;
}
.module-list,
.archive-list
{
margin: 0;
padding: 0;
list-style: none;
}
.module-list-item,
.archive-list-item
{
margin-top: 5px;
margin-bottom: 5px;
}
.module-more
{
text-align: right;
}
.module-elsewhere .module-list img,
.archive-elsewhere .archive-list img,
.module-presence img
{
vertical-align: middle;
}
.module-powered .module-content { margin-bottom: 10px; }
.module-photo .module-content { text-align: center; }
.module-wishlist .module-content { text-align: center; }
.module-calendar .module-content table
{
border-collapse: collapse;
width: 100%;
}
.module-calendar .module-content th,
.module-calendar .module-content td
{
width: 14%;
text-align: center;
}
.module-category-cloud .module-list
{
margin-right: 0;
margin-left: 0;
}
.module-category-cloud .module-list-item
{
display: inline;
margin: 0 5px 0 0;
padding: 0;
line-height: 1.2em;
background: none;
}
.module-category-cloud .cloud-weight-1 { font-size: 0.9em; }
.module-category-cloud .cloud-weight-2 { font-size: 0.95em; }
.module-category-cloud .cloud-weight-3 { font-size: 1em; }
.module-category-cloud .cloud-weight-4 { font-size: 1.125em; }
.module-category-cloud .cloud-weight-5 { font-size: 1.25em; }
.module-category-cloud .cloud-weight-6 { font-size: 1.375em; }
.module-category-cloud .cloud-weight-7 { font-size: 1.5em; }
.module-category-cloud .cloud-weight-8 { font-size: 1.625em; }
.module-category-cloud .cloud-weight-9 { font-size: 1.75em; }
.module-category-cloud .cloud-weight-10 { font-size: 1.75em; }
.typelist-plain .module-list,
.typelist-plain .archive-list
{
list-style: none;
}
.typelist-plain .module-list-item,
.typelist-plain .archive-list-item
{
padding: 0;
background: none;
}
.typelist-thumbnailed { margin: 0 0 20px; }
.typelist-thumbnailed .module-list-item
{
display: block;
clear: both;
margin: 0;
}
/* positioniseverything.net/easyclearing.html */
.typelist-thumbnailed .module-list-item:after
{
content: " ";
display: block;
visibility: hidden;
clear: both;
height: 0.1px;
font-size: 0.1em;
line-height: 0;
}
.typelist-thumbnailed .module-list-item { display: inline-block; }
/* no ie mac \*/
* html .typelist-thumbnailed .module-list-item { height: 1%; }
.typelist-thumbnailed .module-list-item { display: block; }
/* */
.typelist-thumbnail
{
float: left;
min-width: 60px;
width: 60px;
/* no ie mac \*/width: auto;/* */
margin: 0 5px 0 0;
text-align: center;
vertical-align: middle;
}
.typelist-thumbnail img { margin: 5px; }
.module-galleries .typelist-thumbnail img { width: 50px; }
.typelist-description
{
margin: 0;
padding: 5px;
}
.typelist-no-description
{
text-align: center;
margin: 10px 0;
}
.module-featured-photo .module-content,
.module-photo .module-content
{
margin: 0;
}
.module-featured-photo img { width: 100%; }
.module-recent-photos { margin: 0 0 15px; }
.module-recent-photos .module-content { margin: 0; }
.module-recent-photos .module-list
{
display: block;
height: 1%;
margin: 0;
border: 0;
padding: 0;
list-style: none;
}
/* positioniseverything.net/easyclearing.html */
.module-recent-photos .module-list:after
{
content: " ";
display: block;
visibility: hidden;
clear: both;
height: 0.1px;
font-size: 0.1em;
line-height: 0;
}
.module-recent-photos .module-list { display: inline-block; }
/* no ie mac \*/
* html .module-recent-photos .module-list { height: 1%; }
.module-recent-photos .module-list { display: block; }
/* */
.module-recent-photos .module-list-item
{
display: block;
float: left;
/* ie win fix \*/ height: 1%; /**/
margin: 0;
border: 0;
padding: 0;
}
.module-recent-photos .module-list-item a
{
display: block;
margin: 0;
border: 0;
padding: 0;
}
.module-recent-photos .module-list-item img
{
width: 60px;
height: 60px;
margin: 0;
padding: 0;
}
/* mmt calendar */
.module-mmt-calendar { margin-bottom: 15px; }
.module-mmt-calendar .module-content { margin: 0; }
.module-mmt-calendar .module-header { margin: 0; }
.module-mmt-calendar .module-header a { text-decoration: none; }
.module-mmt-calendar table { width: 100%; }
.module-mmt-calendar th { text-align: left; }
.module-mmt-calendar td
{
width: 14%;
height: 75px;
text-align: left;
vertical-align: top;
}
.day-photo
{
width: 54px;
height: 54px;
}
.day-photo a
{
display: block;
}
.day-photo a img
{
width: 50px;
height: 50px;
}

View File

@ -0,0 +1,205 @@
/* Reset (Eric Meyer, http://meyerweb.com/) */
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, font, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td {
margin: 0;
padding: 0;
border: 0;
outline: 0;
font-weight: inherit;
font-style: inherit;
font-size: 100%;
font-family: inherit;
vertical-align: baseline;
}
/* remember to define focus styles! */
:focus {
outline: 0;
}
body {
line-height: 1;
color: black;
background: white;
}
ol, ul {
list-style: none;
}
/* tables still need 'cellspacing="0"' in the markup */
table {
border-collapse: separate;
border-spacing: 0;
}
caption, th, td {
text-align: left;
font-weight: normal;
}
blockquote:before, blockquote:after,
q:before, q:after {
content: "";
}
blockquote, q {
quotes: "" "";
}
/* Base Weblog Print Styles (Six Apart, Ltd., http://sixapart.com/) */
body
{
color: #000;
font-size: 10pt;
line-height: 1.5;
font-family: Georgia, serif;
}
a
{
color: #000;
text-decoration: underline;
}
#banner,
.entry,
.trackbacks,
.trackbacks-info,
.comments,
.comments-info,
.archive
{
margin-bottom: 1.5em;
}
#banner-header
{
font-size: 15pt;
font-weight: bold;
}
#banner-description { font-size: 12pt; }
#banner-header a,
.entry-header a
{
text-decoration: none;
}
.entry-header,
.trackbacks-header,
.comments-header,
.archive-header,
.content-header
{
margin-bottom: 0.5em;
font-weight: bold;
}
.entry-header, .archive-header, .content-header { font-size: 12pt; }
.trackbacks-header, .comments-header { font-size: 10pt; }
.trackbacks, .comments { font-size: 9pt; }
.entry-content p,
.entry-content blockquote,
.entry-content pre,
.entry-content dl,
.entry-content ol,
.entry-content ul,
.trackback-content p,
.comment-content p,
.comment-content blockquote,
.comment-content pre,
.comment-content dl,
.comment-content ol,
.comment-content ul,
.archive-content ul
{
margin-bottom: 0.5em;
}
.entry-content blockquote,
.comment-content blockquote
{
margin-left: 1em;
border-left: 1pt solid #000;
padding-left: 1em;
}
.entry-content pre,
.comment-content pre
{
margin-left: 1em;
border-left: 1pt solid #000;
padding-left: 1em;
font-family: Monaco, monospace;
}
.entry-content code,
.comment-content code
{
font-family: Monaco, monospace;
}
.entry-content ol,
.entry-content ul,
.comment-content ol,
.comment-content ul,
.archive-content ul
{
padding-left: 2em;
}
.entry-content ol,
.comment-content ol
{
list-style-type: decimal;
}
.entry-content ul,
.comment-content ul,
.archive-content ul
{
list-style-type: disc;
}
.entry-content table td,
.comment-content table td
{
padding: 0 1em 0.5em 0;
}
.layout-two-column-left #alpha,
.layout-two-column-right #beta,
.layout-three-column #alpha,
.layout-three-column #gamma,
.layout-three-column-right #beta,
.layout-three-column-right #gamma,
.layout-artistic #beta,
.layout-calendar #beta,
.layout-moblog1 #alpha,
.layout-moblog1 #gamma,
.layout-moblog2 #alpha,
.layout-moblog2 #gamma,
.layout-moblog2 #delta,
.layout-timeline #beta,
.content-nav,
#comment-form
{
display: none;
}
.entry, .entry-content, .entry-footer, .entry-excerpt,
.entry-body, .entry-more-link, .entry-more,
.trackbacks, .trackbacks-info, .trackback-content, .trackback-footer,
.comments, .comments-info, .comment-content, .comment-footer,
.comments-open-content, .comments-open-footer, .comments-closed,
.archive, .archive-content, .date-header
{
clear: both;
}

View File

@ -0,0 +1,205 @@
/* Reset (Eric Meyer, http://meyerweb.com/) */
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, font, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td {
margin: 0;
padding: 0;
border: 0;
outline: 0;
font-weight: inherit;
font-style: inherit;
font-size: 100%;
font-family: inherit;
vertical-align: baseline;
}
/* remember to define focus styles! */
:focus {
outline: 0;
}
body {
line-height: 1;
color: black;
background: white;
}
ol, ul {
list-style: none;
}
/* tables still need 'cellspacing="0"' in the markup */
table {
border-collapse: separate;
border-spacing: 0;
}
caption, th, td {
text-align: left;
font-weight: normal;
}
blockquote:before, blockquote:after,
q:before, q:after {
content: "";
}
blockquote, q {
quotes: "" "";
}
/* Base Weblog Print Styles (Six Apart, Ltd., http://sixapart.com/) */
body
{
color: #000;
font-size: 10pt;
line-height: 1.5;
font-family: Georgia, serif;
}
a
{
color: #000;
text-decoration: underline;
}
#banner,
.entry,
.trackbacks,
.trackbacks-info,
.comments,
.comments-info,
.archive
{
margin-bottom: 1.5em;
}
#banner-header
{
font-size: 15pt;
font-weight: bold;
}
#banner-description { font-size: 12pt; }
#banner-header a,
.entry-header a
{
text-decoration: none;
}
.entry-header,
.trackbacks-header,
.comments-header,
.archive-header,
.content-header
{
margin-bottom: 0.5em;
font-weight: bold;
}
.entry-header, .archive-header, .content-header { font-size: 12pt; }
.trackbacks-header, .comments-header { font-size: 10pt; }
.trackbacks, .comments { font-size: 9pt; }
.entry-content p,
.entry-content blockquote,
.entry-content pre,
.entry-content dl,
.entry-content ol,
.entry-content ul,
.trackback-content p,
.comment-content p,
.comment-content blockquote,
.comment-content pre,
.comment-content dl,
.comment-content ol,
.comment-content ul,
.archive-content ul
{
margin-bottom: 0.5em;
}
.entry-content blockquote,
.comment-content blockquote
{
margin-left: 1em;
border-left: 1pt solid #000;
padding-left: 1em;
}
.entry-content pre,
.comment-content pre
{
margin-left: 1em;
border-left: 1pt solid #000;
padding-left: 1em;
font-family: Monaco, monospace;
}
.entry-content code,
.comment-content code
{
font-family: Monaco, monospace;
}
.entry-content ol,
.entry-content ul,
.comment-content ol,
.comment-content ul,
.archive-content ul
{
padding-left: 2em;
}
.entry-content ol,
.comment-content ol
{
list-style-type: decimal;
}
.entry-content ul,
.comment-content ul,
.archive-content ul
{
list-style-type: disc;
}
.entry-content table td,
.comment-content table td
{
padding: 0 1em 0.5em 0;
}
.layout-two-column-left #alpha,
.layout-two-column-right #beta,
.layout-three-column #alpha,
.layout-three-column #gamma,
.layout-three-column-right #beta,
.layout-three-column-right #gamma,
.layout-artistic #beta,
.layout-calendar #beta,
.layout-moblog1 #alpha,
.layout-moblog1 #gamma,
.layout-moblog2 #alpha,
.layout-moblog2 #gamma,
.layout-moblog2 #delta,
.layout-timeline #beta,
.content-nav,
#comment-form
{
display: none;
}
.entry, .entry-content, .entry-footer, .entry-excerpt,
.entry-body, .entry-more-link, .entry-more,
.trackbacks, .trackbacks-info, .trackback-content, .trackback-footer,
.comments, .comments-info, .comment-content, .comment-footer,
.comments-open-content, .comments-open-footer, .comments-closed,
.archive, .archive-content, .date-header
{
clear: both;
}

View File

@ -0,0 +1,152 @@
.module-tipjar,
.module-tipjar-r2 {
font-family: 'trebuchet ms', sans-serif;
}
.module-tipjar .button {
margin: 0;
}
.module-tipjar-r2 .tipjar-button-wrapper {
position: relative;
}
.module-tipjar-r2 .tipjar-button {
position: relative;
float: left;
text-align: left;
}
.module-tipjar .button h3,
.module-tipjar .button p,
.module-tipjar-r2 .tipjar-button h3,
.module-tipjar-r2 .tipjar-button p {
margin: 0;
padding: 0;
color: #000;
line-height: 1.2em;
}
.module-tipjar .button img,
.module-tipjar-r2 .tipjar-button img {
position: absolute;
top: 0;
left: 0;
border: 0;
}
.module-tipjar .module-content {
position: relative;
margin: 10px;
padding: 0;
}
.module-tipjar p {
margin-left: 10px;
}
.module-tipjar-r2 p {
margin: 2px 0 0 0;
}
.module-tipjar #button-1, .module-tipjar-r2 #button-1 { background: url(/.shared/images/tipjar-buttons/tipjar-green-large.gif) left top no-repeat; }
.module-tipjar #button-2, .module-tipjar-r2 #button-2 { background: url(/.shared/images/tipjar-buttons/tipjar-pink-large.gif) left top no-repeat; }
.module-tipjar #button-3, .module-tipjar-r2 #button-3 { background: url(/.shared/images/tipjar-buttons/tipjar-green-medium.gif) left top no-repeat; }
.module-tipjar #button-4, .module-tipjar-r2 #button-4 { background: url(/.shared/images/tipjar-buttons/tipjar-pink-medium.gif) left top no-repeat; }
.module-tipjar #button-5, .module-tipjar-r2 #button-5 { background: url(/.shared/images/tipjar-buttons/tipjar-green-small.gif) left top no-repeat; }
.module-tipjar #button-6, .module-tipjar-r2 #button-6 { background: url(/.shared/images/tipjar-buttons/tipjar-pink-small.gif) left top no-repeat; }
.module-tipjar .empty-1,
.module-tipjar .empty-2,
.module-tipjar-r2 #button-1,
.module-tipjar-r2 #button-2,
.module-tipjar-r2 .empty-1,
.module-tipjar-r2 .empty-2 {
width: 120px;
height: 52px;
}
.module-tipjar #button-1 h3,
.module-tipjar #button-2 h3,
.module-tipjar-r2 #button-1 h3,
.module-tipjar-r2 #button-2 h3 {
font-size: 15px;
font-weight: bold;
padding: 4px 0 0 28px;
}
.module-tipjar #button-1 p,
.module-tipjar #button-2 p,
.module-tipjar-r2 #button-1 p,
.module-tipjar-r2 #button-2 p {
font-size: 11px;
}
.module-tipjar #button-1 p,
.module-tipjar #button-2 p {
padding: 0 0 24px 28px;
}
.module-tipjar-r2 #button-1 p,
.module-tipjar-r2 #button-2 p {
padding: 0 0 0 28px;
}
.module-tipjar .empty-3,
.module-tipjar .empty-4,
.module-tipjar-r2 #button-3,
.module-tipjar-r2 #button-4,
.module-tipjar-r2 .empty-3,
.module-tipjar-r2 .empty-4 {
width: 88px;
height: 31px;
}
.module-tipjar #button-3 h3,
.module-tipjar #button-4 h3,
.module-tipjar-r2 #button-3 h3,
.module-tipjar-r2 #button-4 h3 {
font-size: 13px;
font-weight: bold;
padding: 0 0 0 5px;
}
.module-tipjar #button-3 p,
.module-tipjar #button-4 p,
.module-tipjar-r2 #button-3 p,
.module-tipjar-r2 #button-4 p {
font-size: 11px;
}
.module-tipjar #button-3 p,
.module-tipjar #button-4 p {
padding: 0 0 4px 5px;
}
.module-tipjar-r2 #button-3 p,
.module-tipjar-r2 #button-4 p {
padding: 0 0 0 5px;
}
.module-tipjar #button-5,
.module-tipjar #button-6,
.module-tipjar .empty-5,
.module-tipjar .empty-6,
.module-tipjar-r2 #button-5,
.module-tipjar-r2 #button-6,
.module-tipjar-r2 .empty-5,
.module-tipjar-r2 .empty-6 {
width: 94px;
height: 15px;
}
.module-tipjar #button-5 h3,
.module-tipjar #button-6 h3,
.module-tipjar #button-5 p,
.module-tipjar #button-6 p,
.module-tipjar-r2 #button-5 h3,
.module-tipjar-r2 #button-6 h3,
.module-tipjar-r2 #button-5 p,
.module-tipjar-r2 #button-6 p {
display: none;
}

View File

@ -0,0 +1,563 @@
/* $Id: theme-bluecrush.css 64929 2007-10-15 20:22:20Z kgoess $ */
/* basic page elements */
body
{
font-family: 'trebuchet ms', helvetica, arial, sans-serif;
font-size: 12px;
}
a { color: #393; text-decoration: underline; }
a:visited { color: #666; }
a:hover { color: #f93; }
#banner a { color: #fff; font-weight: bold; text-decoration: none; }
#banner a:visited { color: #fff; }
#banner a:hover { color: #f93; }
.module-content a { color: #39c; font-weight: bold;}
.module-content a:visited { color: #369; }
.module-content a:hover { color: #f93; }
.entry-header a { color: #f93; text-decoration: none; }
.entry-header a:visited { color: #f93; }
.entry-header a:hover { color: #f93; }
h1, h2, h3, h4, h5, h6
{
font-family: 'trebuchet ms', helvetica, arial, sans-serif;
}
.module-header,
.trackbacks-header,
.comments-header,
.comments-open-header,
.archive-header
{
/* ie win (5, 5.5, 6) bugfix */
p\osition: relative;
width: 100%;
w\idth: auto;
margin: 1px 0;
padding: 5px 5px 5px 25px;
color: #fff;
background: #79B5E7 url(theme-bluecrush/colitem-header-bg.gif) 0 50% repeat;
font-size: 14px;
font-weight: bold;
line-height: 1;
}
.module-header a,
.module-header a:visited,
.trackbacks-header a,
.trackbacks-header a:visited,
.comments-header a,
.comments-header a:visited,
.comments-open-header a,
.comments-open-header a:visited
.archive-header a,
.archive-header a:visited
{
color: #fff;
}
.module-header a:hover,
.trackbacks-header a:hover,
.comments-header a:hover,
.comments-open-header a:hover
.archive-header a:hover
{
color: #f93;
}
.entry-more-link,
.entry-footer,
.comment-footer,
.trackback-footer,
.typelist-thumbnailed
{
font-size: 11px;
}
.trackbacks-info,
.comments-info
{
margin-bottom: 20px;
}
/* page layout */
body
{
min-width: 780px;
color: #666;
background: #94C4EC;
}
#container
{
width: 780px;
background: transparent url(theme-bluecrush/container-bg.gif) repeat-y;
}
#container-inner
{
margin: 0 10px 0 10px;
border-bottom: 1px solid #369;
background: transparent url(theme-bluecrush/column-right-bg.gif) -500px 0 repeat-y;
}
#banner
{
width: 760px; /* necessary for ie win */
border-bottom: 1px solid #369;
background: #335099 url(theme-bluecrush/banner-bg.gif) repeat-x;
}
#banner-inner { padding: 20px; }
.banner-user
{
width: 70px;
margin-top: 4px;
font-size: 10px;
}
.banner-user-photo { border: 3px solid #fff; }
#banner-header
{
margin: 0;
color: #fff;
font-size: 30px;
font-weight: bold;
line-height: 1;
}
#banner-description
{
margin: 1px 0;
color: #fff;
background: none;
font-size: 12px;
line-height: 1.125;
}
#alpha { margin: 20px 0 20px 20px; width: 260px; }
#beta { margin: 20px 0 0 40px; width: 420px;}
#gamma, #delta { width: 202px; }
.date-header
{
margin: 0;
color: #335099;
font-size: 14px;
text-transform: uppercase;
}
.entry-header
{
margin: 10px 0;
border-left: 4px solid #f93;
padding: 0 0 0 5px;
color: #f93;
font-size: 18px;
font-weight: bold;
}
.entry-content { margin: 0; }
.entry-footer
{
margin: 0 0 20px 0;
border-top: 1px solid #d7d7d7;
padding-top: 2px;
color: #393;
font-weight: normal;
}
.content-nav { margin-top: 0; }
.content-header
{
margin: 0 0 30px;
color: #f93;
font-size: 24px;
font-weight: bold;
}
/* modules */
.module-calendar .module-content { margin: 5px 0 15px 0; }
.module-mmt-calendar .module-content table,
.module-calendar .module-content table { font-size: 11px; }
.module-mmt-calendar .module-header a { color: #f93; }
.module-mmt-calendar .module-header a:visited { color: #f93; }
.module-mmt-calendar .module-header a:hover { color: #069; }
.module-powered { margin: 20px 0; }
.module-powered .module-content
{
margin: 0;
padding: 10px;
border: 1px dashed #39c;
color: #039;
background: #b8d4ec url(theme-bluecrush/powered-bg.gif) repeat-x;
}
.module-powered a { color: #06c; }
.module-powered a:visited { color: #06c; }
.module-powered a:hover { color: #f93; }
.module-photo { background: none; }
.module-photo img { border: solid 1px #dce1e4; }
.module-list-item
{
padding-left: 12px;
background: url(theme-bluecrush/li-bg.gif) 0 0.5em no-repeat;
line-height: 150%;
}
.typelist-thumbnailed .module-list
{
margin: 0;
}
.typelist-thumbnailed .module-list-item
{
margin: 0 0 1px 0;
padding: 0;
border: 1px solid #d9dee1;
background: #d2dfe9 url(theme-bluecrush/thumbnailed-bg.gif) repeat-x;
}
.typelist-thumbnail { background: #baccdb url(theme-bluecrush/typelist-thumbnail-bg.gif) repeat-x; }
.module-featured-photo img
{
width: 414px;
}
/* recent photos */
.module-recent-photos .module-content { margin: 6px 0 0 0; }
.module-recent-photos .module-list { margin: 0; }
.module-recent-photos .module-list-item
{
width: 64px; /* mac ie fix */
margin: 0 6px 6px 0;
padding: 0;
background: none;
}
.module-recent-photos .module-list-item a
{
border: 1px solid #39c;
padding: 1px;
background: #fff;
}
.module-recent-photos .module-list-item a:hover
{
border-color: #f93;
}
/* artistic tweaks */
/* calendar tweaks */
.layout-calendar #beta { overflow: visible; }
.module-mmt-calendar { width: 420px; }
.module-mmt-calendar .module-header
{
margin: 0 0 5px 0;
border: 0;
padding: 0;
color: #369;
background: none;
font-size: 14px;
font-weight: normal;
text-align: right;
}
.module-mmt-calendar table
{
color: #fff;
background: #bcc5cc;
}
.module-mmt-calendar th,
.module-mmt-calendar td
{
border-right: 1px solid #d0d0d0;
padding: 2px;
text-align: right;
font-weight: normal;
}
.module-mmt-calendar .weekday-7, td.day-7, td.day-14, td.day-21, td.day-28, td.day-35, td.day-42
{
border-right: none;
}
.day-photo a
{
border: solid 1px #39c;
padding: 1px;
background: #fff;
}
.day-photo a:hover
{
border-color: #f93;
}
/* moblog1 tweaks */
.layout-moblog1 #container-inner { background-position: -220px 0; }
.layout-moblog1 #pagebody
{
background: transparent url(theme-bluecrush/column-left-bg.gif) -580px 0 repeat-y;
}
.layout-moblog1 #alpha { width: 200px; }
.layout-moblog1 #beta
{
width: 320px;
margin: 20px 0 20px 20px;
}
.layout-moblog1 #gamma
{
width: 160px;
margin: 20px 0 20px 40px;
}
.layout-moblog1 .entry { margin-bottom: 40px; }
.layout-moblog1 .module-recent-photos .module-content { margin: 6px 0 0 12px; }
.layout-moblog1 .module-powered .module-content
{
margin-right: 20px;
}
/* moblog2 tweaks */
.layout-moblog2 #container-inner { background-position: -355px 0; }
.layout-moblog2 #pagebody
{
background: transparent url(theme-bluecrush/column-left-bg.gif) -695px 0 repeat-y;
}
.layout-moblog2 #pagebody-inner
{
background: transparent url(theme-bluecrush/column-right-bg.gif) -160px 0 repeat-y;
}
.layout-moblog2 #alpha { width: 65px; }
.layout-moblog2 #beta { width: 300px; margin: 0 0 0 40px; }
.layout-moblog2 #gamma { width: 175px; margin: 0 0 0 40px; }
.layout-moblog2 #delta
{
float: left;
width: 100px;
margin: 0 0 0 20px;
}
.layout-moblog2 .module-header,
.layout-moblog2 .trackbacks-header,
.layout-moblog2 .comments-header,
.layout-moblog2 .comments-open-header
.layout-moblog2 .archive-header
{
margin: 20px 0 1px 0;
}
.layout-moblog2 .date-header { margin-top: 20px; }
.layout-moblog2 .content-nav { margin-top: 20px; }
.layout-moblog2 .module-photo .module-content { margin: 0; }
.layout-moblog2 .module-photo img { width: 80px; height: auto; }
.layout-moblog2 .module-recent-photos .module-content
{
margin: 0;
padding: 0;
background: none;
}
.layout-moblog2 .module-recent-photos .module-list { margin: 0; }
.layout-moblog2 .module-recent-photos .module-list-item { margin: 0 0 5px 0; }
.layout-moblog2 .module-powered .module-content
{
margin-right: 20px;
}
/* timeline tweaks */
.layout-timeline #container-inner { background-position: -420px 0; }
.layout-timeline #alpha { width: 340px; }
.layout-timeline #beta { width: 360px; }
.layout-timeline #gamma,
.layout-timeline #delta
{
width: 170px;
}
.layout-timeline .module-recent-photos .module-content { padding: 0 0 10px 0; }
.layout-timeline .module-recent-photos .module-list { margin: 7px 7px 0 0; }
/* one-column tweaks */
.layout-one-column body
{
min-width: 620px;
}
.layout-one-column #container
{
width: 620px;
background: transparent url(theme-bluecrush/one-column-container-bg.gif) repeat-y;
}
.layout-one-column #container-inner
{
margin: 0 10px 0 10px;
border-bottom: 1px solid #5b626a;
background: transparent url(theme-bluecrush/column-right-bg.gif) -500px 0 repeat-y;
}
.layout-one-column #banner
{
width: 600px; /* necessary for ie win */
}
.layout-one-column #container-inner { background: none; }
.layout-one-column #alpha { width: 560px; }
/* two-column-left tweaks */
.layout-two-column-left #container-inner { background: none; }
.layout-two-column-left #pagebody
{
background: transparent url(theme-bluecrush/column-left-bg.gif) -580px 0 repeat-y;
}
.layout-two-column-left #alpha { width: 200px; }
.layout-two-column-left #beta
{
width: 500px;
margin: 20px 0 0 20px;
}
.layout-two-column-left .module-powered .module-content
{
margin-right: 10px;
}
/* two-column-right tweaks */
.layout-two-column-right #container-inner { background: none; }
.layout-two-column-right #pagebody
{
background: transparent url(theme-bluecrush/column-right-bg.gif) -260px 0 repeat-y;
}
.layout-two-column-right #container-inner { background: none; }
.layout-two-column-right #alpha { width: 500px; }
.layout-two-column-right #beta
{
width: 200px;
margin: 20px 0 0 40px;
}
.layout-two-column-right .module-powered .module-content
{
margin-right: 10px;
}
/* three-column tweaks */
.layout-three-column #container-inner { background-position: -260px 0; }
.layout-three-column #pagebody
{
background: transparent url(theme-bluecrush/column-left-bg.gif) -580px 0 repeat-y;
}
.layout-three-column #alpha { width: 200px; }
.layout-three-column #beta
{
width: 280px;
margin: 20px 0 20px 20px;
}
.layout-three-column #gamma
{
width: 200px;
margin: 20px 0 20px 40px;
}
.layout-three-column .module-powered .module-content
{
margin-right: 20px;
}
/* three-column-right tweaks */
.layout-three-column-right #container-inner { background-position: -480px 0; }
.layout-three-column-right #pagebody
{
background: transparent url(theme-bluecrush/column-right-bg.gif) -260px 0 repeat-y;
}
.layout-three-column-right #alpha { width: 280px; }
.layout-three-column-right #beta
{
width: 200px;
margin: 20px 0 20px 40px;
}
.layout-three-column-right #gamma
{
width: 200px;
margin: 20px 0 20px 20px;
}
.layout-three-column-right .module-powered .module-content
{
margin-right: 20px;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 504 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 227 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 283 B

BIN
demo/Blog/image/loading.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
demo/Blog/image/me.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

31
demo/Blog/js/thirdparty/jquery.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,17 @@
[% DEFAULT
blog_name = 'Foo\'s blog',
blog_desc = 'This is my blog'
-%]
<div id="banner">
<div id="wait-message">
<img src="loading.gif" alt=""/>
&nbsp; <b>Loading...</b>&nbsp;
</div>
<div id="banner-inner" class="pkg">
<h1 id="banner-header">
<a href="#posts/1" onclick="init()" accesskey="1">[% blog_name | html %]</a>
</h1>
<h2 id="banner-description">[% blog_desc | html %]</h2>
</div>
</div>

View File

@ -0,0 +1,27 @@
<ul class="module-list">
[% FOREACH archive IN archives -%]
<li class="module-list-item">
[%- index = archive.month %]
<a href="#archive/[% archive.year %]/[% archive.month %]">[% months.$index %] [% archive.year %] ([% archive.count %])</a>
</li>
[% END -%]
</ul>
<p class="module-more">
[% IF offset > 0 %]
<a href="javascript:getArchiveList([% offset - count %])">&lt;&lt;</a>
[% END %]
&nbsp; &nbsp;
&nbsp; &nbsp;
&nbsp; &nbsp;
&nbsp; &nbsp;
&nbsp; &nbsp;
[% IF archives.size == count %]
<a id="more-archives" href="javascript:getArchiveList([% offset + count %]);">
Next...
</a>
[% END %]
</p>

View File

@ -0,0 +1,16 @@
[% IF next %]
[%- index = next.month %]
<a href="#archive/[% next.year %]/[% next.month %]">
« [% months.$index %] [% next.year %]
</a>
[% END %]
|
<a href="#posts/1"> Main </a>
|
[% IF prev %]
[%- index = prev.month %]
<a href="#archive/[% prev.year %]/[% prev.month %]">
[% months.$index %] [% prev.year %] »
</a>
[% END %]

View File

@ -0,0 +1,71 @@
[%- index = month + 1 %]
<h2 class="module-header">[% months.$index %] [% year %]</h2>
<div class="module-content">
<table id="calendar-nav">
<tbody>
<tr>
<th>
<a class="nav-arrow"
href="javascript:void(0)"
onclick="getCalendar([% year - 1 %], [% month %])">
&lt;&lt;
</a>
</th>
<th>
<a class="nav-arrow"
href="javascript:void(0)"
onclick="getCalendar([% month - 1 < 0 ? year - 1 : year %], [% month - 1 < 0 ? 11 : month - 1 %])">
&lt;
</a>
</th>
<th>&nbsp;</th>
<th>&nbsp;</th>
<th>&nbsp;</th>
<th>
<a class="nav-arrow"
href="javascript:void(0)"
onclick="getCalendar([% month + 1 > 11 ? year + 1: year %], [% month + 1 > 11 ? 0 : month + 1 %])">
&gt;
</a>
</th>
<th>
<a class="nav-arrow"
href="javascript:void(0)"
onclick="getCalendar([% year + 1 %], [% month %])">
&gt;&gt;
</a>
</th>
</tr>
</tbody>
</table>
<table summary="Monthly calendar with links to each day's posts">
<tbody>
<tr>
<th>Sun</th>
<th>Mon</th>
<th>Tue</th>
<th>Wed</th>
<th>Thu</th>
<th>Fri</th>
<th>Sat</th>
</tr>
[%- day = 1; %]
[%- WHILE day <= end_of_month %]
<tr>
[%- day_of_week = 0 %]
[%- WHILE day_of_week <= 6 %]
[%- today_mark = day == today ? 'class="today-cell"' : '' %]
[%- IF (day > end_of_month) || (day == 1 && day_of_week < first_day_of_week) -%]
<td>&nbsp;</td>
[%- ELSE -%]
<td id="day-[% year %]-[% month %]-[% day %]" [% today_mark %]>[% day %]</td>
[%- day = day + 1 %]
[%- END %]
[%- day_of_week = day_of_week + 1 %]
[%- END %]
[%- END %]
</tr>
</tbody>
</table>
</div>

View File

@ -0,0 +1,29 @@
[%- FOREACH comment IN comments -%]
<a name="post-[% comment.post %]:comment-[% comment.id %]" id="post-[% comment.post %]:comment-[% comment.id %]"></a>
<div class="comment" id="comment-95523406">
<div class="comment-content">
[%- IF comment.body %]
[%- comment.body.replace('&', '&amp;')
.replace('<', '&lt;')
.replace('>', '&gt;')
.replace('\n', '<br/>')
.replace(' ', '&nbsp; ')
.replace('(http://(?:\%[A-Fa-f0-9]{2}|[-A-Za-z./0-9~_])+)', '<a href="$1">$1</a>') %]
[%- END %]
</div>
<p class="comment-footer">
Posted by:
[% IF comment.url %]
[%- url = comment.url %]
[% IF NOT url.match('^\\w+://');
url = 'http://' _ url;
END -%]
<a href="[% url | html %]">[% comment.sender | html %]</a>
[% ELSE %]
[% comment.sender | html %] |
[% END %]
[% comment.created | html %]
</p>
</div>
[%- END %]

View File

@ -0,0 +1,24 @@
[%
SET prev_post = undef;
SET next_post = undef;
FOREACH post IN posts;
IF post.id < current;
prev_post = post;
ELSE;
next_post = post;
END;
END -%]
[% IF next_post %]
<a href="#post-[% next_post.id %]">
« [% next_post.title %]
</a>
[% END %]
|
<a href="#post-list"> Main </a>
|
[% IF prev_post %]
<a href="#post-[% prev_post.id %]">
[% prev_post.title %] »
</a>
[% END %]

View File

@ -0,0 +1,51 @@
[% DEFAULT
page = 1,
page_count = undef,
title = 'Pages',
prefix = 'post-list/',
suffix = ''
-%]
[% IF page_count <= 10;
from = 1;
to = page_count;
ELSE;
from = page - 10 >= 1 ? page - 10 : 1
to = page + 9 >= page_count ? page_count : page + 9;
END -%]
<center>
<table class="paging">
<tr>
<td>
[% title %]:&nbsp; &nbsp;
</td>
<td>
[%- IF page > 1 %]
<span class="prev-page">
<a href="#[% prefix _ (page - 1) _ suffix %]">Previous</a>
</span>
[%- END %]
</td>
[%- i = from; %]
[%- WHILE i <= to %]
[%- IF i == page %]
<td class="highlight">[% i %]</td>
[%- ELSE %]
<td><a href="#[% prefix _ i _ suffix %]">[% i %]</a></td>
[%- END %]
[%- i = i + 1 %]
[%- END %]
<td>
[%- IF page < page_count %]
<span class="next-page">
<a href="#[% prefix _ (page + 1) _ suffix %]">Next</a>
</span>
[%- END %]
</td>
</tr>
</table>
</center>
<br/>

View File

@ -0,0 +1,5 @@
<div id="post-list-nav" class="content-nav"></div>
[% FOREACH post IN post_list %]
[% PROCESS 'post.tt' %]
[% END %]

View File

@ -0,0 +1,55 @@
<p class="content-nav">
</p>
<!-- entry -->
[% PROCESS 'post.tt' -%]
<a id="post-[%post.id%]:comments" name="post-[%post.id%]-comments"></a>
<div class="comments">
<h3 class="comments-header">Comments</h3>
<div class="comments-content">
<!-- comment list -->
</div>
</div>
<!-- comment form -->
<form id="comment-form" onsubmit="return false;" method="post">
<div class="comments-open">
<input id="comment-for" type="hidden" value="[% post.id %]"></input>
<h2 class="comments-open-header">Post a comment</h2>
<div class="comments-open-content">
<div id="comments-open-data">
<p>
<label for="comment-author">Name:</label>
<input id="comment-author" name="author" size="30" class="required"/>
</p>
<p>
<label for="comment-email">Email Address: <span class="comment-form-note">(Not displayed with comment.)</span></label>
<input id="comment-email" name="email" size="30" class="required" />
</p>
<p>
<label for="comment-url">URL:</label>
<input id="comment-url" name="url" size="30" />
</p>
<p>
<label for="comment-bake-cookie"><input type="checkbox"
id="comment-bake-cookie" name="bakecookie" value="1" />
Remember personal info?</label>
</p>
</div>
<p id="comments-open-text">
<label for="comment-text">Comments:</label>
<textarea id="comment-text" name="text" rows="10" cols="30" class="required"></textarea>
</p>
</div>
<div id="comments-open-footer" class="comments-open-footer">
<!-- <button name="preview" id="comment-preview">&nbsp;Preview&nbsp;</button> -->
<button name="post" id="comment-post" onclick="postComment([% post.id %]);">&nbsp;Post&nbsp;</button>
</div>
</div>
</form>

View File

@ -0,0 +1,32 @@
<h2 class="date-header">[% post.created %]</h2>
<div class="entry">
<h3 class="entry-header">
<a href="#post-[% post.id %]">
[%- post.title -%]
</a>
</h3>
<div class="entry-content">
<div class="entry-body">
[%- post.content -%]
<p/>
</div>
</div>
<div class="entry-footer">
<p class="entry-footer-info">
<span class="post-footers">
Posted by [% post.author %] at
[% post.created %] in
<a href="#post-[% post.id %]">Articles</a>
</span>
<span class="separator">|</span>
<a class="permalink" href="#post-[% post.id %]">Permalink</a>
<span class="separator">|</span>
<a href="#post-[% post.id %]:comments">Comments
(<span class="comment-count" post="[% post.id %]">[% post.comments %]</span>)
</a>
</p>
<!-- technorati tags -->
<!-- post footer links -->
</div>
</div>

View File

@ -0,0 +1,30 @@
<ul class="module-list">
[% last_id %]
[% FOREACH comment IN comments -%]
<li class="module-list-item">
<a href="#post-[% comment.post %]:comment-[% comment.id %]">
[% comment.sender | html %]</a> on
<a href="#post-[% comment.post %]">[% comment.title | html %]</a>
</li>
[%- last_id = comment.id %]
[% END -%]
</ul>
<p class="module-more">
[% IF offset > 0 %]
<a href="javascript:getRecentComments([% offset - count %])">&lt;&lt</a>
[% END %]
&nbsp; &nbsp;
&nbsp; &nbsp;
&nbsp; &nbsp;
&nbsp; &nbsp;
&nbsp; &nbsp;
[% IF last_id > 1 && comments.size == count %]
<a id="more-recent-comments" href="javascript:getRecentComments([% offset + count %]);">
Next...
</a>
[% END %]
</p>

View File

@ -0,0 +1,28 @@
<ul class="module-list">
[% last_id %]
[% FOREACH post IN posts -%]
<li class="module-list-item">
<a href="#post-[% post.id %]">[% post.title %]</a>
</li>
[%- last_id = post.id %]
[% END -%]
</ul>
<p class="module-more">
[% IF offset > 0 %]
<a href="javascript:getRecentPosts([% offset - count %])">&lt;&lt;</a>
[% END %]
&nbsp; &nbsp;
&nbsp; &nbsp;
&nbsp; &nbsp;
&nbsp; &nbsp;
&nbsp; &nbsp;
[% IF last_id > 1 && posts.size == count %]
<a id="more-recent-posts" href="javascript:getRecentPosts([% offset + count %]);">
Next...
</a>
[% END %]
</p>

View File

@ -0,0 +1,11 @@
<div id="copyright">
<center>
<p>Powered by <a href="http://search.cpan.org/dist/OpenResty">OpenResty</a> and your web browser.</p>
<p>Chinese segmentation by <a target="_blank" href="http://code.google.com/p/nlpbamboo">Bamboo</a>
<!-- &nbsp; <script type="text/javascript" src="http://www.ohloh.net/projects/25889/widgets/project_thin_badge"></script>
-->
</p>
<p>Copyright © 2008 by Yahoo! China EEEE Works, Alibaba Inc.</p>
</center>
</div>

View File

@ -0,0 +1,36 @@
[% DEFAULT
blog_name = 'Foo\'s blog',
blog_desc = 'This is my blog';
-%]
[% IF NOT pack_js;
js_files = [
'jquery.js',
'blog-jemplate.js',
'openresty.js',
'dojo.openresty.js',
'blog.js',
];
ELSE;
js_files = ['jquery-dojo.js', 'blog_min.js'];
END;
-%]
<head>
<title>[% blog_name | html %]</title>
<meta name="description" content="[% blog_desc %]" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="http://search.cpan.org/perldoc?OpenResty" />
[%- FOREACH js_file IN js_files %]
<script type="text/javascript" src="[% js_file %]"></script>
[%- END %]
<link rel="stylesheet" href="blog.css" type="text/css" media="screen" />
<link rel="stylesheet" href="styles.css" type="text/css" media="screen" />
<link rel="stylesheet" href="themes/common/print.css" type="text/css" media="print" />
<link rel="alternate" type="application/rss+xml" title="Posts on '[% blog_name | html %]' (RSS 2.0)" href="http://[% resty_server %]/=/feed/Post/_user/[% blog_owner %].Public" />
<link rel="alternate" type="application/rss+xml" title="Comments on '[% blog_name | html %]' (RSS 2.0)" href="http://[% resty_server %]/=/feed/Comment/_user/[% blog_owner %].Public" />
</head>

View File

@ -0,0 +1,41 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" id="sixapart-standard">
[%- PROCESS 'header.tt' -%]
<body class="layout-two-column-left">
<a name="top" class="blog-top"></a>
<!-- <a class="anchor-location"></a> -->
<div id="container">
<div id="container-inner" class="pkg">
<!-- banner -->
[%- PROCESS 'banner.tt' %]
<div id="pagebody">
<div id="pagebody-inner" class="pkg">
<div id="alpha">
<div id="alpha-inner" class="pkg">
<!-- sidebar -->
[%- PROCESS 'sidebar.tt' %]
</div>
</div>
<div id="beta">
<div class="pkg pager"></div>
<div id="beta-inner" class="pkg">
<!-- entries -->
</div>
<div class="pkg pager"></div>
<br/>
</div>
</div>
</div>
[%- PROCESS 'footer.tt' %]
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,98 @@
<div class="module-calendar module">
<!-- calendar.tt -->
</div>
<div class="module-archives module">
<h2 class="module-header">Site search</h2>
<div id="search-posts" class="module-content">
<form id="form-search" onsubmit="doPostSearch();return false;" action="">
<input type="text" size="20" maxlength="125" id="searchbox"/><br/>
<input type="submit" value="Search posts"/>
<!-- <input type="button" value="Comments"/> -->
</form>
</div>
</div>
<div class="module-archives module">
<h2 class="module-header">Recent Posts</h2>
<div id="recent-posts" class="module-content">
</div>
</div>
<div class="module-recent-comments module">
<h2 class="module-header">Recent Comments</h2>
<div class="module-content" id="recent-comments">
</div>
</div>
<div class="module-categories module">
<h2 class="module-header">Categories</h2>
<div class="module-content">
</div>
</div>
<div class="module-archives module">
<h2 class="module-header">Archives</h2>
<div class="module-content" id="archive-list">
</div>
</div>
[% IF blog_owner == 'agentzh' %]
<div class="module-feed module">
<h2 class="module-header">[% blog_owner %]</h2>
<div class="module-content" id="feed-d6e3ea166d4156b0ee0935b704a55dbf5f52a212">
</div>
</div>
<!-- user photo -->
<div class="module-photo module">
<div class="module-content"><img src="me.jpg" alt="My Photo" /></div>
<br/>
</div>
[% END %]
<div class="module-syndicate module">
<h2 class="module-header">RSS feed</h2>
<div class="module-content">
<!-- this is a hack; we'll use OpenAPI's own RSS feed support later -->
<ul class="module-list">
<li class="module-list-item">
<a href="http://[% resty_server %]/=/feed/Post/_user/[% blog_owner %].Public">Subscribe to the article feed</a>
</li>
<li class="module-list-item">
<a href="http://[% resty_server %]/=/feed/Comment/_user/[% blog_owner %].Public">Subscribe to the comment feed</a>
</li>
</ul>
</div>
</div>
<div class="module-download module">
<h2 class="module-header"><a
href="site-binary.tar.gz">Download this site</a></h2>
<div class="module-content">
<ul class="module-list">
<li class="module-list-item">
<a href="site-binary.tar.gz">Compiled form (.tar.gz)</a>
</li>
<li class="module-list-item">
<a target="_blank" href="http://github.com/agentzh/openresty/tree/8463c31834e1d007da26b8b6549e4d06b5963b70/demo/[% blog_owner == 'agentzh' ? "Blog" : "Blog2" %]/">
Source code (Git)
</a>
</li>
</ul>
</div>
</div>
<div class="module-typelist module">
<h2 class="module-header">License</h2>
<div class="module-content">
<ul class="module-list">
<li class="module-list-item">
This work is licensed under
<a href="http://en.wikipedia.org/wiki/MIT_License">
the MIT License
</a>.
</li>
</ul>
</div>
</div>