#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#  http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.
#

encoding: utf-8
markdown: kramdown

# where this will publish
url_root: http://0.0.0.0:4000

# absolute base directories where things will land on the server
path:
  style: /style
  guide: /guide
  website: /website
  v: /v
  
# Use local copies of dependencies in dev build (switched to remote using URLs for prod build)
dependency_mode: local
dependency_urls:
  bootstrap.css: https://netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css
  bootstrap.js: https://netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js
  jquery.js: https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js

root_menu_page: /website/index.md

# These files should not be included in the final build (in addition to _* contents)
exclude: ['/Gemfile*','/README.md']

sass:
    sass_dir: style/css

# TODO the 0.9.0 paths must be changed!
brooklyn-stable-version: 0.9.0
pdf-default-base-url: http://brooklyn.apache.org
pdf-default-versioned-url-subpath: /v/0.9.0

pdf-rewrite-prefixes: 
    '/guide' : '/v/0.9.0'
    '/website' : ''
    
brooklyn-version: 0.10.0-SNAPSHOT # BROOKLYN_VERSION
brooklyn-snapshot-git-branch: master   # if line above is SNAPSHOT this should point to corresponding git branch (e.g. master, 0.4)

# This is auto-detected, but you can override it if needed.
# git-branch: master
