Skip to content

Commit

Permalink
Add initial gatsby website
Browse files Browse the repository at this point in the history
  • Loading branch information
Ib Green committed May 1, 2019
1 parent 033546b commit affa574
Show file tree
Hide file tree
Showing 24 changed files with 875 additions and 9 deletions.
4 changes: 2 additions & 2 deletions docs/README.md
@@ -1,3 +1,5 @@
# Introduction

<p align="center">
These docs are for
<a href="https://github.com/uber/deck.gl/blob/7.0-release/docs/README.md">
Expand Down Expand Up @@ -28,8 +30,6 @@
</a>
</p>

# Introduction

deck.gl is designed to make visualization of large data sets simple. It enables users to quickly get impressive visual results with limited effort through composition of existing layers, while offering a complete architecture for packaging advanced WebGL based visualizations as reusable JavaScript layers.

## Brief Overview
Expand Down
2 changes: 1 addition & 1 deletion docs/developer-guide/testing.md
@@ -1,4 +1,4 @@
# Testing deck.gl Layers and Applications
# Testing Layers and Applications

Testing WebGL code is much harder than testing regular JavaScript. GPU and browser dependent commands may not run under Node. Rendering behavior differs cross platforms and hardware. Since it draws into a canvas, there is also no precisely verifiable output.

Expand Down
6 changes: 2 additions & 4 deletions docs/developer-guide/using-layers.md
@@ -1,8 +1,6 @@
# Guide to Using deck.gl Layers
# Using Layers

"Layer" is a core concept of deck.gl.

A deck.gl layer is a packaged visualization type that takes a collection of datums, associate each with positions, colors, extrusions, etc., and renders them on a map.
The "Layer" is a core concept of deck.gl. A deck.gl layer is a packaged visualization type that takes a collection of datums, associate each with positions, colors, extrusions, etc., and renders them on a map.

deck.gl provides an extensive [layer catalog](/docs/layers/README.md) and is designed to compose many layers together to form complex visuals.

Expand Down
2 changes: 1 addition & 1 deletion docs/developer-guide/using-lighting.md
@@ -1,4 +1,4 @@
# Guide to Using Lighting Effect
# Using Lighting

A deck.gl lighting effect is a visual approximation of environment illumination based on simplified models to make rendering appear more realistic.

Expand Down
2 changes: 1 addition & 1 deletion docs/get-started/getting-started.md
@@ -1,4 +1,4 @@
# Installing, Building and Running Examples
# Installing and Running Examples

## Installation

