# Welcome to Jekyll!
#
# This config file is meant for settings that affect your whole blog, values
# which you are expected to set up once and rarely need to edit after that.
# For technical reasons, this file is *NOT* reloaded automatically when you use
# 'jekyll serve'. If you change this file, please restart the server process.

# Site settings
title: Apache SystemML (incubating)
email: dev@systemml.incubator.apache.org
description: > # this means to ignore newlines until "baseurl:"
  Apache SystemML (incubating) is a flexible, scalable machine learning (ML) system.
baseurl: "" # the subpath of your site, e.g. /blog
url: "http://systemml.apache.org" # the base hostname & protocol for your site
twitter_username: systemml
github_username:  apache

# Build settings
markdown: kramdown

# if 'analytics_on' is true, analytics section will be rendered on the HTML pages
analytics_on: true
analytics_provider: google_universal
analytics_google_universal_tracking_id : UA-71553733-1
