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

book_repo: apache/geode/geode-book
public_host: localhost

sections:
- repository:
    name: geode-docs
  directory: docs/guide/114
  subnav_template: geode-subnav

template_variables:
  product_name_long: Apache Geode
  product_name: Geode
  product_name_lowercase: geode
  product_version: '1.14'
  product_version_nodot: '114'
  product_version_geode: '1.14'
  min_java_version: '8'
  min_java_update: '121'
  support_url: http://geode.apache.org/community
  product_url: http://geode.apache.org/
  book_title: Apache Geode Documentation
  support_link: <a href="http://geode.apache.org/community" target="_blank">Community</a>
  support_call_to_action: <a href="http://geode.apache.org/community" target="_blank">Need Help?</a>
  changelog_href: https://cwiki.apache.org/confluence/display/GEODE/Release+Notes
  product_link: <div class="header-item"><a href="http://geode.apache.org/">Back to Geode Page</a></div>
  domain_name: apache.org
  book_title_short: Geode Docs
  local_header_title: Apache Geode
  local_header_img: /images/Apache_Geode_logo_symbol.png

broken_link_exclusions: iefix|using_custom_classes|arrowhead|cppdocs|DotNetDocs
