You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@calcite.apache.org by jh...@apache.org on 2015/09/13 07:05:07 UTC

incubator-calcite git commit: [CALCITE-882] Allow web site to be deployed not as the root directory of the web server (Josh Elser)

Repository: incubator-calcite
Updated Branches:
  refs/heads/master 25b286070 -> ad4bdca33


[CALCITE-882] Allow web site to be deployed not as the root directory of the web server (Josh Elser)

Lift all url prefixes in _config.yml and update templates to account for non '/' root deployments.

Trim trailing spaces.

Close apache/incubator-calcite#131

And a pull request I forgot to close earlier:

Close apache/incubator-calcite#129


Project: http://git-wip-us.apache.org/repos/asf/incubator-calcite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-calcite/commit/ad4bdca3
Tree: http://git-wip-us.apache.org/repos/asf/incubator-calcite/tree/ad4bdca3
Diff: http://git-wip-us.apache.org/repos/asf/incubator-calcite/diff/ad4bdca3

Branch: refs/heads/master
Commit: ad4bdca339dbb7df517ebe6eadcf22744d893459
Parents: 25b2860
Author: Josh Elser <el...@apache.org>
Authored: Sat Sep 12 16:58:01 2015 -0400
Committer: Julian Hyde <jh...@apache.org>
Committed: Sat Sep 12 22:02:22 2015 -0700

----------------------------------------------------------------------
 site/_config.yml                                | 11 ++++
 site/_docs/adapter.md                           | 10 +--
 site/_docs/algebra.md                           | 65 ++++++++++----------
 site/_docs/api.md                               |  6 +-
 site/_docs/avatica.md                           |  8 +--
 site/_docs/howto.md                             |  9 ++-
 site/_docs/index.md                             |  2 +-
 site/_docs/lattice.md                           |  2 +-
 site/_docs/model.md                             | 11 ++--
 site/_docs/tutorial.md                          | 30 +++++----
 site/_includes/docs_option.html                 |  2 +-
 site/_includes/docs_ul.html                     | 11 ++--
 site/_includes/header.html                      |  4 +-
 site/_includes/news_contents.html               |  8 +--
 site/_includes/news_contents_mobile.html        |  2 +-
 site/_includes/news_item.html                   |  4 +-
 site/_includes/primary-nav-items.html           | 12 ++--
 site/_includes/section_nav.html                 |  4 +-
 site/_includes/top.html                         |  4 +-
 site/_layouts/news_item.html                    |  2 +-
 site/_posts/2015-06-05-algebra-builder.md       |  8 +--
 .../2015-09-02-release-1.4.0-incubating.md      |  6 +-
 site/_sass/_gridism.scss                        |  2 +-
 site/develop/index.md                           |  2 +-
 site/doap_calcite.rdf                           |  4 +-
 site/fonts/fontawesome-webfont.svg              |  2 +-
 site/index.html                                 |  6 +-
 site/talks/index.md                             |  2 +-
 28 files changed, 124 insertions(+), 115 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/ad4bdca3/site/_config.yml
----------------------------------------------------------------------
diff --git a/site/_config.yml b/site/_config.yml
index bde7c38..e850a15 100644
--- a/site/_config.yml
+++ b/site/_config.yml
@@ -25,4 +25,15 @@ keep_files: [".git", ".svn", "apidocs"]
 collections:
   docs:
     output: true
+
+# The URL where the code can be found
+sourceRoot: https://github.com/apache/incubator-calcite/blob/master
+
+# The URL where Javadocs are located
+apiRoot: /apidocs
+# apiRoot: http://calcite.incubator.apache.org/apidocs
+
+# The base path where the website is deployed
+baseurl:
+
 # End _config.yml

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/ad4bdca3/site/_docs/adapter.md
----------------------------------------------------------------------
diff --git a/site/_docs/adapter.md b/site/_docs/adapter.md
index 39f039e..be01384 100644
--- a/site/_docs/adapter.md
+++ b/site/_docs/adapter.md
@@ -25,13 +25,13 @@ limitations under the License.
 * <a href="https://github.com/apache/incubator-drill">Apache Drill adapter</a>
 * Cascading adapter (<a href="https://github.com/Cascading/lingual">Lingual</a>)
 * CSV adapter (example/csv)
-* JDBC adapter (part of <a href="/apidocs/org/apache/calcite/adapter/jdbc/package-summary.html">calcite-core</a>)
-* MongoDB adapter (<a href="/apidocs/org/apache/calcite/adapter/mongodb/package-summary.html">calcite-mongodb</a>)
-* Spark adapter (<a href="/apidocs/org/apache/calcite/adapter/spark/package-summary.html">calcite-spark</a>)
-* Splunk adapter (<a href="/apidocs/org/apache/calcite/adapter/splunk/package-summary.html">calcite-splunk</a>)
+* JDBC adapter (part of <a href="{{ site.apiRoot }}/org/apache/calcite/adapter/jdbc/package-summary.html">calcite-core</a>)
+* MongoDB adapter (<a href="{{ site.apiRoot }}/org/apache/calcite/adapter/mongodb/package-summary.html">calcite-mongodb</a>)
+* Spark adapter (<a href="{{ site.apiRoot }}/org/apache/calcite/adapter/spark/package-summary.html">calcite-spark</a>)
+* Splunk adapter (<a href="{{ site.apiRoot }}/org/apache/calcite/adapter/splunk/package-summary.html">calcite-splunk</a>)
 * Eclipse Memory Analyzer (MAT) adapter (<a href="https://github.com/vlsi/mat-calcite-plugin">mat-calcite-plugin</a>)
 
 ## Drivers
 
-* <a href="/apidocs/org/apache/calcite/jdbc/package-summary.html">JDBC driver</a>
+* <a href="{{ site.apiRoot }}/org/apache/calcite/jdbc/package-summary.html">JDBC driver</a>
 

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/ad4bdca3/site/_docs/algebra.md
----------------------------------------------------------------------
diff --git a/site/_docs/algebra.md b/site/_docs/algebra.md
index ef93f97..c6a6b7e 100644
--- a/site/_docs/algebra.md
+++ b/site/_docs/algebra.md
@@ -22,9 +22,6 @@ limitations under the License.
 {% endcomment %}
 -->
 
-{% assign sourceRoot = "http://github.com/apache/incubator-calcite/blob/master" %}
-{% assign apiRoot = "http://calcite.hydromatic.net/apidocs" %}
-
 Relational algebra is at the heart of Calcite. Every query is
 represented as a tree of relational operators. You can translate from
 SQL to relational algebra, or you can build the tree directly.
@@ -45,7 +42,7 @@ operators, planner rules, cost model, and statistics.
 ## Algebra builder
 
 The simplest way to build a relational expression is to use the algebra builder,
