You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@arrow.apache.org by ko...@apache.org on 2019/09/19 07:50:42 UTC

[arrow-site] branch master updated: ARROW-6127: [Website] Add favicons and meta tags (#23)

This is an automated email from the ASF dual-hosted git repository.

kou pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/arrow-site.git


The following commit(s) were added to refs/heads/master by this push:
     new f13cd57  ARROW-6127: [Website] Add favicons and meta tags (#23)
f13cd57 is described below

commit f13cd570e5027f504c900a4f3015e3a79d04888f
Author: Neal Richardson <ne...@gmail.com>
AuthorDate: Thu Sep 19 00:50:37 2019 -0700

    ARROW-6127: [Website] Add favicons and meta tags (#23)
    
    * Add favicons and code to switch to dark-mode favicons
    
    * Use distinct page titles
    
    * Add jekyll-seo-tag for meta tag generation
    
    * Revert to hand-rolled title tag instead of the jekyll-seo-tag one, which could be too verbose
    
    * Add extra_config.yml and adapt to github actions
    
    * Use --raw-output
    
    * Add note to readme about github actions
---
 .github/workflows/deploy.yml                    |  20 ++++--
 .gitignore                                      |   1 +
 Gemfile                                         |   1 +
 README.md                                       |   4 ++
 _config.yml                                     |  14 +++++
 _includes/top.html                              |  77 ++++++++++++++++++++++--
 _posts/2019-01-21-0.12.0-release.md             |   3 +
 _posts/2019-01-25-r-spark-improvements.md       |   4 ++
 _posts/2019-02-04-datafusion-donation.md        |   3 +-
 _posts/2019-02-05-python-string-memory-0.12.md  |   7 ++-
 _posts/2019-04-02-0.13.0-release.md             |   3 +
 _posts/2019-07-08-0.14.0-release.md             |   3 +
 _posts/2019-08-01-r-package-on-cran.md          |   2 +
 _posts/2019-09-03-faster-strings-cpp-parquet.md |   5 ++
 blog.html                                       |   3 +-
 committers.html                                 |   2 +
 faq.md                                          |   2 +
 img/apple-touch-icon-120x120-dark.png           | Bin 0 -> 4244 bytes
 img/apple-touch-icon-120x120.png                | Bin 0 -> 9032 bytes
 img/apple-touch-icon-152x152-dark.png           | Bin 0 -> 5057 bytes
 img/apple-touch-icon-152x152.png                | Bin 0 -> 9802 bytes
 img/apple-touch-icon-180x180-dark.png           | Bin 0 -> 5021 bytes
 img/apple-touch-icon-180x180.png                | Bin 0 -> 9673 bytes
 img/apple-touch-icon-60x60-dark.png             | Bin 0 -> 3475 bytes
 img/apple-touch-icon-60x60.png                  | Bin 0 -> 8234 bytes
 img/apple-touch-icon-76x76-dark.png             | Bin 0 -> 3687 bytes
 img/apple-touch-icon-76x76.png                  | Bin 0 -> 8399 bytes
 img/apple-touch-icon-dark.png                   | Bin 0 -> 5021 bytes
 img/apple-touch-icon.png                        | Bin 0 -> 9673 bytes
 img/favicon-16x16-dark.png                      | Bin 0 -> 3308 bytes
 img/favicon-16x16.png                           | Bin 0 -> 8447 bytes
 img/favicon-32x32-dark.png                      | Bin 0 -> 3148 bytes
 img/favicon-32x32.png                           | Bin 0 -> 7837 bytes
 img/favicon-dark.ico                            | Bin 0 -> 15086 bytes
 img/favicon.ico                                 | Bin 0 -> 15086 bytes
 img/logo.png                                    | Bin 0 -> 9201 bytes
 index.html                                      |   2 +-
 install.md                                      |   2 +
 powered_by.md                                   |  10 +--
 39 files changed, 150 insertions(+), 18 deletions(-)

diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml
index e9306d7..27aefe8 100644
--- a/.github/workflows/deploy.yml
+++ b/.github/workflows/deploy.yml
@@ -36,22 +36,31 @@ jobs:
       - name: Configure for production
         run: |
           echo "BASE_URL=" >> ../env.sh
-          echo "ORIGIN=$(jq .repository.full_name ${GITHUB_EVENT_PATH})" >> ../env.sh
+          echo "ORIGIN=$(jq --raw-output .repository.full_name ${GITHUB_EVENT_PATH})" >> ../env.sh
           echo "TARGET_BRANCH=asf-site" >> ../env.sh
+          echo >> _extra_config.yml
         if: |
           github.event_name == 'push' && github.repository == 'apache/arrow-site'
       - name: Configure for GitHub Pages on master
         run: |
-          echo "BASE_URL=$(jq .repository.name ${GITHUB_EVENT_PATH})" >> ../env.sh
-          echo "ORIGIN=$(jq .repository.full_name ${GITHUB_EVENT_PATH})" >> ../env.sh
+          owner=$(jq .repository.owner.login ${GITHUB_EVENT_PATH})
+          repository=$(jq .repository.name ${GITHUB_EVENT_PATH})
+          echo "BASE_URL=/${repository}" >> ../env.sh
+          echo "ORIGIN=${owner}/${repository}" >> ../env.sh
           echo "TARGET_BRANCH=gh-pages" >> ../env.sh
+          # "url:" is for the opengraph tags, and it can't be relative
+          echo "url: https://${owner}.github.io/${repository}" >> _extra_config.yml
         if: |
           github.event_name == 'push' && github.repository != 'apache/arrow-site'
       - name: Configure for GitHub Pages on pull request
         run: |
-          echo "BASE_URL=$(jq .pull_request.head.repo.name ${GITHUB_EVENT_PATH})" >> ../env.sh
-          echo "ORIGIN=$(jq .pull_request.head.repo.full_name ${GITHUB_EVENT_PATH})" >> ../env.sh
+          owner=$(jq --raw-output .pull_request.head.user.login ${GITHUB_EVENT_PATH})
+          repository=$(jq --raw-output .pull_request.head.repo.name ${GITHUB_EVENT_PATH})
+          echo "BASE_URL=/${repository}" >> ../env.sh
+          echo "ORIGIN=${owner}/${repository}" >> ../env.sh
           echo "TARGET_BRANCH=gh-pages" >> ../env.sh
+          # "url:" is for the opengraph tags, and it can't be relative
+          echo "url: https://${owner}.github.io/${repository}" >> _extra_config.yml
         if: |
           github.event_name == 'pull_request'
       - name: Build
@@ -61,6 +70,7 @@ jobs:
             bundle exec \
               jekyll build \
                 --baseurl="${BASE_URL}" \
+                --config=_config.yml,_extra_config.yml \
                 --destination=../build
       - name: Deploy
         run: |
diff --git a/.gitignore b/.gitignore
index fbfc4b7..e4465b7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -8,3 +8,4 @@ build/
 .bundle/
 ruby/
 .DS_Store
+themes/
diff --git a/Gemfile b/Gemfile
index a8b1245..e20e751 100644
--- a/Gemfile
+++ b/Gemfile
@@ -22,5 +22,6 @@ group :jekyll_plugins do
    gem "jekyll-assets"
    gem "jekyll-feed", "~> 0.6"
    gem "jekyll-jupyter-notebook"
+   gem "jekyll-seo-tag"
 end
 gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]
diff --git a/README.md b/README.md
index dcaf279..1366ab5 100644
--- a/README.md
+++ b/README.md
@@ -68,6 +68,10 @@ Run the following to generate HTML files and run the web site locally.
 bundle exec jekyll serve
 ```
 
+## Deployment
+
+On commits to the `master` branch of `apache/arrow-site`, the rendered static site will be published to the `asf-site` branch using GitHub Actions. On a fork, it will deploy to your `gh-pages` branch for deployment via GitHub Pages; this is useful for previewing changes you're proposing. To enable this deployment on your fork, you'll need to sign up for GitHub Actions [here](https://github.com/features/actions/signup).
+
 ## Updating Code Documentation
 
 To update the documentation, you can run the script `./dev/gen_apidocs.sh` in
diff --git a/_config.yml b/_config.yml
index 57c75c2..684edd8 100644
--- a/_config.yml
+++ b/_config.yml
@@ -36,6 +36,7 @@ exclude:
   - README.md
   - vendor
   - build-and-deploy.sh
+  - themes
 
 collections:
   docs:
@@ -53,3 +54,16 @@ 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
diff --git a/_includes/top.html b/_includes/top.html
index 270b87e..6804f99 100644
--- a/_includes/top.html
+++ b/_includes/top.html
@@ -2,12 +2,81 @@
 <html lang="en-US">
   <head>
     <meta charset="UTF-8">
-    <title>Apache Arrow Homepage</title>
     <meta http-equiv="X-UA-Compatible" content="IE=edge">
     <meta name="viewport" content="width=device-width, initial-scale=1">
-    <meta name="generator" content="Jekyll v{{ jekyll.version }}">
-    <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
-    <link rel="icon" type="image/x-icon" href="{{ site.baseurl }}/favicon.ico">
+    <!-- The above meta tags *must* come first in the head; any other head content must come *after* these tags -->
+    {% if page.title %}
+    <title>{{ page.title }} | {{ site.title }}</title>
+    {% else %}
+    <title>{{ site.title }}</title>
+    {% endif %}
+    
+    {% seo title=false %}
+
+    <!-- favicons -->
+    <link rel="icon" type="image/png" sizes="16x16" href="{{ site.baseurl }}/img/favicon-16x16.png" id="light1">
+    <link rel="icon" type="image/png" sizes="32x32" href="{{ site.baseurl }}/img/favicon-32x32.png" id="light2">
+    <link rel="apple-touch-icon" type="image/png" sizes="180x180" href="{{ site.baseurl }}/img/apple-touch-icon.png" id="light3">
+    <link rel="apple-touch-icon" type="image/png" sizes="120x120" href="{{ site.baseurl }}/img/apple-touch-icon-120x120.png" id="light4">
+    <link rel="apple-touch-icon" type="image/png" sizes="76x76" href="{{ site.baseurl }}/img/apple-touch-icon-76x76.png" id="light5">
+    <link rel="apple-touch-icon" type="image/png" sizes="60x60" href="{{ site.baseurl }}/img/apple-touch-icon-60x60.png" id="light6">
+    <!-- dark mode favicons -->
+    <link rel="icon" type="image/png" sizes="16x16" href="{{ site.baseurl }}/img/favicon-16x16-dark.png" id="dark1">
+    <link rel="icon" type="image/png" sizes="32x32" href="{{ site.baseurl }}/img/favicon-32x32-dark.png" id="dark2">
+    <link rel="apple-touch-icon" type="image/png" sizes="180x180" href="{{ site.baseurl }}/img/apple-touch-icon-dark.png" id="dark3">
+    <link rel="apple-touch-icon" type="image/png" sizes="120x120" href="{{ site.baseurl }}/img/apple-touch-icon-120x120-dark.png" id="dark4">
+    <link rel="apple-touch-icon" type="image/png" sizes="76x76" href="{{ site.baseurl }}/img/apple-touch-icon-76x76-dark.png" id="dark5">
+    <link rel="apple-touch-icon" type="image/png" sizes="60x60" href="{{ site.baseurl }}/img/apple-touch-icon-60x60-dark.png" id="dark6">
+
+    <script>
+      // Switch to the dark-mode favicons if prefers-color-scheme: dark
+      function onUpdate() {
+        light1 = document.querySelector('link#light1');
+        light2 = document.querySelector('link#light2');
+        light3 = document.querySelector('link#light3');
+        light4 = document.querySelector('link#light4');
+        light5 = document.querySelector('link#light5');
+        light6 = document.querySelector('link#light6');
+
+        dark1 = document.querySelector('link#dark1');
+        dark2 = document.querySelector('link#dark2');
+        dark3 = document.querySelector('link#dark3');
+        dark4 = document.querySelector('link#dark4');
+        dark5 = document.querySelector('link#dark5');
+        dark6 = document.querySelector('link#dark6');
+
+        if (matcher.matches) {
+          light1.remove();
+          light2.remove();
+          light3.remove();
+          light4.remove();
+          light5.remove();
+          light6.remove();
+          document.head.append(dark1);
+          document.head.append(dark2);
+          document.head.append(dark3);
+          document.head.append(dark4);
+          document.head.append(dark5);
+          document.head.append(dark6);
+        } else {
+          dark1.remove();
+          dark2.remove();
+          dark3.remove();
+          dark4.remove();
+          dark5.remove();
+          dark6.remove();
+          document.head.append(light1);
+          document.head.append(light2);
+          document.head.append(light3);
+          document.head.append(light4);
+          document.head.append(light5);
+          document.head.append(light6);
+        }
+      }
+      matcher = window.matchMedia('(prefers-color-scheme: dark)');
+      matcher.addListener(onUpdate);
+      onUpdate();
+    </script>
 
     <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
 
diff --git a/_posts/2019-01-21-0.12.0-release.md b/_posts/2019-01-21-0.12.0-release.md
index eef865c..e299a0d 100644
--- a/_posts/2019-01-21-0.12.0-release.md
+++ b/_posts/2019-01-21-0.12.0-release.md
@@ -1,6 +1,9 @@
 ---
 layout: post
 title: "Apache Arrow 0.12.0 Release"
+description: "The Apache Arrow team is pleased to announce the 0.12.0 release. This is the
+largest release yet in the project, covering 3 months of development work and
+includes 614 resolved issues from 77 distinct contributors."
 date: "2019-01-21 07:00:00 -0600"
 author: wesm
 categories: [release]
diff --git a/_posts/2019-01-25-r-spark-improvements.md b/_posts/2019-01-25-r-spark-improvements.md
index 4b8fd2d..469078f 100644
--- a/_posts/2019-01-25-r-spark-improvements.md
+++ b/_posts/2019-01-25-r-spark-improvements.md
@@ -1,6 +1,10 @@
 ---
 layout: post
 title: "Speeding up R and Apache Spark using Apache Arrow"
+description: "Support for Apache Arrow in Apache Spark with R is currently under active
+development in the sparklyr and SparkR projects. This post explores early, yet
+promising, performance improvements achieved when using R with Apache Spark,
+Arrow and sparklyr."
 date: "2019-01-25 00:00:00 -0600"
 author: Javier Luraschi
 categories: [application]
diff --git a/_posts/2019-02-04-datafusion-donation.md b/_posts/2019-02-04-datafusion-donation.md
index 9a7806c..bb3bd97 100644
--- a/_posts/2019-02-04-datafusion-donation.md
+++ b/_posts/2019-02-04-datafusion-donation.md
@@ -1,6 +1,7 @@
 ---
 layout: post
 title: "DataFusion: A Rust-native Query Engine for Apache Arrow"
+description: "We are excited to announce that DataFusion has been donated to the Apache Arrow project. DataFusion is an in-memory query engine for the Rust implementation of Apache Arrow."
 date: "2019-02-04 00:00:00 -0600"
 author: agrove
 categories: [application]
@@ -115,5 +116,3 @@ The roadmap for DataFusion will depend on interest from the Rust community, but
 ## Contributors Welcome!
 
 If you are excited about being able to use Rust for data science and would like to contribute to this work then there are many ways to get involved. The simplest way to get started is to try out DataFusion against your own data sources and file bug reports for any issues that you find. You could also check out the current [list of issues](https://cwiki.apache.org/confluence/display/ARROW/Rust+JIRA+Dashboard) and have a go at fixing one. You can also join the [user mailing list](http://ma [...]
-
-
diff --git a/_posts/2019-02-05-python-string-memory-0.12.md b/_posts/2019-02-05-python-string-memory-0.12.md
index 0979274..7329f18 100644
--- a/_posts/2019-02-05-python-string-memory-0.12.md
+++ b/_posts/2019-02-05-python-string-memory-0.12.md
@@ -1,6 +1,11 @@
 ---
 layout: post
 title: "Reducing Python String Memory Use in Apache Arrow 0.12"
+description: "Python users who upgrade to recently released pyarrow 0.12 may find that
+their applications use significantly less memory when converting Arrow string
+data to pandas format. This article details some of what is going on under the
+hood, and why Python applications dealing with large amounts of strings are
+prone to memory use problems."
 date: "2019-02-05 07:00:00 -0600"
 author: wesm
 categories: [application]
@@ -244,4 +249,4 @@ provide fast and memory-efficient interoperability with pandas and other
 popular libraries.
 
 [1]: https://www.slideshare.net/xhochy/extending-pandas-using-apache-arrow-and-numba
-[2]: https://pypi.org/project/memory-profiler/
\ No newline at end of file
+[2]: https://pypi.org/project/memory-profiler/
diff --git a/_posts/2019-04-02-0.13.0-release.md b/_posts/2019-04-02-0.13.0-release.md
index 1450bfc..22dd057 100644
--- a/_posts/2019-04-02-0.13.0-release.md
+++ b/_posts/2019-04-02-0.13.0-release.md
@@ -1,6 +1,9 @@
 ---
 layout: post
 title: "Apache Arrow 0.13.0 Release"
+description: "The Apache Arrow team is pleased to announce the 0.13.0 release. This covers
+more than 2 months of development work and includes 550 resolved
+issues from 81 distinct contributors."
 date: "2019-04-02 07:00:00 -0600"
 author: wesm
 categories: [release]
diff --git a/_posts/2019-07-08-0.14.0-release.md b/_posts/2019-07-08-0.14.0-release.md
index bd85705..e5a0f26 100644
--- a/_posts/2019-07-08-0.14.0-release.md
+++ b/_posts/2019-07-08-0.14.0-release.md
@@ -1,6 +1,9 @@
 ---
 layout: post
 title: "Apache Arrow 0.14.0 Release"
+description: "The Apache Arrow team is pleased to announce the 0.14.0 release. This
+covers 3 months of development work and includes 602 resolved
+issues from 75 distinct contributors"
 date: "2019-07-02 00:00:00 -0600"
 author: pmc
 categories: [release]
diff --git a/_posts/2019-08-01-r-package-on-cran.md b/_posts/2019-08-01-r-package-on-cran.md
index 605328d..91fbb82 100644
--- a/_posts/2019-08-01-r-package-on-cran.md
+++ b/_posts/2019-08-01-r-package-on-cran.md
@@ -1,6 +1,8 @@
 ---
 layout: post
 title: "Apache Arrow R Package On CRAN"
+description: "We are very excited to announce that the arrow R package is now available on
+CRAN."
 date: "2019-08-08 06:00:00 -0600"
 author: npr
 categories: [application]
diff --git a/_posts/2019-09-03-faster-strings-cpp-parquet.md b/_posts/2019-09-03-faster-strings-cpp-parquet.md
index e868c40..433dc95 100644
--- a/_posts/2019-09-03-faster-strings-cpp-parquet.md
+++ b/_posts/2019-09-03-faster-strings-cpp-parquet.md
@@ -1,6 +1,11 @@
 ---
 layout: post
 title: "Faster C++ Apache Parquet performance on dictionary-encoded string data coming in Apache Arrow 0.15"
+description: "We have been implementing a series of optimizations in the Apache Parquet C++
+internals to improve read and write efficiency (both performance and memory
+use) for Arrow columnar binary and string data, with new native support for
+Arrow's dictionary types. This should have a big impact on users of the C++,
+MATLAB, Python, R, and Ruby interfaces to Parquet files."
 date: "2019-09-05 00:00:00 -0600"
 author: Wes McKinney
 categories: [application]
diff --git a/blog.html b/blog.html
index 8549859..ddabcea 100644
--- a/blog.html
+++ b/blog.html
@@ -1,6 +1,7 @@
 ---
 layout: default
-title: Blog / News
+title: Project News and Blog
+description: Updates and announcements about the Apache Arrow project
 permalink: /blog/
 ---
 {% comment %}
diff --git a/committers.html b/committers.html
index 0a62f8c..cd32117 100644
--- a/committers.html
+++ b/committers.html
@@ -1,5 +1,7 @@
 ---
 layout: default
+title: Committers
+description: "List of project-management committee (PMC) members and committers on the Apache Arrow project."
 ---
     <div class="container">
 <h2>Committers</h2>
diff --git a/faq.md b/faq.md
index de9a1f9..3a6377b 100644
--- a/faq.md
+++ b/faq.md
@@ -1,5 +1,7 @@
 ---
 layout: default
+title: FAQ
+description: Frequently asked questions about the Apache Arrow project
 ---
 <!--
 {% comment %}
diff --git a/img/apple-touch-icon-120x120-dark.png b/img/apple-touch-icon-120x120-dark.png
new file mode 100644
index 0000000..61d8ac0
Binary files /dev/null and b/img/apple-touch-icon-120x120-dark.png differ
diff --git a/img/apple-touch-icon-120x120.png b/img/apple-touch-icon-120x120.png
new file mode 100644
index 0000000..1b69d12
Binary files /dev/null and b/img/apple-touch-icon-120x120.png differ
diff --git a/img/apple-touch-icon-152x152-dark.png b/img/apple-touch-icon-152x152-dark.png
new file mode 100644
index 0000000..90ada00
Binary files /dev/null and b/img/apple-touch-icon-152x152-dark.png differ
diff --git a/img/apple-touch-icon-152x152.png b/img/apple-touch-icon-152x152.png
new file mode 100644
index 0000000..d79ce3f
Binary files /dev/null and b/img/apple-touch-icon-152x152.png differ
diff --git a/img/apple-touch-icon-180x180-dark.png b/img/apple-touch-icon-180x180-dark.png
new file mode 100644
index 0000000..1ea1b6e
Binary files /dev/null and b/img/apple-touch-icon-180x180-dark.png differ
diff --git a/img/apple-touch-icon-180x180.png b/img/apple-touch-icon-180x180.png
new file mode 100644
index 0000000..8f0fdd3
Binary files /dev/null and b/img/apple-touch-icon-180x180.png differ
diff --git a/img/apple-touch-icon-60x60-dark.png b/img/apple-touch-icon-60x60-dark.png
new file mode 100644
index 0000000..7173c50
Binary files /dev/null and b/img/apple-touch-icon-60x60-dark.png differ
diff --git a/img/apple-touch-icon-60x60.png b/img/apple-touch-icon-60x60.png
new file mode 100644
index 0000000..86cc8bc
Binary files /dev/null and b/img/apple-touch-icon-60x60.png differ
diff --git a/img/apple-touch-icon-76x76-dark.png b/img/apple-touch-icon-76x76-dark.png
new file mode 100644
index 0000000..be10ef2
Binary files /dev/null and b/img/apple-touch-icon-76x76-dark.png differ
diff --git a/img/apple-touch-icon-76x76.png b/img/apple-touch-icon-76x76.png
new file mode 100644
index 0000000..34b5ffd
Binary files /dev/null and b/img/apple-touch-icon-76x76.png differ
diff --git a/img/apple-touch-icon-dark.png b/img/apple-touch-icon-dark.png
new file mode 100644
index 0000000..5542a46
Binary files /dev/null and b/img/apple-touch-icon-dark.png differ
diff --git a/img/apple-touch-icon.png b/img/apple-touch-icon.png
new file mode 100644
index 0000000..2ffcf0b
Binary files /dev/null and b/img/apple-touch-icon.png differ
diff --git a/img/favicon-16x16-dark.png b/img/favicon-16x16-dark.png
new file mode 100644
index 0000000..a21c287
Binary files /dev/null and b/img/favicon-16x16-dark.png differ
diff --git a/img/favicon-16x16.png b/img/favicon-16x16.png
new file mode 100644
index 0000000..f9c714d
Binary files /dev/null and b/img/favicon-16x16.png differ
diff --git a/img/favicon-32x32-dark.png b/img/favicon-32x32-dark.png
new file mode 100644
index 0000000..9842d55
Binary files /dev/null and b/img/favicon-32x32-dark.png differ
diff --git a/img/favicon-32x32.png b/img/favicon-32x32.png
new file mode 100644
index 0000000..6d2137f
Binary files /dev/null and b/img/favicon-32x32.png differ
diff --git a/img/favicon-dark.ico b/img/favicon-dark.ico
new file mode 100644
index 0000000..09d893c
Binary files /dev/null and b/img/favicon-dark.ico differ
diff --git a/img/favicon.ico b/img/favicon.ico
new file mode 100644
index 0000000..33a554a
Binary files /dev/null and b/img/favicon.ico differ
diff --git a/img/logo.png b/img/logo.png
new file mode 100644
index 0000000..ee68a6c
Binary files /dev/null and b/img/logo.png differ
diff --git a/index.html b/index.html
index 3c863a0..707c0ae 100644
--- a/index.html
+++ b/index.html
@@ -17,7 +17,7 @@ layout: default
   <a href="{{ site.baseurl }}/blog/"><strong>See Latest News</strong></a>
 </h5>
 <p>
-  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.
+  {{ site.description }}
 </p>
 <hr />
 <div class="row">
diff --git a/install.md b/install.md
index ea3e6fa..6ed056f 100644
--- a/install.md
+++ b/install.md
@@ -1,5 +1,7 @@
 ---
 layout: default
+title: Installation
+description: Instructions for installing the latest release of Apache Arrow
 ---
 <!--
 {% comment %}
diff --git a/powered_by.md b/powered_by.md
index 01ee6d0..a4e9d71 100644
--- a/powered_by.md
+++ b/powered_by.md
@@ -1,5 +1,7 @@
 ---
 layout: default
+title: Powered by
+description: List of projects powered by Apache Arrow
 ---
 <!--
 {% comment %}
@@ -64,7 +66,7 @@ short description of your use case.
 * **[Dask][15]:** Python library for parallel and distributed execution of
   dynamic task graphs. Dask supports using pyarrow for accessing Parquet
   files
-* **[Data Preview][31]:** Data Preview is a Visual Studio Code extension 
+* **[Data Preview][31]:** Data Preview is a Visual Studio Code extension
   for viewing text and binary data files. Data Preview uses Arrow JS API
   for loading, transforming and saving Arrow data files and schemas.
 * **[Dremio][9]:** A self-service data platform. Dremio makes it easy for
@@ -73,10 +75,10 @@ short description of your use case.
   Dremio reads data from any source (RDBMS, HDFS, S3, NoSQL) into Arrow
   buffers, and provides fast SQL access via ODBC, JDBC, and REST for BI,
   Python, R, and more (all backed by Apache Arrow).
-* **[Fletcher][20]:** Fletcher is a framework that can integrate FPGA 
+* **[Fletcher][20]:** Fletcher is a framework that can integrate FPGA
   accelerators with tools and frameworks that use the Apache Arrow in-memory
-  format. From a set of Arrow Schemas, Fletcher generates highly optimized 
-  hardware structures that allow accelerator kernels to read and write 
+  format. From a set of Arrow Schemas, Fletcher generates highly optimized
+  hardware structures that allow accelerator kernels to read and write
   RecordBatches at system bandwidth through easy-to-use interfaces.
 * **[GeoMesa][8]:** A suite of tools that enables large-scale geospatial query
   and analytics on distributed computing systems. GeoMesa supports query