diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb
index cb3ce3e..648933c 100644
--- a/app/helpers/application_helper.rb
+++ b/app/helpers/application_helper.rb
@@ -3,10 +3,22 @@ module ApplicationHelper
# Returns the title for a page. This could be a Page title or something else.
#
def page_title
+ return @page_title if @page_title
return @page.title if @page
"BarleySodas :: #{controller_class_name.gsub(/Controller/, '')}"
end
+ ##
+ # Returns a secondary title for a page. Returns @secondary_title or the
+ # action in the controller.
+ #
+ def secondary_title
+ return @secondary_title if @secondary_title
+ return params[:action].to_s.capitalize.gsub(/_/) do |x|
+ $1.capitalize
+ end
+ end
+
##
# Returns a link for a Page model.
#
diff --git a/app/views/layouts/application.rhtml b/app/views/layouts/application.rhtml
new file mode 100644
index 0000000..789786e
--- /dev/null
+++ b/app/views/layouts/application.rhtml
@@ -0,0 +1,48 @@
+
+
+
+
+ <%= page_title -%>
+
+
+
+ <%= stylesheet_link_tag 'application', :media => 'all' %>
+ <%= javascript_include_tag :defaults %>
+
+
+
+
+
+
+
+<% flash.keys.each do |key| -%>
+
+ <%= flash[key] %>
+
+<% end -%>
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/public/images/background.gif b/public/images/background.gif
new file mode 100644
index 0000000..003fb99
Binary files /dev/null and b/public/images/background.gif differ
diff --git a/public/images/gravatar.gif b/public/images/gravatar.gif
new file mode 100644
index 0000000..aed7951
Binary files /dev/null and b/public/images/gravatar.gif differ
diff --git a/public/images/header_shadow.gif b/public/images/header_shadow.gif
new file mode 100644
index 0000000..9de7956
Binary files /dev/null and b/public/images/header_shadow.gif differ
diff --git a/public/images/spinner.gif b/public/images/spinner.gif
new file mode 100644
index 0000000..085ccae
Binary files /dev/null and b/public/images/spinner.gif differ
diff --git a/public/stylesheets/application.css b/public/stylesheets/application.css
new file mode 100644
index 0000000..de585e8
--- /dev/null
+++ b/public/stylesheets/application.css
@@ -0,0 +1,37 @@
+/*--------------------------------------------------------------
+ Application.css
+ Imports all stylesheets; sets defaults for bare elements
+ --------------------------------------------------------------*/
+
+@import 'layout.css';
+@import 'content.css';
+@import 'syntax.css';
+
+@media print { #sidebar { display: none; }
+ #content { float: none; width: 90%; }
+ #content pre { color: #000; background: #eee; }
+ #content form.comments { display: none; } }
+
+body {
+ background: url(/images/background.gif) repeat-x left top;
+ font: normal 12px "lucida grande", verdana, sans-serif;
+}
+
+input,
+textarea { font: normal 12px "bitstream vera sans", verdana, sans-serif; }
+
+abbr { border: none; }
+cite { font-style: normal; }
+a img { border: none; padding: 0; margin: 0; }
+
+a:link, a:visited { color: #000; }
+a:hover, a:active { color: #fff; background: #000; }
+
+/* http://longren.org/2006/09/27/wrapping-text-inside-pre-tags */
+pre {
+ white-space: pre-wrap;
+ white-space: -moz-pre-wrap !important;
+ white-space: -pre-wrap;
+ white-space: -o-pre-wrap;
+ word-wrap: break-word;
+}
\ No newline at end of file
diff --git a/public/stylesheets/content.css b/public/stylesheets/content.css
new file mode 100644
index 0000000..62fb329
--- /dev/null
+++ b/public/stylesheets/content.css
@@ -0,0 +1,405 @@
+/*--------------------------------------------------------------
+ Header
+ --------------------------------------------------------------*/
+
+#header {
+ background: url(/images/header_shadow.gif) repeat-x left bottom;
+}
+
+#header a:link,
+#header a:visited {
+ color: #000;
+ text-decoration: none;
+}
+
+#header a:hover,
+#header a:active {
+ color: #930; background: transparent;
+ text-decoration: none;
+}
+
+#header h1 {
+ font: bold 410% georgia, serif;
+ letter-spacing: -1px;
+ margin: 0;
+ float: left;
+}
+
+#header h2 {
+ font: normal 12px verdana, arial, sans-serif;
+ margin: 2.35em 0.2em 0 0;
+ float: right;
+}
+
+/*--------------------------------------------------------------
+ Content
+ --------------------------------------------------------------*/
+
+#content {}
+
+#content h1,
+#content h2,
+#content h3,
+#content h4,
+#content h5 {
+ font-family: georgia, times;
+ font-weight: normal;
+ letter-spacing: -1px;
+}
+
+#content h1 {
+ font-size: 28px;
+ margin: 0 0 0.3em;
+}
+
+#content h2 {
+ font-size: 24px;
+ margin: 0 0 0.3em;
+}
+
+#content h3 {
+ font-size: 22px;
+ margin: 1.2em 0 0.3em;
+}
+
+#content h4 {
+ font-size: 20px;
+ margin: 1.2em 0 0.3em;
+ border-bottom: 1px dotted #bbb;
+}
+
+#content h5 {
+ font-size: 20px;
+ background: #ffd;
+ margin: 1.2em 0 0.3em;
+ border-bottom: 1px dotted #aaa;
+}
+
+#content p {
+ line-height: 14px;
+ margin: 0 0 1.2em;
+}
+
+#content ul,
+#content ol {
+ margin: 1em;
+ padding:0;
+}
+
+#content ul {
+ list-style-type: square;
+}
+
+#content li {
+ line-height: 15px;
+ margin: 0 0 0 1em; padding: 0;
+}
+
+#content blockquote {
+ color: #555;
+ border-left: 5px solid #ccc;
+ margin: 1.3em 1em; padding: 0 1em;
+}
+
+#content code {
+ font: normal 12px "bitstream vera sans mono", monaco "lucida console", "courier new", courier, serif;
+}
+
+#content pre {
+ color: #63FF00;
+ background: #000;
+ overflow: auto;
+ font: normal 12px "bitstream vera sans mono", monaco "lucida console", "courier new", courier, serif;
+ margin: 0.9em 0; padding: 8px;
+}
+
+/* Article Entries - class names based on http://microformats.org/wiki/hatom] */
+#content .hentry {
+ margin: 0 0 3em 0;
+}
+
+#content .hentry .entry-title {
+ font-size: 30px;
+ line-height: 99%;
+ letter-spacing: -1.5px;
+ margin: 0;
+}
+
+#content .hentry .entry-title a:link,
+#content .hentry .entry-title a:visited {
+ color: #111;
+ text-decoration: none;
+}
+
+#content .hentry .entry-title a:hover,
+#content .hentry .entry-title a:active {
+ background: transparent;
+ text-decoration: underline;
+}
+
+#content .hentry .entry-title .comment_count { color: #eee; }
+
+#content .hentry .vcard,
+#content .hentry .published {
+ float: left;
+ color: #a9a9a9;
+ font: normal 16px/14px helvetica, arial, verdana, sans-serif;
+ letter-spacing: -1px;
+ margin: 1px 0 0.6em 2px;
+}
+
+#content .hentry .fn {
+ font-weight:bold;
+ margin-right: 5px;
+}
+
+#content .hentry .fn a,
+#content .hentry .fn a:hover {
+ color: #aaa; background: transparent;
+ text-decoration: none;
+}
+
+#content .hentry .clear { clear: both; }
+
+#content .hentry .entry-content { }
+
+#content .hentry ul.meta {
+ font-size: 10px;
+ background: #eee;
+ margin: 0; padding: 5px;
+ border: 1px solid #ddd;
+ list-style-type: none;
+}
+
+#content .hentry ul.meta li {
+ line-height: 13px;
+ margin: 0; padding: 0;
+}
+
+#content .hentry .meta a:link,
+#content .hentry .meta a:visited {
+ color: #555;
+ text-decoration: none;
+ border-bottom: 1px dotted #aaa;
+}
+
+#content .hentry .meta a:hover,
+#content .hentry .meta a:active {
+ color: #fff;
+}
+
+
+/* Comments and Trackbacks */
+#content ol.comments,
+#content ol.trackbacks {
+ list-style-type: none;
+ margin: 0; padding: 0;
+}
+
+#content li.comment,
+#content li.trackback {
+ border: 2px solid #ddd;
+ margin: 0 0 1.5em; padding: 1em;
+}
+
+#content li.comment.preview {
+ background: #ffc;
+ border: 3px solid #fab444;
+ margin: 0 0 1.5em; padding: 1em;
+}
+
+#content li.comment .author,
+#content li.trackback .author {
+ font-weight: bold;
+ margin-bottom: 1em;
+}
+
+#content li.comment .author cite,
+#content li.trackback .author cite {
+ font-size: 16px;
+ letter-spacing: -1px;
+}
+
+#content li.comment .author abbr,
+#content li.trackback .author abbr { color: #999; }
+
+#content li.comment .author .gravatar {
+ margin: 0 0 0.5em 0.5em;
+ float: right;
+}
+
+#content li.comment .author div {
+ margin: 0 0 0.5em 0.5em;
+ width: 60px; height: 60px;
+ background: url(/images/gravatar.gif) no-repeat left top;
+ float: right;
+}
+
+#content form.comments {
+ background: #f2f2f2;
+ border-top: 1px solid #ddd;
+ padding: 1em 0.5em;
+}
+
+#content form.comments fieldset {
+ border: none;
+}
+
+#content form.comments legend {
+ display: none;
+}
+
+#content form.comments label {
+ font-weight: bold;
+}
+
+#content form.comments textarea {
+ width: 90%; height: 150px;
+ padding: 3px;
+}
+
+/*--------------------------------------------------------------
+ Sidebar
+ --------------------------------------------------------------*/
+
+#sidebar {
+ font-size: 11px;
+}
+
+#sidebar h3 {
+ font: bold 14px "lucidamac bold", "lucida grande", verdana, arial, helvetica, sans-serif;
+ margin: 0 0 0.5em;
+}
+
+#sidebar h3 a:link,
+#sidebar h3 a:visited {
+ color: #000; text-decoration: none;
+}
+
+#sidebar h3 a:hover,
+#sidebar h3 a:active {
+ background: transparent; text-decoration: underline;
+}
+
+#sidebar ul {
+ list-style-type: none;
+ margin: 0 0 2em; padding: 0;
+}
+
+#sidebar li {
+ margin: 0;
+ padding: 1px 0;
+}
+
+#sidebar em { font-style: normal; }
+
+/* Live-search and results */
+#sidebar .search p {
+ margin: 0;
+}
+
+#sidebar .search p input {
+ font-size: 11px; width: 92%;
+}
+
+#sidebar .search .loading {
+ background: url(/images/spinner.gif) no-repeat left 50%;
+ margin: 1em 0; padding: 0 0 0 20px;
+ height: 15px;
+}
+
+#sidebar .search .results {
+ margin: 0 0 1.25em;
+}
+
+#sidebar .search .results h3 {
+ margin-top: 1em;
+}
+
+#sidebar .search .results p {
+ font: bold 14px "lucidamac bold", "lucida grande", verdana, arial, helvetica, sans-serif;
+ margin: 0 0 0.5em;
+}
+
+#sidebar .search .results ul {
+ margin: 0; padding: 3px;
+}
+
+#sidebar .search .results li { background: #ffc; padding: 0.2em; }
+
+#sidebar .search .results a:link,
+#sidebar .search .results a:visited {
+ color: #222;
+}
+
+#sidebar .search .results a:hover,
+#sidebar .search .results a:active {
+ color: #fff;
+}
+
+/* Flickr sidebar-node */
+#sidebar #flickr {
+ margin: 0 0 2em;
+ clear: both;
+}
+
+#sidebar #flickr div {
+}
+
+#sidebar #flickr img {
+ margin: 0 0 5px;
+ padding: 5px;
+ border: 1px solid #ddd;
+ display: block;
+}
+
+#sidebar #flickr img:hover {
+ background: #ffc;
+}
+
+#sidebar #flickr a {
+ border: none;
+}
+
+/*--------------------------------------------------------------
+ Footer
+ --------------------------------------------------------------*/
+
+#footer {
+ border-top: 1px solid #ccc;
+ font-size: 90%;
+}
+
+#footer a:link,
+#footer a:visited {
+ color: #000;
+}
+
+#footer a:hover,
+#footer a:active {
+ color: #fff;
+ background: #000;
+}
+
+#footer hr {
+ display: none;
+}
+
+#footer p {
+ width: 40%;
+ float: left;
+ margin: 0; padding: 0;
+}
+
+#footer ul {
+ width: 40%;
+ margin: 0; padding: 0;
+ list-style-type: none;
+ text-align: right;
+ float: right;
+}
+
+#footer li {
+ margin: 0; padding: 0 0 0 1em;
+ display: inline;
+}
diff --git a/public/stylesheets/layout.css b/public/stylesheets/layout.css
new file mode 100644
index 0000000..6991214
--- /dev/null
+++ b/public/stylesheets/layout.css
@@ -0,0 +1,47 @@
+/**
+ * Controls the main layout (width, height, margin, padding)
+ *
+ * #container
+ * #header
+ * #page
+ * #content
+ * #sidebar
+ * #footer
+ */
+body {
+ text-align: center;
+ margin: 0; padding: 0.6em 1em 1em 1em;
+}
+
+#container {
+ width: 900px;
+ text-align: left;
+ margin: 0 auto; padding: 0;
+}
+
+#header {
+ height: 62px;
+ margin: 0 -0.5px 12px 0; padding: 0;
+}
+
+#page {}
+
+#content {
+ float: left;
+ width: 662px;
+ padding: 0 0 0 5px;
+}
+
+#sidebar {
+ float: right;
+ text-align: left;
+ width: 200px;
+ padding-left: 15px;
+ border-left: 1px dotted #ddd;
+}
+
+#footer {
+ height: 40px;
+ margin: 10px 0 0; padding: 10px 0 0;
+ clear:both;
+}
diff --git a/public/stylesheets/syntax.css b/public/stylesheets/syntax.css
new file mode 100644
index 0000000..36c6f4f
--- /dev/null
+++ b/public/stylesheets/syntax.css
@@ -0,0 +1,50 @@
+/*--------------------------------------------------------------
+ Syntax Highlighting - contributed by James Wilford
+ Closely matches TextMate's "All Hallow's Eve" theme
+ --------------------------------------------------------------*/
+
+#content .typocode { margin: 0.9em 0; padding: 8px; background: #000; }
+#content .typocode pre { margin: 0; padding: 0;}
+
+#content .typocode_linenumber .lineno { text-align: right; }
+#content .typocode_linenumber .lineno pre { width: 23px; padding-right: 3px; color: #777; background: #222; }
+
+#content .typocode_ruby .normal {}
+#content .typocode_ruby .comment { color: #9933cc; }
+#content .typocode_ruby .keyword { color: #cc7833; }
+#content .typocode_ruby .method { color: #fff; }
+#content .typocode_ruby .class { color: #fff; text-decoration: underline; }
+#content .typocode_ruby .module { color: #fff; text-decoration: underline; }
+#content .typocode_ruby .punct { color: #fff; }
+#content .typocode_ruby .symbol { color: #3387cc; }
+#content .typocode_ruby .string { color: #66cc33; }
+#content .typocode_ruby .char { color: #f07; }
+#content .typocode_ruby .ident { color: #fff; }
+#content .typocode_ruby .constant { color: #fff; }
+#content .typocode_ruby .regex { color: #cccc33; }
+#content .typocode_ruby .number { color: #3387cc; }
+#content .typocode_ruby .attribute { color: #fff; }
+#content .typocode_ruby .global { color: #7fb; }
+#content .typocode_ruby .expr { color: #fff; }
+#content .typocode_ruby .escape { color: #277; }
+
+#content .typocode_xml .normal {}
+#content .typocode_xml .namespace { color: #c60; font-weight: bold; }
+#content .typocode_xml .tag { color: #9ff; }
+#content .typocode_xml .comment { color: #ccc; font-style: italic; }
+#content .typocode_xml .punct { color: #0d0; font-weight: bold; }
+#content .typocode_xml .string { color: #c03; }
+#content .typocode_xml .number { color: #ff0; }
+#content .typocode_xml .attribute { color: #bb7; }
+#content .typocode_yaml .normal {}
+#content .typocode_yaml .document { color: #07f; font-weight: bold; }
+#content .typocode_yaml .type { color: #c60; font-weight: bold; }
+#content .typocode_yaml .key { color: #c60; }
+#content .typocode_yaml .comment { color: #ccc; font-style: italic; }
+#content .typocode_yaml .punct { color: #0d0; font-weight: bold; }
+#content .typocode_yaml .string { color: #c03; }
+#content .typocode_yaml .number { color: #ff0; }
+#content .typocode_yaml .time { color: #ff0; }
+#content .typocode_yaml .date { color: #ff0; }
+#content .typocode_yaml .ref { color: #944; }
+#content .typocode_yaml .anchor { color: #944; }