# 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: /blog/:year/:month/:day/:title/
repository: https://github.com/apache/arrow
excerpt_separator: </p>
timezone: America/New_York

kramdown:
  input: GFM
  syntax_highlighter: rouge

include:
  - _static

exclude:
  - Gemfile
  - Gemfile.lock
  - README.md
  - Rakefile
  - node_modules
  - package-lock.json
  - package.json
  - release-announcement-template.md
  - scripts
  - vendor
  - webpack.config.json

collections:
  docs:
    output: true
  release:
    output: true

sass:
  style: compressed
  load_paths:
    - node_modules

# The base path where the website is deployed
baseurl:

title: "Apache Arrow"
description: "Apache Arrow is a cross-language development platform for in-memory data. It specifies a standardized language-independent columnar memory format for flat and hierarchical data, organized for efficient analytic operations on modern hardware. It also provides computational libraries and zero-copy streaming messaging and interprocess communication. Languages currently supported include C, C++, C#, Go, Java, JavaScript, MATLAB, Python, R, Ruby, and Rust."
url: https://arrow.apache.org
logo: /img/logo.png
twitter:
  username: ApacheArrow
defaults:
  - scope:
      path: ""
    values:
      image: /img/arrow.png
