# 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.
exclude: [guidelines.md,  "Gemfile", "Gemfile.lock", README.adoc, "_docs/code-snippets", "_docs/includes", '*.sh']
attrs: &asciidoc_attributes
  version: 2.9.1
  base_url: /docs
  stylesdir: /docs/assets/css
  imagesdir: /docs
  source-highlighter: rouge
  table-stripes: even
  javadoc_base_url: https://ignite.apache.org/releases/{version}/javadoc
  javaCodeDir: code-snippets/java/src/main/java/org/apache/ignite/snippets
  csharpCodeDir: code-snippets/dotnet
  githubUrl: https://github.com/apache/ignite/tree/master
  docSourceUrl: https://github.com/apache/ignite/tree/IGNITE-7595/docs
collections:
  docs:
    permalink: /docs/:path:output_ext
    output: true
defaults:
  -
    scope:
      path: ''
    values:
      layout: 'doc'
  -
    scope:
      path: '_docs'
    values:
      toc: ignite 
asciidoctor:
  base_dir: _docs/ 
  attributes: *asciidoc_attributes
   
