Octopress

A blogging framework for hackers.

Configuring Octopress

« Previous, Octopress Setup

I've tried to keep configuring Octopress fairly simple and you'll probably only ever change the Rakefile and the _config.yml. Here's a list of files for configuring Octopress.

_config.yml # Main config (Jekyll's settings)
Rakefile # Configs for deployment
config.rb # Compass config
config.ru # Rack config

Configurations in the Rakefile are mostly related to deployment and you probably won't have to touch them unless you're using rsync.

Blog Configuration

In the _config.yml there are three sections for configuring your Octopress Blog. Spoiler: You must change url, and you'll probably change title, subtitle and author and enable some 3rd party services.

Main Configs

url: # For rewriting urls for RSS, etc
title: # Used in the header and title tags
subtitle: # A description used in the header
author: # Your name, for RSS, Copyright, Metadata
simple_search: # Search engine for simple site search
description: # A default meta description for your site
date_format: # Format dates using Ruby's date strftime syntax
subscribe_rss: # Url for your blog's feed, defauts to /atom.xml
subscribe_email: # Url to subscribe by email (service required)
category_feeds: # Enable per category RSS feeds (defaults to false in 2.1)
email: # Email address for the RSS feed if you want it.

Note: If your site is a multi-author blog, you may want to set this config's author to the name of your company or project, and add author metadata to posts and pages to give proper attribution for those works.

Jekyll & Plugins

These configurations are used by Jekyll and Plugins. If you're not familiar with Jekyll, you should probably have a look at the configuration docs which lists more options that aren't covered here.

root: # Mapping for relative urls (default: /)
permalink: # Permalink structure for blog posts
source: # Directory for site source files
destination: # Directory for generated site files
plugins: # Directory for Jekyll plugins
code_dir: # Directory for code snippets (for include_code plugin)
category_dir: # Directory for generated blog category pages
pygments: # Toggle python pygments syntax highlighting
paginate: # Posts per page on the blog index
pagination_dir: # Directory base for pagination URLs eg. /blog/page/2/
recent_posts: # Number of recent posts to appear in the sidebar
default_asides: # Configure what shows up in the sidebar and in what order
blog_index_asides: # Optional sidebar config for blog index page
post_asides: # Optional sidebar config for post layout
page_asides: # Optional sidebar config for page layout

If you want to change the way permalinks are written for your blog posts, see Jekyll's permalink docs.

Note: Jekyll has a baseurl config which offers mock subdirectory publishing support by adding a redirect to Jekyll's WEBrick server. Please don't use this. If you want to publish your site to a subdirectory, (see Deploying Octopress to a Subdirectory).

3rd Party Settings

These third party integrations are already set up for you. Simply fill in the configurations and they'll be added to your site.

  • Github - List your github repositories in the sidebar
  • Twitter - Add a button for sharing of posts and pages on Twitter
  • Google Plus One - Setup sharing for posts and pages on Google's plus one network.
  • Pinboard - Share your recent Pinboard bookmarks in the sidebar.
  • Delicious - Share your recent Delicious bookmarks in the sidebar.
  • Disqus Comments - Add your disqus short name to enable disqus comments on your site.
  • Google Analytics - Add your tracking id to enable Google Analytics tracking for your site.
  • Facebook - Add a Facebook like button

The Octopress layouts read these configurations and only include the javascript and html necessary for the enabled services.

Next, Blogging with Octopress »