├── .prettierignore ├── src ├── assets │ └── images │ │ ├── about.jpg │ │ └── duck_avatar.jpeg ├── data │ ├── authors.yaml │ └── content.json ├── utils │ ├── enzyme.js │ ├── feather.js │ ├── media.js │ └── typography.js ├── components │ ├── Footer │ │ ├── footer.test.js │ │ ├── index.js │ │ └── __snapshots__ │ │ │ └── footer.test.js.snap │ ├── Layout │ │ └── index.js │ ├── Misc │ │ └── index.js │ ├── Navigation │ │ ├── mobile.js │ │ └── index.js │ └── Buttons │ │ └── index.js ├── pages │ ├── blog │ │ ├── post.sh │ │ ├── example-post-1 │ │ │ └── index.md │ │ ├── example-post-2 │ │ │ └── index.md │ │ ├── example-post-3 │ │ │ └── index.md │ │ └── index.js │ ├── about.js │ ├── terms.js │ ├── privacy.js │ └── index.js ├── layouts │ └── index.js └── templates │ └── blog-post-template.js ├── .prettierrc ├── .babelrc ├── .eslintrc.json ├── README.md ├── LICENSE ├── .gitignore ├── gatsby-config.js ├── gatsby-node.js └── package.json /.prettierignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | .cache/ 3 | -------------------------------------------------------------------------------- /src/assets/images/about.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Airtable/airtable-gatsbyjs-blog/HEAD/src/assets/images/about.jpg -------------------------------------------------------------------------------- /src/data/authors.yaml: -------------------------------------------------------------------------------- 1 | - id: Donald Duck 2 | bio: "He is a duck" 3 | avatar: '../assets/images/duck_avatar.jpeg' 4 | -------------------------------------------------------------------------------- /src/assets/images/duck_avatar.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Airtable/airtable-gatsbyjs-blog/HEAD/src/assets/images/duck_avatar.jpeg -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "printWidth": 80, 3 | "singleQuote": true, 4 | "trailingComma": "none", 5 | "jsxBracketSameLine": false, 6 | "parser": "babylon" 7 | } 8 | -------------------------------------------------------------------------------- /src/data/content.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "index": { 4 | "title": "Hello World", 5 | "subtitle": "This is a simple gatsby-starter" 6 | } 7 | } 8 | ] 9 | -------------------------------------------------------------------------------- /.babelrc: -------------------------------------------------------------------------------- 1 | // This babelrc is only needed for jest to work properly 2 | { 3 | "env": { 4 | "test": { 5 | "presets": ["es2015", "react"], 6 | "plugins": "babel-plugin-emotion" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/utils/enzyme.js: -------------------------------------------------------------------------------- 1 | // configuring enzyme to use the adapter for React 16 2 | import Enzyme from 'enzyme'; 3 | import Adapter from 'enzyme-adapter-react-16'; 4 | 5 | export default Enzyme.configure({ adapter: new Adapter() }); 6 | -------------------------------------------------------------------------------- /src/components/Footer/footer.test.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { shallow } from 'enzyme'; 3 | import toJson from 'enzyme-to-json'; 4 | import Footer from './index'; 5 | import enzymeconf from '../../utils/enzyme'; 6 | 7 | it('renders correctly', () => { 8 | const tree = shallow(