Expand Down
206 changes: 206 additions & 0 deletions docs/table-of-contents.json
@@ -0,0 +1,206 @@
{
"id": "table-of-contents",
"chapters": [
{
"title": "Overview",
"entries": [
{"entry": "docs/README"},
{"entry": "docs/whats-new"},
{"entry": "docs/upgrade-guide"},
{"entry": "docs/roadmap"},
{"entry": "docs/contributing"},
{"entry": "docs/faq"}
]
},
{
"title": "Getting Started",
"entries": [
{"entry": "docs/get-started/getting-started"},
{"entry": "docs/get-started/using-standalone"},
{"entry": "docs/get-started/using-with-react"},
{"entry": "docs/get-started/using-with-map"},
{"entry": "docs/get-started/learning-resources"}
]
},
{
"title": "Developer Guide",
"chapters": [
{
"title": "Using the API",
"entries": [
{"entry": "docs/developer-guide/using-layers"},
{"entry": "docs/developer-guide/interactivity"},
{"entry": "docs/developer-guide/coordinate-systems"},
{"entry": "docs/developer-guide/views"},
{"entry": "docs/developer-guide/using-lighting"},
{"entry": "docs/developer-guide/performance"},
{"entry": "docs/developer-guide/64-bits"},
{"entry": "docs/developer-guide/tips-and-tricks"},
{"entry": "docs/developer-guide/building-apps"},
{"entry": "docs/developer-guide/debugging"},
{"entry": "docs/developer-guide/testing"}
]
},
{
"title": "Writing Custom Layers",
"entries": [
{"entry": "docs/developer-guide/custom-layers/README"},
{"entry": "docs/developer-guide/custom-layers/layer-lifecycle"},
{"entry": "docs/developer-guide/custom-layers/picking"},
{"entry": "docs/developer-guide/custom-layers/composite-layers"},
{"entry": "docs/developer-guide/custom-layers/subclassed-layers"},
{"entry": "docs/developer-guide/custom-layers/primitive-layers"},
{"entry": "docs/developer-guide/custom-layers/prop-types"},
{"entry": "docs/developer-guide/custom-layers/attribute-management"},
{"entry": "docs/developer-guide/custom-layers/writing-shaders"}
]
}
]
},
{
"title": "API Reference",
"chapters": [
{
"title": "Core Classes",
"entries": [
{"entry": "docs/api-reference/deck"}
{"entry": "docs/api-reference/attribute-manager"},
]
},
{
"title": "Layers",
"entries": [
{"entry": "docs/layers/README"},
{"entry": "docs/api-reference/layer"},
{"entry": "docs/api-reference/composite-layer"},
{"entry": "docs/layers/arc-layer"},
{"entry": "docs/layers/bitmap-layer"},
{"entry": "docs/layers/column-layer"},
{"entry": "docs/layers/contour-layer"},
{"entry": "docs/layers/geojson-layer"},
{"entry": "docs/layers/icon-layer"},
{"entry": "docs/layers/line-layer"},
{"entry": "docs/layers/path-layer"},
{"entry": "docs/layers/point-cloud-layer"},
{"entry": "docs/layers/polygon-layer"},
{"entry": "docs/layers/solid-polygon-layer"},
{"entry": "docs/layers/scatterplot-layer"},
{"entry": "docs/layers/text-layer"},
{"entry": "docs/layers/gpu-grid-layer"},
{"entry": "docs/layers/great-circle-layer"},
{"entry": "docs/layers/grid-layer"},
{"entry": "docs/layers/grid-cell-layer"},
{"entry": "docs/layers/hexagon-layer"},
{"entry": "docs/layers/h3-cluster-layer"},
{"entry": "docs/layers/h3-hexagon-layer"},
{"entry": "docs/layers/s2-layer"},
{"entry": "docs/layers/scenegraph-layer"},
{"entry": "docs/layers/screen-grid-layer"},
{"entry": "docs/layers/simple-mesh-layer"},
{"entry": "docs/layers/tile-layer"},
{"entry": "docs/layers/trips-layer"}
]
},
{
"title": "Scripting Interface",
"entries": [
{"entry": "docs/api-reference/standalone/deckgl"}
]
},
{
"title": "Shader Modules",
"entries": [
{"entry": "docs/shader-modules/project"},
{"entry": "docs/shader-modules/project32"},
{"entry": "docs/shader-modules/project64"}
]
},
{
"title": "Viewports",
"entries": [
{"entry": "docs/api-reference/viewport"},
{"entry": "docs/api-reference/web-mercator-viewport"}
]
},
{
"title": "Views",
"entries": [
{"entry": "docs/api-reference/view"},
{"entry": "docs/api-reference/map-view"},
{"entry": "docs/api-reference/first-person-view"},
{"entry": "docs/api-reference/third-person-view"},
{"entry": "docs/api-reference/orthographic-view"},
{"entry": "docs/api-reference/perspective-view"},
{"entry": "docs/api-reference/orbit-view"},
{"entry": "docs/api-reference/view-state-transitions"}
]
},
{
"title": "Controllers",
"entries": [
{"entry": "docs/api-reference/controller"},
{"entry": "docs/api-reference/map-controller"}
]
},
{
"title": "Effects",
"entries": [
{"entry": "docs/effects/lighting-effect"}
]
},
{
"title": "Lights",
"entries": [
{"entry": "docs/api-reference/lights/ambient-light"},
{"entry": "docs/api-reference/lights/point-light"},
{"entry": "docs/api-reference/lights/directional-light"},
{"entry": "docs/api-reference/lights/camera-light"},
{"entry": "docs/api-reference/lights/sun-light"}
]
}
]
},
{
"title": "Submodule API Reference",
"chapters": [
{
"title": "@deck.gl/google-maps",
"entries": [
{"entry": "docs/api-reference/google-maps/overview"},
{"entry": "docs/api-reference/google-maps/google-maps-overlay"}
]
},
{
"title": "@deck.gl/json",
"entries": [
{"entry": "docs/api-reference/json/overview"},
{"entry": "docs/api-reference/json/json-converter"},
{"entry": "docs/api-reference/json/json-layer"}
]
},
{
"title": "@deck.gl/mapbox",
"entries": [
{"entry": "docs/api-reference/mapbox/overview"},
{"entry": "docs/api-reference/mapbox/mapbox-layer"}
]
},
{
"title": "@deck.gl/react",
"entries": [
{"entry": "docs/api-reference/react/deckgl"}
]
},
{
"title": "@deck.gl/test-utils",
"entries": [
{"entry": "docs/api-reference/test-utils/overview"},
{"entry": "docs/api-reference/test-utils/generate-layer-tests"},
{"entry": "docs/api-reference/test-utils/test-layer"},
{"entry": "docs/api-reference/test-utils/snapshot-test-runner"}
]
}
]
}
]
}
2 changes: 2 additions & 0 deletions website-gatsby/.eslintignore
@@ -0,0 +1,2 @@
dist/
node_modules/
5 changes: 5 additions & 0 deletions website-gatsby/.gitignore
@@ -0,0 +1,5 @@
public
.cache
report*.json
examples

