Commit b8dd9b8b authored by TImothee Gosselin's avatar TImothee Gosselin

initial commit

parents
{
"presets": ["es2015", "react"],
"plugins": [
"syntax-object-rest-spread",
"transform-object-rest-spread"
]
}
env:
browser: true
parser: babel-eslint
plugins: [ "import" ]
# enable ECMAScript features
ecmaFeatures:
arrowFunctions: true
binaryLiterals: true
blockBindings: true
classes: true
defaultParams: true
destructuring: true
forOf: true
generators: true
jsx: true
modules: true
objectLiteralShorthandMethods: true
objectLiteralShorthandProperties: true
octalLiterals: true
spread: true
templateStrings: true
rules:
# Possible Errors
# https://github.com/eslint/eslint/tree/master/docs/rules#possible-errors
no-control-regex: 2
no-console: 1
no-debugger: 2
no-dupe-args: 2
no-dupe-keys: 2
no-duplicate-case: 2
no-empty-character-class: 2
no-ex-assign: 2
no-extra-boolean-cast : 2
no-extra-semi: 2
no-invalid-regexp: 2
no-irregular-whitespace: 1
no-proto: 2
no-unexpected-multiline: 2
no-unreachable: 2
valid-typeof: 2
# Best Practices
# https://github.com/eslint/eslint/tree/master/docs/rules#best-practices
no-fallthrough: 2
no-redeclare: 2
# Stylistic Issues
# https://github.com/eslint/eslint/tree/master/docs/rules#stylistic-issues
comma-spacing: 2
eol-last: 2
eqeqeq: ["error", "smart"]
indent: [2, 2, {SwitchCase: 1}]
keyword-spacing: 2
max-len: [1, 160, 2]
new-parens: 2
no-mixed-spaces-and-tabs: 2
no-multiple-empty-lines: [2, {max: 2}]
no-trailing-spaces: 2
object-curly-spacing: [2, "never"]
quotes: [2, "double", "avoid-escape"]
semi: 2
space-before-blocks: [2, "always"]
space-before-function-paren: [2, "never"]
space-in-parens: [2, "never"]
space-infix-ops: 2
space-unary-ops: 2
# ECMAScript 6
# http://eslint.org/docs/rules/#ecmascript-6
arrow-parens: [2, "always"]
arrow-spacing: [2, {"before": true, "after": true}]
no-confusing-arrow: 2
prefer-const: 2
# JSX
jsx-quotes: [2, "prefer-double"]
# Import
import/no-unresolved: [1, {"commonjs": true, "amd": true}]
import/export: 2
# Strict Mode
# https://github.com/eslint/eslint/tree/master/docs/rules#strict-mode
strict: [2, "global"]
# Variables
# https://github.com/eslint/eslint/tree/master/docs/rules#variables
no-undef: 2
no-unused-vars: [2, {"args": "none"}]
# Global scoped method and vars
globals:
__dirname: true
require: true
process: true
ENV: true
module: true
node_modules/
dist/
/npm-debug.log
yarn-error.log
Copyright (c) 2016 Netlify <hello@netlify.com>
MIT License
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
# Hugo template for Netlify CMS with Netlify Identity
This is a small business template built with [Victor Hugo](https://github.com/netlify/victor-hugo) and [Netlify CMS](https://github.com/netlify/netlify-cms), designed and developed by [Darin Dimitroff](http://www.darindimitroff.com/), [spacefarm.digital](https://www.spacefarm.digital).
## Getting started
Use our deploy button to get your own copy of the repository.
[![Deploy to Netlify](https://www.netlify.com/img/deploy/button.svg)](https://app.netlify.com/start/deploy?repository=https://github.com/netlify-templates/one-click-hugo-cms&stack=cms)
This will setup everything needed for running the CMS:
* A new repository in your GitHub account with the code
* Full Continuous Deployment to Netlify's global CDN network
* Control users and access with Netlify Identity
* Manage content with Netlify CMS
Once the initial build finishes, you can invite yourself as a user. Go to the Identity tab in your new site, click "Invite" and send yourself an invite.
Now you're all set, and you can start editing content!
## Local Development
Clone this repository, and run `yarn` or `npm install` from the new folder to install all required dependencies.
Then start the development server with `yarn start` or `npm start`.
## Layouts
The template is based on small, content-agnostic partials that can be mixed and matched. The pre-built pages showcase just a few of the possible combinations. Refer to the `site/layouts/partials` folder for all available partials.
Use Hugo’s `dict` functionality to feed content into partials and avoid repeating yourself and creating discrepancies.
## CSS
The template uses a custom fork of Tachyons and PostCSS with cssnext and cssnano. To customize the template for your brand, refer to `src/css/imports/_variables.css` where most of the important global variables like colors and spacing are stored.
## SVG
All SVG icons stored in `site/static/img/icons` are automatically optimized with SVGO (gulp-svgmin) and concatenated into a single SVG sprite stored as a a partial called `svg.html`. Make sure you use consistent icons in terms of viewport and art direction for optimal results. Refer to an SVG via the `<use>` tag like so:
```
<svg width="16px" height="16px" class="db">
<use xlink:href="#SVG-ID"></use>
</svg>
```
File added
File added
File added
import gulp from "gulp";
import cp from "child_process";
import gutil from "gulp-util";
import postcss from "gulp-postcss";
import cssImport from "postcss-import";
import cssnext from "postcss-cssnext";
import BrowserSync from "browser-sync";
import webpack from "webpack";
import webpackConfig from "./webpack.conf";
import svgstore from "gulp-svgstore";
import svgmin from "gulp-svgmin";
import inject from "gulp-inject";
import cssnano from "cssnano";
const browserSync = BrowserSync.create();
const hugoBin = `./bin/hugo.${process.platform === "win32" ? "exe" : process.platform}`;
const defaultArgs = ["-d", "../dist", "-s", "site"];
if (process.env.DEBUG) {
defaultArgs.unshift("--debug")
}
gulp.task("hugo", (cb) => buildSite(cb));
gulp.task("hugo-preview", (cb) => buildSite(cb, ["--buildDrafts", "--buildFuture"]));
gulp.task("build", ["css", "js", "hugo"]);
gulp.task("build-preview", ["css", "js", "hugo-preview"]);
gulp.task("css", () => (
gulp.src("./src/css/*.css")
.pipe(postcss([
cssImport({from: "./src/css/main.css"}),
cssnext(),
cssnano(),
]))
.pipe(gulp.dest("./dist/css"))
.pipe(browserSync.stream())
));
gulp.task("js", (cb) => {
const myConfig = Object.assign({}, webpackConfig);
webpack(myConfig, (err, stats) => {
if (err) throw new gutil.PluginError("webpack", err);
gutil.log("[webpack]", stats.toString({
colors: true,
progress: true
}));
browserSync.reload();
cb();
});
});
gulp.task("svg", () => {
const svgs = gulp
.src("site/static/img/icons-*.svg")
.pipe(svgmin())
.pipe(svgstore({inlineSvg: true}));
function fileContents(filePath, file) {
return file.contents.toString();
}
return gulp
.src("site/layouts/partials/svg.html")
.pipe(inject(svgs, {transform: fileContents}))
.pipe(gulp.dest("site/layouts/partials/"));
});
gulp.task("server", ["hugo", "css", "js", "svg"], () => {
browserSync.init({
server: {
baseDir: "./dist"
}
});
gulp.watch("./src/js/**/*.js", ["js"]);
gulp.watch("./src/css/**/*.css", ["css"]);
gulp.watch("./site/static/img/icons-*.svg", ["svg"]);
gulp.watch("./site/**/*", ["hugo"]);
});
function buildSite(cb, options) {
const args = options ? defaultArgs.concat(options) : defaultArgs;
return cp.spawn(hugoBin, args, {stdio: "inherit"}).on("close", (code) => {
if (code === 0) {
browserSync.reload("notify:false");
cb();
} else {
browserSync.notify("Hugo build failed :(");
cb("Hugo build failed");
}
});
}
[build]
command = "yarn build"
publish = "dist"
[build.environment]
YARN_VERSION = "1.9.4"
[context.deploy-preview]
command = "yarn build-preview"
{
"name": "victor-hugo",
"version": "1.0.0",
"description": "Victor Hugo is a Hugo boilerplate for creating truly epic websites!",
"main": "index.js",
"scripts": {
"hugo": "gulp hugo",
"webpack": "gulp webpack",
"build": "gulp build",
"build-preview": "gulp build-preview",
"start": "gulp server",
"lint": "eslint src"
},
"author": "",
"license": "MIT",
"dependencies": {
"babel-core": "^6.26.3",
"babel-eslint": "^8.0.0",
"babel-loader": "^7.0.0",
"babel-plugin-syntax-object-rest-spread": "^6.13.0",
"babel-plugin-transform-class-properties": "^6.10.2",
"babel-plugin-transform-object-assign": "^6.8.0",
"babel-plugin-transform-object-rest-spread": "^6.8.0",
"babel-preset-es2015": "^6.9.0",
"babel-preset-react": "^6.11.1",
"babel-register": "^6.11.6",
"browser-sync": "^2.13.0",
"css-loader": "^1.0.0",
"cssnano": "^4.0.0",
"date-fns": "^1.27.2",
"eslint": "^5.0.0",
"eslint-plugin-import": "^2.0.0",
"exports-loader": "^0.7.0",
"file-loader": "^2.0.0",
"gotrue-js": "^0.9.1",
"gulp": "^3.9.1",
"gulp-babel": "^7.0.0",
"gulp-postcss": "^8.0.0",
"gulp-util": "^3.0.7",
"imports-loader": "^0.8.0",
"netlify-cms": "^2.0.9",
"postcss-cssnext": "^3.0.0",
"postcss-import": "^12.0.0",
"postcss-loader": "^3.0.0",
"postcss-uncss": "^0.16.0",
"react": "16.4.2",
"uncss": "^0.16.0",
"url-loader": "^1.0.0",
"webpack": "^3.0.0",
"whatwg-fetch": "^2.0.0"
},
"devDependencies": {
"gulp-inject": "^4.2.0",
"gulp-svgmin": "^1.2.3",
"gulp-svgstore": "^6.1.0",
"svg-sprite-loader": "^3.0.0"
}
}
{
"extends": [
"config:base"
],
"rangeStrategy": "replace",
"lockFileMaintenance": {
"enabled": true,
"extends": "schedule:weekly"
}
}
baseurl = "/"
languageCode = "en-us"
title = "Homepage"
---
title: "Great coffee with a conscience"
subtitle: Support sustainable farming while enjoying a cup
image: /img/home-jumbotron.jpg
blurb:
heading: Why Kaldi?
text: "Kaldi is the coffee store for everyone who believes that great coffee shouldn't just taste good, it should do good too. We source all of our beans directly from small scale sustainable farmers and make sure part of the profits are reinvested in their communities."
intro:
heading: "What we offer"
text: "Kaldi is the ultimate spot for coffee lovers who want to learn about their java’s origin and support the farmers that grew it. We take coffee production, roasting and brewing seriously and we’re glad to pass that knowledge to anyone."
products:
- image: img/illustrations-coffee.svg
text: "We sell green and roasted coffee beans that are sourced directly from independent farmers and farm cooperatives. We’re 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.svg
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, you’ll find a gadget to fall in love with in our shop."
values:
heading: Our values
text: Coffee is an amazing part of human culture but it has a dark side too – one of colonialism and mindless abuse of natural resources and human lives. We want to turn this around and return the coffee trade to the drink’s exhilarating, empowering and unifying nature.
---
---
title: "Contact"
logo: "/img/logo.svg"
contact_entries:
- heading: Location
text: "3153 Lynn Avenue, South San Francisco, California 94080"
- heading: Working hours
text: "Monday Saturday: 9AM 7PM We’re closed on Sundays"
---
We’d love to get in touch with you and hear your ideas and
questions. We strive to grow and improve constantly and your feedback
is valuable for us.
<h3 class="f4 b lh-title mb2">How can I get…?</h3>
You can also use the form below for any inquiries about coffee
availability, monthly subscriptions and scheduling a 1-on-1 session
with our baristas. Don’t be shy, drop us a line!
---
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.
image: /img/blog-chemex.jpg
---
This [week](/wdwdw) 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\*.
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. Here’s three important tips newbies forget about:
1. Always buy dedicated Chemex filters.
2. Use a scale, don’t try to eyeball it.
3. Never skip preheating the glass.
4. Timing is key, don’t 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.
---
title: 'Just in: small batch of Jamaican Blue Mountain in store next week'
date: 2017-01-04T15:04:10.000Z
description: >-
We’re proud to announce that we’ll 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. We’ll 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 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.
>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.
---
title: "Making sense of the SCAA’s new Flavor Wheel"
date: 2016-12-17T15:04:10.000Z
description: The Coffee Taster’s Flavor Wheel, the official resource used by coffee tasters, has been revised for the first time this year.
image: /img/blog-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. We’ll 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.
---
title: Our Coffee
type: products
image: /img/products-jumbotron.jpg
heading: What we offer
description: >-
Kaldi is the ultimate spot for coffee lovers who want to learn about their
java’s origin and support the farmers that grew it. We take coffee production,
roasting and brewing seriously and we’re glad to pass that knowledge to
anyone.
intro:
blurbs:
- image: /img/illustrations-coffee.svg
text: >
We sell green and roasted coffee beans that are sourced directly from
independent farmers and farm cooperatives. We’re 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.svg
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, you’ll find a gadget
to fall in love with in our shop.
- image: /img/illustrations-tutorials.svg
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, we’re 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.svg
text: >
We believe that good coffee has the power to bring people together.
That’s 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
java’s origin and support the farmers that grew it. We take coffee
production, roasting and brewing seriously and we’re 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.
That’s why we’re meticulous and transparent about each step of the coffee’s
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-grid3.jpg
image2:
alt: A green cup of a coffee on a wooden table
image: /img/products-grid2.jpg
image3:
alt: Coffee beans
image: /img/products-grid1.jpg
testimonials:
- author: Elisabeth Kaurismäki
quote: >-
The first time I tried Kaldi’s coffee, I couldn’t even believe that was
the same thing I’ve 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-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-nsoving 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: '?'
---
---
title: "Values"
image: /img/about-jumbotron.jpg
values:
- heading: "Shade-grown coffee"
text: >
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.
imageUrl: "/img/about-shade-grown.jpg"
- heading: "Single origin"
text: >
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.
imageUrl: "/img/about-single-origin.jpg"
- heading: "Sustainable farming"
text: >
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.
imageUrl: "/img/about-sustainable-farming.jpg"
- heading: "Direct sourcing"
text: >
We want to truly empower the communities that bring amazing
coffee to you. That’s 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.
imageUrl: "/img/about-direct-sourcing.jpg"
- heading: "Reinvest profits"
text: >
We want to truly empower the communities that bring amazing
coffee to you. That’s 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.
imageUrl: "/img/about-reinvest-profits.jpg"
---
<!doctype html>
<html lang="en">
{{ partial "head" . }}
<body class="sans-serif">
{{ partial "nav" . }}
{{ block "main" . }}{{ end }}
{{ partial "footer" . }}
</body>
</html>
\ No newline at end of file
<a href="{{ .Permalink }}" class="no-underline pa3 bg-grey-1 br1 mb2 db raise w-100">
<h2 class="f3 b lh-title mb1 primary">{{ .Title }}</h2>
<p class="mid-gray lh-title mb2">{{ .Date.Format "Mon, Jan 2, 2006" }}</p>
<p class="mb0">{{ .Description }}</p>
<p class="link b dib black mb0">Read more →</p>
</a>
{{ define "main" }}
{{ partial "jumbotron" (dict "imageUrl" "/img/blog-index.jpg" "title" "Latest stories") }}
<div class="mw7 center">