# 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.
#
markdown: kramdown
permalink: /news/:year/:month/:day/:title/
excerpt_separator: ""

repository: https://github.com/apache/calcite
destination: target
exclude: [README.md,Gemfile*]
keep_files: [".git", ".svn", "apidocs", "testapidocs", "avatica", "docs/cassandra.html"]

collections:
  docs:
    output: true

# The URL where the code can be found
sourceRoot: https://github.com/apache/calcite/blob/master

# The URL where Javadocs are located
apiRoot: /apidocs
# apiRoot: http://calcite.apache.org/apidocs

# The URL where Test Javadocs are located
testApiRoot: /testapidocs
# testApiRoot: http://calcite.apache.org/testapidocs

# The URL where Avatica's Javadocs are located
avaticaApiRoot: /avatica/apidocs
# avaticaApiRoot: http://calcite.apache.org/avatica/apidocs

# The URL where the JDK's Javadocs are located
jdkApiRoot: https://docs.oracle.com/javase/8/docs/api/

# The base path where the website is deployed
baseurl:

# The base path where the Avatica's website is deployed
avaticaBaseurl: /avatica

gems:
    - jekyll-redirect-from

# End _config.yml
