# 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
destination: build
excerpt_separator: </p>
timezone: America/New_York

kramdown:
  input: GFM
  syntax_highlighter: rouge

include:
  - _static

exclude:
  - Gemfile
  - Gemfile.lock
  - scripts
  - README.md
  - vendor
  - themes

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

sass:
  style: compressed

# The base path where the website is deployed
baseurl:

plugins:
  - jekyll-assets
  - jekyll-feed
  - jekyll-jupyter-notebook
  - jekyll-seo-tag

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
