A basic blog for the compass website.
This commit is contained in:
parent
3c86dfa0b3
commit
b1b718e78a
@ -47,6 +47,16 @@ compile '/reference/*/' do
|
|||||||
layout item[:layout] ? item[:layout] : "main"
|
layout item[:layout] ? item[:layout] : "main"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
compile '/posts/*/' do
|
||||||
|
filter :erb
|
||||||
|
filter :rdiscount if item[:extension] == "markdown"
|
||||||
|
layout 'post'
|
||||||
|
end
|
||||||
|
|
||||||
|
compile "/blog/atom/" do
|
||||||
|
filter :haml, :attr_wrapper => '"'
|
||||||
|
end
|
||||||
|
|
||||||
compile '*' do
|
compile '*' do
|
||||||
if item[:extension] == "markdown"
|
if item[:extension] == "markdown"
|
||||||
filter :rdiscount
|
filter :rdiscount
|
||||||
@ -56,6 +66,10 @@ compile '*' do
|
|||||||
layout item[:layout] ? item[:layout] : "main"
|
layout item[:layout] ? item[:layout] : "main"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
route "/blog/atom/" do
|
||||||
|
"/blog/atom.xml"
|
||||||
|
end
|
||||||
|
|
||||||
route '/search-data/' do
|
route '/search-data/' do
|
||||||
"#{SITE_ROOT}/javascripts"+item.identifier[0..-2]+".js"
|
"#{SITE_ROOT}/javascripts"+item.identifier[0..-2]+".js"
|
||||||
end
|
end
|
||||||
@ -89,6 +103,15 @@ route '/stylesheets/*/' do
|
|||||||
SITE_ROOT+item.identifier.chop + '.css'
|
SITE_ROOT+item.identifier.chop + '.css'
|
||||||
end
|
end
|
||||||
|
|
||||||
|
route '/posts/*/' do
|
||||||
|
if item.identifier =~ %r{^/posts/(\d{4})-(\d{2})-(\d{2})-(.*)/$}
|
||||||
|
"/blog/#{$1}/#{$2}/#{$3}/#{$4}/index.html"
|
||||||
|
else
|
||||||
|
puts "WARNING: malformed post name: #{item.identifier}"
|
||||||
|
nil
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
%w(markup stylesheet background).each do |ex_file|
|
%w(markup stylesheet background).each do |ex_file|
|
||||||
route "/examples/*/#{ex_file}/" do
|
route "/examples/*/#{ex_file}/" do
|
||||||
nil
|
nil
|
||||||
|
14
doc-src/content/blog/archive.haml
Normal file
14
doc-src/content/blog/archive.haml
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
---
|
||||||
|
layout: blog
|
||||||
|
---
|
||||||
|
%h1 Compass Blog Archive
|
||||||
|
|
||||||
|
- for post in blog_posts_in_order.reverse
|
||||||
|
.post-snippet
|
||||||
|
%h2
|
||||||
|
- time = blog_date(post)
|
||||||
|
%span.timestamp= time.strftime("%Y/%m/%d")
|
||||||
|
%a{:href => post.rep_named(:default).path}= post[:title]
|
||||||
|
%p= post[:intro] || post[:description]
|
||||||
|
|
||||||
|
|
19
doc-src/content/blog/atom.haml
Normal file
19
doc-src/content/blog/atom.haml
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
%feed(xmlns="http://www.w3.org/2005/Atom")
|
||||||
|
%title Compass Blog
|
||||||
|
%link(href="http://compass-style.org/blog/atom.xml" rel="self")
|
||||||
|
%link(href="http://compass-style.org/blog/")
|
||||||
|
%updated= Time.now.xmlschema
|
||||||
|
%id http://compass-style.org/blog/
|
||||||
|
%author
|
||||||
|
%name Compass Core Team
|
||||||
|
- for post in blog_posts_in_order.reverse
|
||||||
|
- full_url = "http://compass-style.org#{post.rep_named(:default).path}"
|
||||||
|
%entry
|
||||||
|
%title&= post[:title]
|
||||||
|
%link{:href=> full_url}
|
||||||
|
%updated= blog_date(post).localtime.xmlschema
|
||||||
|
%id= full_url[0..-2]
|
||||||
|
%content(type="html")
|
||||||
|
= post[:intro] || post[:description]
|
||||||
|
|
6
doc-src/content/stylesheets/partials/_blog.scss
Normal file
6
doc-src/content/stylesheets/partials/_blog.scss
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
body#blog-archive {
|
||||||
|
.timestamp {
|
||||||
|
margin-right: 1em;
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
}
|
@ -1,4 +1,4 @@
|
|||||||
$min-width: 680px;
|
$min-width: 700px;
|
||||||
$side-nav-width: 160px;
|
$side-nav-width: 160px;
|
||||||
$main-min-width: $min-width - $side-nav-width;
|
$main-min-width: $min-width - $side-nav-width;
|
||||||
|
|
||||||
|
@ -17,6 +17,7 @@
|
|||||||
@import "partials/code";
|
@import "partials/code";
|
||||||
@import "partials/example";
|
@import "partials/example";
|
||||||
@import "partials/install";
|
@import "partials/install";
|
||||||
|
@import "partials/blog";
|
||||||
|
|
||||||
@import "syntax/syntax-theme";
|
@import "syntax/syntax-theme";
|
||||||
|
|
||||||
|
@ -6,6 +6,7 @@
|
|||||||
%meta{:content => "chrome=1", "http-equiv" => "X-UA-Compatible"}
|
%meta{:content => "chrome=1", "http-equiv" => "X-UA-Compatible"}
|
||||||
%meta(name="viewport" content="width=780")
|
%meta(name="viewport" content="width=780")
|
||||||
%link(rel="shortcut icon" type="image/png" href="/images/compass_icon.png")
|
%link(rel="shortcut icon" type="image/png" href="/images/compass_icon.png")
|
||||||
|
%link{:href=>"/blog/atom.xml", :rel=>"alternate", :title=>"Compass Blog", :type=>"application/atom+xml"}
|
||||||
%title
|
%title
|
||||||
#{@item[:title]} | Compass Documentation
|
#{@item[:title]} | Compass Documentation
|
||||||
%link{:charset => "utf-8", :href => "/stylesheets/screen.css", :rel => "stylesheet", :type => "text/css"}
|
%link{:charset => "utf-8", :href => "/stylesheets/screen.css", :rel => "stylesheet", :type => "text/css"}
|
||||||
|
17
doc-src/layouts/blog.haml
Normal file
17
doc-src/layouts/blog.haml
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
- render "basic" do
|
||||||
|
#wrap
|
||||||
|
= render "partials/main-navigation"
|
||||||
|
#sub-nav
|
||||||
|
- p = previous_post
|
||||||
|
- n = next_post
|
||||||
|
- if p || n
|
||||||
|
%nav#docs-nav{:role => "navigation"}
|
||||||
|
- if p
|
||||||
|
%a{:href => p.rep_named(:default).path, :title => p[:title]} « Previous Post
|
||||||
|
- if n
|
||||||
|
%a{:href => n.rep_named(:default).path, :title => n[:title]} Next Post »
|
||||||
|
#page
|
||||||
|
= yield
|
||||||
|
%footer(role="contentinfo")= render "partials/footer"
|
||||||
|
= @item[:content_for_javascripts]
|
||||||
|
= render "partials/analytics"
|
@ -18,7 +18,7 @@
|
|||||||
Version:
|
Version:
|
||||||
%a.number(href="/CHANGELOG/")= compass_version
|
%a.number(href="/CHANGELOG/")= compass_version
|
||||||
= yield
|
= yield
|
||||||
-#comments= render "partials/disqus_comments"
|
#comments= render "partials/disqus_comments"
|
||||||
%footer(role="contentinfo")= render "partials/footer"
|
%footer(role="contentinfo")= render "partials/footer"
|
||||||
= @item[:content_for_javascripts]
|
= @item[:content_for_javascripts]
|
||||||
= render "partials/analytics"
|
= render "partials/analytics"
|
||||||
|
@ -10,6 +10,8 @@
|
|||||||
%a{:href => "/reference/compass/", :rel => "documentation"} Reference
|
%a{:href => "/reference/compass/", :rel => "documentation"} Reference
|
||||||
%li
|
%li
|
||||||
%a{:href => "/help/", :rel=> "help"} Help
|
%a{:href => "/help/", :rel=> "help"} Help
|
||||||
|
%li
|
||||||
|
%a{:href => "/blog/", :rel=> "blog"} Blog
|
||||||
%li
|
%li
|
||||||
%a{:href => "/get-involved/", :rel=> "get-involved"} Get Involved
|
%a{:href => "/get-involved/", :rel=> "get-involved"} Get Involved
|
||||||
%li
|
%li
|
||||||
|
5
doc-src/layouts/post.haml
Normal file
5
doc-src/layouts/post.haml
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
- render "blog" do
|
||||||
|
%h1= @item[:title]
|
||||||
|
%h2 By #{@item[:author]}
|
||||||
|
= yield
|
||||||
|
-#comments= render "partials/disqus_comments"
|
26
doc-src/lib/blog.rb
Normal file
26
doc-src/lib/blog.rb
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
POST_NAME = %r{^/posts/(\d{4})-(\d{2})-(\d{2})-(.*)/$}
|
||||||
|
require 'time'
|
||||||
|
|
||||||
|
def blog_posts_in_order
|
||||||
|
@blog_posts_in_order ||= @items.select {|i| i.identifier =~ %r{/posts} }.sort_by {|i| i.identifier }
|
||||||
|
end
|
||||||
|
|
||||||
|
def previous_post(item = @item)
|
||||||
|
current_index = blog_posts_in_order.index(item)
|
||||||
|
if current_index && current_index > 0
|
||||||
|
blog_posts_in_order[current_index - 1]
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def next_post(item = @item)
|
||||||
|
current_index = blog_posts_in_order.index(item)
|
||||||
|
if current_index && current_index < blog_posts_in_order.size - 1
|
||||||
|
blog_posts_in_order[current_index + 1]
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def blog_date(item = @item)
|
||||||
|
if item.identifier =~ POST_NAME
|
||||||
|
Time.new($1.to_i, $2.to_i, $3.to_i)
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in New Issue
Block a user