13 changes: 13 additions & 0 deletions website-gatsby/gatsby-browser.js
@@ -0,0 +1,13 @@
// const {registerReactComponent} = require('ocular-gatsby/api');

// const Hero = require('./src/components/hero').default;
// const ExampleRunner = require('./src/components/example-runner').default;
// const EXAMPLES = require('./src/components/examples');

module.exports = require('ocular-gatsby/gatsby-browser');

// Make sure to regsiter custom components after ocular registers defaults

// registerReactComponent('Hero', Hero);
// registerReactComponent('ExampleRunner', ExampleRunner);
// registerReactComponent('EXAMPLES', EXAMPLES);
5 changes: 5 additions & 0 deletions website-gatsby/gatsby-config.js
@@ -0,0 +1,5 @@
const {getGatsbyConfig} = require('ocular-gatsby/api');

const config = require('./ocular-config');

module.exports = getGatsbyConfig(config);
80 changes: 80 additions & 0 deletions website-gatsby/gatsby-node.js
@@ -0,0 +1,80 @@
// NOTE: It is possible to override the ocular-provided callbacks
// and this take control any aspect of gatsby:

// exports.onCreateNode = ({ node, actions, getNode }) =>
// ocular.onCreateNode({ node, actions, getNode });

// exports.setFieldsOnGraphQLNodeType = ({ type, actions }) =>
// ocular.setFieldsOnGraphQLNodeType({ type, actions });

// // This is a main gatsby entry point
// // Here we get to programmatically create pages after all nodes are created
// // by gatsby.
// // We use graphgl to query for nodes and iterate
// exports.createPages = ({ graphql, actions }) =>
// ocular.createPages({ graphql, actions });

const ocularConfig = require('./ocular-config');
const getGatsbyNodeCallbacks = require('ocular-gatsby/gatsby-node');

const callbacks = getGatsbyNodeCallbacks(ocularConfig);

module.exports = callbacks;

const onCreateWebpackConfig = callbacks.onCreateWebpackConfig;

callbacks.onCreateWebpackConfig = function onCreateWebpackConfigOverride(opts) {
onCreateWebpackConfig(opts);

const {
// stage, // build stage: ‘develop’, ‘develop-html’, ‘build-javascript’, or ‘build-html’
// rules, // Object (map): set of preconfigured webpack config rules
// plugins, // Object (map): A set of preconfigured webpack config plugins
// getConfig, // Function that returns the current webpack config
loaders, // Object (map): set of preconfigured webpack config loaders
actions
} = opts;

console.log(`App rewriting gatsby webpack config`); // eslint-disable-line

// Recreate it with custom exclude filter
// Called without any arguments, `loaders.js` will return an
// object like:
// {
// options: undefined,
// loader: '/path/to/node_modules/gatsby/dist/utils/babel-loader.js',
// }
// Unless you're replacing Babel with a different transpiler, you probably
// want this so that Gatsby will apply its required Babel
// presets/plugins. This will also merge in your configuration from
// `babel.config.js`.
const newJSRule = loaders.js();

Object.assign(newJSRule, {
// JS and JSX
test: /\.jsx?$/,

// Exclude all node_modules from transpilation, except for ocular
exclude: modulePath =>
/node_modules/.test(modulePath) &&
!/node_modules\/(ocular|ocular-gatsby|gatsby-plugin-ocular)/.test(modulePath)
});

const newConfig = {
module: {
rules: [
// Omit the default rule where test === '\.jsx?$'
newJSRule
]
},
node: {
fs: 'empty'
}
};

// Completely replace the webpack config for the current stage.
// This can be dangerous and break Gatsby if certain configuration options are changed.
// Generally only useful for cases where you need to handle config merging logic yourself,
// in which case consider using webpack-merge.
actions.setWebpackConfig(newConfig);
};

0 comments on commit affa574

Please sign in to comment.