darthapo-stratus 0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Changelog +3 -0
- data/Manifest +87 -0
- data/Rakefile +82 -0
- data/Readme.markdown +15 -0
- data/bin/stratus +8 -0
- data/lib/stratus/cli.rb +206 -0
- data/lib/stratus/filters.rb +73 -0
- data/lib/stratus/generator/builder.rb +147 -0
- data/lib/stratus/generator/context.rb +39 -0
- data/lib/stratus/generator/renderer.rb +100 -0
- data/lib/stratus/generator/scanner.rb +75 -0
- data/lib/stratus/generator.rb +12 -0
- data/lib/stratus/resources/attachment.rb +41 -0
- data/lib/stratus/resources/base.rb +257 -0
- data/lib/stratus/resources/content.rb +17 -0
- data/lib/stratus/resources/hash_db.rb +128 -0
- data/lib/stratus/resources/layout.rb +18 -0
- data/lib/stratus/resources/template.rb +22 -0
- data/lib/stratus/resources.rb +75 -0
- data/lib/stratus/settings.rb +19 -0
- data/lib/stratus/tags/markdown.rb +19 -0
- data/lib/stratus/tags/textile.rb +19 -0
- data/lib/stratus/tags.rb +3 -0
- data/lib/stratus/tasks/app/boilerplate/StratusSite +25 -0
- data/lib/stratus/tasks/app/boilerplate/config/defaults/page.default.html +10 -0
- data/lib/stratus/tasks/app/boilerplate/config/defaults/post.default.html +10 -0
- data/lib/stratus/tasks/app/boilerplate/config/site.yaml +16 -0
- data/lib/stratus/tasks/app/boilerplate/content/pages/home/index.html +35 -0
- data/lib/stratus/tasks/app/boilerplate/themes/default/styles/main.css +12 -0
- data/lib/stratus/tasks/app/boilerplate/themes/default/templates/layouts/main.html +31 -0
- data/lib/stratus/tasks/app/boilerplate/themes/default/templates/objects/page.html +7 -0
- data/lib/stratus/tasks/app/boilerplate/themes/default/templates/objects/page.index.html +10 -0
- data/lib/stratus/tasks/app/boilerplate/themes/default/templates/objects/post.html +22 -0
- data/lib/stratus/tasks/app/boilerplate/themes/default/templates/objects/post.index.html +10 -0
- data/lib/stratus/tasks/app/site.rake +68 -0
- data/lib/stratus/tasks/shared/system.rake +16 -0
- data/lib/stratus/tasks/site/new.rake +108 -0
- data/lib/stratus/tasks/site/site.rake +21 -0
- data/lib/stratus/tasks/site/theme.rake +13 -0
- data/lib/stratus.rb +62 -0
- data/stratus.gemspec +31 -0
- data/test/fixtures/site/StratusSite +26 -0
- data/test/fixtures/site/config/defaults/article.default.html +7 -0
- data/test/fixtures/site/config/defaults/content.default.html +7 -0
- data/test/fixtures/site/config/defaults/page.default.html +10 -0
- data/test/fixtures/site/config/defaults/post.default.html +10 -0
- data/test/fixtures/site/config/site.yaml +25 -0
- data/test/fixtures/site/content/articles/001_im-the-title/index.html +10 -0
- data/test/fixtures/site/content/pages/about/index.html +7 -0
- data/test/fixtures/site/content/pages/home/index.html +37 -0
- data/test/fixtures/site/content/pages/projects/index.html +6 -0
- data/test/fixtures/site/content/posts/001_new-blog/dom.js +123 -0
- data/test/fixtures/site/content/posts/001_new-blog/index.html +24 -0
- data/test/fixtures/site/content/posts/001_new-blog/old.html +18 -0
- data/test/fixtures/site/content/posts/002_fun-for-the-whole-family/index.html +12 -0
- data/test/fixtures/site/content/posts/002_fun-for-the-whole-family/snippet_one.rb +5 -0
- data/test/fixtures/site/content/posts/003_life-is-quite-fun-really/index.html +12 -0
- data/test/fixtures/site/themes/default/scripts/code_highlighter.js +188 -0
- data/test/fixtures/site/themes/default/scripts/code_syntax.js +92 -0
- data/test/fixtures/site/themes/default/styles/code_syntax.css +68 -0
- data/test/fixtures/site/themes/default/styles/main.css +66 -0
- data/test/fixtures/site/themes/default/templates/layouts/main.html +36 -0
- data/test/fixtures/site/themes/default/templates/objects/article.html +7 -0
- data/test/fixtures/site/themes/default/templates/objects/article.index.html +8 -0
- data/test/fixtures/site/themes/default/templates/objects/feed.xml +25 -0
- data/test/fixtures/site/themes/default/templates/objects/page.html +7 -0
- data/test/fixtures/site/themes/default/templates/objects/page.index.html +10 -0
- data/test/fixtures/site/themes/default/templates/objects/post.html +22 -0
- data/test/fixtures/site/themes/default/templates/objects/post.index.html +10 -0
- data/test/fixtures/site/www/index.html +82 -0
- data/test/fixtures/site/www/pages/about/index.html +43 -0
- data/test/fixtures/site/www/pages/home/index.html +82 -0
- data/test/fixtures/site/www/pages/index.html +52 -0
- data/test/fixtures/site/www/pages/projects/index.html +43 -0
- data/test/fixtures/site/www/posts/fun-for-the-whole-family/index.html +66 -0
- data/test/fixtures/site/www/posts/fun-for-the-whole-family/snippet_one.rb +5 -0
- data/test/fixtures/site/www/posts/index.html +63 -0
- data/test/fixtures/site/www/posts/life-is-quite-fun-really/index.html +58 -0
- data/test/fixtures/site/www/posts/new-blog/dom.js +123 -0
- data/test/fixtures/site/www/posts/new-blog/index.html +192 -0
- data/test/fixtures/site/www/posts/new-blog/old.html +18 -0
- data/test/fixtures/site/www/theme/scripts/code_highlighter.js +188 -0
- data/test/fixtures/site/www/theme/scripts/code_syntax.js +92 -0
- data/test/fixtures/site/www/theme/styles/code_syntax.css +68 -0
- data/test/fixtures/site/www/theme/styles/main.css +66 -0
- data/test/fixtures/site/www/themes/default/styles/main.css +62 -0
- data/test/test_helper.rb +0 -0
- metadata +143 -0
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
/* Unobtrustive Code Highlighter By Dan Webb 11/2005
|
|
2
|
+
Version: 0.4
|
|
3
|
+
|
|
4
|
+
Usage:
|
|
5
|
+
Add a script tag for this script and any stylesets you need to use
|
|
6
|
+
to the page in question, add correct class names to CODE elements,
|
|
7
|
+
define CSS styles for elements. That's it!
|
|
8
|
+
|
|
9
|
+
Known to work on:
|
|
10
|
+
IE 5.5+ PC
|
|
11
|
+
Firefox/Mozilla PC/Mac
|
|
12
|
+
Opera 7.23 + PC
|
|
13
|
+
Safari 2
|
|
14
|
+
|
|
15
|
+
Known to degrade gracefully on:
|
|
16
|
+
IE5.0 PC
|
|
17
|
+
|
|
18
|
+
Note: IE5.0 fails due to the use of lookahead in some stylesets. To avoid script errors
|
|
19
|
+
in older browsers use expressions that use lookahead in string format when defining stylesets.
|
|
20
|
+
|
|
21
|
+
This script is inspired by star-light by entirely cunning Dean Edwards
|
|
22
|
+
http://dean.edwards.name/star-light/.
|
|
23
|
+
*/
|
|
24
|
+
|
|
25
|
+
// replace callback support for safari.
|
|
26
|
+
if ("a".replace(/a/, function() {return "b"}) != "b") (function(){
|
|
27
|
+
var default_replace = String.prototype.replace;
|
|
28
|
+
String.prototype.replace = function(search,replace){
|
|
29
|
+
// replace is not function
|
|
30
|
+
if(typeof replace != "function"){
|
|
31
|
+
return default_replace.apply(this,arguments)
|
|
32
|
+
}
|
|
33
|
+
var str = "" + this;
|
|
34
|
+
var callback = replace;
|
|
35
|
+
// search string is not RegExp
|
|
36
|
+
if(!(search instanceof RegExp)){
|
|
37
|
+
var idx = str.indexOf(search);
|
|
38
|
+
return (
|
|
39
|
+
idx == -1 ? str :
|
|
40
|
+
default_replace.apply(str,[search,callback(search, idx, str)])
|
|
41
|
+
)
|
|
42
|
+
}
|
|
43
|
+
var reg = search;
|
|
44
|
+
var result = [];
|
|
45
|
+
var lastidx = reg.lastIndex;
|
|
46
|
+
var re;
|
|
47
|
+
while((re = reg.exec(str)) != null){
|
|
48
|
+
var idx = re.index;
|
|
49
|
+
var args = re.concat(idx, str);
|
|
50
|
+
result.push(
|
|
51
|
+
str.slice(lastidx,idx),
|
|
52
|
+
callback.apply(null,args).toString()
|
|
53
|
+
);
|
|
54
|
+
if(!reg.global){
|
|
55
|
+
lastidx += RegExp.lastMatch.length;
|
|
56
|
+
break
|
|
57
|
+
}else{
|
|
58
|
+
lastidx = reg.lastIndex;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
result.push(str.slice(lastidx));
|
|
62
|
+
return result.join("")
|
|
63
|
+
}
|
|
64
|
+
})();
|
|
65
|
+
|
|
66
|
+
var CodeHighlighter = { styleSets : new Array };
|
|
67
|
+
|
|
68
|
+
CodeHighlighter.addStyle = function(name, rules) {
|
|
69
|
+
// using push test to disallow older browsers from adding styleSets
|
|
70
|
+
if ([].push) this.styleSets.push({
|
|
71
|
+
name : name,
|
|
72
|
+
rules : rules,
|
|
73
|
+
ignoreCase : arguments[2] || false
|
|
74
|
+
})
|
|
75
|
+
|
|
76
|
+
function setEvent() {
|
|
77
|
+
// set highlighter to run on load (use LowPro if present)
|
|
78
|
+
if (typeof Event != 'undefined' && typeof Event.onReady == 'function')
|
|
79
|
+
return Event.onReady(CodeHighlighter.init.bind(CodeHighlighter));
|
|
80
|
+
|
|
81
|
+
var old = window.onload;
|
|
82
|
+
|
|
83
|
+
if (typeof window.onload != 'function') {
|
|
84
|
+
window.onload = function() { CodeHighlighter.init() };
|
|
85
|
+
} else {
|
|
86
|
+
window.onload = function() {
|
|
87
|
+
old();
|
|
88
|
+
CodeHighlighter.init();
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
// only set the event when the first style is added
|
|
94
|
+
if (this.styleSets.length==1) setEvent();
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
CodeHighlighter.init = function() {
|
|
98
|
+
if (!document.getElementsByTagName) return;
|
|
99
|
+
if ("a".replace(/a/, function() {return "b"}) != "b") return; // throw out Safari versions that don't support replace function
|
|
100
|
+
// throw out older browsers
|
|
101
|
+
|
|
102
|
+
var codeEls = document.getElementsByTagName("CODE");
|
|
103
|
+
// collect array of all pre elements
|
|
104
|
+
codeEls.filter = function(f) {
|
|
105
|
+
var a = new Array;
|
|
106
|
+
for (var i = 0; i < this.length; i++) if (f(this[i])) a[a.length] = this[i];
|
|
107
|
+
return a;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
var rules = new Array;
|
|
111
|
+
rules.toString = function() {
|
|
112
|
+
// joins regexes into one big parallel regex
|
|
113
|
+
var exps = new Array;
|
|
114
|
+
for (var i = 0; i < this.length; i++) exps.push(this[i].exp);
|
|
115
|
+
return exps.join("|");
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
function addRule(className, rule) {
|
|
119
|
+
// add a replace rule
|
|
120
|
+
var exp = (typeof rule.exp != "string")?String(rule.exp).substr(1, String(rule.exp).length-2):rule.exp;
|
|
121
|
+
// converts regex rules to strings and chops of the slashes
|
|
122
|
+
rules.push({
|
|
123
|
+
className : className,
|
|
124
|
+
exp : "(" + exp + ")",
|
|
125
|
+
length : (exp.match(/(^|[^\\])\([^?]/g) || "").length + 1, // number of subexps in rule
|
|
126
|
+
replacement : rule.replacement || null
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
function parse(text, ignoreCase) {
|
|
131
|
+
// main text parsing and replacement
|
|
132
|
+
return text.replace(new RegExp(rules, (ignoreCase)?"gi":"g"), function() {
|
|
133
|
+
var i = 0, j = 1, rule;
|
|
134
|
+
while (rule = rules[i++]) {
|
|
135
|
+
if (arguments[j]) {
|
|
136
|
+
// if no custom replacement defined do the simple replacement
|
|
137
|
+
if (!rule.replacement) return "<span class=\"" + rule.className + "\">" + arguments[0] + "</span>";
|
|
138
|
+
else {
|
|
139
|
+
// replace $0 with the className then do normal replaces
|
|
140
|
+
var str = rule.replacement.replace("$0", rule.className);
|
|
141
|
+
for (var k = 1; k <= rule.length - 1; k++) str = str.replace("$" + k, arguments[j + k]);
|
|
142
|
+
return str;
|
|
143
|
+
}
|
|
144
|
+
} else j+= rule.length;
|
|
145
|
+
}
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
function highlightCode(styleSet) {
|
|
150
|
+
// clear rules array
|
|
151
|
+
var parsed, clsRx = new RegExp("(\\s|^)" + styleSet.name + "(\\s|$)");
|
|
152
|
+
rules.length = 0;
|
|
153
|
+
|
|
154
|
+
// get stylable elements by filtering out all code elements without the correct className
|
|
155
|
+
var stylableEls = codeEls.filter(function(item) { return clsRx.test(item.className) });
|
|
156
|
+
|
|
157
|
+
// add style rules to parser
|
|
158
|
+
for (var className in styleSet.rules) addRule(className, styleSet.rules[className]);
|
|
159
|
+
|
|
160
|
+
|
|
161
|
+
// replace for all elements
|
|
162
|
+
for (var i = 0; i < stylableEls.length; i++) {
|
|
163
|
+
// EVIL hack to fix IE whitespace badness if it's inside a <pre>
|
|
164
|
+
if (/MSIE/.test(navigator.appVersion) && stylableEls[i].parentNode.nodeName == 'PRE') {
|
|
165
|
+
stylableEls[i] = stylableEls[i].parentNode;
|
|
166
|
+
|
|
167
|
+
parsed = stylableEls[i].innerHTML.replace(/(<code[^>]*>)([^<]*)<\/code>/i, function() {
|
|
168
|
+
return arguments[1] + parse(arguments[2], styleSet.ignoreCase) + "</code>"
|
|
169
|
+
});
|
|
170
|
+
parsed = parsed.replace(/\n( *)/g, function() {
|
|
171
|
+
var spaces = "";
|
|
172
|
+
for (var i = 0; i < arguments[1].length; i++) spaces+= " ";
|
|
173
|
+
return "\n" + spaces;
|
|
174
|
+
});
|
|
175
|
+
parsed = parsed.replace(/\t/g, " ");
|
|
176
|
+
parsed = parsed.replace(/\n(<\/\w+>)?/g, "<br />$1").replace(/<br \/>[\n\r\s]*<br \/>/g, "<p><br></p>");
|
|
177
|
+
|
|
178
|
+
} else parsed = parse(stylableEls[i].innerHTML, styleSet.ignoreCase);
|
|
179
|
+
|
|
180
|
+
stylableEls[i].innerHTML = parsed;
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
// run highlighter on all stylesets
|
|
185
|
+
for (var i=0; i < this.styleSets.length; i++) {
|
|
186
|
+
highlightCode(this.styleSets[i]);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
// =======
|
|
2
|
+
// = CSS =
|
|
3
|
+
// =======
|
|
4
|
+
CodeHighlighter.addStyle("css", {
|
|
5
|
+
comment : {
|
|
6
|
+
exp : /\/\*[^*]*\*+([^\/][^*]*\*+)*\//
|
|
7
|
+
},
|
|
8
|
+
keywords : {
|
|
9
|
+
exp : /@\w[\w\s]*/
|
|
10
|
+
},
|
|
11
|
+
selectors : {
|
|
12
|
+
exp : "([\\w-:\\[.#][^{};>]*)(?={)"
|
|
13
|
+
},
|
|
14
|
+
properties : {
|
|
15
|
+
exp : "([\\w-]+)(?=\\s*:)"
|
|
16
|
+
},
|
|
17
|
+
units : {
|
|
18
|
+
exp : /([0-9])(em|en|px|%|pt)\b/,
|
|
19
|
+
replacement : "$1<span class=\"$0\">$2</span>"
|
|
20
|
+
},
|
|
21
|
+
urls : {
|
|
22
|
+
exp : /url\([^\)]*\)/
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
// ========
|
|
27
|
+
// = HTML =
|
|
28
|
+
// ========
|
|
29
|
+
CodeHighlighter.addStyle("html", {
|
|
30
|
+
comment : {
|
|
31
|
+
exp: /<!\s*(--([^-]|[\r\n]|-[^-])*--\s*)>/
|
|
32
|
+
},
|
|
33
|
+
tag : {
|
|
34
|
+
exp: /(<\/?)([a-zA-Z]+\s?)/,
|
|
35
|
+
replacement: "$1<span class=\"$0\">$2</span>"
|
|
36
|
+
},
|
|
37
|
+
string : {
|
|
38
|
+
exp : /'[^']*'|"[^"]*"/
|
|
39
|
+
},
|
|
40
|
+
attribute : {
|
|
41
|
+
exp: /\b([a-zA-Z-:]+)(=)/,
|
|
42
|
+
replacement: "<span class=\"$0\">$1</span>$2"
|
|
43
|
+
},
|
|
44
|
+
doctype : {
|
|
45
|
+
exp: /<!DOCTYPE([^&]|&[^g]|&g[^t])*>/
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
// ==============
|
|
50
|
+
// = JavaScript =
|
|
51
|
+
// ==============
|
|
52
|
+
CodeHighlighter.addStyle("javascript",{
|
|
53
|
+
comment : {
|
|
54
|
+
exp : /(\/\/[^\n]*(\n|$))|(\/\*[^*]*\*+([^\/][^*]*\*+)*\/)/
|
|
55
|
+
},
|
|
56
|
+
brackets : {
|
|
57
|
+
exp : /\(|\)/
|
|
58
|
+
},
|
|
59
|
+
string : {
|
|
60
|
+
exp : /'[^']*'|"[^"]*"/
|
|
61
|
+
},
|
|
62
|
+
keywords : {
|
|
63
|
+
exp : /\b(arguments|break|case|continue|default|delete|do|else|false|for|function|if|in|instanceof|new|null|return|switch|this|true|typeof|var|void|while|with)\b/
|
|
64
|
+
},
|
|
65
|
+
global : {
|
|
66
|
+
exp : /\b(toString|valueOf|window|element|prototype|constructor|document|escape|unescape|parseInt|parseFloat|setTimeout|clearTimeout|setInterval|clearInterval|NaN|isNaN|Infinity)\b/
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
// ========
|
|
71
|
+
// = Ruby =
|
|
72
|
+
// ========
|
|
73
|
+
CodeHighlighter.addStyle("ruby",{
|
|
74
|
+
comment : {
|
|
75
|
+
exp : /#[^\n]+/
|
|
76
|
+
},
|
|
77
|
+
brackets : {
|
|
78
|
+
exp : /\(|\)/
|
|
79
|
+
},
|
|
80
|
+
string : {
|
|
81
|
+
exp : /'[^']*'|"[^"]*"/
|
|
82
|
+
},
|
|
83
|
+
keywords : {
|
|
84
|
+
exp : /\b(do|end|self|class|def|if|module|yield|then|else|for|until|unless|while|elsif|case|when|break|retry|redo|rescue|require|raise)\b/
|
|
85
|
+
},
|
|
86
|
+
symbol : {
|
|
87
|
+
exp : /(:[A-Za-z0-9_!?]+)/
|
|
88
|
+
},
|
|
89
|
+
attribute : {
|
|
90
|
+
exp : /(@[A-Za-z0-9_!?]+)/
|
|
91
|
+
}
|
|
92
|
+
});
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
|
|
2
|
+
/* ======================= */
|
|
3
|
+
/* = Syntax Highlighting = */
|
|
4
|
+
/* ======================= */
|
|
5
|
+
.javascript .comment, .ruby .comment {
|
|
6
|
+
color : green;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
.javascript .string, .ruby .string {
|
|
10
|
+
color : teal;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.javascript .keywords, .ruby .keywords {
|
|
14
|
+
color : navy;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.javascript .global {
|
|
18
|
+
color : blue;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.javascript .brackets, .ruby .brackets {
|
|
22
|
+
color : navy;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.css .comment {
|
|
26
|
+
color : gray;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.css .properties {
|
|
30
|
+
color : navy;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
.css .selectors {
|
|
34
|
+
color : maroon;
|
|
35
|
+
font-weight : bold;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.css .units {
|
|
39
|
+
color :red;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.css .urls {
|
|
43
|
+
color :green;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
.html .tag {
|
|
47
|
+
color : purple;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
.html .comment {
|
|
51
|
+
color : gray;
|
|
52
|
+
font-style: italic;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.html .string {
|
|
56
|
+
color : navy;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
.html .doctype {
|
|
60
|
+
color : teal;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.ruby .symbol {
|
|
64
|
+
color: red;
|
|
65
|
+
}
|
|
66
|
+
.ruby .attribute {
|
|
67
|
+
color: teal;
|
|
68
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
* {
|
|
2
|
+
margin: 0px;
|
|
3
|
+
padding: 0px;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
BODY {
|
|
7
|
+
font-family: "tahoma";
|
|
8
|
+
background: #555;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
BODY BUTTON {
|
|
12
|
+
padding: 3px 10px;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.page-container {
|
|
16
|
+
width: 650px;
|
|
17
|
+
margin: 0 auto;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.header {
|
|
21
|
+
background: #0080FF;
|
|
22
|
+
padding: 10px 25px;
|
|
23
|
+
color: #FFF;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.subtitle {
|
|
27
|
+
font-size: 75%;
|
|
28
|
+
font-weight: normal;
|
|
29
|
+
color: #6CF;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.navigation {
|
|
33
|
+
background: #222;
|
|
34
|
+
color: #999;
|
|
35
|
+
padding: 5px 10px;
|
|
36
|
+
}
|
|
37
|
+
.navigation A {
|
|
38
|
+
color: #DDD;
|
|
39
|
+
font-size: 90%;
|
|
40
|
+
}
|
|
41
|
+
.navigation A:hover {
|
|
42
|
+
color: #FFF;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.contents {
|
|
46
|
+
padding: 10px 25px;
|
|
47
|
+
background: #EEE;
|
|
48
|
+
padding-top: 50px;
|
|
49
|
+
}
|
|
50
|
+
.contents h2, .contents h3, .contents h4 {
|
|
51
|
+
color: #00367E;
|
|
52
|
+
}
|
|
53
|
+
.contents P {
|
|
54
|
+
padding: 10px 0px;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
.post {
|
|
58
|
+
padding-bottom: 50px;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
.footer {
|
|
62
|
+
padding-top: 15px;
|
|
63
|
+
font-size: 80%;
|
|
64
|
+
color: #999;
|
|
65
|
+
text-align: center;
|
|
66
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
* {
|
|
2
|
+
margin: 0px;
|
|
3
|
+
padding: 0px;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
BODY {
|
|
7
|
+
font-family: "tahoma";
|
|
8
|
+
background: #555;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
.page-container {
|
|
12
|
+
width: 650px;
|
|
13
|
+
margin: 0 auto;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.header {
|
|
17
|
+
background: #0080FF;
|
|
18
|
+
padding: 10px 25px;
|
|
19
|
+
color: #FFF;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.subtitle {
|
|
23
|
+
font-size: 75%;
|
|
24
|
+
font-weight: normal;
|
|
25
|
+
color: #6CF;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.navigation {
|
|
29
|
+
background: #222;
|
|
30
|
+
color: #999;
|
|
31
|
+
padding: 5px 10px;
|
|
32
|
+
}
|
|
33
|
+
.navigation A {
|
|
34
|
+
color: #DDD;
|
|
35
|
+
font-size: 90%;
|
|
36
|
+
}
|
|
37
|
+
.navigation A:hover {
|
|
38
|
+
color: #FFF;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
.contents {
|
|
42
|
+
padding: 10px 25px;
|
|
43
|
+
background: #EEE;
|
|
44
|
+
padding-top: 50px;
|
|
45
|
+
}
|
|
46
|
+
.contents h2, .contents h3, .contents h4 {
|
|
47
|
+
color: #00367E;
|
|
48
|
+
}
|
|
49
|
+
.contents P {
|
|
50
|
+
padding: 10px 0px;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.post {
|
|
54
|
+
padding-bottom: 50px;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
.footer {
|
|
58
|
+
padding-top: 15px;
|
|
59
|
+
font-size: 80%;
|
|
60
|
+
color: #999;
|
|
61
|
+
text-align: center;
|
|
62
|
+
}
|
data/test/test_helper.rb
ADDED
|
File without changes
|
metadata
ADDED
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: darthapo-stratus
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: "0.2"
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- M@ McCray
|
|
8
|
+
autorequire: rake
|
|
9
|
+
bindir: bin
|
|
10
|
+
cert_chain: []
|
|
11
|
+
|
|
12
|
+
date: 2008-12-18 00:00:00 -08:00
|
|
13
|
+
default_executable: stratus
|
|
14
|
+
dependencies: []
|
|
15
|
+
|
|
16
|
+
description: A simple static blog building tool.
|
|
17
|
+
email: darthapo@gmail.com
|
|
18
|
+
executables:
|
|
19
|
+
- stratus
|
|
20
|
+
extensions: []
|
|
21
|
+
|
|
22
|
+
extra_rdoc_files: []
|
|
23
|
+
|
|
24
|
+
files:
|
|
25
|
+
- Changelog
|
|
26
|
+
- Manifest
|
|
27
|
+
- Rakefile
|
|
28
|
+
- Readme.markdown
|
|
29
|
+
- bin/stratus
|
|
30
|
+
- lib/stratus.rb
|
|
31
|
+
- lib/stratus/cli.rb
|
|
32
|
+
- lib/stratus/filters.rb
|
|
33
|
+
- lib/stratus/generator.rb
|
|
34
|
+
- lib/stratus/generator/builder.rb
|
|
35
|
+
- lib/stratus/generator/context.rb
|
|
36
|
+
- lib/stratus/generator/renderer.rb
|
|
37
|
+
- lib/stratus/generator/scanner.rb
|
|
38
|
+
- lib/stratus/resources.rb
|
|
39
|
+
- lib/stratus/resources/attachment.rb
|
|
40
|
+
- lib/stratus/resources/base.rb
|
|
41
|
+
- lib/stratus/resources/content.rb
|
|
42
|
+
- lib/stratus/resources/hash_db.rb
|
|
43
|
+
- lib/stratus/resources/layout.rb
|
|
44
|
+
- lib/stratus/resources/template.rb
|
|
45
|
+
- lib/stratus/settings.rb
|
|
46
|
+
- lib/stratus/tags.rb
|
|
47
|
+
- lib/stratus/tags/markdown.rb
|
|
48
|
+
- lib/stratus/tags/textile.rb
|
|
49
|
+
- lib/stratus/tasks/app/boilerplate/StratusSite
|
|
50
|
+
- lib/stratus/tasks/app/boilerplate/config/defaults/page.default.html
|
|
51
|
+
- lib/stratus/tasks/app/boilerplate/config/defaults/post.default.html
|
|
52
|
+
- lib/stratus/tasks/app/boilerplate/config/site.yaml
|
|
53
|
+
- lib/stratus/tasks/app/boilerplate/content/pages/home/index.html
|
|
54
|
+
- lib/stratus/tasks/app/boilerplate/themes/default/styles/main.css
|
|
55
|
+
- lib/stratus/tasks/app/boilerplate/themes/default/templates/layouts/main.html
|
|
56
|
+
- lib/stratus/tasks/app/boilerplate/themes/default/templates/objects/page.html
|
|
57
|
+
- lib/stratus/tasks/app/boilerplate/themes/default/templates/objects/page.index.html
|
|
58
|
+
- lib/stratus/tasks/app/boilerplate/themes/default/templates/objects/post.html
|
|
59
|
+
- lib/stratus/tasks/app/boilerplate/themes/default/templates/objects/post.index.html
|
|
60
|
+
- lib/stratus/tasks/app/site.rake
|
|
61
|
+
- lib/stratus/tasks/shared/system.rake
|
|
62
|
+
- lib/stratus/tasks/site/new.rake
|
|
63
|
+
- lib/stratus/tasks/site/site.rake
|
|
64
|
+
- lib/stratus/tasks/site/theme.rake
|
|
65
|
+
- stratus.gemspec
|
|
66
|
+
- test/fixtures/site/StratusSite
|
|
67
|
+
- test/fixtures/site/config/defaults/article.default.html
|
|
68
|
+
- test/fixtures/site/config/defaults/content.default.html
|
|
69
|
+
- test/fixtures/site/config/defaults/page.default.html
|
|
70
|
+
- test/fixtures/site/config/defaults/post.default.html
|
|
71
|
+
- test/fixtures/site/config/site.yaml
|
|
72
|
+
- test/fixtures/site/content/articles/001_im-the-title/index.html
|
|
73
|
+
- test/fixtures/site/content/pages/about/index.html
|
|
74
|
+
- test/fixtures/site/content/pages/home/index.html
|
|
75
|
+
- test/fixtures/site/content/pages/projects/index.html
|
|
76
|
+
- test/fixtures/site/content/posts/001_new-blog/dom.js
|
|
77
|
+
- test/fixtures/site/content/posts/001_new-blog/index.html
|
|
78
|
+
- test/fixtures/site/content/posts/001_new-blog/old.html
|
|
79
|
+
- test/fixtures/site/content/posts/002_fun-for-the-whole-family/index.html
|
|
80
|
+
- test/fixtures/site/content/posts/002_fun-for-the-whole-family/snippet_one.rb
|
|
81
|
+
- test/fixtures/site/content/posts/003_life-is-quite-fun-really/index.html
|
|
82
|
+
- test/fixtures/site/themes/default/scripts/code_highlighter.js
|
|
83
|
+
- test/fixtures/site/themes/default/scripts/code_syntax.js
|
|
84
|
+
- test/fixtures/site/themes/default/styles/code_syntax.css
|
|
85
|
+
- test/fixtures/site/themes/default/styles/main.css
|
|
86
|
+
- test/fixtures/site/themes/default/templates/layouts/main.html
|
|
87
|
+
- test/fixtures/site/themes/default/templates/objects/article.html
|
|
88
|
+
- test/fixtures/site/themes/default/templates/objects/article.index.html
|
|
89
|
+
- test/fixtures/site/themes/default/templates/objects/feed.xml
|
|
90
|
+
- test/fixtures/site/themes/default/templates/objects/page.html
|
|
91
|
+
- test/fixtures/site/themes/default/templates/objects/page.index.html
|
|
92
|
+
- test/fixtures/site/themes/default/templates/objects/post.html
|
|
93
|
+
- test/fixtures/site/themes/default/templates/objects/post.index.html
|
|
94
|
+
- test/fixtures/site/www/index.html
|
|
95
|
+
- test/fixtures/site/www/pages/about/index.html
|
|
96
|
+
- test/fixtures/site/www/pages/home/index.html
|
|
97
|
+
- test/fixtures/site/www/pages/index.html
|
|
98
|
+
- test/fixtures/site/www/pages/projects/index.html
|
|
99
|
+
- test/fixtures/site/www/posts/fun-for-the-whole-family/index.html
|
|
100
|
+
- test/fixtures/site/www/posts/fun-for-the-whole-family/snippet_one.rb
|
|
101
|
+
- test/fixtures/site/www/posts/index.html
|
|
102
|
+
- test/fixtures/site/www/posts/life-is-quite-fun-really/index.html
|
|
103
|
+
- test/fixtures/site/www/posts/new-blog/dom.js
|
|
104
|
+
- test/fixtures/site/www/posts/new-blog/index.html
|
|
105
|
+
- test/fixtures/site/www/posts/new-blog/old.html
|
|
106
|
+
- test/fixtures/site/www/theme/scripts/code_highlighter.js
|
|
107
|
+
- test/fixtures/site/www/theme/scripts/code_syntax.js
|
|
108
|
+
- test/fixtures/site/www/theme/styles/code_syntax.css
|
|
109
|
+
- test/fixtures/site/www/theme/styles/main.css
|
|
110
|
+
- test/fixtures/site/www/themes/default/styles/main.css
|
|
111
|
+
- test/test_helper.rb
|
|
112
|
+
has_rdoc: false
|
|
113
|
+
homepage: http://github.com/darthapo/stratus/wikis
|
|
114
|
+
post_install_message:
|
|
115
|
+
rdoc_options: []
|
|
116
|
+
|
|
117
|
+
require_paths:
|
|
118
|
+
- lib
|
|
119
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
120
|
+
requirements:
|
|
121
|
+
- - ">="
|
|
122
|
+
- !ruby/object:Gem::Version
|
|
123
|
+
version: "0"
|
|
124
|
+
version:
|
|
125
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
126
|
+
requirements:
|
|
127
|
+
- - ">="
|
|
128
|
+
- !ruby/object:Gem::Version
|
|
129
|
+
version: "0"
|
|
130
|
+
version:
|
|
131
|
+
requirements:
|
|
132
|
+
- rake
|
|
133
|
+
- active_support
|
|
134
|
+
- chronic
|
|
135
|
+
- hpricot
|
|
136
|
+
- liquid
|
|
137
|
+
rubyforge_project:
|
|
138
|
+
rubygems_version: 1.2.0
|
|
139
|
+
signing_key:
|
|
140
|
+
specification_version: 2
|
|
141
|
+
summary: A simple static blog building tool.
|
|
142
|
+
test_files: []
|
|
143
|
+
|