You just hit a route that doesn't exist... the sadness.
7 |
8 | );
9 |
10 | export default NotFoundPage;
11 |
--------------------------------------------------------------------------------
/content/parts/author.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: author
3 | ---
4 |
5 | **Mr. Gatsby** Proin ornare ligula eu tellus tempus elementum. Aenean [bibendum](/) iaculis mi, nec blandit lacus interdum vitae. Vestibulum non nibh risus, a scelerisque purus. Blandit lacus interdum vitae. Vestibulum non nibh risus, a scelerisque purus.
6 |
--------------------------------------------------------------------------------
/src/images/svg-icons/facebook.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/images/svg-icons/email.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/.editorconfig:
--------------------------------------------------------------------------------
1 | # EditorConfig helps developers define and maintain consistent
2 | # coding styles between different editors and IDEs
3 | # editorconfig.org
4 |
5 | root = true
6 |
7 | [*]
8 |
9 | # Change these settings to your own preference
10 | indent_style = space
11 | indent_size = 2
12 |
13 | # We recommend you to keep these unchanged
14 | end_of_line = lf
15 | charset = utf-8
16 | trim_trailing_whitespace = true
17 | insert_final_newline = true
18 |
--------------------------------------------------------------------------------
/content/parts/footnote.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: footnote
3 | ---
4 |
5 | * it's a demo site of the [gatsby-starter-hero-blog](https://github.com/greglobinski/gatsby-starter-hero-blog)
6 | * built by [greg lobinski](https://www.greglobinski.com)
7 | * Check [Front-end web development with Greg](https://dev.greglobinski.com)
8 | * delivered by [Netlify](https://www.netlify.com/)
9 | * photos by [unsplash.com](https://unsplash.com)
10 | * graphic by [pixabay.com](https://pixabay.com)
11 |
--------------------------------------------------------------------------------
/src/images/svg-icons/twitter.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/static/_headers:
--------------------------------------------------------------------------------
1 | ## Created with gatsby-plugin-netlify
2 |
3 | /*
4 | X-Frame-Options: DENY
5 | X-XSS-Protection: 1; mode=block
6 | X-Content-Type-Options: nosniff
7 | /
8 | # Cache-Control: public, max-age=0, must-revalidate
9 | /*.js
10 | # Cache-Control: public, max-age=31536000, stale-while-revalidate=2592000
11 | /static/*
12 | Cache-Control: public, max-age=31536000, stale-while-revalidate=2592000
13 | /favicon.ico
14 | # Cache-Control: public, max-age=31536000, stale-while-revalidate=2592000
15 | /icons/*
16 | # Cache-Control: public, max-age=31536000, stale-while-revalidate=2592000
17 |
18 |
19 |
--------------------------------------------------------------------------------
/src/utils/helpers.js:
--------------------------------------------------------------------------------
1 | export function getScreenWidth() {
2 | if (typeof window !== `undefined`) {
3 | return window.innerWidth;
4 | }
5 | }
6 |
7 | export function isWideScreen() {
8 | if (typeof window !== `undefined`) {
9 | const windowWidth = window.innerWidth;
10 | const mediaQueryL = 1024;
11 |
12 | return windowWidth >= mediaQueryL;
13 | }
14 | }
15 |
16 | export function timeoutThrottlerHandler(timeouts, name, delay, handler) {
17 | if (!timeouts[name]) {
18 | timeouts[name] = setTimeout(() => {
19 | timeouts[name] = null;
20 | handler();
21 | }, delay);
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/src/images/svg-icons/webpack.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/content/pages/3--front-end-dev/index.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Front-end web development with Greg
3 | menuTitle: With Greg
4 | ---
5 |
6 | [Front-end web development with Greg](https://dev.greglobinski.com) is a blog I have just launched.
7 |
8 | It will be a home for all instruction and tutorial articles relating to my GatsbyJS starters. The dominant subject areas will be of course GatsbyJS but also ReactJS, EcmaScript 2015+ and CSS in JS.
9 |
10 | If you want to be informed about new content on the blog follow me on Twitter - [@greglobinski](https://twitter.com/greglobinski).
11 |
12 | Are you thinking about a particular subject, relating to the starters, I could write about? Tweet me.
13 |
--------------------------------------------------------------------------------
/src/images/svg-icons/gatsby.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/postcss.config.js:
--------------------------------------------------------------------------------
1 | module.exports = ctx => ({
2 | plugins: {
3 | "postcss-easy-media-query": {
4 | breakpoints: {
5 | tablet: 600,
6 | desktop: 1024
7 | }
8 | },
9 | "postcss-text-remove-gap": {
10 | defaultFontFamily: "Open Sans",
11 | defaultLineHeight: "0"
12 | },
13 | "postcss-nested": {},
14 | "postcss-cssnext": {}
15 | }
16 | });
17 |
18 | // "postcss-nested": {},
19 | // "postcss-sorting": {
20 | // order: ["custom-properties", "dollar-variables", "declarations", "at-rules", "rules"],
21 | // "properties-order": "alphabetical",
22 | // "unspecified-properties-position": "bottom"
23 | // },
24 | // "postcss-utilities": {},
25 | // "postcss-cssnext": {}
26 |
--------------------------------------------------------------------------------
/src/components/AsyncComponent/AsyncComponent.js:
--------------------------------------------------------------------------------
1 | import React from "react";
2 |
3 | function asyncComponent(getComponent, loadingComponent) {
4 | return class AsyncComponent extends React.Component {
5 | state = { component: null };
6 |
7 | componentDidMount() {
8 | if (!this.state.component) {
9 | getComponent().then(component => {
10 | this.setState({ component });
11 | });
12 | }
13 | }
14 | render() {
15 | const { component: Comp } = this.state;
16 | if (Comp) {
17 | return ;
18 | }
19 | return loadingComponent ? loadingComponent :
Loading...
;
20 | }
21 | };
22 | }
23 |
24 | export default asyncComponent;
25 |
--------------------------------------------------------------------------------
/src/components/Page/Page.js:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import PropTypes from "prop-types";
3 |
4 | import Headline from "../Article/Headline";
5 | import Bodytext from "../Article/Bodytext";
6 |
7 | const Page = props => {
8 | const {
9 | page: {
10 | html,
11 | frontmatter: { title }
12 | },
13 | theme
14 | } = props;
15 |
16 | return (
17 |
18 |
19 |
20 |
21 |
22 |
23 | );
24 | };
25 |
26 | Page.propTypes = {
27 | page: PropTypes.object.isRequired,
28 | theme: PropTypes.object.isRequired
29 | };
30 |
31 | export default Page;
32 |
--------------------------------------------------------------------------------
/src/images/svg-icons/github.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/content/pages/2--starters/index.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Other GatsbyJS starters
3 | menuTitle: Starters
4 | ---
5 |
6 | **HeroBlog** is not my first [GatsbyJS](https://www.gatsbyjs.org/) starter.
7 |
8 | ### PersonalBlog
9 |
10 | 
11 |
12 | A ready to use, easy to customize Gatsby starter with 'like app' layout transitions. [Demo](https://gatsby-starter-personal-blog.greglobinski.com/) | [Github repo](https://github.com/greglobinski/gatsby-starter-personal-blog)
13 |
14 | ### SimpleLanding
15 |
16 | 
17 |
18 | As the name says, it is a simple landing page starter.
19 | [Demo](https://gatsby-starter-simple-landing.greglobinski.com/) | [Github repo](https://github.com/greglobinski/gatsby-starter-simple-landing)
20 |
--------------------------------------------------------------------------------
/src/utils/algolia.js:
--------------------------------------------------------------------------------
1 | module.exports = function(chunksTotal, { node }) {
2 | const {
3 | fields: { slug },
4 | frontmatter: { title },
5 | internal: { content }
6 | } = node;
7 |
8 | const noEmojiContent = content.replace(//g, "");
9 |
10 | const contentChunks = chunkString(noEmojiContent, 5000);
11 | const record = { title, slug, content };
12 | const recordChunks = contentChunks.reduce((recordChunksTotal, contentChunksItem, idx) => {
13 | return [
14 | ...recordChunksTotal,
15 | { ...record, ...{ content: contentChunksItem }, objectID: `${slug}${idx}` }
16 | ];
17 | }, []);
18 |
19 | return [...chunksTotal, ...recordChunks];
20 | };
21 |
22 | function chunkString(str, length) {
23 | return str.match(new RegExp("(.|[\r\n]){1," + length + "}", "g"));
24 | }
25 |
--------------------------------------------------------------------------------
/src/components/Search/Hit.js:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import PropTypes from "prop-types";
3 | import { Link } from "gatsby";
4 |
5 | const Hit = props => {
6 | const { hit } = props;
7 |
8 | return (
9 |
10 | {hit.title}
11 |
12 | {/* --- STYLES --- */}
13 |
30 |
31 | );
32 | };
33 |
34 | Hit.propTypes = {
35 | hit: PropTypes.object.isRequired
36 | };
37 |
38 | export default Hit;
39 |
--------------------------------------------------------------------------------
/content/pages/4--privacy/index.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Privacy Policy
3 | ---
4 |
5 | Rviverra sodales ipsum gravida nec. Integer gravida nisi ut magna mollis molestie. Nullam pharetra accumsan sagittis. Proin tristique rhoncus orci, eget vulputate nisi sollicitudin et. Quisque lacus augue, mollis non mollis et, ullamcorper in purus. Morbi et sem orci.
6 |
7 | Praesent accumsan odio in ante ullamcorper id pellentesque mauris rhoncus. Duis vitae neque dolor. Duis sed purus at eros bibendum cursus nec a nulla. Donec turpis quam, ultricies id pretium sit amet, gravida eget leo.
8 |
9 | Fusce a metus eu diam varius congue nec nec sapien. Nunc convallis accumsan justo. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Donec malesuada vehicula lectus, viverra sodales ipsum gravida nec. Integer gravida nisi ut magna mollis molestie. Nullam pharetra accumsan sagittis. Proin tristique rhoncus orci, eget vulputate nisi sollicitudin et. Quisque lacus augue, mollis non mollis et, ullamcorper in purus. Morbi et sem orci.
10 |
--------------------------------------------------------------------------------
/src/components/Post/Comments.js:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import PropTypes from "prop-types";
3 | import FacebookProvider, { Comments as FBComments } from "react-facebook";
4 |
5 | import config from "../../../content/meta/config";
6 |
7 | const Comments = props => {
8 | const { facebook, slug, theme } = props;
9 |
10 | return (
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 | {/* --- STYLES --- */}
19 |
24 |
25 | );
26 | };
27 |
28 | Comments.propTypes = {
29 | slug: PropTypes.string.isRequired,
30 | facebook: PropTypes.object.isRequired,
31 | theme: PropTypes.object.isRequired
32 | };
33 |
34 | export default Comments;
35 |
--------------------------------------------------------------------------------
/content/pages/5--terms/index.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Terms and Conditions
3 | ---
4 |
5 | Fusce a metus eu diam varius congue nec nec sapien. Nunc convallis accumsan justo. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Donec malesuada vehicula lectus, viverra sodales ipsum gravida nec. Integer gravida nisi ut magna mollis molestie. Nullam pharetra accumsan sagittis. Proin tristique rhoncus orci, eget vulputate nisi sollicitudin et. Quisque lacus augue, mollis non mollis et, ullamcorper in purus. Morbi et sem orci.
6 |
7 | Rviverra sodales ipsum gravida nec. Integer gravida nisi ut magna mollis molestie. Nullam pharetra accumsan sagittis. Proin tristique rhoncus orci, eget vulputate nisi sollicitudin et. Quisque lacus augue, mollis non mollis et, ullamcorper in purus. Morbi et sem orci.
8 |
9 | Praesent accumsan odio in ante ullamcorper id pellentesque mauris rhoncus. Duis vitae neque dolor. Duis sed purus at eros bibendum cursus nec a nulla. Donec turpis quam, ultricies id pretium sit amet, gravida eget leo.
10 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2018 greglobinski
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
23 |
--------------------------------------------------------------------------------
/src/images/svg-icons/redux.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/content/pages/1--about/index.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: About
3 | ---
4 |
5 | This is a demo site of the [HeroBlog](https://github.com/greglobinski/gatsby-starter-hero-blog), a [GatsbyJS](https://www.gatsbyjs.org/) starter.
6 |
7 | ### Features:
8 |
9 | * Easy editable content in **Markdown** files (posts, pages and parts)
10 | * **CSS** with `styled-jsx` and `PostCSS`
11 | * **SEO** (sitemap generation, robot.txt, meta and OpenGraph Tags)
12 | * **Social** sharing (Twitter, Facebook, Google, LinkedIn)
13 | * **Comments** (Facebook)
14 | * **Images** lazy loading and `webp` support (gatsby-image)
15 | * Post **categories** (category based post list)
16 | * Full text **searching** (Algolia)
17 | * **Contact** form (Netlify form handling)
18 | * **RSS** feed
19 | * 100% **PWA** (manifest.webmanifest, offline support, favicons)
20 | * Google **Analytics**
21 | * App **favicons** generator (node script)
22 | * Easy customizable base **styles** via `theme` object generated from `yaml` file (fonts, colors, sizes)
23 | * React **v.16** (gatsby-plugin-react-next)
24 | * **Components** lazy loading (social sharing)
25 | * **ESLint** (google config)
26 | * **Prettier** code styling
27 | * Webpack `BundleAnalyzerPlugin`
28 |
--------------------------------------------------------------------------------
/src/components/Article/Article.js:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import PropTypes from "prop-types";
3 |
4 | const Article = props => {
5 | const { children, theme } = props;
6 |
7 | return (
8 |
9 | {children}
10 |
11 | {/* --- STYLES --- */}
12 |
32 |
33 | );
34 | };
35 |
36 | Article.propTypes = {
37 | children: PropTypes.node.isRequired,
38 | theme: PropTypes.object.isRequired
39 | };
40 |
41 | export default Article;
42 |
--------------------------------------------------------------------------------
/src/images/svg-icons/algolia.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/components/List/List.js:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import PropTypes from "prop-types";
3 | import { Link } from "gatsby";
4 |
5 | const List = props => {
6 | const { edges, theme } = props;
7 |
8 | return (
9 |
10 |
30 |
31 |
32 |
33 | )}
34 |
35 |
36 |
37 |
38 | {/* --- STYLES --- */}
39 |
49 |
50 | );
51 | };
52 |
53 | SearchPage.propTypes = {
54 | data: PropTypes.object.isRequired
55 | };
56 |
57 | export default SearchPage;
58 |
59 | //eslint-disable-next-line no-undef
60 | export const query = graphql`
61 | query SearchQuery {
62 | site {
63 | siteMetadata {
64 | algolia {
65 | appId
66 | searchOnlyApiKey
67 | indexName
68 | }
69 | facebook {
70 | appId
71 | }
72 | }
73 | }
74 | }
75 | `;
76 |
--------------------------------------------------------------------------------
/src/components/Seo/Seo.js:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import PropTypes from "prop-types";
3 | import Helmet from "react-helmet";
4 | import config from "../../../content/meta/config";
5 |
6 | const Seo = props => {
7 | const { data, facebook } = props;
8 | const postTitle = ((data || {}).frontmatter || {}).title;
9 | const postDescription = ((data || {}).frontmatter || {}).description;
10 | const postCover = ((data || {}).frontmatter || {}).cover;
11 | const postSlug = ((data || {}).fields || {}).slug;
12 |
13 | const title = postTitle ? `${postTitle} - ${config.shortSiteTitle}` : config.siteTitle;
14 | const description = postDescription ? postDescription : config.siteDescription;
15 | const image = postCover ? postCover : config.siteImage;
16 | const url = config.siteUrl + config.pathPrefix + postSlug;
17 |
18 | return (
19 |
25 | {/* General tags */}
26 | {title}
27 |
28 | {/* OpenGraph tags */}
29 |
30 |
31 |
32 |
33 |
34 |
35 | {/* Twitter Card tags */}
36 |
37 |
41 |
42 | );
43 | };
44 |
45 | Seo.propTypes = {
46 | data: PropTypes.object,
47 | facebook: PropTypes.object.isRequired
48 | };
49 |
50 | export default Seo;
51 |
--------------------------------------------------------------------------------
/scripts/generate-app-icons.sh:
--------------------------------------------------------------------------------
1 | #!bin/sh
2 |
3 | # Exit the script on any command with non 0 return code
4 | set -e
5 |
6 | npx sharp -i ./src/images/app-icons/icon.png -o ./static/icons/favicon-16x16.png resize 16
7 | npx sharp -i ./src/images/app-icons/icon.png -o ./static/icons/favicon-32x32.png resize 32
8 | npx sharp -i ./src/images/app-icons/icon.png -o ./static/icons/favicon-96x96.png resize 96
9 | npx sharp -i ./src/images/app-icons/icon.png -o ./static/icons/icon-512x512.png resize 512
10 | npx sharp -i ./src/images/app-icons/icon.png -o ./static/icons/icon-384x384.png resize 384
11 | npx sharp -i ./src/images/app-icons/icon.png -o ./static/icons/icon-256x256.png resize 256
12 | npx sharp -i ./src/images/app-icons/icon.png -o ./static/icons/icon-192x192.png resize 192
13 | npx sharp -i ./src/images/app-icons/icon.png -o ./static/icons/icon-144x144.png resize 144
14 | npx sharp -i ./src/images/app-icons/icon.png -o ./static/icons/icon-96x96.png resize 96
15 | npx sharp -i ./src/images/app-icons/icon.png -o ./static/icons/icon-48x48.png resize 48
16 | npx sharp -i ./src/images/app-icons/apple-icon.png -o ./static/icons/apple-icon-180x180.png resize 180
17 | npx sharp -i ./src/images/app-icons/apple-icon.png -o ./static/icons/apple-icon-152x152.png resize 152
18 | npx sharp -i ./src/images/app-icons/apple-icon.png -o ./static/icons/apple-icon-144x144.png resize 144
19 | npx sharp -i ./src/images/app-icons/apple-icon.png -o ./static/icons/apple-icon-120x120.png resize 120
20 | npx sharp -i ./src/images/app-icons/apple-icon.png -o ./static/icons/apple-icon-114x114.png resize 114
21 | npx sharp -i ./src/images/app-icons/apple-icon.png -o ./static/icons/apple-icon-76x76.png resize 76
22 | npx sharp -i ./src/images/app-icons/apple-icon.png -o ./static/icons/apple-icon-72x72.png resize 72
23 | npx sharp -i ./src/images/app-icons/apple-icon.png -o ./static/icons/apple-icon-60x60.png resize 60
24 | npx sharp -i ./src/images/app-icons/apple-icon.png -o ./static/icons/apple-icon-57x57.png resize 57
25 |
--------------------------------------------------------------------------------
/src/templates/PostTemplate.js:
--------------------------------------------------------------------------------
1 | import PropTypes from "prop-types";
2 | import React from "react";
3 | import { graphql } from "gatsby";
4 | require("prismjs/themes/prism-okaidia.css");
5 |
6 | import Seo from "../components/Seo";
7 | import Article from "../components/Article";
8 | import Post from "../components/Post";
9 | import { ThemeContext } from "../layouts";
10 |
11 | const PostTemplate = props => {
12 | const {
13 | data: {
14 | post,
15 | authornote: { html: authorNote },
16 | site: {
17 | siteMetadata: { facebook }
18 | }
19 | },
20 | pageContext: { next, prev }
21 | } = props;
22 |
23 | return (
24 |
25 |
26 | {theme => (
27 |
28 |
36 |
37 | )}
38 |
39 |
40 |
41 |
42 | );
43 | };
44 |
45 | PostTemplate.propTypes = {
46 | data: PropTypes.object.isRequired,
47 | pageContext: PropTypes.object.isRequired
48 | };
49 |
50 | export default PostTemplate;
51 |
52 | //eslint-disable-next-line no-undef
53 | export const postQuery = graphql`
54 | query PostBySlug($slug: String!) {
55 | post: markdownRemark(fields: { slug: { eq: $slug } }) {
56 | id
57 | html
58 | fields {
59 | slug
60 | prefix
61 | }
62 | frontmatter {
63 | title
64 | author
65 | category
66 | cover {
67 | childImageSharp {
68 | resize(width: 300) {
69 | src
70 | }
71 | }
72 | }
73 | }
74 | }
75 | authornote: markdownRemark(fileAbsolutePath: { regex: "/author/" }) {
76 | id
77 | html
78 | }
79 | site {
80 | siteMetadata {
81 | facebook {
82 | appId
83 | }
84 | }
85 | }
86 | }
87 | `;
88 |
--------------------------------------------------------------------------------
/content/posts/2017-10-09--i-am-so-clever/index.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: I am so clever that sometimes I don't understand a single word of what I am saying
3 | category: "testimonies"
4 | cover: photo-1507124484497-b7f446e65519.jpg
5 | author: greg lobinski
6 | ---
7 |
8 | 
9 |
10 | [The Big Oxmox](http://google.com) advised her not to do so, because there were thousands of bad Commas, wild Question Marks and devious Semikoli, but the Little Blind Text didn’t listen. She packed her seven versalia, put her initial into the belt and made herself on the way.
11 |
12 | Fusce a metus eu diam varius congue nec nec sapien. Nunc convallis accumsan justo. **Pellentesque** habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Donec malesuada vehicula lectus, viverra sodales ipsum gravida nec.
13 |
14 | _Integer gravida_ nisi ut magna mollis molestie. Nullam pharetra accumsan sagittis. Proin tristique rhoncus orci, eget vulputate nisi sollicitudin et. Quisque lacus augue, mollis non mollis et, ullamcorper in purus. Morbi et sem orci.
15 |
16 | ### Proin bibendum ullamcorper rutrum.
17 |
18 | Praesent accumsan odio in ante ullamcorper id pellentesque mauris rhoncus. Duis vitae neque dolor. Duis sed purus at eros bibendum cursus nec a nulla. Donec turpis quam, ultricies id pretium sit amet, gravida eget leo.
19 |
20 | Nullam eros mi, mollis in sollicitudin non, tincidunt sed enim. Sed et felis metus, rhoncus ornare nibh. Ut at magna leo. Suspendisse egestas est ac dolor imperdiet pretium. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
21 |
22 | Nam porttitor, erat sit amet venenatis luctus, augue libero ultrices quam, ut congue nisi risus eu purus. Cras semper consectetur elementum. Nulla vel aliquet libero. Vestibulum eget felis nec purus commodo convallis. Aliquam erat volutpat.
23 |
24 | Proin suscipit luctus orci placerat fringilla. Suspendisse in urna ligula, a volutpat mauris. Sed enim mi, bibendum eu pulvinar vel, sodales vitae dui. Pellentesque sed sapien lorem, at lacinia urna. In hac habitasse platea dictumst. Vivamus vel justo in leo laoreet ullamcorper non vitae lorem. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
25 |
--------------------------------------------------------------------------------
/content/posts/2017-10-07--people-will-forget/index.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: People will forget what you said, people will forget what you did
3 | category: "sayings"
4 | cover: photo-1489900464632-5f5907edda24.jpg
5 | author: greg lobinski
6 | ---
7 |
8 | Fusce a metus eu diam varius congue nec nec sapien. Nunc convallis accumsan justo. **Pellentesque** habitant morbi [tristique](http://google.com) senectus et netus et malesuada fames ac turpis egestas. Donec malesuada vehicula lectus, viverra sodales ipsum gravida nec. _Integer gravida_ nisi ut magna mollis molestie. Nullam pharetra accumsan sagittis. Proin tristique rhoncus orci, eget vulputate nisi sollicitudin et. Quisque lacus augue, mollis non mollis et, ullamcorper in purus. Morbi et sem orci.
9 |
10 | ## On deer horse aboard tritely yikes and much
11 |
12 | The Big Oxmox advised her not to do so, because there were thousands of
13 | bad Commas, wild Question Marks and devious Semikoli, but the Little
14 | Blind Text didn’t listen. She packed her seven versalia, put her initial
15 | into the belt and made herself on the way.
16 |
17 | Praesent accumsan odio in ante ullamcorper id pellentesque mauris rhoncus. Duis vitae neque dolor. Duis sed purus at eros bibendum cursus nec a nulla. Donec turpis quam, ultricies id pretium sit amet, gravida eget leo.
18 |
19 | 
20 |
21 | Nullam eros mi, mollis in sollicitudin non, tincidunt sed enim. Sed et felis metus, rhoncus ornare nibh. Ut at magna leo. Suspendisse egestas est ac dolor imperdiet pretium. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
22 |
23 | Nam porttitor, erat sit amet venenatis luctus, augue libero ultrices quam, ut congue nisi risus eu purus. Cras semper consectetur elementum. Nulla vel aliquet libero. Vestibulum eget felis nec purus commodo convallis. Aliquam erat volutpat.
24 |
25 | Proin suscipit luctus orci placerat fringilla. Suspendisse in urna ligula, a volutpat mauris. Sed enim mi, bibendum eu pulvinar vel, sodales vitae dui. Pellentesque sed sapien lorem, at lacinia urna. In hac habitasse platea dictumst. Vivamus vel justo in leo laoreet ullamcorper non vitae lorem. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
26 |
27 | Proin bibendum ullamcorper rutrum.
28 |
--------------------------------------------------------------------------------
/content/posts/2017-10-05--you-only-live-once/index.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: You only live once
3 | category: "sayings"
4 | cover: photo-1456518563096-0ff5ee08204e.jpg
5 | author: greg lobinski
6 | ---
7 |
8 | Fusce a metus eu diam varius congue nec nec sapien. Nunc convallis accumsan justo. **Pellentesque** habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Donec malesuada vehicula lectus, viverra sodales ipsum gravida nec. _Integer gravida_ nisi ut magna mollis molestie. Nullam [pharetra](http://google.com) accumsan sagittis. Proin tristique rhoncus orci, eget vulputate nisi sollicitudin et. Quisque lacus augue, mollis non mollis et, ullamcorper in purus. Morbi et sem orci.
9 |
10 | ### On deer horse aboard tritely yikes and much
11 |
12 | Praesent accumsan odio in ante ullamcorper id pellentesque mauris rhoncus. Duis vitae neque dolor. Duis sed purus at eros bibendum cursus nec a nulla. Donec turpis quam, ultricies id pretium sit amet, gravida eget leo.
13 |
14 | 
15 |
16 | The Big Oxmox advised her not to do so, because there were thousands of
17 | bad Commas, wild Question Marks and devious Semikoli, but the Little
18 | Blind Text didn’t listen. She packed her seven versalia, put her initial
19 | into the belt and made herself on the way.
20 |
21 | * This however showed weasel
22 | * Well uncritical so misled
23 | * Goodness much until that fluid owl
24 |
25 | Nullam eros mi, mollis in sollicitudin non, tincidunt sed enim. Sed et felis metus, rhoncus ornare nibh. Ut at magna leo. Suspendisse egestas est ac dolor imperdiet pretium. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam porttitor, erat sit amet venenatis luctus, augue libero ultrices quam, ut congue nisi risus eu purus. Cras semper consectetur elementum. Nulla vel aliquet libero. Vestibulum eget felis nec purus commodo convallis. Aliquam erat volutpat.
26 |
27 | Proin suscipit luctus orci placerat fringilla. Suspendisse in urna ligula, a volutpat mauris. Sed enim mi, bibendum eu pulvinar vel, sodales vitae dui. Pellentesque sed sapien lorem, at lacinia urna. In hac habitasse platea dictumst. Vivamus vel justo in leo laoreet ullamcorper non vitae lorem. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin bibendum ullamcorper rutrum.
28 |
--------------------------------------------------------------------------------
/content/posts/2017-10-19--i-may-not-have-gone/index.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: I may not have gone where I intended to go
3 | category: "testimonies"
4 | cover: photo-1507915600431-5292809c5ab7.jpg
5 | author: greg lobinski
6 | ---
7 |
8 | Proin suscipit luctus orci placerat fringilla. Donec hendrerit laoreet risus eget adipiscing. [Suspendisse](http://google.com) in urna ligula, a volutpat mauris. Sed enim mi, bibendum eu pulvinar vel, sodales vitae dui. Pellentesque sed sapien lorem, at lacinia urna. In hac **habitasse** platea dictumst. Vivamus vel justo in leo laoreet ullamcorper non vitae lorem. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin bibendum ullamcorper rutrum.
9 |
10 | ## Vestibulum orci tortor, sollicitudin ac euismod non, placerat ac augue.
11 |
12 | Nam porttitor, erat sit amet venenatis luctus, augue libero ultrices quam, ut congue nisi risus eu purus. Cras semper consectetur elementum. Nulla vel aliquet libero. Vestibulum eget felis nec purus commodo convallis. Aliquam erat volutpat.
13 |
14 | ### Vestibulum orci tortor, sollicitudin ac euismod non, placerat ac augue.
15 |
16 | Nam porttitor, erat sit amet venenatis luctus, augue libero ultrices quam, ut congue nisi risus eu purus. Cras semper consectetur elementum. Nulla vel aliquet libero. Vestibulum eget felis nec purus commodo convallis. Aliquam erat volutpat.
17 |
18 | 
19 |
20 | Proin ornare ligula eu tellus tempus elementum. Aenean bibendum iaculis mi, nec blandit lacus interdum vitae. Vestibulum non nibh risus, a scelerisque purus. Ut vel arcu ac tortor adipiscing hendrerit vel sed massa. Fusce sem libero, lacinia vulputate interdum non, porttitor non quam. Aliquam sed felis ligula. Duis non nulla magna.
21 |
22 | ### Donec hendrerit laoreet risus eget adipiscing.
23 |
24 | Nullam eros mi, mollis in sollicitudin non, tincidunt sed enim. Sed et felis metus, rhoncus ornare nibh. Ut at magna leo. Suspendisse egestas est ac dolor imperdiet pretium. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
25 |
26 | Proin suscipit luctus orci placerat fringilla. Suspendisse in urna ligula, a volutpat mauris. Sed enim mi, bibendum eu pulvinar vel, sodales vitae dui. Pellentesque sed sapien lorem, at lacinia urna. In hac habitasse platea dictumst. Vivamus vel justo in leo laoreet ullamcorper non vitae lorem. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin bibendum ullamcorper rutrum.
27 |
--------------------------------------------------------------------------------
/src/html.js:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import PropTypes from "prop-types";
3 |
4 | export default class HTML extends React.Component {
5 | render() {
6 | return (
7 |
8 |
9 |
10 |
11 |
12 | {this.props.headComponents}
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 | {this.props.preBodyComponents}
31 |
32 | {this.props.postBodyComponents}
33 |
34 |
35 | );
36 | }
37 | }
38 |
39 | HTML.propTypes = {
40 | htmlAttributes: PropTypes.object,
41 | headComponents: PropTypes.array,
42 | bodyAttributes: PropTypes.object,
43 | preBodyComponents: PropTypes.array,
44 | body: PropTypes.string,
45 | postBodyComponents: PropTypes.array
46 | };
47 |
--------------------------------------------------------------------------------
/content/posts/2017-10-11--imperfection-is-beauty/index.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Imperfection is beauty, madness is genius
3 | cover: photo-1469461084727-4bfb496cf55a.jpg
4 | author: greg lobinski
5 | ---
6 |
7 | Proin suscipit luctus orci placerat fringilla. Donec hendrerit laoreet risus eget adipiscing. Suspendisse in urna ligula, a volutpat mauris. Sed enim mi, [bibendum](http://google.com) eu pulvinar vel, sodales vitae dui.
8 |
9 | 
10 |
11 | Pellentesque sed sapien lorem, at lacinia urna. In hac habitasse platea dictumst. Vivamus vel justo in leo laoreet ullamcorper non vitae lorem. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin bibendum ullamcorper rutrum.
12 |
13 | Fusce a metus eu diam varius congue nec nec sapien. Vestibulum orci tortor, sollicitudin ac euismod non, placerat ac augue. Nunc convallis accumsan justo. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Donec malesuada vehicula lectus, viverra sodales ipsum gravida nec.
14 |
15 | > Proin ornare ligula eu tellus tempus elementum. Aenean bibendum iaculis mi, nec blandit lacus interdum vitae. Vestibulum non nibh risus, a scelerisque purus. Ut vel arcu ac tortor adipiscing hendrerit vel sed massa. Fusce sem libero, lacinia vulputate interdum non, porttitor non quam. Aliquam sed felis ligula. Duis non nulla magna.
16 |
17 | Nullam eros mi, mollis in sollicitudin non, tincidunt sed enim. Sed et felis metus, rhoncus ornare nibh. Ut at magna leo. Suspendisse egestas est ac dolor imperdiet pretium. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam porttitor, erat sit amet venenatis luctus, augue libero ultrices quam, ut congue nisi risus eu purus. Cras semper consectetur elementum.
18 |
19 | ### Cras semper consectetur elementum
20 |
21 | Pellentesque sed sapien lorem, at lacinia urna. In hac habitasse platea dictumst. Vivamus vel justo in leo laoreet ullamcorper non vitae lorem. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin bibendum ullamcorper rutrum.
22 |
23 | Proin suscipit luctus orci placerat fringilla. Donec hendrerit laoreet risus eget adipiscing. Suspendisse in urna ligula, a volutpat mauris. Sed enim mi, bibendum eu pulvinar vel, sodales vitae dui. Pellentesque sed sapien lorem, at lacinia urna. In hac habitasse platea dictumst. Vivamus vel justo in leo laoreet ullamcorper non vitae lorem. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin bibendum ullamcorper rutrum.
24 |
--------------------------------------------------------------------------------
/content/posts/2017-10-15--good-friends/index.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Good friends, good books, and a sleepy conscience
3 | cover: photo-1500531279542-fc8490c8ea4d.jpg
4 | author: greg lobinski
5 | ---
6 |
7 | Proin suscipit luctus orci placerat fringilla. Donec hendrerit laoreet risus eget adipiscing. Suspendisse in urna ligula, a volutpat mauris. Sed enim mi, [bibendum](http://google.com) eu pulvinar vel, sodales vitae dui.
8 |
9 | 
10 |
11 | Pellentesque sed sapien lorem, at lacinia urna. In hac habitasse platea dictumst. Vivamus vel justo in leo laoreet ullamcorper non vitae lorem. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin bibendum ullamcorper rutrum.
12 |
13 | Fusce a metus eu diam varius congue nec nec sapien. Vestibulum orci tortor, sollicitudin ac euismod non, placerat ac augue. Nunc convallis accumsan justo. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Donec malesuada vehicula lectus, viverra sodales ipsum gravida nec.
14 |
15 | > Proin ornare ligula eu tellus tempus elementum. Aenean bibendum iaculis mi, nec blandit lacus interdum vitae. Vestibulum non nibh risus, a scelerisque purus. Ut vel arcu ac tortor adipiscing hendrerit vel sed massa. Fusce sem libero, lacinia vulputate interdum non, porttitor non quam. Aliquam sed felis ligula. Duis non nulla magna.
16 |
17 | Nullam eros mi, mollis in sollicitudin non, tincidunt sed enim. Sed et felis metus, rhoncus ornare nibh. Ut at magna leo. Suspendisse egestas est ac dolor imperdiet pretium. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam porttitor, erat sit amet venenatis luctus, augue libero ultrices quam, ut congue nisi risus eu purus. Cras semper consectetur elementum.
18 |
19 | ### Cras semper consectetur elementum
20 |
21 | Pellentesque sed sapien lorem, at lacinia urna. In hac habitasse platea dictumst. Vivamus vel justo in leo laoreet ullamcorper non vitae lorem. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin bibendum ullamcorper rutrum.
22 |
23 | Proin suscipit luctus orci placerat fringilla. Donec hendrerit laoreet risus eget adipiscing. Suspendisse in urna ligula, a volutpat mauris. Sed enim mi, bibendum eu pulvinar vel, sodales vitae dui. Pellentesque sed sapien lorem, at lacinia urna. In hac habitasse platea dictumst. Vivamus vel justo in leo laoreet ullamcorper non vitae lorem. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin bibendum ullamcorper rutrum.
24 |
--------------------------------------------------------------------------------
/content/posts/draft-post/index.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: This is a draft post
3 | category: "sayings"
4 | cover: photo-1490474418585-ba9bad8fd0ea.jpg
5 | author: greg lobinski
6 | ---
7 |
8 | Proin suscipit luctus orci placerat fringilla. Donec hendrerit laoreet risus eget adipiscing. Suspendisse in urna ligula, a volutpat mauris. Sed enim mi, [adipiscing](http://google.com) eu pulvinar vel, sodales vitae dui. :thumbsup: :smile: :sparkler:
9 |
10 | Pellentesque sed sapien lorem, at lacinia urna. In hac habitasse platea dictumst. Vivamus vel justo in leo laoreet ullamcorper non vitae lorem. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin bibendum ullamcorper rutrum.
11 |
12 | Fusce a metus eu diam varius congue nec nec sapien. Vestibulum orci tortor, sollicitudin ac euismod non, placerat ac augue. Nunc convallis accumsan justo. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Donec malesuada vehicula lectus, viverra sodales ipsum gravida nec.
13 |
14 | > Proin ornare ligula eu tellus tempus elementum. Aenean bibendum iaculis mi, nec blandit lacus interdum vitae. Vestibulum non nibh risus, a scelerisque purus. Ut vel arcu ac tortor adipiscing hendrerit vel sed massa. Fusce sem libero, lacinia vulputate interdum non, porttitor non quam. Aliquam sed felis ligula. Duis non nulla magna.
15 |
16 | Nullam eros mi, mollis in sollicitudin non, tincidunt sed enim. Sed et felis metus, rhoncus ornare nibh. Ut at magna leo. Suspendisse egestas est ac dolor imperdiet pretium. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam porttitor, erat sit amet venenatis luctus, augue libero ultrices quam, ut congue nisi risus eu purus. Cras semper consectetur elementum.
17 |
18 | ### Cras semper consectetur elementum
19 |
20 | Pellentesque sed sapien lorem, at lacinia urna. In hac habitasse platea dictumst. Vivamus vel justo in leo laoreet ullamcorper non vitae lorem. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin bibendum ullamcorper rutrum.
21 |
22 | 
23 |
24 | Proin suscipit luctus orci placerat fringilla. Donec hendrerit laoreet risus eget adipiscing. Suspendisse in urna ligula, a volutpat mauris. Sed enim mi, bibendum eu pulvinar vel, sodales vitae dui. Pellentesque sed sapien lorem, at lacinia urna. In hac habitasse platea dictumst. Vivamus vel justo in leo laoreet ullamcorper non vitae lorem. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin bibendum ullamcorper rutrum.
25 |
--------------------------------------------------------------------------------
/src/templates/CategoryTemplate.js:
--------------------------------------------------------------------------------
1 | import { FaTag } from "react-icons/fa/";
2 | import PropTypes from "prop-types";
3 | import React from "react";
4 | import { graphql } from "gatsby";
5 | import Seo from "../components/Seo";
6 | import { ThemeContext } from "../layouts";
7 | import Article from "../components/Article";
8 | import Headline from "../components/Article/Headline";
9 | import List from "../components/List";
10 |
11 | const CategoryTemplate = props => {
12 | const {
13 | pageContext: { category },
14 | data: {
15 | allMarkdownRemark: { totalCount, edges },
16 | site: {
17 | siteMetadata: { facebook }
18 | }
19 | }
20 | } = props;
21 |
22 | return (
23 |
24 |
25 | {theme => (
26 |
27 |
28 |
29 | Posts in category
30 | {category}
31 |
32 |
39 |
40 |
41 |
42 | )}
43 |
44 |
45 |
46 |
47 | );
48 | };
49 |
50 | CategoryTemplate.propTypes = {
51 | data: PropTypes.object.isRequired,
52 | pageContext: PropTypes.object.isRequired
53 | };
54 |
55 | export default CategoryTemplate;
56 |
57 | // eslint-disable-next-line no-undef
58 | export const categoryQuery = graphql`
59 | query PostsByCategory($category: String) {
60 | allMarkdownRemark(
61 | limit: 1000
62 | sort: { fields: [fields___prefix], order: DESC }
63 | filter: { frontmatter: { category: { eq: $category } } }
64 | ) {
65 | totalCount
66 | edges {
67 | node {
68 | fields {
69 | slug
70 | }
71 | excerpt
72 | timeToRead
73 | frontmatter {
74 | title
75 | category
76 | }
77 | }
78 | }
79 | }
80 | site {
81 | siteMetadata {
82 | facebook {
83 | appId
84 | }
85 | }
86 | }
87 | }
88 | `;
89 |
--------------------------------------------------------------------------------
/content/posts/2017-10-21--like-nonsense/index.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: I like nonsense, it wakes up the brain cells
3 | category: "testimonies"
4 | cover: photo-1465070845512-2b2dbdc6df66.jpg
5 | author: greg lobinski
6 | ---
7 |
8 | :100: Proin suscipit luctus orci placerat fringilla. Donec hendrerit laoreet risus eget adipiscing. Suspendisse in urna ligula, a volutpat mauris. Sed enim mi, bibendum eu pulvinar vel, sodales vitae dui. Pellentesque sed sapien lorem, at lacinia urna. In hac habitasse platea dictumst. Vivamus vel justo in leo laoreet ullamcorper non vitae lorem. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin bibendum ullamcorper rutrum.
9 |
10 | 
11 |
12 | ### Vestibulum orci tortor, sollicitudin ac euismod non, placerat ac augue.
13 |
14 | Praesent accumsan odio in ante ullamcorper id pellentesque mauris rhoncus. Duis vitae neque dolor. Duis sed purus at eros `bibendum cursus` nec a nulla. Donec turpis quam, ultricies id pretium sit amet, gravida eget leo.
15 |
16 | ```javascript
17 | import { createMuiTheme } from "material-ui/styles";
18 | import Color from "color";
19 | import colors from "./colors";
20 | ```
21 |
22 | Proin ornare ligula eu tellus tempus elementum. Aenean bibendum iaculis mi, nec blandit lacus interdum vitae. Vestibulum non nibh risus, a scelerisque purus. Ut vel arcu ac tortor adipiscing hendrerit vel sed massa. Fusce sem libero, lacinia vulputate interdum non, porttitor non quam. Aliquam sed felis ligula. Duis non nulla magna.
23 |
24 | ### Donec hendrerit laoreet risus eget adipiscing.
25 |
26 | Nullam eros mi, mollis in sollicitudin non, tincidunt sed enim. Sed et felis metus, rhoncus ornare nibh. Ut at magna leo. Suspendisse egestas est ac dolor imperdiet pretium. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam porttitor, erat sit amet venenatis luctus, augue libero ultrices quam, ut congue nisi risus eu purus. Cras semper consectetur elementum. Nulla vel aliquet libero. Vestibulum eget felis nec purus commodo convallis. Aliquam erat volutpat.
27 |
28 | 
29 |
30 | Proin suscipit luctus orci placerat fringilla. Suspendisse in urna ligula, a volutpat mauris. Sed enim mi, bibendum eu pulvinar vel, sodales vitae dui. Pellentesque sed sapien lorem, at lacinia urna. In hac habitasse platea dictumst. Vivamus vel justo in leo laoreet ullamcorper non vitae lorem. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin bibendum ullamcorper rutrum.
31 |
--------------------------------------------------------------------------------
/content/posts/2017-10-13--there-are-only-two/index.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: There are only two ways to live your life.
3 | cover: photo-1451324119451-db0ac857463c.jpg
4 | author: greg lobinski
5 | ---
6 |
7 | 
8 |
9 | Proin suscipit luctus orci placerat fringilla. Donec hendrerit laoreet risus eget adipiscing. Suspendisse in urna ligula, a volutpat mauris. Sed enim mi, bibendum eu pulvinar vel, sodales vitae dui. Pellentesque sed sapien lorem, at lacinia urna. In hac habitasse platea dictumst. Vivamus vel justo in leo laoreet ullamcorper non vitae lorem. Lorem ipsum dolor sit amet, consectetur [adipiscing](/i-am-so-clever/) elit. Proin bibendum ullamcorper rutrum.
10 |
11 | Fusce a metus eu diam varius congue nec nec sapien. Nunc convallis accumsan justo. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Donec malesuada vehicula lectus, viverra sodales ipsum gravida nec. Integer gravida nisi ut magna mollis molestie. Nullam pharetra accumsan sagittis. Proin tristique rhoncus orci, eget vulputate nisi sollicitudin et. Quisque lacus augue, mollis non mollis et, ullamcorper in purus. Morbi et sem orci.
12 |
13 | ### Vestibulum orci tortor, sollicitudin ac euismod non, placerat ac augue.
14 |
15 | Praesent accumsan odio in ante ullamcorper id pellentesque mauris rhoncus. Duis vitae neque dolor. Duis sed purus at eros bibendum cursus nec a nulla. Donec turpis quam, ultricies id pretium sit amet, gravida eget leo.
16 |
17 | Proin ornare ligula eu tellus tempus elementum. . Vestibulum non nibh risus, a scelerisque purus. Ut vel arcu ac tortor adipiscing hendrerit vel sed massa. Fusce sem libero, lacinia vulputate interdum non, porttitor non quam. Aliquam sed felis ligula. Duis non nulla magna.
18 |
19 | ### Aenean bibendum iaculis mi, nec blandit lacus interdum vitae
20 |
21 | Nullam eros mi, mollis in sollicitudin non, tincidunt sed enim. Sed et felis metus, rhoncus ornare nibh. Ut at magna leo. Suspendisse egestas est ac dolor imperdiet pretium. Lorem ipsum dolor sit amet, consectetur adipiscing elit
22 |
23 | ### Donec hendrerit laoreet risus eget adipiscing.
24 |
25 | Proin suscipit luctus orci placerat fringilla. Suspendisse in urna ligula, a volutpat mauris. Sed enim mi, bibendum eu pulvinar vel, sodales vitae dui. Pellentesque sed sapien lorem, at lacinia urna. In hac habitasse platea dictumst. Vivamus vel justo in leo laoreet ullamcorper non vitae lorem. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin bibendum ullamcorper rutrum.
26 |
--------------------------------------------------------------------------------
/src/components/Article/Bodytext.js:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import PropTypes from "prop-types";
3 |
4 | const Bodytext = props => {
5 | const { html, theme } = props;
6 |
7 | return (
8 |
9 |
10 |
11 |
76 |
77 | );
78 | };
79 |
80 | Bodytext.propTypes = {
81 | html: PropTypes.string.isRequired,
82 | theme: PropTypes.object.isRequired
83 | };
84 |
85 | export default Bodytext;
86 |
--------------------------------------------------------------------------------
/content/posts/2017-10-01--two-things-are-infinite/index.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Two things are infinite the universe and human stupidity
3 | category: "sayings"
4 | cover: photo-1490474418585-ba9bad8fd0ea.jpg
5 | author: greg lobinski
6 | ---
7 |
8 | Proin suscipit luctus orci placerat fringilla. Donec hendrerit laoreet risus eget adipiscing. Suspendisse in urna ligula, a volutpat mauris. Sed enim mi, [adipiscing](http://google.com) eu pulvinar vel, sodales vitae dui. :thumbsup: :smile: :sparkler:
9 |
10 | Pellentesque sed sapien lorem, at lacinia urna. In hac habitasse platea dictumst. Vivamus vel justo in leo laoreet ullamcorper non vitae lorem. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin bibendum ullamcorper rutrum.
11 |
12 | Fusce a metus eu diam varius congue nec nec sapien. Vestibulum orci tortor, sollicitudin ac euismod non, placerat ac augue. Nunc convallis accumsan justo. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Donec malesuada vehicula lectus, viverra sodales ipsum gravida nec.
13 |
14 | > Proin ornare ligula eu tellus tempus elementum. Aenean bibendum iaculis mi, nec blandit lacus interdum vitae. Vestibulum non nibh risus, a scelerisque purus. Ut vel arcu ac tortor adipiscing hendrerit vel sed massa. Fusce sem libero, lacinia vulputate interdum non, porttitor non quam. Aliquam sed felis ligula. Duis non nulla magna.
15 |
16 | Nullam eros mi, mollis in sollicitudin non, tincidunt sed enim. Sed et felis metus, rhoncus ornare nibh. Ut at magna leo. Suspendisse egestas est ac dolor imperdiet pretium. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam porttitor, erat sit amet venenatis luctus, augue libero ultrices quam, ut congue nisi risus eu purus. Cras semper consectetur elementum.
17 |
18 | ### Cras semper consectetur elementum
19 |
20 | Pellentesque sed sapien lorem, at lacinia urna. In hac habitasse platea dictumst. Vivamus vel justo in leo laoreet ullamcorper non vitae lorem. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin bibendum ullamcorper rutrum.
21 |
22 | 
23 |
24 | Proin suscipit luctus orci placerat fringilla. Donec hendrerit laoreet risus eget adipiscing. Suspendisse in urna ligula, a volutpat mauris. Sed enim mi, bibendum eu pulvinar vel, sodales vitae dui. Pellentesque sed sapien lorem, at lacinia urna. In hac habitasse platea dictumst. Vivamus vel justo in leo laoreet ullamcorper non vitae lorem. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin bibendum ullamcorper rutrum.
25 |
--------------------------------------------------------------------------------
/src/components/Search/Search.js:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import PropTypes from "prop-types";
3 | import { InstantSearch, SearchBox, Hits, Stats, Pagination } from "react-instantsearch/dom";
4 |
5 | import Hit from "./Hit";
6 |
7 | const Search = props => {
8 | const { algolia, theme } = props;
9 |
10 | return (
11 |
12 |
27 |
28 | {/* --- STYLES --- */}
29 |
84 |
85 | );
86 | };
87 |
88 | Search.propTypes = {
89 | algolia: PropTypes.object.isRequired,
90 | theme: PropTypes.object.isRequired
91 | };
92 |
93 | export default Search;
94 |
--------------------------------------------------------------------------------
/content/posts/2017-10-03--be-who-you-are/index.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Be who you are and say what you feel
3 | category: "sayings"
4 | cover: photo-1489824904134-891ab64532f1.jpg
5 | author: greg lobinski
6 | ---
7 |
8 | Proin suscipit luctus orci placerat fringilla. Donec hendrerit laoreet risus eget adipiscing. [Suspendisse](http://google.com) in urna ligula, a volutpat mauris. Sed enim mi, bibendum eu pulvinar vel, sodales vitae dui. Pellentesque sed sapien lorem, at lacinia urna. In hac habitasse platea dictumst. Vivamus vel justo in leo laoreet ullamcorper non vitae lorem. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin bibendum ullamcorper rutrum.
9 |
10 | ## H2 Vestibulum orci tortor, sollicitudin ac euismod non, placerat ac augue.
11 |
12 | Fusce a metus eu diam varius congue nec nec sapien. Nunc convallis accumsan justo. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Donec malesuada vehicula lectus.
13 |
14 | ### H3 Vestibulum orci tortor, sollicitudin ac euismod non, placerat ac augue.
15 |
16 | Rviverra sodales ipsum gravida nec. Integer gravida nisi ut magna mollis molestie. Nullam pharetra accumsan sagittis. Proin tristique rhoncus orci, eget vulputate nisi sollicitudin et. Quisque lacus augue, mollis non mollis et, ullamcorper in purus. Morbi et sem orci.
17 |
18 | Praesent accumsan odio in ante ullamcorper id pellentesque mauris rhoncus. Duis vitae neque dolor. Duis sed purus at eros bibendum cursus nec a nulla. Donec turpis quam, ultricies id pretium sit amet, gravida eget leo.
19 |
20 | 
21 |
22 | Proin ornare ligula eu tellus tempus elementum. Aenean bibendum iaculis mi, nec blandit lacus interdum vitae. Vestibulum non nibh risus, a scelerisque purus. Ut vel arcu ac tortor adipiscing hendrerit vel sed massa. Fusce sem libero, lacinia vulputate interdum non, porttitor non quam. Aliquam sed felis ligula. Duis non nulla magna.
23 |
24 | ### Donec hendrerit laoreet risus eget adipiscing.
25 |
26 | Nullam eros mi, mollis in sollicitudin non, tincidunt sed enim. Sed et felis metus, rhoncus ornare nibh. Ut at magna leo. Suspendisse egestas est ac dolor imperdiet pretium. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam porttitor, erat sit amet venenatis luctus, augue libero ultrices quam, ut congue nisi risus eu purus. Cras semper consectetur elementum. Nulla vel aliquet libero. Vestibulum eget felis nec purus commodo convallis. Aliquam erat volutpat.
27 |
28 | Proin suscipit luctus orci placerat fringilla. Suspendisse in urna ligula, a volutpat mauris. Sed enim mi, bibendum eu pulvinar vel, sodales vitae dui. Pellentesque sed sapien lorem, at lacinia urna. In hac habitasse platea dictumst. Vivamus vel justo in leo laoreet ullamcorper non vitae lorem. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin bibendum ullamcorper rutrum.
29 |
--------------------------------------------------------------------------------
/content/posts/2017-10-17--i-have-not-failed/index.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: I have not failed. I've just found 10,000 ways that won't work
3 | category: "testimonies"
4 | cover: photo-1463852247062-1bbca38f7805.jpg
5 | author: greg lobinski
6 | ---
7 |
8 | Vivamus vel justo in leo laoreet ullamcorper non vitae lorem. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin bibendum ullamcorper rutrum.
9 |
10 | 
11 |
12 | Proin suscipit luctus orci placerat fringilla. Donec hendrerit laoreet risus eget adipiscing. Suspendisse in urna ligula, a volutpat mauris. Sed enim mi, bibendum eu pulvinar vel, sodales vitae dui. Pellentesque sed sapien lorem, at lacinia urna. In hac habitasse platea dictumst.
13 |
14 | Fusce a metus eu diam varius congue nec nec sapien. Nunc convallis accumsan justo. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Donec malesuada vehicula lectus, viverra sodales ipsum gravida nec. Integer gravida nisi ut magna mollis molestie. Nullam pharetra accumsan sagittis. Proin tristique rhoncus orci, eget vulputate nisi sollicitudin et. Quisque lacus augue, mollis non mollis et, ullamcorper in purus. Morbi et sem orci.
15 |
16 | ### Vestibulum orci tortor, sollicitudin ac euismod non, placerat ac augue.
17 |
18 | Praesent accumsan odio in ante ullamcorper id pellentesque mauris rhoncus. Duis vitae neque dolor. Duis sed purus at eros bibendum cursus nec a nulla. Donec turpis quam, ultricies id pretium sit amet, gravida eget leo.
19 |
20 | Proin ornare ligula eu tellus tempus elementum. . Vestibulum non nibh risus, a scelerisque purus. Ut vel arcu ac tortor adipiscing hendrerit vel sed massa. Fusce sem libero, lacinia vulputate interdum non, porttitor non quam. Aliquam sed felis ligula. Duis non nulla magna.
21 |
22 | ### Aenean bibendum iaculis mi, nec blandit lacus interdum vitae
23 |
24 | Nullam eros mi, mollis in sollicitudin non, tincidunt sed enim. Sed et felis metus, rhoncus ornare nibh. Ut at magna leo. Suspendisse egestas est ac dolor imperdiet pretium. Lorem ipsum dolor sit amet, consectetur adipiscing elit
25 |
26 | ### Donec hendrerit laoreet risus eget adipiscing.
27 |
28 | Proin suscipit luctus orci placerat fringilla. Suspendisse in urna ligula, a volutpat mauris. Sed enim mi, bibendum eu pulvinar vel, sodales vitae dui. Pellentesque sed sapien lorem, at lacinia urna. In hac habitasse platea dictumst. Vivamus vel justo in leo laoreet ullamcorper non vitae lorem. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin bibendum ullamcorper rutrum.
29 |
30 | Fusce a metus eu diam varius congue nec nec sapien. Nunc convallis accumsan justo. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Donec malesuada vehicula lectus, viverra sodales ipsum gravida nec. Integer gravida nisi ut magna mollis molestie. Nullam pharetra accumsan sagittis. Proin tristique rhoncus orci, eget vulputate nisi sollicitudin et. Quisque lacus augue, mollis non mollis et, ullamcorper in purus. Morbi et sem orci.
31 |
--------------------------------------------------------------------------------
/src/components/Menu/Item.js:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import PropTypes from "prop-types";
3 | import { Link } from "gatsby";
4 |
5 | const Item = props => {
6 | const { theme, item: { label, to, icon: Icon } = {}, onClick } = props;
7 |
8 | return (
9 |
10 |