merge conflicts

This commit is contained in:
Austin Green 2017-11-24 14:51:06 -05:00
commit e5d25cb319
39 changed files with 978 additions and 97 deletions

View file

@ -1,11 +1,19 @@
# Gatsby + Netlify CMS Starter
This repo contains an example blog that is built with [Gatsby](https://www.gatsbyjs.org/), and [Netlify CMS](netlifycms.org): https://gatsby-netlify-cms.netlify.com/.
This repo contains an example business website that is built with [Gatsby](https://www.gatsbyjs.org/), and [Netlify CMS](netlifycms.org): https://gatsby-netlify-cms.netlify.com/.
It follows the [JAMstack architecture](https://jamstack.org) by using Git as a single source of truth, and [Netlify](netlify.com) for continuous deployment, and CDN distribution.
## Getting Started
Netlify CMS can run in any frontend web environment, but the quickest way to try it out is by running it on a pre-configured starter site with Netlify. The example here is the Kaldi coffee company template (adapted from [One Click Hugo CMS](https://github.com/netlify-templates/one-click-hugo-cms)). Use the button below to build and deploy your own copy of the repository:
<a href="https://app.netlify.com/start/deploy?repository=https://github.com/AustinGreen/gatsby-starter-netlify-cms/&amp;stack=cms"><img src="https://www.netlify.com/img/deploy/button.svg" alt="Deploy to Netlify"></a>
After clicking that button, youll authenticate with GitHub and choose a repository name. Netlify will then automatically create a repository in your GitHub account with a copy of the files from the template. Next, it will build and deploy the new site on Netlify, bringing you to the site dashboard when the build is complete. Next, youll need to set up Netlifys Identity service to authorize users to log in to the CMS.
## Access Locally
### Prerequisites
- Node (I recommend using v8.2.0 or higher)
@ -19,17 +27,14 @@ $ gatsby build
$ gatsby serve
```
## Accessing the CMS
### Accessing the CMS
Follow the [Netlify CMS Quick Start Guide](https://www.netlifycms.org/docs/quick-start/#authentication) to set up authentication, and hosting.
- - -
### Debugging
## Debugging
Windows users might encounter ```node-gyp``` errors when trying to npm install.
To resolve, make sure that you have both Python 2.7 and the Visual C++ build environment installed.
```
npm config set python python2.7
npm config set python python2.7
npm install --global --production windows-build-tools
```

View file

@ -12,6 +12,15 @@ module.exports = {
name: 'pages'
}
},
{
resolve: `gatsby-source-filesystem`,
options: {
path: `${__dirname}/src/img`,
name: 'images'
}
},
`gatsby-plugin-sharp`,
`gatsby-transformer-sharp`,
{
resolve: `gatsby-transformer-remark`,
options: {

View file

@ -16,6 +16,102 @@ exports.createPages = ({ boundActionCreators, graphql }) => {
path
date
title
image {
childImageSharp {
resolutions(width: 1400) {
width
height
src
srcSet
}
}
}
heading
description
intro {
blurbs {
image {
childImageSharp {
resolutions(width: 220) {
width
height
src
srcSet
}
}
}
text
}
heading
description
}
main {
heading
description
image1 {
alt
image {
childImageSharp {
resolutions(width: 400) {
width
height
src
srcSet
}
}
}
}
image2 {
alt
image {
childImageSharp {
resolutions(width: 400) {
width
height
src
srcSet
}
}
}
}
image3 {
alt
image {
childImageSharp {
resolutions(width: 400) {
width
height
src
srcSet
}
}
}
}
}
testimonials {
author
quote
}
full_image {
childImageSharp {
resolutions(width: 400) {
width
height
src
srcSet
}
}
}
pricing {
heading
description
plans {
description
items
plan
price
}
}
}
}
}

View file

@ -9,10 +9,15 @@
"gatsby-link": "^1.6.21",
"gatsby-plugin-react-helmet": "^1.0.5",
"gatsby-plugin-sass": "^1.0.12",
"gatsby-plugin-sharp": "^1.6.18",
"gatsby-remark-images": "^1.5.18",
"gatsby-source-filesystem": "^1.5.5",
"gatsby-transformer-remark": "^1.7.17",
<<<<<<< HEAD
"react-load-script": "0.0.6"
=======
"gatsby-transformer-sharp": "^1.6.13"
>>>>>>> kaldi-coffee
},
"keywords": [
"gatsby"

View file

@ -0,0 +1,18 @@
import React from 'react';
const FeatureGrid = ({ gridItems }) => (
<div className="columns is-multiline">
{gridItems.map(item => (
<div key={item.image.childImageSharp.resolutions.src} className="column is-6">
<section className="section">
<p className="has-text-centered">
<img alt="" src={item.image.childImageSharp.resolutions.src} />
</p>
<p>{item.text}</p>
</section>
</div>
))}
</div>
);
export default FeatureGrid;

22
src/components/Pricing.js Normal file
View file

@ -0,0 +1,22 @@
import React from 'react';
export default ({ data }) => (
<div className="columns">
{data.map(price => (
<div key={price.plan} className="column">
<section className="section">
<h4 className="has-text-centered has-text-weight-semibold">{price.plan}</h4>
<h2 className="is-size-1 has-text-weight-bold has-text-primary has-text-centered">${price.price}</h2>
<p className="has-text-weight-semibold">{price.description}</p>
<ul>
{price.items.map(item => (
<li key={item} className="is-size-5">
{item}
</li>
))}
</ul>
</section>
</div>
))}
</div>
);

View file

@ -0,0 +1,15 @@
import React from 'react';
export default ({ testimonials }) => (
<div>
{testimonials.map(testimonial => (
<article className="message">
<div className="message-body">
{testimonial.quote}
<br />
<cite> {testimonial.author}</cite>
</div>
</article>
))}
</div>
);

1
src/img/logo.svg Normal file
View file

@ -0,0 +1 @@
<svg viewBox="0 0 109 24" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:figma="http://www.figma.com/figma/ns"><title>Logo</title><g transform="translate(-1470)" figma:type="canvas"><g style="mix-blend-mode:normal" figma:type="vector" transform="translate(1470)" fill="#f40"><use xlink:href="#b" style="mix-blend-mode:normal"/><use xlink:href="#c" style="mix-blend-mode:normal"/><use xlink:href="#d" style="mix-blend-mode:normal"/><use xlink:href="#e" style="mix-blend-mode:normal"/><use xlink:href="#f" style="mix-blend-mode:normal"/></g></g><defs><path id="b" d="M22.735 23.171c.283.323.053.829-.376.829h-5.907c-.285 0-.556-.121-.745-.333l-9.414-10.526v10.36c0 .276-.224.5-.5.5h-5.293c-.276 0-.5-.224-.5-.5v-23c0-.276.224-.5.5-.5h5.293c.276 0 .5.224.5.5v9.815l9.141-9.99c.19-.207.457-.325.738-.325h5.762c.437 0 .664.521.366.841l-9.851 10.563 10.287 11.767z"/><path id="c" d="M45.991 24c-.199 0-.38-.118-.459-.301l-2.024-4.669h-10.67l-2.024 4.669c-.079.183-.259.301-.459.301h-5.212c-.366 0-.608-.381-.453-.712l10.782-23c.082-.176.259-.288.453-.288h4.358c.194 0 .37.112.453.287l10.815 23c.156.332-.086.713-.452.713h-5.108zm-11.135-9.668h6.635l-3.317-7.694-3.317 7.694z"/><path id="d" d="M55.525 24c-.276 0-.5-.224-.5-.5v-23c0-.276.224-.5.5-.5h5.293c.276 0 .5.224.5.5v18.428h9.759c.276 0 .5.224.5.5v4.072c0 .276-.224.5-.5.5h-15.552z"/><path id="e" d="M75.279.5c0-.276.224-.5.5-.5h9.315c2.667 0 4.959.477 6.874 1.43 1.938.953 3.42 2.338 4.446 4.153 1.026 1.793 1.539 3.926 1.539 6.4 0 2.496-.513 4.652-1.539 6.468-1.003 1.793-2.474 3.166-4.412 4.119-1.915.953-4.218 1.43-6.908 1.43h-9.315c-.276 0-.5-.224-.5-.5v-23zm9.37 18.462c2.371 0 4.138-.579 5.301-1.736 1.163-1.157 1.744-2.905 1.744-5.242 0-2.338-.581-4.074-1.744-5.209-1.163-1.157-2.93-1.736-5.301-1.736h-3.078v13.923h3.078z"/><path id="f" d="M102.913 24c-.276 0-.5-.224-.5-.5v-23c0-.276.224-.5.5-.5h5.293c.276 0 .5.224.5.5v23c0 .276-.224.5-.5.5h-5.293z"/></defs></svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

27
src/layouts/all.sass Normal file
View file

@ -0,0 +1,27 @@
@import "~bulma/sass/utilities/initial-variables"
// Config
$kaldi-red: #FD461E
$kaldi-red-invert: #fff
$primary: $kaldi-red
$primary-invert: $kaldi-red-invert
// Helper Classes
.full-width-image-container
width: 100vw
height: 400px
position: relative
left: 50%
right: 50%
margin: 5em -50vw
background-size: cover
background-position: bottom
display: flex
justify-content: center
align-items: center
.margin-top-0
margin-top: 0 !important
@import "~bulma"

View file

@ -3,20 +3,26 @@ import PropTypes from 'prop-types';
import Link from 'gatsby-link';
import Helmet from 'react-helmet';
import github from '../img/github-icon.svg';
import 'bulma';
import logo from '../img/logo.svg';
import './all.sass';
const Navbar = () => (
<nav className="navbar is-light">
<nav className="navbar is-transparent">
<div className="container">
<div className="navbar-brand">
<Link to="/" className="navbar-item">
Gatsby powered by Netlify CMS
<figure className="image">
<img src={logo} alt="Kaldi" style={{ width: '88px' }} />
</figure>
</Link>
</div>
<div className="navbar-start">
<Link className="navbar-item" to="/about">
About
</Link>
<Link className="navbar-item" to="/products">
Products
</Link>
</div>
<div className="navbar-end">
<a className="navbar-item" href="https://github.com/AustinGreen/gatsby-netlify-cms-boilerplate" target="_blank" rel="noopener noreferrer">

View file

@ -1,10 +1,10 @@
import React from 'react'
import React from 'react';
const NotFoundPage = () => (
<div>
<h1>NOT FOUND</h1>
<p>You just hit a route that doesn&#39;t exist... the sadness.</p>
</div>
)
);
export default NotFoundPage
export default NotFoundPage;

View file

@ -1,16 +1,19 @@
---
templateKey: 'about-page'
path: /about
title: A Dance With Dragons
title: About our values
---
The Dothraki do things in their own time, for their own reasons. Fire and blood. When you play the game of thrones, you win or you die. The Dothraki do things in their own time, for their own reasons. What is dead may never die.
### Shade-grown coffee
Coffee is a small tree or shrub that grows in the forest understory in its wild form, and traditionally was grown commercially under other trees that provided shade. The forest-like structure of shade coffee farms provides habitat for a great number of migratory and resident species.
Bastards are born of passion, aren't they? We don't despise them in Dorne. When you play the game of thrones, you win or you die. More pigeon pie, please. More pigeon pie, please. A forked purple lightning bolt, on black field speckled with four-pointed stars. The Knight of Lemonwood.
### Single origin
Single-origin coffee is coffee grown within a single known geographic origin. Sometimes, this is a single farm or a specific collection of beans from a single country. The name of the coffee is then usually the place it was grown to whatever degree available.
I pledge my life and honor to the Night's Watch, for this night and all the nights to come. The War of the 5 kings. I would like a trial by combat.
### Sustainable farming
Sustainable agriculture is farming in sustainable ways based on an understanding of ecosystem services, the study of relationships between organisms and their environment. What grows where and how it is grown are a matter of choice and careful consideration for nature and communities.
A Lannister always pays his debts. King in the North. As High as Honor. Dunc the Lunk, thick as a castle wall. I would like a trial by combat. The night is dark and full of terrors. You know nothing, Jon Snow. Bastards are born of passion, aren't they? We don't despise them in Dorne.
### Direct sourcing
Direct trade is a form of sourcing practiced by some coffee roasters. Advocates of direct trade practices promote direct communication and price negotiation between buyer and farmer, along with systems that encourage and incentivize quality.
When you play the game of thrones, you win or you die. It's ten thousand miles between Kings landing and the wall. The battle of the redgrass field. When you play the game of thrones, you win or you die. The battle of the redgrass field. May the Father judge him justly.
The battle of the redgrass field. A good act does not wash out the bad, nor a bad act the good. Each should have its own reward. Unbowed, Unbent, Unbroken. The tourney of Ashford Meadows. The battle of the redgrass field. I would like a trial by combat. More pigeon pie, please. The Dothraki do things in their own time, for their own reasons. When you play the game of thrones, you win or you die. The wolf and the lion. The War of the 5 kings. King in the North. It is rare to meet a Lannister who shares my enthusiasm for dead Lannisters. Unbowed, Unbent, Unbroken. The battle of the redgrass field.
### Reinvest profits
We want to truly empower the communities that bring amazing coffee to you. Thats why we reinvest 20% of our profits into farms, local businesses and schools everywhere our coffee is grown. You can see the communities grow and learn more about coffee farming on our blog.

View file

@ -0,0 +1,29 @@
---
templateKey: 'blog-post'
path: /making-sense
title: "Making sense of the SCAAs new Flavor Wheel"
date: 2016-12-17T15:04:10.000Z
description: The Coffee Tasters Flavor Wheel, the official resource used by coffee tasters, has been revised for the first time this year.
---
![flavor wheel](/img/flavor_wheel.jpg)
The SCAA updated the wheel to reflect the finer nuances needed to describe flavors more precisely. The new descriptions are more detailed and hence allow cuppers to distinguish between more flavors.
While this is going to be a big change for professional coffee tasters, it means a lot to you as a consumer as well. Well explain how the wheel came to be, how pros use it and what the flavors actually mean.
## What the updates mean to you
The Specialty Coffee Association of America (SCAA), founded in 1982, is a non-profit trade organization for the specialty coffee industry. With members located in more than 40 countries, SCAA represents every segment of the specialty coffee industry, including:
- producers
- roasters
- importers/exporters
- retailers
- manufacturers
- baristas
For over 30 years, SCAA has been dedicated to creating a vibrant specialty coffee community by recognizing, developing and promoting specialty coffee. SCAA sets and maintains quality standards for the industry, conducts market research, and provides education, training, resources, and business services for its members.
Coffee cupping, or coffee tasting, is the practice of observing the tastes and aromas of brewed coffee. It is a professional practice but can be done informally by anyone or by professionals known as "Q Graders". A standard coffee cupping procedure involves deeply sniffing the coffee, then loudly slurping the coffee so it spreads to the back of the tongue.
The coffee taster attempts to measure aspects of the coffee's taste, specifically the body (the texture or mouthfeel, such as oiliness), sweetness, acidity (a sharp and tangy feeling, like when biting into an orange), flavour (the characters in the cup), and aftertaste. Since coffee beans embody telltale flavours from the region where they were grown, cuppers may attempt to identify the coffee's origin.

View file

@ -0,0 +1,28 @@
---
templateKey: 'blog-post'
path: /brewing-chemex
title: A beginners guide to brewing with Chemex
date: 2017-01-04T15:04:10.000Z
description: >-
Brewing with a Chemex probably seems like a complicated, time-consuming
ordeal, but once you get used to the process, it becomes a soothing ritual
that's worth the effort every time.
---
![chemex](/img/chemex.jpg)
This week well **take** a look at all the steps required to make astonishing coffee with a Chemex at home. The Chemex Coffeemaker is a manual, pour-over style glass-container coffeemaker that Peter Schlumbohm invented in 1941, and which continues to be manufactured by the Chemex Corporation in Chicopee, Massachusetts.
In 1958, designers at the [Illinois Institute of Technology](https://www.spacefarm.digital) said that the Chemex Coffeemaker is *"one of the best-designed products of modern times"*, and so is included in the collection of the Museum of Modern Art in New York City.
## The little secrets of Chemex brewing
The Chemex Coffeemaker consists of an hourglass-shaped glass flask with a conical funnel-like neck (rather than the cylindrical neck of an Erlenmeyer flask) and uses proprietary filters, made of bonded paper (thicker-gauge paper than the standard paper filters for a drip-method coffeemaker) that removes most of the coffee oils, brewing coffee with a taste that is different than coffee brewed in other coffee-making systems; also, the thicker paper of the Chemex coffee filters may assist in removing cafestol, a cholesterol-containing compound found in coffee oils. Heres three important tips newbies forget about:
1. Always buy dedicated Chemex filters.
2. Use a scale, dont try to eyeball it.
3. Never skip preheating the glass.
4. Timing is key, dont forget the clock.
The most visually distinctive feature of the Chemex is the heatproof wooden collar around the neck, allowing it to be handled and poured when full of hot water. This is turned, then split in two to allow it to fit around the glass neck. The two pieces are held loosely in place by a tied leather thong. The pieces are not tied tightly and can still move slightly, retained by the shape of the conical glass.
For a design piece that became popular post-war at a time of Modernism and precision manufacture, this juxtaposition of natural wood and the organic nature of a hand-tied knot with the laboratory nature of glassware was a distinctive feature of its appearance.

View file

@ -0,0 +1,29 @@
---
templateKey: 'blog-post'
path: /jamaica-blue
title: 'Just in: small batch of Jamaican Blue Mountain in store next week'
date: 2017-01-04T15:04:10.000Z
description: >-
Were proud to announce that well be offering a small batch of Jamaica Blue
Mountain coffee beans in our store next week.
---
We expect the shipment of a limited quantity of green beans next Monday. Well be offering the roasted beans from Tuesday, but quantities are limited, so be quick.
Blue Mountain Peak is the highest mountain in Jamaica and one of the highest peaks in the Caribbean at 7,402 ft. It is the home of Blue Mountain coffee and their famous tours. It is located on the border of the Portland and Saint Thomas parishes of Jamaica.
## A little history
The Blue Mountains are considered by many to be a hiker's and camper's paradise. The traditional Blue Mountain trek is a 7-mile hike to the peak and consists of a 3,000-foot increase in elevation. Jamaicans prefer to reach the peak at sunrise, thus the 34 hour hike is usually undertaken in darkness. Since the sky is usually very clear in the mornings, Cuba can be seen in the distance.
>Some of the plants found on the Blue Mountain cannot be found anywhere else in the world and they are often of a dwarfed sort.
This is mainly due to the cold climate which inhibits growth. The small coffee farming communities of Claverty Cottage and Hagley Gap are located near the peak.
## What you need to know before trying
Jamaican Blue Mountain Coffee or Jamaica Blue Mountain Coffee is a classification of coffee grown in the Blue Mountains of Jamaica. The best lots of Blue Mountain coffee are noted for their mild flavor and lack of bitterness. Over the past few decades, this coffee has developed a reputation that has made it one of the most expensive and sought-after coffees in the world. Over 80% of all Jamaican Blue Mountain Coffee is exported to Japan. In addition to its use for brewed coffee, the beans are the flavor base of Tia Maria coffee liqueur.
Jamaican Blue Mountain Coffee is a globally protected certification mark, meaning only coffee certified by the Coffee Industry Board of Jamaica can be labeled as such. It comes from a recognized growing region in the Blue Mountain region of Jamaica, and its cultivation is monitored by the Coffee Industry Board of Jamaica.
The Blue Mountains are generally located between Kingston to the south and Port Antonio to the north. Rising 7,402 ft, they are some of the highest mountains in the Caribbean. The climate of the region is cool and misty with high rainfall. The soil is rich, with excellent drainage. This combination of climate and soil is considered ideal for coffee.

View file

@ -1,23 +0,0 @@
---
templateKey: 'blog-post'
path: /intro-to-graphql
title: Introduction to GraphQL
date: 2017-08-08T17:12:33.962Z
---
Modern apps are interdependent and dynamic. For example, you probably sign in to various web apps using your GitHub account. These apps may be grabbing your avatar directly from GitHub, or some information about your projects. The data about your project is always changing so, as an added bonus, these connections are constantly updating the information that is displayed.
GitHub isnt the only web app that does this. A few examples of **rich data** sources are:
* Weather Underground: get access to your local weather or report it from you home weather station
* Flight stats: grab information about any flight, and
* ESPN: keep track of your favorite sports teams record
* This data is available to you because the developers of these apps created a public Application Program Interface (API).
This course is going to introduce the concept of using APIs via GitHubs GraphQL. Youll learn how to gather data from GitHub, and how to make a simple change.
### More Examples
* Here's another
* Here's a picture
![graphql](/img/graphql.png)

View file

@ -1,11 +0,0 @@
---
templateKey: 'blog-post'
path: /claude
title: Claude Shannon and Information Theory
date: 2017-10-14T12:00:02.000Z
---
Information theory studies the quantification, storage, and communication of information. It was originally proposed by Claude E. Shannon in 1948 to find fundamental limits on signal processing and communication operations such as data compression, in a landmark paper entitled "A Mathematical Theory of Communication". Applications of fundamental topics of information theory include lossless data compression (e.g. ZIP files), lossy data compression (e.g. MP3s and JPEGs), and channel coding (e.g. for digital subscriber line (DSL)). Its impact has been crucial to the success of the Voyager missions to deep space, the invention of the compact disc, the feasibility of mobile phones, the development of the Internet, the study of linguistics and of human perception, the understanding of black holes, and numerous other fields.
![shannon](/img/shannon.png)

View file

@ -1,11 +0,0 @@
---
templateKey: 'blog-post'
path: /einstein
title: Einstein Discovers Relativity
date: 2017-10-18T17:12:33.962Z
---
In 1905, **Albert Einstein** determined that the laws of physics are the same for all non-accelerating observers, and that the speed of light in a vacuum was independent of the motion of all observers. This was the theory of special **relativity**
![einstein](/img/einstein.jpg)

Binary file not shown.

After

Width:  |  Height:  |  Size: 143 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 284 KiB

View file

@ -27,11 +27,16 @@ export default class IndexPage extends React.Component {
onLoad={this.handleScriptLoad.bind(this)}
/>
<div className="container">
<div className="content">
<h1 className="has-text-weight-bold is-size-2">Latest Stories</h1>
</div>
{posts.filter(post => post.node.frontmatter.templateKey === 'blog-post').map(({ node: post }) => {
return (
<div className="content" style={{ border: '1px solid #eaecee', padding: '2em 4em' }} key={post.id}>
<p>
<Link to={post.frontmatter.path}>{post.frontmatter.title}</Link>
<Link className="has-text-primary" to={post.frontmatter.path}>
{post.frontmatter.title}
</Link>
<span> &bull; </span>
<small>{post.frontmatter.date}</small>
</p>
@ -39,8 +44,8 @@ export default class IndexPage extends React.Component {
{post.excerpt}
<br />
<br />
<Link className="button is-info is-small" to={post.frontmatter.path}>
Keep Reading
<Link className="button is-small" to={post.frontmatter.path}>
Keep Reading
</Link>
</p>
</div>

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 133 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 212 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 322 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 162 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 KiB

View file

@ -0,0 +1,101 @@
---
templateKey: 'product-page'
path: /products
title: Our Coffee
image: ./img/products/jumbotron.jpg
heading: What we offer
description: >-
Kaldi is the ultimate spot for coffee lovers who want to learn about their
javas origin and support the farmers that grew it. We take coffee production,
roasting and brewing seriously and were glad to pass that knowledge to
anyone.
intro:
blurbs:
- image: ./img/illustrations/coffee.png
text: >
We sell green and roasted coffee beans that are sourced directly from
independent farmers and farm cooperatives. Were proud to offer a
variety of coffee beans grown with great care for the environment and
local communities. Check our post or contact us directly for current
availability.
- image: ./img/illustrations/coffee-gear.png
text: >
We offer a small, but carefully curated selection of brewing gear and
tools for every taste and experience level. No matter if you roast your
own beans or just bought your first french press, youll find a gadget
to fall in love with in our shop.
- image: ./img/illustrations/tutorials.png
text: >
Love a great cup of coffee, but never knew how to make one? Bought a
fancy new Chemex but have no clue how to use it? Don't worry, were here
to help. You can schedule a custom 1-on-1 consultation with our baristas
to learn anything you want to know about coffee roasting and brewing.
Email us or call the store for details.
- image: ./img/illustrations/meeting-space.png
text: >
We believe that good coffee has the power to bring people together.
Thats why we decided to turn a corner of our shop into a cozy meeting
space where you can hang out with fellow coffee lovers and learn about
coffee making techniques. All of the artwork on display there is for
sale. The full price you pay goes to the artist.
heading: What we offer
description: >
Kaldi is the ultimate spot for coffee lovers who want to learn about their
javas origin and support the farmers that grew it. We take coffee
production, roasting and brewing seriously and were glad to pass that
knowledge to anyone. This is an edit via identity...
main:
heading: Great coffee with no compromises
description: >
We hold our coffee to the highest standards from the shrub to the cup.
Thats why were meticulous and transparent about each step of the coffees
journey. We personally visit each farm to make sure the conditions are
optimal for the plants, farmers and the local environment.
image1:
alt: A close-up of a paper filter filled with ground coffee
image: ./img/products/products-grid3.jpg
image2:
alt: A green cup of a coffee on a wooden table
image: ./img/products/products-grid2.jpg
image3:
alt: Coffee beans
image: ./img/products/products-grid1.jpg
testimonials:
- author: Elisabeth Kaurismäki
quote: >-
The first time I tried Kaldis coffee, I couldnt even believe that was
the same thing Ive been drinking every morning.
- author: Philipp Trommler
quote: >-
Kaldi is the place to go if you want the best quality coffee. I love their
stance on empowering farmers and transparency.
full_image: ./img/products/products-full-width.jpg
pricing:
heading: Monthly subscriptions
description: >-
We make it easy to make great coffee a part of your life. Choose one of our
monthly subscription plans to receive great coffee at your doorstep each
month. Contact us about more details and payment info.
plans:
- description: Perfect for the drinker who likes to enjoy 1-2 cups per day.
items:
- 3 lbs of coffee per month
- Green or roasted beans"
- One or two varieties of beans"
plan: Small
price: '50'
- description: 'Great for avid drinkers, java-loving couples and bigger crowds'
items:
- 6 lbs of coffee per month
- Green or roasted beans
- Up to 4 different varieties of beans
plan: Big
price: '80'
- description: Want a few tiny batches from different varieties? Try our custom plan
items:
- Whatever you need
- Green or roasted beans
- Unlimited varieties
plan: Custom
price: '??'
---

View file

@ -6,13 +6,12 @@ export default ({ data }) => {
<section className="section section--gradient">
<div className="container">
<div className="columns">
<div className="column is-7">
<div className="column is-10 is-offset-1">
<div className="section">
<h2 className="title is-size-3 has-text-primary is-bold-light">{post.frontmatter.title}</h2>
<h2 className="title is-size-3 has-text-weight-bold is-bold-light">{post.frontmatter.title}</h2>
<div className="content" dangerouslySetInnerHTML={{ __html: post.html }} />
</div>
</div>
<div className="column is-5" />
</div>
</div>
</section>

View file

@ -7,8 +7,13 @@ export default function Template({ data }) {
<section className="section">
<Helmet title={`Blog | ${post.frontmatter.title}`} />
<div className="container content">
<h1 className="title is-size-2 has-text-info is-bold-light">{post.frontmatter.title}</h1>
<div dangerouslySetInnerHTML={{ __html: post.html }} />
<div className="columns">
<div className="column is-10 is-offset-1">
<h1 className="title is-size-2 has-text-weight-bold is-bold-light">{post.frontmatter.title}</h1>
<p>{post.frontmatter.description}</p>
<div dangerouslySetInnerHTML={{ __html: post.html }} />
</div>
</div>
</div>
</section>
);
@ -22,6 +27,7 @@ export const pageQuery = graphql`
path
date(formatString: "MMMM DD, YYYY")
title
description
}
}
}

View file

@ -0,0 +1,192 @@
import React from 'react';
import Features from '../components/Features';
import Testimonials from '../components/Testimonials';
import Pricing from '../components/Pricing';
import grid1 from '../pages/product/img/products/products-grid1.jpg';
import grid2 from '../pages/product/img/products/products-grid2.jpg';
import grid3 from '../pages/product/img/products/products-grid3.jpg';
import fullWidth from '../pages/product/img/products/products-full-width.jpg';
export default ({ data }) => {
console.log(data);
const { frontmatter } = data.markdownRemark;
return (
<section className="section section--gradient">
<div className="container">
<div className="section">
<div className="columns">
<div className="column is-10 is-offset-1">
<div className="content">
<div
className="full-width-image-container margin-top-0"
style={{ backgroundImage: `url(${frontmatter.image.childImageSharp.resolutions.src})` }}
>
<h2
className="has-text-weight-bold is-size-1"
style={{
boxShadow: '0.5rem 0 0 #f40, -0.5rem 0 0 #f40',
backgroundColor: '#f40',
color: 'white',
padding: '1rem'
}}
>
{frontmatter.title}
</h2>
</div>
<div className="columns">
<div className="column is-7">
<h3 className="has-text-weight-semibold is-size-2">{frontmatter.heading}</h3>
<p>{frontmatter.description}</p>
</div>
</div>
<Features gridItems={frontmatter.intro.blurbs} />
<div className="columns">
<div className="column is-7">
<h3 className="has-text-weight-semibold is-size-3">{frontmatter.main.heading}</h3>
<p>{frontmatter.main.description}</p>
</div>
</div>
<div className="tile is-ancestor">
<div className="tile is-vertical">
<div className="tile">
<div className="tile is-parent is-vertical">
<article className="tile is-child">
<img
style={{ borderRadius: '5px' }}
src={frontmatter.main.image1.image.childImageSharp.resolutions.src}
alt=""
/>
</article>
</div>
<div className="tile is-parent">
<article className="tile is-child">
<img
style={{ borderRadius: '5px' }}
src={frontmatter.main.image2.image.childImageSharp.resolutions.src}
alt=""
/>
</article>
</div>
</div>
<div className="tile is-parent">
<article className="tile is-child">
<img
style={{ borderRadius: '5px' }}
src={frontmatter.main.image3.image.childImageSharp.resolutions.src}
alt=""
/>
</article>
</div>
</div>
</div>
<Testimonials testimonials={frontmatter.testimonials} />
<div
className="full-width-image-container"
style={{ backgroundImage: `url(${frontmatter.full_image.childImageSharp.resolutions.src})` }}
/>
<h2 className="has-text-weight-semibold is-size-2">{frontmatter.pricing.heading}</h2>
<p className="is-size-5">{frontmatter.pricing.description}</p>
<Pricing data={frontmatter.pricing.plans} />
</div>
</div>
</div>
</div>
</div>
</section>
);
};
export const productPageQuery = graphql`
query ProductPage($path: String!) {
markdownRemark(frontmatter: { path: { eq: $path } }) {
frontmatter {
title
path
image {
childImageSharp {
resolutions(width: 1400) {
width
height
src
srcSet
}
}
}
heading
description
intro {
blurbs {
image {
childImageSharp {
resolutions(width: 220) {
width
height
src
srcSet
}
}
}
text
}
heading
description
}
main {
heading
description
image1 {
alt
image {
childImageSharp {
resolutions(width: 700) {
src
}
}
}
}
image2 {
alt
image {
childImageSharp {
resolutions(width: 700) {
src
}
}
}
}
image3 {
alt
image {
childImageSharp {
resolutions(width: 1400) {
src
}
}
}
}
}
testimonials {
author
quote
}
full_image {
childImageSharp {
resolutions(width: 1400) {
src
}
}
}
pricing {
heading
description
plans {
description
items
plan
price
}
}
}
}
}
`;

View file

@ -18,13 +18,28 @@ collections:
- {label: "Publish Date", name: "date", widget: "datetime"}
- {label: "Body", name: "body", widget: "markdown"}
- name: "about"
label: "About"
folder: "src/pages/about"
create: false
slug: "{{slug}}"
fields:
- {label: "Template Key", name: "templateKey", widget: "hidden", default: "about-page"}
- {label: "Path", name: "path", widget: "hidden", default: "/about"}
- {label: "Title", name: "title", widget: "string"}
- {label: "Body", name: "body", widget: "markdown"}
- name: "pages"
label: "Pages"
files:
- file: "src/pages/about/about.md"
label: "About"
name: "about"
fields:
- {label: "Template Key", name: "templateKey", widget: "hidden", default: "about-page"}
- {label: "Path", name: "path", widget: "hidden", default: "/about"}
- {label: "Title", name: "title", widget: "string"}
- {label: "Body", name: "body", widget: "markdown"}
- file: "src/pages/product/product.md"
label: "Products Page"
name: "products"
fields:
- {label: "Template Key", name: "templateKey", widget: "hidden", default: "product-page"}
- {label: Title, name: title, widget: string}
- {label: Image, name: image, widget: image}
- {label: Heading, name: heading, widget: string}
- {label: Description, name: description, widget: string}
- {label: Intro, name: intro, widget: object, fields: [{label: Heading, name: heading, widget: string}, {label: Description, name: description, widget: text}, {label: Blurbs, name: blurbs, widget: list, fields: [{label: Image, name: image, widget: image}, {label: Text, name: text, widget: text}]}]}
- {label: Main, name: main, widget: object, fields: [{label: Heading, name: heading, widget: string}, {label: Description, name: description, widget: text}, {label: Image1, name: image1, widget: object, fields: [{label: Image, name: image, widget: image}, {label: Alt, name: alt, widget: string}]}, {label: Image2, name: image2, widget: object, fields: [{label: Image, name: image, widget: image}, {label: Alt, name: alt, widget: string}]}, {label: Image3, name: image3, widget: object, fields: [{label: Image, name: image, widget: image}, {label: Alt, name: alt, widget: string}]}]}
- {label: Testimonials, name: testimonials, widget: list, fields: [{label: Quote, name: quote, widget: string}, {label: Author, name: author, widget: string}]}
- {label: Full_image, name: full_image, widget: image}
- {label: Pricing, name: pricing, widget: object, fields: [{label: Heading, name: heading, widget: string}, {label: Description, name: description, widget: string}, {label: Plans, name: plans, widget: list, fields: [{label: Plan, name: plan, widget: string}, {label: Price, name: price, widget: string}, {label: Description, name: description, widget: string}, {label: Items, name: items, widget: list}]}]}

341
yarn.lock
View file

@ -50,6 +50,15 @@ ajv@^4.9.1:
co "^4.6.0"
json-stable-stringify "^1.0.1"
ajv@^5.1.0:
version "5.3.0"
resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.3.0.tgz#4414ff74a50879c208ee5fdc826e32c303549eda"
dependencies:
co "^4.6.0"
fast-deep-equal "^1.0.0"
fast-json-stable-stringify "^2.0.0"
json-schema-traverse "^0.3.0"
align-text@^0.1.1, align-text@^0.1.3:
version "0.1.4"
resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117"
@ -294,7 +303,11 @@ aws-sign2@~0.6.0:
version "0.6.0"
resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f"
aws4@^1.2.1:
aws-sign2@~0.7.0:
version "0.7.0"
resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"
aws4@^1.2.1, aws4@^1.6.0:
version "1.6.0"
resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e"
@ -1252,6 +1265,10 @@ big.js@^3.1.3:
version "3.2.0"
resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e"
bignumber.js@^2.1.0:
version "2.4.0"
resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-2.4.0.tgz#838a992da9f9d737e0f4b2db0be62bb09dd0c5e8"
bin-build@^2.0.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/bin-build/-/bin-build-2.2.0.tgz#11f8dd61f70ffcfa2bdcaa5b46f5e8fedd4221cc"
@ -1285,7 +1302,7 @@ bin-version@^1.0.0:
dependencies:
find-versions "^1.0.0"
bin-wrapper@^3.0.0:
bin-wrapper@^3.0.0, bin-wrapper@^3.0.1:
version "3.0.2"
resolved "https://registry.yarnpkg.com/bin-wrapper/-/bin-wrapper-3.0.2.tgz#67d3306262e4b1a5f2f88ee23464f6a655677aeb"
dependencies:
@ -1320,6 +1337,10 @@ bluebird@^3.0.5, bluebird@^3.3.4, bluebird@^3.5.0:
version "3.5.1"
resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9"
bmp-js@0.0.3:
version "0.0.3"
resolved "https://registry.yarnpkg.com/bmp-js/-/bmp-js-0.0.3.tgz#64113e9c7cf1202b376ed607bf30626ebe57b18a"
bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0:
version "4.11.8"
resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f"
@ -1349,6 +1370,18 @@ boom@2.x.x, boom@^2.5.x, boom@^2.7.2:
dependencies:
hoek "2.x.x"
boom@4.x.x:
version "4.3.1"
resolved "https://registry.yarnpkg.com/boom/-/boom-4.3.1.tgz#4f8a3005cb4a7e3889f749030fd25b96e01d2e31"
dependencies:
hoek "4.x.x"
boom@5.x.x:
version "5.2.0"
resolved "https://registry.yarnpkg.com/boom/-/boom-5.2.0.tgz#5dd9da6ee3a5f302077436290cb717d3f4a54e02"
dependencies:
hoek "4.x.x"
brace-expansion@^1.1.7:
version "1.1.8"
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.8.tgz#c07b211c7c952ec1f8efd51a77ef0d1d3990a292"
@ -1477,6 +1510,10 @@ buffer-crc32@~0.2.3:
version "0.2.13"
resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242"
buffer-equal@0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-0.0.1.tgz#91bc74b11ea405bc916bc6aa908faafa5b4aac4b"
buffer-fill@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-0.1.0.tgz#ca9470e8d4d1b977fd7543f4e2ab6a7dc95101a8"
@ -2150,6 +2187,12 @@ cryptiles@2.x.x:
dependencies:
boom "2.x.x"
cryptiles@3.x.x:
version "3.1.2"
resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-3.1.2.tgz#a89fbb220f5ce25ec56e8c4aa8a4fd7b5b0d29fe"
dependencies:
boom "5.x.x"
crypto-browserify@3.3.0:
version "3.3.0"
resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.3.0.tgz#b9fc75bb4a0ed61dcf1cd5dae96eb30c9c3e506c"
@ -2283,6 +2326,14 @@ currently-unhandled@^0.4.1:
dependencies:
array-find-index "^1.0.1"
cwebp-bin@^3.1.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/cwebp-bin/-/cwebp-bin-3.2.0.tgz#ae02df453d8c15341b1d8d499a5226bcf3bf4a6f"
dependencies:
bin-build "^2.0.0"
bin-wrapper "^3.0.1"
logalot "^2.0.0"
d@1:
version "1.0.0"
resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f"
@ -2750,6 +2801,10 @@ es6-iterator@~2.0.1:
es5-ext "^0.10.35"
es6-symbol "^3.1.1"
es6-promise@^3.0.2:
version "3.3.1"
resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-3.3.1.tgz#a08cdde84ccdbf34d027a1451bc91d4bcd28a613"
es6-promise@^4.1.0:
version "4.1.1"
resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.1.1.tgz#8811e90915d9a0dba36274f0b242dbda78f9c92a"
@ -2887,6 +2942,10 @@ exenv@^1.2.1:
version "1.2.2"
resolved "https://registry.yarnpkg.com/exenv/-/exenv-1.2.2.tgz#2ae78e85d9894158670b03d47bec1f03bd91bb9d"
exif-parser@^0.1.9:
version "0.1.12"
resolved "https://registry.yarnpkg.com/exif-parser/-/exif-parser-0.1.12.tgz#58a9d2d72c02c1f6f02a0ef4a9166272b7760922"
expand-brackets@^0.1.4:
version "0.1.5"
resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b"
@ -2973,7 +3032,7 @@ extend-shallow@^2.0.1:
dependencies:
is-extendable "^0.1.0"
extend@^3.0.0, extend@~3.0.0:
extend@^3.0.0, extend@~3.0.0, extend@~3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444"
@ -3023,6 +3082,10 @@ fancy-log@^1.1.0:
chalk "^1.1.1"
time-stamp "^1.0.0"
fast-deep-equal@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz#96256a3bc975595eb36d82e9929d060d893439ff"
fast-glob@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-1.0.1.tgz#30f9b1120fd57a7f172364a6458fbdbd98187b3c"
@ -3032,6 +3095,10 @@ fast-glob@^1.0.1:
micromatch "^3.0.3"
readdir-enhanced "^1.5.2"
fast-json-stable-stringify@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2"
fastparse@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.1.tgz#d1e2643b38a94d7583b479060e6c4affc94071f8"
@ -3220,6 +3287,12 @@ flatten@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.2.tgz#dae46a9d78fbe25292258cc1e780a41d95c03782"
for-each@^0.3.2:
version "0.3.2"
resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.2.tgz#2c40450b9348e97f281322593ba96704b9abd4d4"
dependencies:
is-function "~1.0.0"
for-in@^1.0.1, for-in@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
@ -3248,6 +3321,14 @@ form-data@~2.1.1:
combined-stream "^1.0.5"
mime-types "^2.1.12"
form-data@~2.3.1:
version "2.3.1"
resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.1.tgz#6fb94fbd71885306d73d15cc497fe4cc4ecd44bf"
dependencies:
asynckit "^0.4.0"
combined-stream "^1.0.5"
mime-types "^2.1.12"
forwarded@~0.1.2:
version "0.1.2"
resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84"
@ -3280,7 +3361,7 @@ fs-exists-sync@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz#982d6893af918e72d08dec9e8673ff2b5a8d6add"
fs-extra@^4.0.1:
fs-extra@^4.0.1, fs-extra@^4.0.2:
version "4.0.2"
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.2.tgz#f91704c53d1b461f893452b0c307d9997647ab6b"
dependencies:
@ -3384,6 +3465,23 @@ gatsby-plugin-sass@^1.0.12:
sass-loader "^4.1.1"
webpack "^1.13.3"
gatsby-plugin-sharp@^1.6.18:
version "1.6.18"
resolved "https://registry.yarnpkg.com/gatsby-plugin-sharp/-/gatsby-plugin-sharp-1.6.18.tgz#1dcb1394bb28fd902403771cdd4bc9ffe7a61864"
dependencies:
async "^2.1.2"
babel-runtime "^6.26.0"
bluebird "^3.5.0"
image-size "^0.5.1"
imagemin "^5.2.2"
imagemin-pngquant "^5.0.0"
imagemin-webp "^4.0.0"
lodash "^4.17.4"
potrace "^2.1.1"
progress "^1.1.8"
sharp "^0.17.3"
svgo "^0.7.2"
gatsby-plugin-sharp@^1.6.9:
version "1.6.9"
resolved "https://registry.yarnpkg.com/gatsby-plugin-sharp/-/gatsby-plugin-sharp-1.6.9.tgz#4b1f39fa68f952112d95cf5f5dfbdfc320458a0a"
@ -3455,6 +3553,15 @@ gatsby-transformer-remark@^1.7.17:
unist-util-select "^1.5.0"
unist-util-visit "^1.1.1"
gatsby-transformer-sharp@^1.6.13:
version "1.6.13"
resolved "https://registry.yarnpkg.com/gatsby-transformer-sharp/-/gatsby-transformer-sharp-1.6.13.tgz#66daa184951710290a748896d72deb0979c454bb"
dependencies:
babel-runtime "^6.26.0"
bluebird "^3.5.0"
fs-extra "^4.0.2"
image-size "^0.6.0"
gatsby@^1.9.63:
version "1.9.73"
resolved "https://registry.yarnpkg.com/gatsby/-/gatsby-1.9.73.tgz#68758c7198874b30a48fbacf5560568f9e373d89"
@ -3721,7 +3828,7 @@ global-prefix@^0.1.4:
is-windows "^0.2.0"
which "^1.2.12"
global@^4.3.0:
global@^4.3.0, global@~4.3.0:
version "4.3.2"
resolved "https://registry.yarnpkg.com/global/-/global-4.3.2.tgz#e76989268a6c74c38908b1305b10fc0e394e9d0f"
dependencies:
@ -3938,6 +4045,10 @@ har-schema@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e"
har-schema@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92"
har-validator@~4.2.1:
version "4.2.1"
resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a"
@ -3945,6 +4056,13 @@ har-validator@~4.2.1:
ajv "^4.9.1"
har-schema "^1.0.5"
har-validator@~5.0.3:
version "5.0.3"
resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.0.3.tgz#ba402c266194f15956ef15e0fcf242993f6a7dfd"
dependencies:
ajv "^5.1.0"
har-schema "^2.0.0"
has-ansi@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
@ -4075,6 +4193,15 @@ hawk@3.1.3, hawk@~3.1.3:
hoek "2.x.x"
sntp "1.x.x"
hawk@~6.0.2:
version "6.0.2"
resolved "https://registry.yarnpkg.com/hawk/-/hawk-6.0.2.tgz#af4d914eb065f9b5ce4d9d11c1cb2126eecc3038"
dependencies:
boom "4.x.x"
cryptiles "3.x.x"
hoek "4.x.x"
sntp "2.x.x"
heavy@3.x.x:
version "3.0.1"
resolved "https://registry.yarnpkg.com/heavy/-/heavy-3.0.1.tgz#f2867e6e3515bf83ab1a8bb1e73e5d28e85ab3cd"
@ -4199,6 +4326,14 @@ http-signature@~1.1.0:
jsprim "^1.2.2"
sshpk "^1.7.0"
http-signature@~1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1"
dependencies:
assert-plus "^1.0.0"
jsprim "^1.2.2"
sshpk "^1.7.0"
https-browserify@0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-0.0.1.tgz#3f91365cabe60b77ed0ebba24b454e3e09d95a82"
@ -4219,6 +4354,10 @@ image-size@^0.5.1:
version "0.5.5"
resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c"
image-size@^0.6.0:
version "0.6.1"
resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.6.1.tgz#98122a562d59dcc097ef1b2c8191866eb8f5d663"
imagemin-pngquant@^5.0.0:
version "5.0.1"
resolved "https://registry.yarnpkg.com/imagemin-pngquant/-/imagemin-pngquant-5.0.1.tgz#d8a329da553afa226b11ce62debe0b7e37b439e6"
@ -4227,6 +4366,14 @@ imagemin-pngquant@^5.0.0:
is-png "^1.0.0"
pngquant-bin "^3.0.0"
imagemin-webp@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/imagemin-webp/-/imagemin-webp-4.0.0.tgz#a2caf32b5f52ad21b949a6fed8efc901daf7249d"
dependencies:
cwebp-bin "^3.1.0"
exec-buffer "^3.0.0"
is-cwebp-readable "^1.0.0"
imagemin@^5.2.2:
version "5.3.1"
resolved "https://registry.yarnpkg.com/imagemin/-/imagemin-5.3.1.tgz#f19c2eee1e71ba6c6558c515f9fc96680189a6d4"
@ -4415,6 +4562,12 @@ is-ci@^1.0.10:
dependencies:
ci-info "^1.0.0"
is-cwebp-readable@^1.0.0:
version "1.0.3"
resolved "https://registry.yarnpkg.com/is-cwebp-readable/-/is-cwebp-readable-1.0.3.tgz#9a8fde2bed77f3417ae9371258c58e2ec3285118"
dependencies:
file-type "^3.1.0"
is-data-descriptor@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56"
@ -4479,6 +4632,10 @@ is-fullwidth-code-point@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
is-function@^1.0.1, is-function@~1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.1.tgz#12cfb98b65b57dd3d193a3121f5f6e2f437602b5"
is-glob@^2.0.0, is-glob@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863"
@ -4723,6 +4880,27 @@ iterall@^1.1.0:
version "1.1.3"
resolved "https://registry.yarnpkg.com/iterall/-/iterall-1.1.3.tgz#1cbbff96204056dde6656e2ed2e2226d0e6d72c9"
jimp@^0.2.24:
version "0.2.28"
resolved "https://registry.yarnpkg.com/jimp/-/jimp-0.2.28.tgz#dd529a937190f42957a7937d1acc3a7762996ea2"
dependencies:
bignumber.js "^2.1.0"
bmp-js "0.0.3"
es6-promise "^3.0.2"
exif-parser "^0.1.9"
file-type "^3.1.0"
jpeg-js "^0.2.0"
load-bmfont "^1.2.3"
mime "^1.3.4"
mkdirp "0.5.1"
pixelmatch "^4.0.0"
pngjs "^3.0.0"
read-chunk "^1.0.1"
request "^2.65.0"
stream-to-buffer "^0.1.0"
tinycolor2 "^1.1.2"
url-regex "^3.0.0"
joi@6.x.x:
version "6.10.1"
resolved "https://registry.yarnpkg.com/joi/-/joi-6.10.1.tgz#4d50c318079122000fe5f16af1ff8e1917b77e06"
@ -4752,6 +4930,10 @@ joi@^9.1.1:
moment "2.x.x"
topo "2.x.x"
jpeg-js@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/jpeg-js/-/jpeg-js-0.2.0.tgz#53e448ec9d263e683266467e9442d2c5a2ef5482"
js-base64@^2.1.8, js-base64@^2.1.9:
version "2.3.2"
resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.3.2.tgz#a79a923666372b580f8e27f51845c6f7e8fbfbaf"
@ -4798,6 +4980,10 @@ json-loader@^0.5.2:
version "0.5.7"
resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.7.tgz#dca14a70235ff82f0ac9a3abeb60d337a365185d"
json-schema-traverse@^0.3.0:
version "0.3.1"
resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340"
json-schema@0.2.3:
version "0.2.3"
resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13"
@ -4978,6 +5164,18 @@ linked-list@0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/linked-list/-/linked-list-0.1.0.tgz#798b0ff97d1b92a4fd08480f55aea4e9d49d37bf"
load-bmfont@^1.2.3:
version "1.3.0"
resolved "https://registry.yarnpkg.com/load-bmfont/-/load-bmfont-1.3.0.tgz#bb7e7c710de6bcafcb13cb3b8c81e0c0131ecbc9"
dependencies:
buffer-equal "0.0.1"
mime "^1.3.4"
parse-bmfont-ascii "^1.0.3"
parse-bmfont-binary "^1.0.5"
parse-bmfont-xml "^1.1.0"
xhr "^2.0.1"
xtend "^4.0.0"
load-json-file@^1.0.0, load-json-file@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0"
@ -5605,7 +5803,7 @@ mixin-deep@^1.2.0:
for-in "^1.0.2"
is-extendable "^0.1.1"
"mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1:
mkdirp@0.5.1, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1:
version "0.5.1"
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
dependencies:
@ -5901,7 +6099,7 @@ number-is-nan@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
oauth-sign@~0.8.1:
oauth-sign@~0.8.1, oauth-sign@~0.8.2:
version "0.8.2"
resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43"
@ -6116,6 +6314,21 @@ parse-asn1@^5.0.0:
evp_bytestokey "^1.0.0"
pbkdf2 "^3.0.3"
parse-bmfont-ascii@^1.0.3:
version "1.0.6"
resolved "https://registry.yarnpkg.com/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz#11ac3c3ff58f7c2020ab22769079108d4dfa0285"
parse-bmfont-binary@^1.0.5:
version "1.0.6"
resolved "https://registry.yarnpkg.com/parse-bmfont-binary/-/parse-bmfont-binary-1.0.6.tgz#d038b476d3e9dd9db1e11a0b0e53a22792b69006"
parse-bmfont-xml@^1.1.0:
version "1.1.3"
resolved "https://registry.yarnpkg.com/parse-bmfont-xml/-/parse-bmfont-xml-1.1.3.tgz#d6b66a371afd39c5007d9f0eeb262a4f2cce7b7c"
dependencies:
xml-parse-from-string "^1.0.0"
xml2js "^0.4.5"
parse-english@^4.0.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/parse-english/-/parse-english-4.1.0.tgz#1a642d955e375e1d4a50cc01957b13c7110b7a5c"
@ -6153,6 +6366,13 @@ parse-glob@^3.0.4:
is-extglob "^1.0.0"
is-glob "^2.0.0"
parse-headers@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/parse-headers/-/parse-headers-2.0.1.tgz#6ae83a7aa25a9d9b700acc28698cd1f1ed7e9536"
dependencies:
for-each "^0.3.2"
trim "0.0.1"
parse-json@^2.1.0, parse-json@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9"
@ -6291,6 +6511,10 @@ performance-now@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5"
performance-now@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
pez@1.x.x:
version "1.0.0"
resolved "https://registry.yarnpkg.com/pez/-/pez-1.0.0.tgz#844318a5ce7092eeddffa295e18079ac779fa018"
@ -6319,6 +6543,12 @@ pinkie@^2.0.0:
version "2.0.4"
resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870"
pixelmatch@^4.0.0:
version "4.0.2"
resolved "https://registry.yarnpkg.com/pixelmatch/-/pixelmatch-4.0.2.tgz#8f47dcec5011b477b67db03c243bc1f3085e8854"
dependencies:
pngjs "^3.0.0"
pixrem@^3.0.0:
version "3.0.2"
resolved "https://registry.yarnpkg.com/pixrem/-/pixrem-3.0.2.tgz#30d1bafb4c3bdce8e9bb4bd56a13985619320c34"
@ -6356,6 +6586,10 @@ pleeease-filters@^3.0.0:
onecolor "~2.4.0"
postcss "^5.0.4"
pngjs@^3.0.0:
version "3.3.0"
resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-3.3.0.tgz#1f5730c189c94933b81beda2ab2f8e2855263a8f"
pngquant-bin@^3.0.0:
version "3.1.1"
resolved "https://registry.yarnpkg.com/pngquant-bin/-/pngquant-bin-3.1.1.tgz#d124d98a75a9487f40c1640b4dbfcbb2bd5a1fd1"
@ -6870,6 +7104,12 @@ postcss@^6.0.1:
source-map "^0.6.1"
supports-color "^4.4.0"
potrace@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/potrace/-/potrace-2.1.1.tgz#79111a858197f366418845f667fe8f7fac0a79db"
dependencies:
jimp "^0.2.24"
prepend-http@^1.0.0, prepend-http@^1.0.1:
version "1.0.4"
resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc"
@ -6998,7 +7238,7 @@ qs@4.x.x:
version "4.0.0"
resolved "https://registry.yarnpkg.com/qs/-/qs-4.0.0.tgz#c31d9b74ec27df75e543a86c78728ed8d4623607"
qs@6.5.1:
qs@6.5.1, qs@~6.5.1:
version "6.5.1"
resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8"
@ -7159,6 +7399,10 @@ read-cache@^1.0.0:
dependencies:
pify "^2.3.0"
read-chunk@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/read-chunk/-/read-chunk-1.0.1.tgz#5f68cab307e663f19993527d9b589cace4661194"
read-pkg-up@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02"
@ -7572,6 +7816,33 @@ request@2, request@2.81.0, request@^2.58.0, request@^2.67.0, request@^2.74.0, re
tunnel-agent "^0.6.0"
uuid "^3.0.0"
request@^2.65.0:
version "2.83.0"
resolved "https://registry.yarnpkg.com/request/-/request-2.83.0.tgz#ca0b65da02ed62935887808e6f510381034e3356"
dependencies:
aws-sign2 "~0.7.0"
aws4 "^1.6.0"
caseless "~0.12.0"
combined-stream "~1.0.5"
extend "~3.0.1"
forever-agent "~0.6.1"
form-data "~2.3.1"
har-validator "~5.0.3"
hawk "~6.0.2"
http-signature "~1.2.0"
is-typedarray "~1.0.0"
isstream "~0.1.2"
json-stringify-safe "~5.0.1"
mime-types "~2.1.17"
oauth-sign "~0.8.2"
performance-now "^2.1.0"
qs "~6.5.1"
safe-buffer "^5.1.1"
stringstream "~0.0.5"
tough-cookie "~2.3.3"
tunnel-agent "^0.6.0"
uuid "^3.1.0"
require-directory@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
@ -7747,7 +8018,7 @@ sass-loader@^4.1.1:
loader-utils "^0.2.15"
object-assign "^4.1.0"
sax@~1.2.1:
sax@>=0.6.0, sax@~1.2.1:
version "1.2.4"
resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
@ -8009,6 +8280,12 @@ sntp@1.x.x:
dependencies:
hoek "2.x.x"
sntp@2.x.x:
version "2.1.0"
resolved "https://registry.yarnpkg.com/sntp/-/sntp-2.1.0.tgz#2c6cec14fedc2222739caf9b5c3d85d1cc5a2cc8"
dependencies:
hoek "4.x.x"
socket.io-adapter@~1.1.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz#2a805e8a14d6372124dd9159ad4502f8cb07f06b"
@ -8320,6 +8597,16 @@ stream-shift@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952"
stream-to-buffer@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/stream-to-buffer/-/stream-to-buffer-0.1.0.tgz#26799d903ab2025c9bd550ac47171b00f8dd80a9"
dependencies:
stream-to "~0.2.0"
stream-to@~0.2.0:
version "0.2.2"
resolved "https://registry.yarnpkg.com/stream-to/-/stream-to-0.2.2.tgz#84306098d85fdb990b9fa300b1b3ccf55e8ef01d"
strict-uri-encode@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713"
@ -8370,7 +8657,7 @@ stringify-entities@^1.0.1:
is-alphanumerical "^1.0.0"
is-hexadecimal "^1.0.0"
stringstream@~0.0.4:
stringstream@~0.0.4, stringstream@~0.0.5:
version "0.0.5"
resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878"
@ -8473,7 +8760,7 @@ supports-color@^4.0.0, supports-color@^4.4.0:
dependencies:
has-flag "^2.0.0"
svgo@^0.7.0:
svgo@^0.7.0, svgo@^0.7.2:
version "0.7.2"
resolved "https://registry.yarnpkg.com/svgo/-/svgo-0.7.2.tgz#9f5772413952135c6fefbf40afe6a4faa88b4bb5"
dependencies:
@ -8633,6 +8920,10 @@ timers-browserify@^2.0.2:
dependencies:
setimmediate "^1.0.4"
tinycolor2@^1.1.2:
version "1.4.1"
resolved "https://registry.yarnpkg.com/tinycolor2/-/tinycolor2-1.4.1.tgz#f4fad333447bc0b07d4dc8e9209d8f39a8ac77e8"
tmp@^0.0.33:
version "0.0.33"
resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"
@ -8698,7 +8989,7 @@ topo@2.x.x:
dependencies:
hoek "4.x.x"
tough-cookie@~2.3.0:
tough-cookie@~2.3.0, tough-cookie@~2.3.3:
version "2.3.3"
resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.3.tgz#0b618a5565b6dea90bf3425d04d55edc475a7561"
dependencies:
@ -9028,7 +9319,7 @@ uuid@^2.0.1:
version "2.0.3"
resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a"
uuid@^3.0.0, uuid@^3.0.1:
uuid@^3.0.0, uuid@^3.0.1, uuid@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.1.0.tgz#3dd3d3e790abc24d7b0d3a034ffababe28ebbc04"
@ -9413,6 +9704,30 @@ x-is-string@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/x-is-string/-/x-is-string-0.1.0.tgz#474b50865af3a49a9c4657f05acd145458f77d82"
xhr@^2.0.1:
version "2.4.0"
resolved "https://registry.yarnpkg.com/xhr/-/xhr-2.4.0.tgz#e16e66a45f869861eeefab416d5eff722dc40993"
dependencies:
global "~4.3.0"
is-function "^1.0.1"
parse-headers "^2.0.0"
xtend "^4.0.0"
xml-parse-from-string@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz#a9029e929d3dbcded169f3c6e28238d95a5d5a28"
xml2js@^0.4.5:
version "0.4.19"
resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.19.tgz#686c20f213209e94abf0d1bcf1efaa291c7827a7"
dependencies:
sax ">=0.6.0"
xmlbuilder "~9.0.1"
xmlbuilder@~9.0.1:
version "9.0.4"
resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.4.tgz#519cb4ca686d005a8420d3496f3f0caeecca580f"
xmlhttprequest-ssl@~1.5.4:
version "1.5.4"
resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.4.tgz#04f560915724b389088715cc0ed7813e9677bf57"