-[RelBuilder]({{ apiRoot }}/org/apache/calcite/tools/RelBuilder.html).
+[RelBuilder]({{ site.apiRoot }}/org/apache/calcite/tools/RelBuilder.html).
 Here is an example:
 
 ### TableScan
@@ -60,7 +57,7 @@ System.out.println(RelOptUtil.toString(node));
 {% endhighlight %}
 
 (You can find the full code for this and other examples in
-[RelBuilderExample.java]({{ sourceRoot }}/core/src/test/java/org/apache/calcite/examples/RelBuilderExample.java).)
+[RelBuilderExample.java]({{ site.sourceRoot }}/core/src/test/java/org/apache/calcite/examples/RelBuilderExample.java).)
 
 The code prints
 
@@ -136,7 +133,7 @@ GROUP BY deptno
 HAVING count(*) > 10
 {% endhighlight %}
 
-and produces 
+and produces
 
 {% highlight text %}
 LogicalFilter(condition=[>($1, 10)])
@@ -161,7 +158,7 @@ building a bushy join:
 .
                join
              /      \
-        join          join 
+        join          join
       /      \      /      \
 CUSTOMERS ORDERS LINE_ITEMS PRODUCTS
 {% endhighlight %}
@@ -219,7 +216,7 @@ If you have a particular `RelNode` instance, you can rely on the field names not
 changing. In fact, the whole relational expression is immutable.
 
 But if a relational expression has passed through several rewrite rules (see
-([RelOptRule]({{ apiRoot }}/org/apache/calcite/plan/RelOptRule.html)), the field
+([RelOptRule]({{ site.apiRoot }}/org/apache/calcite/plan/RelOptRule.html)), the field
 names of the resulting expression might not look much like the originals.
 At that point it is better to reference fields by ordinal.
 
@@ -255,42 +252,42 @@ or `builder.field(2, 1, 1)`.
 #### Relational operators
 
 The following methods create a relational expression
-([RelNode]({{ apiRoot }}/org/apache/calcite/rel/RelNode.html)),
+([RelNode]({{ site.apiRoot }}/org/apache/calcite/rel/RelNode.html)),
 push it onto the stack, and
 return the `RelBuilder`.
 
 | Method              | Description
 |:------------------- |:-----------
-| `scan(tableName)` | Creates a [TableScan]({{ apiRoot }}/org/apache/calcite/rel/core/TableScan.html).
-| `values(fieldNames, value...)`<br/>`values(rowType, tupleList)` | Creates a [Values]({{ apiRoot }}/org/apache/calcite/rel/core/Values.html).
-| `filter(expr...)`<br/>`filter(exprList)` | Creates a [Filter]({{ apiRoot }}/org/apache/calcite/rel/core/Filter.html) over the AND of the given predicates.
-| `project(expr...)`<br/>`project(exprList)` | Creates a [Project]({{ apiRoot }}/org/apache/calcite/rel/core/Project.html). To override the default name, wrap expressions using `alias`.
-| `aggregate(groupKey, aggCall...)`<br/>`aggregate(groupKey, aggCallList)` | Creates an [Aggregate]({{ apiRoot }}/org/apache/calcite/rel/core/Aggregate.html).
-| `distinct()` | Creates an [Aggregate]({{ apiRoot }}/org/apache/calcite/rel/core/Aggregate.html) that eliminates duplicate records.
-| `sort(fieldOrdinal...)`<br/>`sort(expr...)`<br/>`sort(exprList)` | Creates a [Sort]({{ apiRoot }}/org/apache/calcite/rel/core/Sort.html).<br/><br/>In the first form, field ordinals are 0-based, and a negative ordinal indicates descending; for example, -2 means field 1 descending.<br/><br/>In the other forms, you can wrap expressions in `as`, `nullsFirst` or `nullsLast`.
-| `sortLimit(offset, fetch, expr...)`<br/>`sortLimit(offset, fetch, exprList)` | Creates a [Sort]({{ apiRoot }}/org/apache/calcite/rel/core/Sort.html) with offset and limit.
-| `limit(offset, fetch)` | Creates a [Sort]({{ apiRoot }}/org/apache/calcite/rel/core/Sort.html) that does not sort, only applies with offset and limit.
-| `join(joinType, expr)`<br/>`join(joinType, fieldName...)` | Creates a [Join]({{ apiRoot }}/org/apache/calcite/rel/core/Join.html) of the two most recent relational expressions.<br/><br/>The first form joins on an boolean expression.<br/><br/>The second form joins on named fields; each side must have a field of each name.
-| `union(all)` | Creates a [Union]({{ apiRoot }}/org/apache/calcite/rel/core/Union.html) of the two most recent relational expressions.
-| `intersect(all)` | Creates an [Intersect]({{ apiRoot }}/org/apache/calcite/rel/core/Intersect.html) of the two most recent relational expressions.
-| `minus(all)` | Creates a [Minus]({{ apiRoot }}/org/apache/calcite/rel/core/Minus.html) of the two most recent relational expressions.
+| `scan(tableName)` | Creates a [TableScan]({{ site.apiRoot }}/org/apache/calcite/rel/core/TableScan.html).
+| `values(fieldNames, value...)`<br/>`values(rowType, tupleList)` | Creates a [Values]({{ site.apiRoot }}/org/apache/calcite/rel/core/Values.html).
+| `filter(expr...)`<br/>`filter(exprList)` | Creates a [Filter]({{ site.apiRoot }}/org/apache/calcite/rel/core/Filter.html) over the AND of the given predicates.
+| `project(expr...)`<br/>`project(exprList)` | Creates a [Project]({{ site.apiRoot }}/org/apache/calcite/rel/core/Project.html). To override the default name, wrap expressions using `alias`.
+| `aggregate(groupKey, aggCall...)`<br/>`aggregate(groupKey, aggCallList)` | Creates an [Aggregate]({{ site.apiRoot }}/org/apache/calcite/rel/core/Aggregate.html).
+| `distinct()` | Creates an [Aggregate]({{ site.apiRoot }}/org/apache/calcite/rel/core/Aggregate.html) that eliminates duplicate records.
+| `sort(fieldOrdinal...)`<br/>`sort(expr...)`<br/>`sort(exprList)` | Creates a [Sort]({{ site.apiRoot }}/org/apache/calcite/rel/core/Sort.html).<br/><br/>In the first form, field ordinals are 0-based, and a negative ordinal indicates descending; for example, -2 means field 1 descending.<br/><br/>In the other forms, you can wrap expressions in `as`, `nullsFirst` or `nullsLast`.
+| `sortLimit(offset, fetch, expr...)`<br/>`sortLimit(offset, fetch, exprList)` | Creates a [Sort]({{ site.apiRoot }}/org/apache/calcite/rel/core/Sort.html) with offset and limit.
+| `limit(offset, fetch)` | Creates a [Sort]({{ site.apiRoot }}/org/apache/calcite/rel/core/Sort.html) that does not sort, only applies with offset and limit.
+| `join(joinType, expr)`<br/>`join(joinType, fieldName...)` | Creates a [Join]({{ site.apiRoot }}/org/apache/calcite/rel/core/Join.html) of the two most recent relational expressions.<br/><br/>The first form joins on an boolean expression.<br/><br/>The second form joins on named fields; each side must have a field of each name.
+| `union(all)` | Creates a [Union]({{ site.apiRoot }}/org/apache/calcite/rel/core/Union.html) of the two most recent relational expressions.
+| `intersect(all)` | Creates an [Intersect]({{ site.apiRoot }}/org/apache/calcite/rel/core/Intersect.html) of the two most recent relational expressions.
+| `minus(all)` | Creates a [Minus]({{ site.apiRoot }}/org/apache/calcite/rel/core/Minus.html) of the two most recent relational expressions.
 
 Argument types:
 
-* `expr`  [RexNode]({{ apiRoot }}/org/apache/calcite/rex/RexNode.html)
-* `expr...` Array of [RexNode]({{ apiRoot }}/org/apache/calcite/rex/RexNode.html)
-* `exprList` Iterable of [RexNode]({{ apiRoot }}/org/apache/calcite/rex/RexNode.html)
+* `expr`  [RexNode]({{ site.apiRoot }}/org/apache/calcite/rex/RexNode.html)
+* `expr...` Array of [RexNode]({{ site.apiRoot }}/org/apache/calcite/rex/RexNode.html)
+* `exprList` Iterable of [RexNode]({{ site.apiRoot }}/org/apache/calcite/rex/RexNode.html)
 * `fieldOrdinal` Ordinal of a field within its row (starting from 0)
 * `fieldName` Name of a field, unique within its row
 * `fieldName...` Array of String
 * `fieldNames` Iterable of String
-* `rowType` [RelDataType]({{ apiRoot }}/org/apache/calcite/rel/type/RelDataType.html)
-* `groupKey` [RelBuilder.GroupKey]({{ apiRoot }}/org/apache/calcite/tools/RelBuilder/GroupKey.html)
-* `aggCall...` Array of [RelBuilder.AggCall]({{ apiRoot }}/org/apache/calcite/tools/RelBuilder/AggCall.html)
-* `aggCallList` Iterable of [RelBuilder.AggCall]({{ apiRoot }}/org/apache/calcite/tools/RelBuilder/AggCall.html)
+* `rowType` [RelDataType]({{ site.apiRoot }}/org/apache/calcite/rel/type/RelDataType.html)
+* `groupKey` [RelBuilder.GroupKey]({{ site.apiRoot }}/org/apache/calcite/tools/RelBuilder/GroupKey.html)
+* `aggCall...` Array of [RelBuilder.AggCall]({{ site.apiRoot }}/org/apache/calcite/tools/RelBuilder/AggCall.html)
+* `aggCallList` Iterable of [RelBuilder.AggCall]({{ site.apiRoot }}/org/apache/calcite/tools/RelBuilder/AggCall.html)
 * `value...` Array of Object
 * `value` Object
-* `tupleList` Iterable of List of [RexLiteral]({{ apiRoot }}/org/apache/calcite/rex/RexLiteral.html)
+* `tupleList` Iterable of List of [RexLiteral]({{ site.apiRoot }}/org/apache/calcite/rex/RexLiteral.html)
 * `all` boolean
 * `distinct` boolean
 * `alias` String
@@ -307,7 +304,7 @@ Argument types:
 #### Scalar expression methods
 
 The following methods return a scalar expression
-([RexNode]({{ apiRoot }}/org/apache/calcite/rex/RexNode.html)).
+([RexNode]({{ site.apiRoot }}/org/apache/calcite/rex/RexNode.html)).
 
 Many of them use the contents of the stack. For example, `field("DEPTNO")`
 returns a reference to the "DEPTNO" field of the relational expression just
@@ -321,7 +318,7 @@ added to the stack.
 | `field(inputCount, inputOrdinal, fieldName)` | Reference, by name, to a field of the (`inputCount` - `inputOrdinal`)th relational expression
 | `field(inputCount, inputOrdinal, fieldOrdinal)` | Reference, by ordinal, to a field of the (`inputCount` - `inputOrdinal`)th relational expression
 | `call(op, expr...)`<br/>`call(op, exprList)` | Call to a function or operator
-| `and(expr...)`<br/>`and(exprList)` | Logical AND. Flattens nested ANDs, and optimizes cases involving TRUE and FALSE. 
+| `and(expr...)`<br/>`and(exprList)` | Logical AND. Flattens nested ANDs, and optimizes cases involving TRUE and FALSE.
 | `or(expr...)`<br/>`or(exprList)` | Logical OR. Flattens nested ORs, and optimizes cases involving TRUE and FALSE.
 | `not(expr)` | Logical NOT
 | `equals(expr, expr)` | Equals
@@ -336,7 +333,7 @@ added to the stack.
 ### Group key methods
 
 The following methods return a
-[RelBuilder.GroupKey]({{ apiRoot }}/org/apache/calcite/tools/RelBuilder/GroupKey.html).
+[RelBuilder.GroupKey]({{ site.apiRoot }}/org/apache/calcite/tools/RelBuilder/GroupKey.html).
 
 | Method              | Description
 |:------------------- |:-----------
@@ -345,7 +342,7 @@ The following methods return a
 ### Aggregate call methods
 
 The following methods return an
-[RelBuilder.AggCall]({{ apiRoot }}/org/apache/calcite/tools/RelBuilder/AggCall.html).
+[RelBuilder.AggCall]({{ site.apiRoot }}/org/apache/calcite/tools/RelBuilder/AggCall.html).
 
 | Method              | Description
 |:------------------- |:-----------

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/ad4bdca3/site/_docs/api.md
----------------------------------------------------------------------
diff --git a/site/_docs/api.md b/site/_docs/api.md
index db961ea..ba4704f 100644
--- a/site/_docs/api.md
+++ b/site/_docs/api.md
@@ -1,8 +1,12 @@
 ---
 title: API
 layout: external
-external_url: /apidocs
+external_url: http://calcite.incubator.apache.org/apidocs
 ---
+{% comment %}
+Ideally, we want to use {{ site.apiRoot }} instead of hardcoding
+the above external_url value, but I don't believe there's a way to do that
+{% endcomment %}
 
 <!--
 {% comment %}

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/ad4bdca3/site/_docs/avatica.md
----------------------------------------------------------------------
diff --git a/site/_docs/avatica.md b/site/_docs/avatica.md
index 2382a86..835f115 100644
--- a/site/_docs/avatica.md
+++ b/site/_docs/avatica.md
@@ -73,10 +73,10 @@ At some point Avatica could become a separate project.
 
 Packages:
 
-* [org.apache.calcite.avatica](/apidocs/org/apache/calcite/avatica/package-summary.html) Core framework
-* [org.apache.calcite.avatica.remote](/apidocs/org/apache/calcite/avatica/remote/package-summary.html) JDBC driver that uses remote procedure calls
-* [org.apache.calcite.avatica.server](/apidocs/org/apache/calcite/avatica/server/package-summary.html) HTTP server
-* [org.apache.calcite.avatica.util](/apidocs/org/apache/calcite/avatica/util/package-summary.html) Utilities
+* [org.apache.calcite.avatica]({{ site.apiRoot }}/org/apache/calcite/avatica/package-summary.html) Core framework
+* [org.apache.calcite.avatica.remote]({{ site.apiRoot }}/org/apache/calcite/avatica/remote/package-summary.html) JDBC driver that uses remote procedure calls
+* [org.apache.calcite.avatica.server]({{ site.apiRoot }}/org/apache/calcite/avatica/server/package-summary.html) HTTP server
+* [org.apache.calcite.avatica.util]({{ site.apiRoot }}/org/apache/calcite/avatica/util/package-summary.html) Utilities
 
 ## Status
 

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/ad4bdca3/site/_docs/howto.md
----------------------------------------------------------------------
diff --git a/site/_docs/howto.md b/site/_docs/howto.md
index e061e12..cf03947 100644
--- a/site/_docs/howto.md
+++ b/site/_docs/howto.md
@@ -22,7 +22,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 {% endcomment %}
 -->
-{% assign sourceRoot = "http://github.com/apache/incubator-calcite/blob/master" %}
 
 Here's some miscellaneous documentation about using Calcite and its various
 adapters.
@@ -70,7 +69,7 @@ The test suite will run by default when you build, unless you specify
 
 {% highlight bash %}
 # Note: "mvn clean install" does not work; use "mvn clean" then "mvn install"
-$ mvn clean 
+$ mvn clean
 $ mvn -DskipTests install
 {% endhighlight %}
 
@@ -269,7 +268,7 @@ bye
 {% endhighlight %}
 
 Connect using the
-[mongo-zips-model.json]({{ sourceRoot }}/mongodb/src/test/resources/mongo-zips-model.json)
+[mongo-zips-model.json]({{ site.sourceRoot }}/mongodb/src/test/resources/mongo-zips-model.json)
 Calcite model:
 
 {% highlight bash %}
@@ -803,7 +802,7 @@ The old releases will remain available in the
 [release archive](http://archive.apache.org/dist/incubator/calcite/).
 
 Add a release note by copying
-[site/_posts/2015-03-13-release-1.1.0-incubating.md]({{ sourceRoot }}/site/_posts/2015-03-13-release-1.1.0-incubating.md),
+[site/_posts/2015-03-13-release-1.1.0-incubating.md]({{ site.sourceRoot }}/site/_posts/2015-03-13-release-1.1.0-incubating.md),
 [publish the site](#publish-the-web-site),
 and check that it appears in the contents in [news](http://localhost:4000/news/).
 
@@ -811,4 +810,4 @@ and check that it appears in the contents in [news](http://localhost:4000/news/)
 {: #publish-the-web-site}
 
 See instructions in
-[site/README.md]({{ sourceRoot }}/site/README.md).
+[site/README.md]({{ site.sourceRoot }}/site/README.md).

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/ad4bdca3/site/_docs/index.md
----------------------------------------------------------------------
diff --git a/site/_docs/index.md b/site/_docs/index.md
index 2edddb6..761630c 100644
--- a/site/_docs/index.md
+++ b/site/_docs/index.md
@@ -116,7 +116,7 @@ The subproject under example/csv provides a CSV adapter, which is
 fully functional for use in applications but is also simple enough to
 serve as a good template if you are writing your own adapter.
 
-See the <a href="tutorial.html">tutorial</a> for information on using
+See the <a href="{{ site.baseurl }}/tutorial.html">tutorial</a> for information on using
 the CSV adapter and writing other adapters.
 
 See the <a href="howto.html">HOWTO</a> for more information about

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/ad4bdca3/site/_docs/lattice.md
----------------------------------------------------------------------
diff --git a/site/_docs/lattice.md b/site/_docs/lattice.md
index 8bd51ff..aef5201 100644
--- a/site/_docs/lattice.md
+++ b/site/_docs/lattice.md
@@ -116,7 +116,7 @@ Examples:
 
 A "tile" is a materialized table in a lattice, with a particular
 dimensionality. (What Kylin calls a "cuboid".) The "tiles" attribute
-of the <a href="model.html#lattice">lattice JSON element</a>
+of the <a href="{{ site.baseurl }}/model.html#lattice">lattice JSON element</a>
 defines an initial set of tiles to materialize.
 
 If you run the algorithm, you can omit the tiles attribute. Calcite

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/ad4bdca3/site/_docs/model.md
----------------------------------------------------------------------
diff --git a/site/_docs/model.md b/site/_docs/model.md
index cb8cc9c..4017a92 100644
--- a/site/_docs/model.md
+++ b/site/_docs/model.md
@@ -21,7 +21,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 {% endcomment %}
 -->
-{% assign apiRoot = "/apidocs" %}
 
 Calcite models can be represented as JSON files.
 This page describes the structure of those files.
@@ -150,7 +149,7 @@ Like base class <a href="#schema">Schema</a>, occurs within `root.schemas`.
 
 `factory` (required string) is the name of the factory class for this
 schema. Must implement interface
-[org.apache.calcite.schema.SchemaFactory]({{ apiRoot }}/org/apache/calcite/schema/SchemaFactory.html)
+[org.apache.calcite.schema.SchemaFactory]({{ site.apiRoot }}/org/apache/calcite/schema/SchemaFactory.html)
 and have a public default constructor.
 
 `operand` (optional map) contains attributes to be passed to the
@@ -300,7 +299,7 @@ Like base class <a href="#table">Table</a>, occurs within `root.schemas.tables`.
 
 `factory` (required string) is the name of the factory class for this
 table. Must implement interface
-[org.apache.calcite.schema.TableFactory]({{ apiRoot }}/org/apache/calcite/schema/TableFactory.html)
+[org.apache.calcite.schema.TableFactory]({{ site.apiRoot }}/org/apache/calcite/schema/TableFactory.html)
 and have a public default constructor.
 
 `operand` (optional map) contains attributes to be passed to the
@@ -438,8 +437,8 @@ just 'count(*)':
 [ { name: 'count' } ]
 {% endhighlight %}
 
-`statisticProvider` (optional name of a class that implements 
-[org.apache.calcite.materialize.LatticeStatisticProvider]({{ apiRoot }}/org/apache/calcite/materialize/LatticeStatisticProvider.html))
+`statisticProvider` (optional name of a class that implements
+[org.apache.calcite.materialize.LatticeStatisticProvider]({{ site.apiRoot }}/org/apache/calcite/materialize/LatticeStatisticProvider.html))
 is provides estimates of the number of distinct values * in each column.
 
 You can use a class name, or a class plus a static field, for example
@@ -448,7 +447,7 @@ You can use a class name, or a class plus a static field, for example
 If not set, Calcite will generate and execute a SQL query to find the real
 value, and cache the results.
 
-See also: <a href="lattice.md">Lattices</a>.
+See also: <a href="{{ site.baseurl }}/lattice.md">Lattices</a>.
 
 ### Tile
 

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/ad4bdca3/site/_docs/tutorial.md
----------------------------------------------------------------------
diff --git a/site/_docs/tutorial.md b/site/_docs/tutorial.md
index 3440b3d..0e6f581 100644
--- a/site/_docs/tutorial.md
+++ b/site/_docs/tutorial.md
@@ -22,8 +22,6 @@ limitations under the License.
 {% endcomment %}
 -->
 
-{% assign sourceRoot = "http://github.com/apache/incubator-calcite/blob/master" %}
-
 This is a step-by-step tutorial that shows how to build and connect to
 Calcite. It uses a simple adapter that makes a directory of CSV files
 appear to be a schema containing tables. Calcite does the rest, and
@@ -190,10 +188,10 @@ format. Here is the model:
 
 The model defines a single schema called 'SALES'. The schema is
 powered by a plugin class,
-<a href="{{ sourceRoot }}/example/csv/src/main/java/org/apache/calcite/adapter/csv/CsvSchemaFactory.java">org.apache.calcite.adapter.csv.CsvSchemaFactory</a>,
+<a href="{{ site.sourceRoot }}/example/csv/src/main/java/org/apache/calcite/adapter/csv/CsvSchemaFactory.java">org.apache.calcite.adapter.csv.CsvSchemaFactory</a>,
 which is part of the
 calcite-example-csv project and implements the Calcite interface
-<a href="/apidocs/org/apache/calcite/schema/SchemaFactory.html">SchemaFactory</a>.
+<a href="{{ site.apiRoot }}/org/apache/calcite/schema/SchemaFactory.html">SchemaFactory</a>.
 Its <code>create</code> method instantiates a
 schema, passing in the <code>directory</code> argument from the model file:
 
@@ -216,20 +214,20 @@ public Schema create(SchemaPlus parentSchema, String name,
 
 Driven by the model, the schema factory instantiates a single schema
 called 'SALES'.  The schema is an instance of
-<a href="{{ sourceRoot }}/example/csv/src/main/java/org/apache/calcite/adapter/csv/CsvSchema.java">org.apache.calcite.adapter.csv.CsvSchema</a>
+<a href="{{ site.sourceRoot }}/example/csv/src/main/java/org/apache/calcite/adapter/csv/CsvSchema.java">org.apache.calcite.adapter.csv.CsvSchema</a>
 and implements the Calcite interface
-<a href="/calcite/apidocs/org/apache/calcite/schema/Schema.html">Schema</a>.
+<a href="{{ site.apiRoot }}/org/apache/calcite/schema/Schema.html">Schema</a>.
 
 A schema's job is to produce a list of tables. (It can also list sub-schemas and
 table-functions, but these are advanced features and calcite-example-csv does
 not support them.) The tables implement Calcite's
-<a href="/apidocs/org/apache/calcite/schema/Table.html">Table</a>
+<a href="{{ site.apiRoot }}/org/apache/calcite/schema/Table.html">Table</a>
 interface. <code>CsvSchema</code> produces tables that are instances of
-<a href="{{ sourceRoot }}/example/csv/src/main/java/org/apache/calcite/adapter/csv/CsvTable.java">CsvTable</a>
+<a href="{{ site.sourceRoot }}/example/csv/src/main/java/org/apache/calcite/adapter/csv/CsvTable.java">CsvTable</a>
 and its sub-classes.
 
 Here is the relevant code from <code>CsvSchema</code>, overriding the
-<code><a href="/apidocs/org/apache/calcite/schema/impl/AbstractSchema.html#getTableMap()">getTableMap()</a></code>
+<code><a href="{{ site.apiRoot }}/org/apache/calcite/schema/impl/AbstractSchema.html#getTableMap()">getTableMap()</a></code>
 method in the <code>AbstractSchema</code> base class.
 
 {% highlight java %}
@@ -408,9 +406,9 @@ sqlline> SELECT empno, name FROM custom_table.emps;
 {% endhighlight %}
 
 The schema is a regular one, and contains a custom table powered by
-<a href="{{ sourceRoot }}/example/csv/src/main/java/org/apache/calcite/adapter/csv/CsvTableFactory.java">org.apache.calcite.adapter.csv.CsvTableFactory</a>,
+<a href="{{ site.sourceRoot }}/example/csv/src/main/java/org/apache/calcite/adapter/csv/CsvTableFactory.java">org.apache.calcite.adapter.csv.CsvTableFactory</a>,
 which implements the Calcite interface
-<a href="/apidocs/org/apache/calcite/schema/TableFactory.html">TableFactory</a>.
+<a href="{{ site.apiRoot }}/org/apache/calcite/schema/TableFactory.html">TableFactory</a>.
 Its <code>create</code> method instantiates a <code>CsvScannableTable</code>,
 passing in the <code>file</code> argument from the model file:
 
@@ -505,16 +503,16 @@ flavor: "translatable"
 This causes a <code>CsvSchema</code> to be created with
 <code>flavor = TRANSLATABLE</code>,
 and its <code>createTable</code> method creates instances of
-<a href="{{ sourceRoot }}/example/csv/src/main/java/org/apache/calcite/adapter/csv/CsvTranslatableTable.java">CsvTranslatableTable</a>
+<a href="{{ site.sourceRoot }}/example/csv/src/main/java/org/apache/calcite/adapter/csv/CsvTranslatableTable.java">CsvTranslatableTable</a>
 rather than a <code>CsvScannableTable</code>.
 
 <code>CsvTranslatableTable</code> implements the
-<code><a href="/apidocs/org/apache/calcite/schema/TranslatableTable.html#toRel()">TranslatableTable.toRel()</a></code>
+<code><a href="{{ site.apiRoot }}/org/apache/calcite/schema/TranslatableTable.html#toRel()">TranslatableTable.toRel()</a></code>
 method to create
-<a href="{{ sourceRoot }}/example/csv/src/main/java/org/apache/calcite/adapter/csv/CsvTableScan.java">CsvTableScan</a>.
+<a href="{{ site.sourceRoot }}/example/csv/src/main/java/org/apache/calcite/adapter/csv/CsvTableScan.java">CsvTableScan</a>.
 Table scans are the leaves of a query operator tree.
 The usual implementation is
-<code><a href="/apidocs/org/apache/calcite/adapter/enumerable/EnumerableTableScan.html">EnumerableTableScan</a></code>,
+<code><a href="{{ site.apiRoot }}/org/apache/calcite/adapter/enumerable/EnumerableTableScan.html">EnumerableTableScan</a></code>,
 but we have created a distinctive sub-type that will cause rules to fire.
 
 Here is the rule in its entirety:
@@ -567,7 +565,7 @@ The constructor declares the pattern of relational expressions that will cause
 the rule to fire.
 
 The <code>onMatch</code> method generates a new relational expression and calls
-<code><a href="/apidocs/org/apache/calcite/plan/RelOptRuleCall.html#transformTo(org.apache.calcite.rel.RelNode)">RelOptRuleCall.transformTo()</a></code>
+<code><a href="{{ site.apiRoot }}/org/apache/calcite/plan/RelOptRuleCall.html#transformTo(org.apache.calcite.rel.RelNode)">RelOptRuleCall.transformTo()</a></code>
 to indicate that the rule has fired successfully.
 
 ## The query optimization process

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/ad4bdca3/site/_includes/docs_option.html
----------------------------------------------------------------------
diff --git a/site/_includes/docs_option.html b/site/_includes/docs_option.html
index 0913a59..8c61578 100644
--- a/site/_includes/docs_option.html
+++ b/site/_includes/docs_option.html
@@ -1,7 +1,7 @@
 {% assign items = include.items %}
 
 {% for item in items %}
-  {% assign item_url = item | prepend:"/docs/" | append:".html" %}
+  {% assign item_url = item | prepend:"{{ site.baseurl }}/docs/" | append:".html" %}
 
   {% for p in site.docs %}
     {% if p.url == item_url %}

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/ad4bdca3/site/_includes/docs_ul.html
----------------------------------------------------------------------
diff --git a/site/_includes/docs_ul.html b/site/_includes/docs_ul.html
index fa585e6..557ef07 100644
--- a/site/_includes/docs_ul.html
+++ b/site/_includes/docs_ul.html
@@ -2,17 +2,20 @@
 
 <ul>
 {% for item in items %}
-  {% assign item_url = item | prepend:"/docs/" | append:".html" %}
+  {% comment %} Account for the baseurl to make sure we compare the full URI. {% endcomment %}
+  {% capture item_url %}{{site.baseurl}}{{ item | prepend:"/docs/" | append:".html" }}{% endcapture %}
+  {% capture current_url %}{{ site.baseurl }}{{ page.url }}{% endcapture %}
 
-  {% if item_url == page.url %}
+  {% if item_url == current_url %}
     {% assign c = "current" %}
   {% else %}
     {% assign c = "" %}
   {% endif %}
 
   {% for p in site.docs %}
-    {% if p.url == item_url %}
-      <li class="{{ c }}"><a href="{{ site.url }}{{ p.url }}">{{ p.title }}</a></li>
+    {% capture p_url %}{{site.baseurl}}{{p.url}}{% endcapture %}
+    {% if p_url == item_url %}
+      <li class="{{ c }}"><a href="{{ p_url }}">{{ p.title }}</a></li>
       {% break %}
     {% endif %}
   {% endfor %}

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/ad4bdca3/site/_includes/header.html
----------------------------------------------------------------------
diff --git a/site/_includes/header.html b/site/_includes/header.html
index 54f7748..7d42786 100644
--- a/site/_includes/header.html
+++ b/site/_includes/header.html
@@ -5,9 +5,9 @@
   <div class="grid">
     <div class="unit one-third center-on-mobiles">
       <h1>
-        <a href="/">
+        <a href="{{ site.baseurl }}/">
           <span class="sr-only">Apache Calcite</span>
-          <img src="/img/logo.png" width="226" height="140" alt="Calcite Logo">
+          <img src="{{ site.baseurl }}/img/logo.png" width="226" height="140" alt="Calcite Logo">
         </a>
       </h1>
     </div>

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/ad4bdca3/site/_includes/news_contents.html
----------------------------------------------------------------------
diff --git a/site/_includes/news_contents.html b/site/_includes/news_contents.html
index 86a2431..d1481e7 100644
--- a/site/_includes/news_contents.html
+++ b/site/_includes/news_contents.html
@@ -2,17 +2,17 @@
   <aside>
     <ul>
       <li class="{% if page.title == 'News' %}current{% endif %}">
-        <a href="/news/">All News</a>
+        <a href="{{ site.baseurl }}/news/">All News</a>
       </li>
       <li class="{% if page.title == 'Releases' %}current{% endif %}">
-        <a href="/news/releases/">Calcite Releases</a>
+        <a href="{{ site.baseurl }}/news/releases/">Calcite Releases</a>
       </li>
     </ul>
     <h4>Recent Releases</h4>
     <ul>
       {% for post in site.categories.release limit:5 %}
       <li class="{% if page.title == post.title %}current{% endif %}">
-        <a href="{{ post.url }}">{{ post.version }}</a>
+        <a href="{{ site.baseurl }}{{ post.url }}">{{ post.version }}</a>
       </li>
       {% endfor %}
     </ul>
@@ -21,7 +21,7 @@
         {% for post in site.posts %}
         {% unless post.categories contains 'release' %}
         <li class="{% if page.title == post.title %}current{% endif %}">
-          <a href="{{ post.url }}">{{ post.title }}</a>
+          <a href="{{ site.baseurl }}{{ post.url }}">{{ post.title }}</a>
         </li>
         {% endunless %}
         {% endfor %}

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/ad4bdca3/site/_includes/news_contents_mobile.html
----------------------------------------------------------------------
diff --git a/site/_includes/news_contents_mobile.html b/site/_includes/news_contents_mobile.html
index e8fb55e..094da46 100644
--- a/site/_includes/news_contents_mobile.html
+++ b/site/_includes/news_contents_mobile.html
@@ -1,7 +1,7 @@
 <div class="docs-nav-mobile unit whole show-on-mobiles">
   <select onchange="if (this.value) window.location.href=this.value">
     <option value="">Navigate the blog…</option>
-    <option value="/news/">Home</option>
+    <option value="{{ site.baseurl }}/news/">Home</option>
     <optgroup label="v1.x">
       {% for post in site.posts %}
       <option value="{{ post.url }}">{{ post.title }}</option>

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/ad4bdca3/site/_includes/news_item.html
----------------------------------------------------------------------
diff --git a/site/_includes/news_item.html b/site/_includes/news_item.html
index a057f83..877191a 100644
--- a/site/_includes/news_item.html
+++ b/site/_includes/news_item.html
@@ -16,7 +16,7 @@ limitations under the License.
 {% endcomment %}
 <article>
   <h2>
-    <a href="{{ post.url }}">
+    <a href="{{ site.baseurl }}{{ post.url }}">
       {{ post.title }}
     </a>
   </h2>
@@ -55,7 +55,7 @@ limitations under the License.
   <div class="post-content">
     {{ post.content }}
     {% if post.categories contains 'release' %}
-    <p>See the <a href="/docs/history.html#{{ post.tag }}">release notes</a>.</p>
+    <p>See the <a href="{{ site.baseurl }}/docs/history.html#{{ post.tag }}">release notes</a>.</p>
     {% endif %}
   </div>
 </article>

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/ad4bdca3/site/_includes/primary-nav-items.html
----------------------------------------------------------------------
diff --git a/site/_includes/primary-nav-items.html b/site/_includes/primary-nav-items.html
index 297ce65..c2b24a1 100644
--- a/site/_includes/primary-nav-items.html
+++ b/site/_includes/primary-nav-items.html
@@ -1,20 +1,20 @@
 <ul>
   <li class="{% if page.overview %}current{% endif %}">
-    <a href="/">Home</a>
+    <a href="{{ site.baseurl }}/">Home</a>
   </li>
   <li class="{% if page.url contains '/docs/' %}current{% endif %}">
-    <a href="/docs/">Documentation</a>
+    <a href="{{ site.baseurl }}/docs/">Documentation</a>
   </li>
   <li class="{% if page.url contains '/talks/' %}current{% endif %}">
-    <a href="/talks/">Talks</a>
+    <a href="{{ site.baseurl }}/talks/">Talks</a>
   </li>
   <li class="{% if page.url contains '/news/' %}current{% endif %}">
-    <a href="/news/">News</a>
+    <a href="{{ site.baseurl }}/news/">News</a>
   </li>
   <li class="{% if page.url contains '/help/' %}current{% endif %}">
-    <a href="/help/">Help</a>
+    <a href="{{ site.baseurl }}/help/">Help</a>
   </li>
   <li class="{% if page.url contains '/develop/' %}current{% endif %}">
-    <a href="/develop/">Develop</a>
+    <a href="{{ site.baseurl }}/develop/">Develop</a>
   </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/ad4bdca3/site/_includes/section_nav.html
----------------------------------------------------------------------
diff --git a/site/_includes/section_nav.html b/site/_includes/section_nav.html
index 1b3bca1..b025a70 100644
--- a/site/_includes/section_nav.html
+++ b/site/_includes/section_nav.html
@@ -19,7 +19,7 @@ next, lets build a link to it.
             <span class="prev disabled">Previous</span>
           {% else %}
             {% assign previous = forloop.index0 | minus: 1 %}
-            {% assign previous_page = docs[previous] | prepend:"/docs/" | append:".html" %}
+            {% capture previous_page %}{{ site.baseurl }}{{docs[previous] | prepend:"/docs/" | append:".html" }}{% endcapture %}
             <a href="{{ previous_page }}" class="prev">Previous</a>
           {% endif %}
       </div>
@@ -28,7 +28,7 @@ next, lets build a link to it.
             <span class="next disabled">Next</span>
           {% else %}
             {% assign next = forloop.index0 | plus: 1 %}
-            {% assign next_page = docs[next] | prepend:"/docs/" | append:".html" %}
+            {% capture next_page %}{{ site.baseurl }}{{ docs[next] | prepend:"/docs/" | append:".html" }}{% endcapture %}
             <a href="{{ next_page }}" class="next">Next</a>
           {% endif %}
       </div>

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/ad4bdca3/site/_includes/top.html
----------------------------------------------------------------------
diff --git a/site/_includes/top.html b/site/_includes/top.html
index a4c04e7..6eab814 100644
--- a/site/_includes/top.html
+++ b/site/_includes/top.html
@@ -6,8 +6,8 @@
   <meta name="viewport" content="width=device-width,initial-scale=1">
   <meta name="generator" content="Jekyll v{{ jekyll.version }}">
   <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
-  <link rel="stylesheet" href="/css/screen.css">
-  <link rel="icon" type="image/x-icon" href="/favicon.ico">
+  <link rel="stylesheet" href="{{ site.baseurl }}/css/screen.css">
+  <link rel="icon" type="image/x-icon" href="{{ site.baseurl }}/favicon.ico">
   <!--[if lt IE 9]>
   <script src="/js/html5shiv.min.js"></script>
   <script src="/js/respond.min.js"></script>

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/ad4bdca3/site/_layouts/news_item.html
----------------------------------------------------------------------
diff --git a/site/_layouts/news_item.html b/site/_layouts/news_item.html
index 7981dc1..13b3eaa 100644
--- a/site/_layouts/news_item.html
+++ b/site/_layouts/news_item.html
@@ -42,7 +42,7 @@ layout: news
   <div class="post-content">
     {{ content }}
     {% if page.categories contains 'release' %}
-    <p>See the <a href="/docs/history.html#{{ page.tag }}">release notes</a>.</p>
+    <p>See the <a href="{{ site.baseurl }}/docs/history.html#{{ page.tag }}">release notes</a>.</p>
     {% endif %}
   </div>
 </article>

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/ad4bdca3/site/_posts/2015-06-05-algebra-builder.md
----------------------------------------------------------------------
diff --git a/site/_posts/2015-06-05-algebra-builder.md b/site/_posts/2015-06-05-algebra-builder.md
index fb25ce1..ddf3377 100644
--- a/site/_posts/2015-06-05-algebra-builder.md
+++ b/site/_posts/2015-06-05-algebra-builder.md
@@ -24,14 +24,12 @@ limitations under the License.
 {% endcomment %}
 -->
 
-{% assign apiRoot = "http://calcite.hydromatic.net/apidocs" %}
-
 Calcite's foundation is a comprehensive implementation of relational
 algebra (together with transformation rules, cost model, and metadata)
 but to create algebra expressions you had to master a complex API.
 
 We're solving this problem by introducing an
-[algebra builder]({{ apiRoot }}/org/apache/calcite/tools/RelBuilder.html),
+[algebra builder]({{ site.apiRoot }}/org/apache/calcite/tools/RelBuilder.html),
 a single class with all the methods you need to build any relational
 expression.
 
@@ -70,7 +68,7 @@ GROUP BY deptno
 HAVING count(*) > 10
 {% endhighlight %}
 
-The [algebra builder documentation](/docs/algebra.html) describes the
+The [algebra builder documentation]({{ site.baseurl }}/docs/algebra.html) describes the
 full API and has lots of examples.
 
 We're still working on the algebra builder, but plan to release it
@@ -86,4 +84,4 @@ Hive-on-Tez, Drill, MongoDB, Splunk, Spark, JDBC data sources) and
 extensive set of query-optimization rules.
 
 If you have questions or comments, please post to the
-[mailing list](/develop).
\ No newline at end of file
+[mailing list]({{ site.baseurl }}/develop).

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/ad4bdca3/site/_posts/2015-09-02-release-1.4.0-incubating.md
----------------------------------------------------------------------
diff --git a/site/_posts/2015-09-02-release-1.4.0-incubating.md b/site/_posts/2015-09-02-release-1.4.0-incubating.md
index b44b62b..6a2bde4 100644
--- a/site/_posts/2015-09-02-release-1.4.0-incubating.md
+++ b/site/_posts/2015-09-02-release-1.4.0-incubating.md
@@ -34,6 +34,6 @@ and adds a
 <a href="https://issues.apache.org/jira/browse/CALCITE-748">builder API</a>
 so that you can easily create relational algebra expressions.
 
-Read more about the [builder](/news/2015/06/05/algebra-builder/),
-[relational algebra](/docs/algebra.html), and
-[lattices](/docs/lattice.html).
+Read more about the [builder]({{ site.baseurl }}/news/2015/06/05/algebra-builder/),
+[relational algebra]({{ site.baseurl }}/docs/algebra.html), and
+[lattices]({{ site.baseurl }}/docs/lattice.html).

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/ad4bdca3/site/_sass/_gridism.scss
----------------------------------------------------------------------
diff --git a/site/_sass/_gridism.scss b/site/_sass/_gridism.scss
index 61698ef..40d2163 100644
--- a/site/_sass/_gridism.scss
+++ b/site/_sass/_gridism.scss
@@ -93,7 +93,7 @@
 
 /* Responsive Stuff */
 @media screen and (max-width: 568px) {
-  /* Stack anything that isn’t full-width on smaller screens 
+  /* Stack anything that isn’t full-width on smaller screens
      and doesn't provide the no-stacking-on-mobiles class */
   .grid:not(.no-stacking-on-mobiles) > .unit {
     width: 100% !important;

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/ad4bdca3/site/develop/index.md
----------------------------------------------------------------------
diff --git a/site/develop/index.md b/site/develop/index.md
index 84af4a8..9ffc729 100644
--- a/site/develop/index.md
+++ b/site/develop/index.md
@@ -67,5 +67,5 @@ $ cd incubator-calcite
 $ mvn install
 {% endhighlight %}
 
-Please check our [contributing guidelines](/docs/howto.html#contributing).
+Please check our [contributing guidelines]({{ site.baseurl }}/docs/howto.html#contributing).
 

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/ad4bdca3/site/doap_calcite.rdf
----------------------------------------------------------------------
diff --git a/site/doap_calcite.rdf b/site/doap_calcite.rdf
index cb9f469..5a59ca7 100644
--- a/site/doap_calcite.rdf
+++ b/site/doap_calcite.rdf
@@ -1,8 +1,8 @@
 <?xml version="1.0"?>
 <?xml-stylesheet type="text/xsl"?>
 <rdf:RDF xml:lang="en"
-         xmlns="http://usefulinc.com/ns/doap#" 
-         xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
+         xmlns="http://usefulinc.com/ns/doap#"
+         xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
          xmlns:asfext="http://projects.apache.org/ns/asfext#"
          xmlns:foaf="http://xmlns.com/foaf/0.1/">
 <!--

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/ad4bdca3/site/fonts/fontawesome-webfont.svg
----------------------------------------------------------------------
diff --git a/site/fonts/fontawesome-webfont.svg b/site/fonts/fontawesome-webfont.svg
index d907b25..b612969 100755
--- a/site/fonts/fontawesome-webfont.svg
+++ b/site/fonts/fontawesome-webfont.svg
@@ -517,4 +517,4 @@
 <glyph unicode="&#xf20e;" horiz-adv-x="1792" />
 <glyph unicode="&#xf500;" horiz-adv-x="1792" />
 </font>
-</defs></svg> 
\ No newline at end of file
+</defs></svg>

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/ad4bdca3/site/index.html
----------------------------------------------------------------------
diff --git a/site/index.html b/site/index.html
index 0e27346..55f61f1 100644
--- a/site/index.html
+++ b/site/index.html
@@ -32,18 +32,18 @@ limitations under the License.
     <div class="unit one-third">
       <h2>Standard SQL</h2>
       <p>Industry-standard SQL parser, validator and JDBC driver.</p>
-      <a href="/docs/reference.html">SQL &rarr;</a>
+      <a href="{{ site.baseurl }}/docs/reference.html">SQL &rarr;</a>
     </div>
     <div class="unit one-third">
       <h2>Query optimization</h2>
       <p>Represent your query in relational algebra, transform using
         planning rules, and optimize according to a cost model.</p>
-      <a href="/docs/algebra.html">Relational algebra &rarr;</a>
+      <a href="{{ site.baseurl }}/docs/algebra.html">Relational algebra &rarr;</a>
     </div>
     <div class="unit one-third">
       <h2>Any data, anywhere</h2>
       <p>Connect to third-party data sources, browse metadata, and optimize by pushing the computation to the data.</p>
-      <a href="/docs/adapter.html">Adapters &rarr;</a>
+      <a href="{{ site.baseurl }}/docs/adapter.html">Adapters &rarr;</a>
     </div>
     <div class="clear"></div>
   </div>

http://git-wip-us.apache.org/repos/asf/incubator-calcite/blob/ad4bdca3/site/talks/index.md
----------------------------------------------------------------------
diff --git a/site/talks/index.md b/site/talks/index.md
index 95fdd33..f546a2c 100644
--- a/site/talks/index.md
+++ b/site/talks/index.md
@@ -26,7 +26,7 @@ Want to learn more about Calcite?
 Watch some presentations and read through some slide decks about Calcite.
 
 ## Apache Calcite: One planner fits all
- 
+
 Voted [Best Lightning Talk at XLDB-2015](http://www.xldb.org/archives/2015/05/best-lightning-talks-selected/);
 [[video](https://www.youtube.com/watch?v=5_MyORYjq3w)],
 [[slides](http://www.slideshare.net/julianhyde/apache-calcite-one-planner-fits-all)].