Skip to content

Commit 2bbd4e6

Browse files
committed
refactor: add content pages back in
1 parent 75a0293 commit 2bbd4e6

10 files changed

+358
-12
lines changed
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
---
2+
title: Making sense of the SCAA’s new Flavor Wheel
3+
date: 2016-12-17T15:04:10.000Z
4+
description: The Coffee Taster’s Flavor Wheel, the official resource used by coffee tasters, has been revised for the first time this year.
5+
tags:
6+
- flavor
7+
- tasting
8+
---
9+
![flavor wheel](/img/flavor_wheel.jpg)
10+
11+
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.
12+
13+
While this is going to be a big change for professional coffee tasters, it means a lot to you as a consumer as well. We’ll explain how the wheel came to be, how pros use it and what the flavors actually mean.
14+
15+
## What the updates mean to you
16+
17+
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:
18+
19+
* producers
20+
* roasters
21+
* importers/exporters
22+
* retailers
23+
* manufacturers
24+
* baristas
25+
26+
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.
27+
28+
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.
29+
30+
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.
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
---
2+
title: A beginners’ guide to brewing with Chemex
3+
date: 2017-01-04T15:04:10.000Z
4+
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.
5+
tags:
6+
- brewing
7+
- chemex
8+
---
9+
![chemex](/img/chemex.jpg)
10+
11+
This week we’ll **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.
12+
13+
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.
14+
15+
## The little secrets of Chemex brewing
16+
17+
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. Here’s three important tips newbies forget about:
18+
19+
1. Always buy dedicated Chemex filters.
20+
2. Use a scale, don’t try to eyeball it.
21+
3. Never skip preheating the glass.
22+
4. Timing is key, don’t forget the clock.
23+
24+
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.
25+
26+
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.
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
---
2+
title: 'Just in: small batch of Jamaican Blue Mountain in store next week'
3+
date: 2017-01-04T15:04:10.000Z
4+
description: >-
5+
We’re proud to announce that we’ll be offering a small batch of Jamaica Blue
6+
Mountain coffee beans in our store next week.
7+
tags:
8+
- jamaica
9+
- green beans
10+
- flavor
11+
- tasting
12+
---
13+
14+
We expect the shipment of a limited quantity of green beans next Monday. We’ll be offering the roasted beans from Tuesday, but quantities are limited, so be quick.
15+
16+
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.
17+
18+
## A little history
19+
20+
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 3–4 hour hike is usually undertaken in darkness. Since the sky is usually very clear in the mornings, Cuba can be seen in the distance.
21+
22+
>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.
23+
24+
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.
25+
26+
## What you need to know before trying
27+
28+
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.
29+
30+
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.
31+
32+
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.

content/blog/2020-09-08-blog-test.md

Lines changed: 0 additions & 12 deletions
This file was deleted.

pages/about.vue

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
<template>
2+
<div
3+
class="px-8 mx-auto mt-12 prose sm:px-6 md:px-4 lg:px-2 xl:px-0 xl:prose-xl lg:prose-lg md:prose-md"
4+
>
5+
<h1>{{ page.title }}</h1>
6+
<nuxt-content :document="page" />
7+
</div>
8+
</template>
9+
10+
<script>
11+
export default {
12+
async asyncData({ $content }) {
13+
const page = await $content('about').fetch()
14+
15+
return {
16+
page,
17+
}
18+
},
19+
}
20+
</script>

