#
# 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.
#

site_name: Apache Iceberg
site_description: A table format for large, slow-moving tabular data

remote_name: apache
remote_branch: asf-site
use_directory_urls: true

theme: cinder
copyright: "Copyright 2018-2021 <a href='https://www.apache.org/'>The Apache Software Foundation</a><br />Apache Iceberg, Iceberg, Apache, the Apache feather logo, and the Apache Iceberg project logo are either registered<br />trademarks or trademarks of The Apache Software Foundation in the United States and other countries."
extra_css:
  - css/extra.css
plugins:
  - redirects
markdown_extensions:
  - toc:
      permalink: True
  - smarty
  - sane_lists
  - extra
  - tables
  - admonition
  - pymdownx.tilde
nav:
  - Project:
    - About: index.md
    - Community: community.md
    - Releases: releases.md
    - Trademarks: trademarks.md
    - How to Release: how-to-release.md
  - Tables:
    - Configuration: configuration.md
    - Schemas: schemas.md
    - Partitioning: partitioning.md
    - Table evolution: evolution.md
    - Maintenance: maintenance.md
    - Performance: performance.md
    - Reliability: reliability.md
  - Spark:
    - Getting Started: getting-started.md
    - Spark SQL: spark.md
    - Spark Streaming: spark-structured-streaming.md
    - Time Travel: spark#time-travel
  - Trino: https://trino.io/docs/current/connector/iceberg.html
  - Flink: flink.md
  - Hive: hive.md
  - Integrations:
    - AWS: aws.md
  - API:
    - Javadoc: /javadoc/
    - Java API intro: api.md
    - Java Quickstart: java-api-quickstart.md
    - Java Custom Catalog: custom-catalog.md
    - Python Quickstart: python-quickstart.md
    - Python API Intro: python-api-intro.md
    - Python Feature Support: python-feature-support.md
  - Format:
    - Definitions: terms.md
    - Spec: spec.md
  - GitHub: https://github.com/apache/iceberg
  - ASF:
    - License: https://www.apache.org/licenses/
    - Security: https://www.apache.org/security/
    - Sponsors: https://www.apache.org/foundation/thanks.html
    - Donate: https://www.apache.org/foundation/sponsorship.html
    - Events: https://www.apache.org/events/current-event.html
redirects:
  time-travel/index: snapshots/index
  presto/index: trino/index
