# This config file is meant for settings that affect your whole blog, values
# which you are expected to set up once and rarely edit after that. If you find
# yourself editing this file very often, consider using Jekyll's data files
# feature for the data you need to update frequently.
#
# For technical reasons, this file is *NOT* reloaded automatically when you use
# 'bundle exec jekyll serve'. If you change this file, please restart the server process.

# Site settings
# These are used to personalize your new site. If you look in the HTML files,
# you will see them accessed via {{ site.title }}, {{ site.email }}, and so on.
# You can create any custom variable you would like, and they will be accessible
# in the templates via {{ site.myvariable }}.
title: Quickstep
email: dev@quickstep.incubator.apache.org
description: > # this means to ignore newlines until "baseurl:"
  Apache (incubating) Quickstep is a next-generation data processing platform. 
  Built from to ground up to take advantage of modern hardware, Quickstep is 
  designed for high-performance analytical queries.
baseurl: "" # the subpath of your site, e.g. /blog
url: "" # the base hostname & protocol for your site, e.g. http://example.com
github_username:  apache

# Build settings
destination: content
defaults:
  -
    scope:
      path: ""
    values:
      layout: plain

# Build settings
markdown: kramdown
theme: minima
gems:
  - jekyll-feed
exclude:
  - Gemfile
  - Gemfile.lock