pages/contact/index.vue

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
<template>
2+
<div
3+
class="px-8 mx-auto mt-12 prose sm:px-6 md:px-4 lg:px-2 xl:px-0 xl:prose-xl lg:prose-lg md:prose-md"
4+
>
5+
<h2>Contact</h2>
6+
<form
7+
name="contact"
8+
method="post"
9+
action="/contact/thanks"
10+
data-netlify="true"
11+
data-netlify-honeypot="bot-field"
12+
netlify
13+
>
14+
<input type="hidden" name="form-name" value="contact" />
15+
<input class="hidden" name="bot-field" value="" />
16+
<label class="label" for="name">Your name</label>
17+
<div class="control">
18+
<input
19+
id="name"
20+
class="w-full border rounded"
21+
type="text"
22+
name="name"
23+
required
24+
/>
25+
</div>
26+
<label class="label" htmlFor="email">Email</label>
27+
<div class="control">
28+
<input
29+
id="email"
30+
class="w-full border rounded"
31+
type="email"
32+
name="email"
33+
required
34+
/>
35+
</div>
36+
<label class="label" htmlFor="message">Message</label>
37+
<div class="control">
38+
<textarea
39+
id="message"
40+
class="w-full h-32 border rounded resize-none"
41+
name="message"
42+
required
43+
/>
44+
</div>
45+
<div class="text-right">
46+
<button class="px-6 py-1 border border-gray-200 rounded" type="reset">
47+
Cancel
48+
</button>
49+
<button class="px-6 py-1 text-white rounded bg-kaldi" type="submit">
50+
Send
51+
</button>
52+
</div>
53+
</form>
54+
</div>
55+
</template>
56+
57+
<script>
58+
export default {}
59+
</script>

pages/contact/thanks.vue

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<template>
2+
<div
3+
class="px-8 mx-auto mt-12 prose sm:px-6 md:px-4 lg:px-2 xl:px-0 xl:prose-xl lg:prose-lg md:prose-md"
4+
>
5+
<h2>Thank you!</h2>
6+
<p>This is a custom thank you page for form submissions</p>
7+
</div>
8+
</template>
9+
10+
<script>
11+
export default {}
12+
</script>

pages/products.vue

Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
<template>
2+
<div>
3+
<Hero :heading="page.title" :image="page.image" />
4+
<div
5+
class="px-8 mx-auto mt-12 prose sm:px-6 md:px-4 lg:px-2 xl:px-0 xl:prose-xl lg:prose-lg md:prose-md"
6+
>
7+
<h2>
8+
{{ page.heading }}
9+
</h2>
10+
<p>
11+
{{ page.description }}
12+
</p>
13+
<div class="lg:grid lg:grid-cols-2 lg:gap-8">
14+
<div
15+
v-for="(blurb, index) in page.intro.blurbs"
16+
:key="index"
17+
class="flex flex-col items-center justify-top"
18+
>
19+
<img class="h-32" :src="blurb.image" />
20+
<p class="mt-2 text-justify">{{ blurb.text }}.</p>
21+
</div>
22+
</div>
23+
<h3>
24+
{{ page.main.heading }}
25+
</h3>
26+
<p>
27+
{{ page.main.description }}
28+
</p>
29+
<div class="lg:grid lg:grid-cols-2 lg:gap-4">
30+
<img
31+
class="rounded-lg"
32+
:src="page.main.image1.image"
33+
:alt="page.main.image1.alt"
34+
/>
35+
<img
36+
class="rounded-lg"
37+
:src="page.main.image2.image"
38+
:alt="page.main.image2.alt"
39+
/>
40+
</div>
41+
<div class="lg:grid lg:grid-cols-1 lg:gap-4">
42+
<img
43+
class="rounded-lg"
44+
:src="page.main.image3.image"
45+
:alt="page.main.image3.alt"
46+
/>
47+
</div>
48+
<div>
49+
<p
50+
v-for="(testimonial, index) in page.testimonials"
51+
:key="index"
52+
class="inline-block w-full p-6 text-base bg-gray-100 border-l-4 border-gray-300 rounded-lg"
53+
>
54+
{{ testimonial.quote }}<br />
55+
–{{ testimonial.author }}
56+
</p>
57+
</div>
58+
</div>
59+
<Hero :image="page.full_image" />
60+
<div
61+
class="px-8 mx-auto mt-12 prose sm:px-6 md:px-4 lg:px-2 xl:px-0 xl:prose-2xl lg:prose-xl md:prose-lg"
62+
>
63+
<h3>
64+
{{ page.pricing.heading }}
65+
</h3>
66+
<p>
67+
{{ page.pricing.description }}
68+
</p>
69+
<div class="lg:grid lg:grid-cols-3 lg:gap-8">
70+
<div v-for="(plan, i) in page.pricing.plans" :key="i">
71+
<h4 class="text-center">
72+
{{ plan.plan }}
73+
</h4>
74+
<p class="text-4xl font-bold text-center text-kaldi">
75+
${{ plan.price }}
76+
</p>
77+
<p class="text-base">{{ plan.description }}</p>
78+
<ul class="text-base">
79+
<li v-for="(item, j) in plan.items" :key="j">
80+
{{ item }}
81+
</li>
82+
</ul>
83+
</div>
84+
</div>
85+
</div>
86+
</div>
87+
</template>
88+
89+
<script>
90+
export default {
91+
async asyncData({ $content }) {
92+
const page = await $content('products').fetch()
93+
94+
return {
95+
page,
96+
}
97+
},
98+
}
99+
</script>

