diff --git a/website/www/Gemfile b/website/www/Gemfile
index 0290d5853..5c6699465 100644
--- a/website/www/Gemfile
+++ b/website/www/Gemfile
@@ -2,7 +2,9 @@ source 'https://rubygems.org'
gem "less", "~> 2.2.2"
gem "middleman", "~> 3.1.5"
+gem "middleman-blog", "~> 3.3.0"
gem "middleman-minify-html", "~> 3.1.1"
+gem "nokogiri", "~> 1.6.0"
gem "rack-contrib", "~> 1.1.0"
gem "redcarpet", "~> 3.0.0"
gem "therubyracer", "~> 0.12.0"
diff --git a/website/www/Gemfile.lock b/website/www/Gemfile.lock
index ccda21f54..ad9dea924 100644
--- a/website/www/Gemfile.lock
+++ b/website/www/Gemfile.lock
@@ -44,6 +44,10 @@ GEM
middleman-sprockets (>= 3.1.2)
sass (>= 3.1.20)
uglifier (~> 2.1.0)
+ middleman-blog (3.3.0)
+ middleman-core (~> 3.0)
+ middleman-more (~> 3.0)
+ tzinfo (~> 0.3.0)
middleman-core (3.1.5)
activesupport (~> 3.2.6)
bundler (~> 1.1)
@@ -62,7 +66,10 @@ GEM
sprockets (~> 2.1)
sprockets-helpers (~> 1.0.0)
sprockets-sass (~> 1.0.0)
+ mini_portile (0.5.1)
multi_json (1.8.0)
+ nokogiri (1.6.0)
+ mini_portile (~> 0.5.0)
rack (1.5.2)
rack-contrib (1.1.0)
rack (>= 0.9.1)
@@ -95,6 +102,7 @@ GEM
rack (>= 1.0.0)
thor (0.18.1)
tilt (1.3.7)
+ tzinfo (0.3.37)
uglifier (2.1.2)
execjs (>= 0.3.0)
multi_json (~> 1.0, >= 1.0.2)
@@ -106,7 +114,9 @@ DEPENDENCIES
highline (~> 1.6.15)
less (~> 2.2.2)
middleman (~> 3.1.5)
+ middleman-blog (~> 3.3.0)
middleman-minify-html (~> 3.1.1)
+ nokogiri (~> 1.6.0)
rack-contrib (~> 1.1.0)
redcarpet (~> 3.0.0)
therubyracer (~> 0.12.0)
diff --git a/website/www/config.rb b/website/www/config.rb
index 6f2366254..764ea0a02 100644
--- a/website/www/config.rb
+++ b/website/www/config.rb
@@ -55,6 +55,16 @@ set :images_dir, 'images'
set :markdown_engine, :redcarpet
set :markdown, :fenced_code_blocks => true
+# Enable the blog and set the time zone so that post times appear
+# correctly.
+Time.zone = "America/Los_Angeles"
+
+activate :blog do |b|
+ b.layout = "blog_post"
+ b.permalink = ":title.html"
+ b.prefix = "blog"
+end
+
# Build-specific configuration
configure :build do
activate :asset_hash
diff --git a/website/www/source/_sidebar_blog.erb b/website/www/source/_sidebar_blog.erb
new file mode 100644
index 000000000..eeea1fd33
--- /dev/null
+++ b/website/www/source/_sidebar_blog.erb
@@ -0,0 +1,11 @@
+
+
diff --git a/website/www/source/blog.html.erb b/website/www/source/blog.html.erb
new file mode 100644
index 000000000..ec4f3f831
--- /dev/null
+++ b/website/www/source/blog.html.erb
@@ -0,0 +1,34 @@
+---
+layout: "inner"
+sidebar_current: "blog"
+sidebar_template: "blog"
+sidebar_title: "Blog"
+page_title: "Blog"
+---
+
+
+<% blog.articles.each_index do |i| %>
+<% article = blog.articles[i] %>
+
+
+<% end %>
+
+
diff --git a/website/www/source/blog/2013-09-16-test.html.markdown b/website/www/source/blog/2013-09-16-test.html.markdown
new file mode 100644
index 000000000..5325b586a
--- /dev/null
+++ b/website/www/source/blog/2013-09-16-test.html.markdown
@@ -0,0 +1,26 @@
+---
+page_title: Introducing the Vagrant Blog
+title: Introducing the Vagrant Blog
+author: Mitchell Hashimoto
+author_url: https://github.com/mitchellh
+---
+
+Welcome to the official Vagrant blog. This blog will be used to announce
+new releases, highlight Vagrant features, showcase specific Vagrant use-cases,
+and more.
+
+We invite any members of the Vagrant community to submit blog posts
+by creating a [pull request on the Vagrant GitHub repository](https://github.com/mitchellh/vagrant).
+You can find all the blog posts in `website/www/source/blog`. The
+`website/www` directory has a README file explaining how to run the
+site locally.
+
+We're looking for submissions on anything and everything related to Vagrant.
+It can be as general as how to use a certain feature of Vagrant, or as
+specific as how to use Vagrant to develop a certain application or in
+a certain language.
+
+Please subscribe [to the RSS feed](#).
+We look forward to shipping blog posts shortly!
+
+READMORE
diff --git a/website/www/source/blog_feed.xml.builder b/website/www/source/blog_feed.xml.builder
new file mode 100644
index 000000000..90a2d45ca
--- /dev/null
+++ b/website/www/source/blog_feed.xml.builder
@@ -0,0 +1,23 @@
+xml.instruct!
+xml.feed "xmlns" => "http://www.w3.org/2005/Atom" do
+ xml.title "Vagrant Blog"
+ xml.subtitle "Release announcements, how-to guides, and more for Vagrant."
+ xml.id "http://www.vagrantup.com/blog.html"
+ xml.link "href" => "http://www.vagrantup.com/blog.html"
+ xml.link "href" => "http://www.vagrantup.com/blog_feed.xml", "rel" => "self"
+ xml.updated blog.articles.first.date.to_time.iso8601
+ xml.author { xml.name "Vagrant" }
+
+ blog.articles[0..5].each do |article|
+ xml.entry do
+ xml.title article.title
+ xml.link "rel" => "alternate", "href" => article.url
+ xml.id article.url
+ xml.published article.date.to_time.iso8601
+ xml.updated article.date.to_time.iso8601
+ xml.author { xml.name article.data.author }
+ xml.summary article.summary, "type" => "html"
+ xml.content article.body, "type" => "html"
+ end
+ end
+end
diff --git a/website/www/source/layouts/blog_post.erb b/website/www/source/layouts/blog_post.erb
new file mode 100644
index 000000000..dd52324c0
--- /dev/null
+++ b/website/www/source/layouts/blog_post.erb
@@ -0,0 +1,42 @@
+<% wrap_layout :layout do %>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <%= current_article.title %>
+ <%= yield %>
+
+
+
+
+
+
+
+
+<% end %>
diff --git a/website/www/source/stylesheets/_modules.less b/website/www/source/stylesheets/_modules.less
index 9168adbe1..459c8e8e1 100644
--- a/website/www/source/stylesheets/_modules.less
+++ b/website/www/source/stylesheets/_modules.less
@@ -1,16 +1,37 @@
.Modules {
- &.sponsors {
- margin-top: 50px;
+ &.blog-landing, &.blog-post {
+ article {
+ .meta {
+ font-size: 16px;
+ }
- ul {
- list-style-type: none;
-
- li {
- float: left;
- text-align: center;
- width: 50%;
- height: 250px;
- }
+ h2 {
+ font-size: 45px;
+ font-weight: bold;
+ margin-top: 2px;
+ text-transform: none;
+ }
+ }
+ }
+
+ &.blog-sidebar {
+ color: #476576;
+ font-size: 18px;
+ line-height: 26px;
+ }
+
+ &.sponsors {
+ margin-top: 50px;
+
+ ul {
+ list-style-type: none;
+
+ li {
+ float: left;
+ text-align: center;
+ width: 50%;
+ height: 250px;
+ }
+ }
}
- }
}