# 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"]

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 base path where the website is deployed
baseurl:

# End _config.yml