pages/tags/_slug.vue

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
<template>
2+
<div>
3+
<div
4+
class="px-8 mx-auto mt-12 prose sm:px-6 md:px-4 lg:px-2 xl:px-0 xl:prose-xl lg:prose-lg md:prose-md"
5+
>
6+
<h4>{{ posts.length }} post tagged with "{{ slug }}"</h4>
7+
<div class="lg:grid lg:grid-cols-1 lg:gap-8">
8+
<div
9+
v-for="(post, index) in posts"
10+
:key="index"
11+
class="px-6 no-underline bg-gray-200 rounded-lg shadow-lg"
12+
>
13+
<h3>
14+
<nuxt-link :to="`/blog/${post.slug}`">{{ post.title }}</nuxt-link>
15+
</h3>
16+
<p>
17+
{{ post.description }}
18+
</p>
19+
<p>
20+
<nuxt-link :to="`/blog/${post.slug}`">Read more</nuxt-link>
21+
</p>
22+
</div>
23+
</div>
24+
<p>
25+
<nuxt-link to="/tags">Browse all tags</nuxt-link>
26+
</p>
27+
</div>
28+
</div>
29+
</template>
30+
31+
<script>
32+
export default {
33+
async asyncData({ $content, params: { slug } }) {
34+
const posts = await $content('blog')
35+
.where({ tags: { $contains: slug } })
36+
.fetch()
37+
38+
return {
39+
slug,
40+
posts,
41+
}
42+
},
43+
}
44+
</script>

pages/tags/index.vue

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
<template>
2+
<div
3+
class="px-8 mx-auto mt-12 prose sm:px-6 md:px-4 lg:px-2 xl:px-0 xl:prose-xl lg:prose-lg md:prose-md"
4+
>
5+
<h1>Tags</h1>
6+
<ul>
7+
<li v-for="(slugs, index) in tags" :key="index">
8+
<nuxt-link :to="`/tags/${index}`">
9+
{{ index }} ({{ slugs.length }})
10+
</nuxt-link>
11+
</li>
12+
</ul>
13+
</div>
14+
</template>
15+
16+
<script>
17+
export default {
18+
async asyncData({ $content }) {
19+
const posts = await $content('blog').fetch()
20+
21+
const tags = {}
22+
23+
posts.forEach(({ slug, tags: postTags }) => {
24+
postTags.forEach((tag) => {
25+
if (typeof tags[tag] === 'undefined') tags[tag] = []
26+
tags[tag].push(slug)
27+
})
28+
})
29+
30+
return {
31+
tags,
32+
posts,
33+
}
34+
},
35+
}
36+
</script>

0 commit comments

Comments
 (0)