├── .gitignore
├── LICENSE
├── README.md
├── content
├── copy
│ ├── about__bio.md
│ └── homepage__about.md
├── img
│ ├── about__banner.jpg
│ └── author.jpg
└── posts
│ ├── editor-picks.md
│ ├── eyeshadow.md
│ ├── friends.md
│ ├── img
│ ├── balloons.jpg
│ ├── eyeshadow.jpg
│ ├── flatlay.jpg
│ └── friends.jpg
│ └── my-post.md
├── gatsby-config.js
├── gatsby-node.js
├── package-lock.json
├── package.json
├── screenshot.jpg
├── src
├── blog
│ ├── category.js
│ ├── components
│ │ ├── body.js
│ │ ├── breadcrumbs.js
│ │ ├── emailForm.js
│ │ ├── hero.js
│ │ ├── post-preview.js
│ │ ├── sidebar.js
│ │ └── suggested.js
│ ├── index.js
│ ├── post.js
│ ├── seo.js
│ └── styles
│ │ └── grid.css
├── common
│ ├── components
│ │ ├── footer.js
│ │ └── navbar.js
│ ├── layouts
│ │ └── index.js
│ ├── seo
│ │ └── index.js
│ └── styles
│ │ └── custom.tachyons.css
├── homepage
│ └── components
│ │ ├── about.js
│ │ ├── bio.js
│ │ ├── card.js
│ │ └── hero.js
└── pages
│ ├── 404.js
│ ├── about.js
│ ├── index.js
│ └── privacy.js
└── static
├── favicon.ico
└── logo.png
/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 |
8 | # Runtime data
9 | pids
10 | *.pid
11 | *.seed
12 | *.pid.lock
13 |
14 | # Directory for instrumented libs generated by jscoverage/JSCover
15 | lib-cov
16 |
17 | # Coverage directory used by tools like istanbul
18 | coverage
19 |
20 | # nyc test coverage
21 | .nyc_output
22 |
23 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
24 | .grunt
25 |
26 | # Bower dependency directory (https://bower.io/)
27 | bower_components
28 |
29 | # node-waf configuration
30 | .lock-wscript
31 |
32 | # Compiled binary addons (http://nodejs.org/api/addons.html)
33 | build/Release
34 |
35 | # Dependency directories
36 | node_modules/
37 | jspm_packages/
38 |
39 | # Typescript v1 declaration files
40 | typings/
41 |
42 | # Optional npm cache directory
43 | .npm
44 |
45 | # Optional eslint cache
46 | .eslintcache
47 |
48 | # Optional REPL history
49 | .node_repl_history
50 |
51 | # Output of 'npm pack'
52 | *.tgz
53 |
54 | # dotenv environment variables file
55 | .env
56 |
57 | # gatsby files
58 | .cache/
59 | public
60 |
61 | # Mac files
62 | .DS_Store
63 |
64 | # Yarn
65 | yarn-error.log
66 | .pnp/
67 | .pnp.js
68 | # Yarn Integrity file
69 | .yarn-integrity
70 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2019 Madelyn Eriksen
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 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | Tyra - Feminine Blog Powered by Gatsby
2 | =====
3 | [](https://shields.io/) [](https://shields.io/)
4 |
5 | Tyra is a Gatsby starter that focuses on legibility and a clean, feminine design with 2010 influences. Technically, the goals for Tyra are having a "plug and play" blog, with great SEO, tooling, and integrations all included.
6 |
7 | [](https://app.netlify.com/start/deploy?repository=https://github.com/madelyneriksen/gatsby-starter-tyra)
8 |
9 | ## Getting Started
10 |
11 | The first step with using Tyra is customizing your metadata in `gatsby-config.js`.
12 |
13 | ```javascript
14 | siteMetadata: {
15 | navbarLinks: [
16 | {to: "/makeup", name: "Makeup"},
17 | {to: "/lifestyle", name: "Lifestyle"},
18 | {to: "/blog", name: "blog"},
19 | ],
20 | title: "", // The name of your blog
21 | description: "", // SEO Description
22 | siteUrl: "", // Base URL of your blog (https://example.com)
23 | homepageHeader: "", // Header text for the homepage
24 | homepageAbout: "", // Banner body for the homepage
25 | mailChimpUrl: "", // Link you your mailchimp campaign (From the embedded form maker)
26 | mailChimpToken: "", // The hidden field on mailchimp forms
27 | pinterest: "", // Your pinterest profile
28 | facebook: "", // Your facebook profile
29 | twitter: "", // Your twitter profile
30 | }
31 | ```
32 |
33 | This is used for configuring data across the site, improving SEO, and increasing engagement on social media.
34 |
35 | Next up, you can begin customizing the images and copy in `content/`. Finally, you can add your own blog posts! Posts are written in Markup, an easy way to create webpages.
36 |
37 | ## Installation with `gatsby-cli`
38 | `gatsby new my-site https://github.com/madelyneriksen/gatsby-starter-tyra`
39 |
40 | ## Installation with `git clone`
41 | `git clone git@github.com:madelyneriksen/gatsby-starter-tyra.git my-site`
42 | `cd my-site`
43 | `yarn install`
44 |
45 | ## To develop
46 | `yarn develop`
47 |
48 | ## To build
49 | `yarn build`
50 |
51 |
52 | ## Screenshot
53 |
54 | 
55 |
56 | ## Adding your Content
57 |
58 | Tyra uses markdown for writing blog posts, and follows a simple template for adding new posts. To add a new blog post, create a file in `content/posts/` with the following:
59 |
60 | ```markdown
61 | ---
62 |
63 | type: "post"
64 | title: "My Awesome Post Title"
65 | author: "My Name"
66 | category: "My Category"
67 | date: "2019-01-05"
68 | slug: "/my-awesome-post"
69 | postImage: "./img/myimage.jpg"
70 | metaDescription: "This is my first awesome and cool post!!!"
71 |
72 | ---
73 |
74 | You can write your post here using markdown! Link to images in the `img` folder using this syntax:
75 |
76 | 
77 | ```
78 |
79 | Images for posts are stored in `content/posts/img/`. Images in the frontmatter will be used as thumbnails for the articles, as well as in search results.
80 |
81 | ## License
82 |
83 | Tyra is licensed under the terms of the MIT License.
84 |
85 | ## Thanks and Mentions
86 |
87 | * The [GatsbyJS](https://www.gatsbyjs.org/) Team for creating an amazing platform.
88 | * [Netlify](https://www.netlify.com/) for making static site hosting even easier.
89 | * [Unsplash](https://unsplash.com/) and the Free Photography Community.
90 |
--------------------------------------------------------------------------------
/content/copy/about__bio.md:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | type: "copy"
4 | name: "about__bio"
5 | title: "Tyra is a fast, feminine, and chic Gatsby.js Starter. Kickstart your online presence, powered by React."
6 |
7 | ---
8 |
9 | Built on a strong foundation of React and Gatsby, Tyra is a modern, sleek, and _fast_ template for a blog. Created with an emphasis on SEO and the goal of showcasing content, Tyra is the perfect starter for creating your new project.
10 |
11 | Tyra is MIT Licensed, and so works well as a starting point, a springboard, or even a finished product.
12 |
--------------------------------------------------------------------------------
/content/copy/homepage__about.md:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | type: "copy"
4 | name: "homepage__bio"
5 | title: "Showcase Your Personality."
6 |
7 | ---
8 |
9 | Your incredible content deserves an incredible home. Tyra leverages your brilliant blog posts, builds rich SEO data, and makes publishing easy! Fast, dynamic websites are here, powered by Gatsby.js and React.
10 |
11 | This section of the site would be great to feature an author's biography, or maybe a bit about what makes your business special! It's featured towards the end of the homepage, after other descriptive sections.
12 |
--------------------------------------------------------------------------------
/content/img/about__banner.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/madelyneriksen/gatsby-starter-tyra/4363653b54595103fbd7133be0bc7480b56786bd/content/img/about__banner.jpg
--------------------------------------------------------------------------------
/content/img/author.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/madelyneriksen/gatsby-starter-tyra/4363653b54595103fbd7133be0bc7480b56786bd/content/img/author.jpg
--------------------------------------------------------------------------------
/content/posts/editor-picks.md:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | type: "post"
4 | title: "Must-Have Products Selected by Tyra's Editors"
5 | author: "Jane Doe"
6 | category: "makeup"
7 | date: "2018-01-04"
8 | slug: "/editors-picks"
9 | postImage: "./img/flatlay.jpg"
10 | metaDescription: "We went over the best new products and tried them all. Here's what's hot and what's not!"
11 |
12 | ---
13 |
14 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur id varius velit. Nullam convallis finibus nisl nec fringilla. Morbi venenatis quam id luctus varius. Mauris quis eros in turpis blandit dapibus. Donec vestibulum cursus tincidunt. Proin laoreet diam ante, at convallis tellus gravida et. Fusce ac varius nulla. Curabitur eget elit aliquam, porta urna at, lacinia velit.
15 |
16 | 
17 |
18 | Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nulla et erat at lorem convallis pulvinar. Vivamus ac dui neque. Etiam non venenatis eros. Nulla tincidunt vulputate lectus, non placerat nisl viverra id. Donec ac dapibus mi, a auctor urna. Sed elit neque, accumsan in felis eget, varius hendrerit nisl. Quisque urna sem, posuere sit amet porta sit amet, fringilla a quam. Ut aliquet maximus ligula, vitae fermentum nunc rhoncus non. Nullam nec augue sapien. Nulla sed vulputate orci. Vivamus ipsum ipsum, viverra quis tincidunt sed, consectetur ut erat.
19 |
20 | Vestibulum vitae neque a velit efficitur tempor eget eu urna. Praesent et purus sollicitudin, pretium dolor non, laoreet lectus. Donec nisi sem, laoreet quis pulvinar eu, eleifend ac dui. Integer vehicula non turpis a vestibulum. Nulla facilisi. Donec lobortis, ante vitae maximus consectetur, odio augue tempor mi, at vehicula purus orci sed sapien. Maecenas cursus massa id orci fermentum laoreet. Duis elementum justo sit amet tellus dignissim tristique.
21 |
22 | Pellentesque elit justo, viverra nec malesuada eu, dictum id urna. Vivamus et purus nunc. Cras sed massa dignissim, egestas orci ac, molestie purus. Aliquam iaculis neque diam, sed vulputate mauris blandit sit amet. Aenean eu ligula in nunc consequat porta. Nunc efficitur sem eget ante venenatis, ac luctus velit venenatis. Quisque cursus ante vel ligula hendrerit, vel condimentum mi pellentesque. Sed ut felis in odio facilisis maximus. Curabitur ut lacus nisl. Sed rutrum ornare elementum. Pellentesque et velit ullamcorper, lobortis urna at, congue massa. Nulla suscipit congue aliquet. Sed urna augue, ullamcorper tempor pharetra eget, mollis a quam. Cras rhoncus sagittis augue vel lacinia.
23 |
24 | Maecenas hendrerit semper egestas. Pellentesque at erat ligula. Ut a nisl aliquam, laoreet magna vitae, lacinia tortor. Sed at volutpat velit. Maecenas vitae consectetur elit. Fusce ut augue id sapien facilisis semper ac vel enim. In consequat nulla et nulla tincidunt, ac elementum odio molestie. Cras sed nulla finibus, hendrerit erat vitae, consequat magna. Aliquam id lectus iaculis, faucibus eros at, tempus erat. In iaculis ante sem, sit amet hendrerit dolor mattis elementum. Maecenas quis sapien ut turpis consectetur porta. Maecenas vitae consectetur tortor, vel lobortis ligula.
25 |
26 | Praesent eget tellus a augue vulputate vulputate. Phasellus volutpat eros sit amet libero placerat dapibus. Vestibulum hendrerit euismod odio vulputate sodales. Sed vel justo vel turpis rhoncus cursus sed sit amet urna. Suspendisse pellentesque sapien eget nisl commodo maximus. Nulla pharetra magna in ipsum ultricies, eu aliquet ipsum euismod. Etiam nec lectus ac dui blandit maximus. Aenean lobortis pretium ipsum, eget convallis mauris. Ut lobortis condimentum justo a ultricies. Donec accumsan viverra libero, id iaculis dui efficitur sit amet. Cras ut sapien porta, tempus purus in, consectetur nulla. Vivamus efficitur ante non leo euismod cursus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Morbi ex enim, lobortis non tincidunt a, sodales nec leo. Sed blandit tempor ante quis fringilla. Integer sit amet metus nisl.
27 |
28 | Duis elementum, massa ac tincidunt ultricies, ex ligula consectetur enim, quis viverra massa risus quis enim. Duis iaculis tellus at nisi hendrerit, vitae malesuada arcu volutpat. Morbi a elit tincidunt, tincidunt mauris at, convallis erat. Morbi nec ligula tortor. Aenean efficitur scelerisque massa, feugiat tristique massa consectetur a. Nulla lobortis et erat id pretium. Sed nec pharetra libero.
29 |
30 | In vel augue enim. Maecenas in magna ac risus egestas imperdiet. Vivamus consequat vel sem vel dapibus. Suspendisse eget dolor metus. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Fusce ornare purus sed erat porttitor ultrices. Praesent maximus quam in mauris pellentesque porta. Vivamus suscipit pulvinar nunc, ut ornare urna laoreet quis. In eu iaculis dolor, tristique faucibus lectus. Nam iaculis lorem quis leo fermentum facilisis. Sed cursus quam ac porttitor ultrices. Suspendisse tincidunt tortor in molestie hendrerit. Ut blandit congue nibh, ut scelerisque leo pharetra at. Proin ornare, magna convallis mattis malesuada, justo enim pretium ex, vel pellentesque ligula ipsum sed mi. Aenean consequat laoreet ex, sed malesuada lectus convallis ut.
31 |
32 | Vestibulum non feugiat diam, sit amet convallis nisl. Etiam a nunc eget velit tincidunt rhoncus. Phasellus ut euismod nisi. Morbi erat arcu, viverra ut feugiat sit amet, mollis id enim. Quisque venenatis ultricies odio eu mattis. Fusce vel placerat lacus, fermentum fringilla neque. Nam enim lectus, consequat id augue eget, laoreet pulvinar dolor.
33 |
34 | Vivamus a lacus ante. Morbi sed ex est. Nulla tempor risus eu hendrerit efficitur. Sed porta convallis sapien, eu porttitor augue eleifend eget. Suspendisse lorem turpis, elementum non neque tempus, pellentesque laoreet est. Suspendisse rhoncus justo ac scelerisque placerat. Donec ligula mi, luctus in scelerisque eu, lobortis vitae tellus. Aliquam eget tempus augue, egestas hendrerit est. Vivamus egestas nulla nec mi fermentum porta. Integer commodo nibh tristique nulla vehicula, id ultricies neque dictum. Fusce ut egestas diam. Aliquam at dolor efficitur nulla malesuada consequat ac ut ipsum.
35 |
--------------------------------------------------------------------------------
/content/posts/eyeshadow.md:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | type: "post"
4 | title: "Three Eye Makeup Looks for Five Minute Mornings"
5 | author: "Jane Doe"
6 | category: "makeup"
7 | date: "2018-01-03"
8 | slug: "/lazy-morning-looks"
9 | postImage: "./img/eyeshadow.jpg"
10 | metaDescription: "Lazy Day? Here's three essential eye makeup techniques to hang on to."
11 |
12 | ---
13 |
14 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur id varius velit. Nullam convallis finibus nisl nec fringilla. Morbi venenatis quam id luctus varius. Mauris quis eros in turpis blandit dapibus. Donec vestibulum cursus tincidunt. Proin laoreet diam ante, at convallis tellus gravida et. Fusce ac varius nulla. Curabitur eget elit aliquam, porta urna at, lacinia velit.
15 |
16 | 
17 |
18 | Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nulla et erat at lorem convallis pulvinar. Vivamus ac dui neque. Etiam non venenatis eros. Nulla tincidunt vulputate lectus, non placerat nisl viverra id. Donec ac dapibus mi, a auctor urna. Sed elit neque, accumsan in felis eget, varius hendrerit nisl. Quisque urna sem, posuere sit amet porta sit amet, fringilla a quam. Ut aliquet maximus ligula, vitae fermentum nunc rhoncus non. Nullam nec augue sapien. Nulla sed vulputate orci. Vivamus ipsum ipsum, viverra quis tincidunt sed, consectetur ut erat.
19 |
20 | ## A Sweet Header
21 |
22 | This section is going to have some awesome sample content for judging markdown typography.
23 |
24 | Here comes a sweet blockquote:
25 |
26 | > The trick to amazing eyeshadow is using great colors.
27 |
28 | That's looking decent! Sweet.
29 |
30 | Vestibulum vitae neque a velit efficitur tempor eget eu urna. Praesent et purus sollicitudin, pretium dolor non, laoreet lectus. Donec nisi sem, laoreet quis pulvinar eu, eleifend ac dui. Integer vehicula non turpis a vestibulum. Nulla facilisi. Donec lobortis, ante vitae maximus consectetur, odio augue tempor mi, at vehicula purus orci sed sapien. Maecenas cursus massa id orci fermentum laoreet. Duis elementum justo sit amet tellus dignissim tristique.
31 |
32 | #### Smaller Headers Work Too
33 |
34 | Let's try adding some links. Have you looked at the template author's [github lately](https://github.com/madelyneriksen)? She's always creating new stuff.
35 |
36 | Of course, we can also *emphasize* text with the **tools** markdown gives us.
37 |
38 | * There's some sweet features to markdown
39 | * Like Lists
40 | * and more lists
41 |
42 | ```
43 | Prismjs isn't included
44 |
45 | But we can still have code blocks.
46 | ```
47 |
48 | Pellentesque elit justo, viverra nec malesuada eu, dictum id urna. Vivamus et purus nunc. Cras sed massa dignissim, egestas orci ac, molestie purus. Aliquam iaculis neque diam, sed vulputate mauris blandit sit amet. Aenean eu ligula in nunc consequat porta. Nunc efficitur sem eget ante venenatis, ac luctus velit venenatis. Quisque cursus ante vel ligula hendrerit, vel condimentum mi pellentesque. Sed ut felis in odio facilisis maximus. Curabitur ut lacus nisl. Sed rutrum ornare elementum. Pellentesque et velit ullamcorper, lobortis urna at, congue massa. Nulla suscipit congue aliquet. Sed urna augue, ullamcorper tempor pharetra eget, mollis a quam. Cras rhoncus sagittis augue vel lacinia.
49 |
50 | Maecenas hendrerit semper egestas. Pellentesque at erat ligula. Ut a nisl aliquam, laoreet magna vitae, lacinia tortor. Sed at volutpat velit. Maecenas vitae consectetur elit. Fusce ut augue id sapien facilisis semper ac vel enim. In consequat nulla et nulla tincidunt, ac elementum odio molestie. Cras sed nulla finibus, hendrerit erat vitae, consequat magna. Aliquam id lectus iaculis, faucibus eros at, tempus erat. In iaculis ante sem, sit amet hendrerit dolor mattis elementum. Maecenas quis sapien ut turpis consectetur porta. Maecenas vitae consectetur tortor, vel lobortis ligula.
51 |
52 | Praesent eget tellus a augue vulputate vulputate. Phasellus volutpat eros sit amet libero placerat dapibus. Vestibulum hendrerit euismod odio vulputate sodales. Sed vel justo vel turpis rhoncus cursus sed sit amet urna. Suspendisse pellentesque sapien eget nisl commodo maximus. Nulla pharetra magna in ipsum ultricies, eu aliquet ipsum euismod. Etiam nec lectus ac dui blandit maximus. Aenean lobortis pretium ipsum, eget convallis mauris. Ut lobortis condimentum justo a ultricies. Donec accumsan viverra libero, id iaculis dui efficitur sit amet. Cras ut sapien porta, tempus purus in, consectetur nulla. Vivamus efficitur ante non leo euismod cursus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Morbi ex enim, lobortis non tincidunt a, sodales nec leo. Sed blandit tempor ante quis fringilla. Integer sit amet metus nisl.
53 |
54 | Duis elementum, massa ac tincidunt ultricies, ex ligula consectetur enim, quis viverra massa risus quis enim. Duis iaculis tellus at nisi hendrerit, vitae malesuada arcu volutpat. Morbi a elit tincidunt, tincidunt mauris at, convallis erat. Morbi nec ligula tortor. Aenean efficitur scelerisque massa, feugiat tristique massa consectetur a. Nulla lobortis et erat id pretium. Sed nec pharetra libero.
55 |
56 | In vel augue enim. Maecenas in magna ac risus egestas imperdiet. Vivamus consequat vel sem vel dapibus. Suspendisse eget dolor metus. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Fusce ornare purus sed erat porttitor ultrices. Praesent maximus quam in mauris pellentesque porta. Vivamus suscipit pulvinar nunc, ut ornare urna laoreet quis. In eu iaculis dolor, tristique faucibus lectus. Nam iaculis lorem quis leo fermentum facilisis. Sed cursus quam ac porttitor ultrices. Suspendisse tincidunt tortor in molestie hendrerit. Ut blandit congue nibh, ut scelerisque leo pharetra at. Proin ornare, magna convallis mattis malesuada, justo enim pretium ex, vel pellentesque ligula ipsum sed mi. Aenean consequat laoreet ex, sed malesuada lectus convallis ut.
57 |
58 | Vestibulum non feugiat diam, sit amet convallis nisl. Etiam a nunc eget velit tincidunt rhoncus. Phasellus ut euismod nisi. Morbi erat arcu, viverra ut feugiat sit amet, mollis id enim. Quisque venenatis ultricies odio eu mattis. Fusce vel placerat lacus, fermentum fringilla neque. Nam enim lectus, consequat id augue eget, laoreet pulvinar dolor.
59 |
60 | Vivamus a lacus ante. Morbi sed ex est. Nulla tempor risus eu hendrerit efficitur. Sed porta convallis sapien, eu porttitor augue eleifend eget. Suspendisse lorem turpis, elementum non neque tempus, pellentesque laoreet est. Suspendisse rhoncus justo ac scelerisque placerat. Donec ligula mi, luctus in scelerisque eu, lobortis vitae tellus. Aliquam eget tempus augue, egestas hendrerit est. Vivamus egestas nulla nec mi fermentum porta. Integer commodo nibh tristique nulla vehicula, id ultricies neque dictum. Fusce ut egestas diam. Aliquam at dolor efficitur nulla malesuada consequat ac ut ipsum.
61 |
--------------------------------------------------------------------------------
/content/posts/friends.md:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | type: "post"
4 | title: "The Secret to Sincere Friends? Be Yourself."
5 | author: "Jane Doe"
6 | category: "lifestyle"
7 | date: "2018-01-02"
8 | slug: "/be-yourself"
9 | postImage: "./img/friends.jpg"
10 | metaDescription: "Building friendships as an adult is really, really hard. Our advice? Just be yourself, you'll get there."
11 |
12 | ---
13 |
14 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur id varius velit. Nullam convallis finibus nisl nec fringilla. Morbi venenatis quam id luctus varius. Mauris quis eros in turpis blandit dapibus. Donec vestibulum cursus tincidunt. Proin laoreet diam ante, at convallis tellus gravida et. Fusce ac varius nulla. Curabitur eget elit aliquam, porta urna at, lacinia velit.
15 |
16 | 
17 |
18 | Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nulla et erat at lorem convallis pulvinar. Vivamus ac dui neque. Etiam non venenatis eros. Nulla tincidunt vulputate lectus, non placerat nisl viverra id. Donec ac dapibus mi, a auctor urna. Sed elit neque, accumsan in felis eget, varius hendrerit nisl. Quisque urna sem, posuere sit amet porta sit amet, fringilla a quam. Ut aliquet maximus ligula, vitae fermentum nunc rhoncus non. Nullam nec augue sapien. Nulla sed vulputate orci. Vivamus ipsum ipsum, viverra quis tincidunt sed, consectetur ut erat.
19 |
20 | Vestibulum vitae neque a velit efficitur tempor eget eu urna. Praesent et purus sollicitudin, pretium dolor non, laoreet lectus. Donec nisi sem, laoreet quis pulvinar eu, eleifend ac dui. Integer vehicula non turpis a vestibulum. Nulla facilisi. Donec lobortis, ante vitae maximus consectetur, odio augue tempor mi, at vehicula purus orci sed sapien. Maecenas cursus massa id orci fermentum laoreet. Duis elementum justo sit amet tellus dignissim tristique.
21 |
22 | Pellentesque elit justo, viverra nec malesuada eu, dictum id urna. Vivamus et purus nunc. Cras sed massa dignissim, egestas orci ac, molestie purus. Aliquam iaculis neque diam, sed vulputate mauris blandit sit amet. Aenean eu ligula in nunc consequat porta. Nunc efficitur sem eget ante venenatis, ac luctus velit venenatis. Quisque cursus ante vel ligula hendrerit, vel condimentum mi pellentesque. Sed ut felis in odio facilisis maximus. Curabitur ut lacus nisl. Sed rutrum ornare elementum. Pellentesque et velit ullamcorper, lobortis urna at, congue massa. Nulla suscipit congue aliquet. Sed urna augue, ullamcorper tempor pharetra eget, mollis a quam. Cras rhoncus sagittis augue vel lacinia.
23 |
24 | Maecenas hendrerit semper egestas. Pellentesque at erat ligula. Ut a nisl aliquam, laoreet magna vitae, lacinia tortor. Sed at volutpat velit. Maecenas vitae consectetur elit. Fusce ut augue id sapien facilisis semper ac vel enim. In consequat nulla et nulla tincidunt, ac elementum odio molestie. Cras sed nulla finibus, hendrerit erat vitae, consequat magna. Aliquam id lectus iaculis, faucibus eros at, tempus erat. In iaculis ante sem, sit amet hendrerit dolor mattis elementum. Maecenas quis sapien ut turpis consectetur porta. Maecenas vitae consectetur tortor, vel lobortis ligula.
25 |
26 | Praesent eget tellus a augue vulputate vulputate. Phasellus volutpat eros sit amet libero placerat dapibus. Vestibulum hendrerit euismod odio vulputate sodales. Sed vel justo vel turpis rhoncus cursus sed sit amet urna. Suspendisse pellentesque sapien eget nisl commodo maximus. Nulla pharetra magna in ipsum ultricies, eu aliquet ipsum euismod. Etiam nec lectus ac dui blandit maximus. Aenean lobortis pretium ipsum, eget convallis mauris. Ut lobortis condimentum justo a ultricies. Donec accumsan viverra libero, id iaculis dui efficitur sit amet. Cras ut sapien porta, tempus purus in, consectetur nulla. Vivamus efficitur ante non leo euismod cursus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Morbi ex enim, lobortis non tincidunt a, sodales nec leo. Sed blandit tempor ante quis fringilla. Integer sit amet metus nisl.
27 |
28 | Duis elementum, massa ac tincidunt ultricies, ex ligula consectetur enim, quis viverra massa risus quis enim. Duis iaculis tellus at nisi hendrerit, vitae malesuada arcu volutpat. Morbi a elit tincidunt, tincidunt mauris at, convallis erat. Morbi nec ligula tortor. Aenean efficitur scelerisque massa, feugiat tristique massa consectetur a. Nulla lobortis et erat id pretium. Sed nec pharetra libero.
29 |
30 | In vel augue enim. Maecenas in magna ac risus egestas imperdiet. Vivamus consequat vel sem vel dapibus. Suspendisse eget dolor metus. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Fusce ornare purus sed erat porttitor ultrices. Praesent maximus quam in mauris pellentesque porta. Vivamus suscipit pulvinar nunc, ut ornare urna laoreet quis. In eu iaculis dolor, tristique faucibus lectus. Nam iaculis lorem quis leo fermentum facilisis. Sed cursus quam ac porttitor ultrices. Suspendisse tincidunt tortor in molestie hendrerit. Ut blandit congue nibh, ut scelerisque leo pharetra at. Proin ornare, magna convallis mattis malesuada, justo enim pretium ex, vel pellentesque ligula ipsum sed mi. Aenean consequat laoreet ex, sed malesuada lectus convallis ut.
31 |
32 | Vestibulum non feugiat diam, sit amet convallis nisl. Etiam a nunc eget velit tincidunt rhoncus. Phasellus ut euismod nisi. Morbi erat arcu, viverra ut feugiat sit amet, mollis id enim. Quisque venenatis ultricies odio eu mattis. Fusce vel placerat lacus, fermentum fringilla neque. Nam enim lectus, consequat id augue eget, laoreet pulvinar dolor.
33 |
34 | Vivamus a lacus ante. Morbi sed ex est. Nulla tempor risus eu hendrerit efficitur. Sed porta convallis sapien, eu porttitor augue eleifend eget. Suspendisse lorem turpis, elementum non neque tempus, pellentesque laoreet est. Suspendisse rhoncus justo ac scelerisque placerat. Donec ligula mi, luctus in scelerisque eu, lobortis vitae tellus. Aliquam eget tempus augue, egestas hendrerit est. Vivamus egestas nulla nec mi fermentum porta. Integer commodo nibh tristique nulla vehicula, id ultricies neque dictum. Fusce ut egestas diam. Aliquam at dolor efficitur nulla malesuada consequat ac ut ipsum.
35 |
--------------------------------------------------------------------------------
/content/posts/img/balloons.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/madelyneriksen/gatsby-starter-tyra/4363653b54595103fbd7133be0bc7480b56786bd/content/posts/img/balloons.jpg
--------------------------------------------------------------------------------
/content/posts/img/eyeshadow.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/madelyneriksen/gatsby-starter-tyra/4363653b54595103fbd7133be0bc7480b56786bd/content/posts/img/eyeshadow.jpg
--------------------------------------------------------------------------------
/content/posts/img/flatlay.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/madelyneriksen/gatsby-starter-tyra/4363653b54595103fbd7133be0bc7480b56786bd/content/posts/img/flatlay.jpg
--------------------------------------------------------------------------------
/content/posts/img/friends.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/madelyneriksen/gatsby-starter-tyra/4363653b54595103fbd7133be0bc7480b56786bd/content/posts/img/friends.jpg
--------------------------------------------------------------------------------
/content/posts/my-post.md:
--------------------------------------------------------------------------------
1 | ---
2 |
3 | type: "post"
4 | title: "Gorgeous Makeup Looks For This Winter"
5 | author: "Jane Doe"
6 | category: "makeup"
7 | date: "2018-01-01"
8 | slug: "/post"
9 | postImage: "./img/balloons.jpg"
10 | metaDescription: "The hottest trends for the coolest season. Check out Tyra product picks and get inspired this holiday season!"
11 |
12 | ---
13 |
14 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur id varius velit. Nullam convallis finibus nisl nec fringilla. Morbi venenatis quam id luctus varius. Mauris quis eros in turpis blandit dapibus. Donec vestibulum cursus tincidunt. Proin laoreet diam ante, at convallis tellus gravida et. Fusce ac varius nulla. Curabitur eget elit aliquam, porta urna at, lacinia velit.
15 |
16 | 
17 |
18 | Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nulla et erat at lorem convallis pulvinar. Vivamus ac dui neque. Etiam non venenatis eros. Nulla tincidunt vulputate lectus, non placerat nisl viverra id. Donec ac dapibus mi, a auctor urna. Sed elit neque, accumsan in felis eget, varius hendrerit nisl. Quisque urna sem, posuere sit amet porta sit amet, fringilla a quam. Ut aliquet maximus ligula, vitae fermentum nunc rhoncus non. Nullam nec augue sapien. Nulla sed vulputate orci. Vivamus ipsum ipsum, viverra quis tincidunt sed, consectetur ut erat.
19 |
20 | Vestibulum vitae neque a velit efficitur tempor eget eu urna. Praesent et purus sollicitudin, pretium dolor non, laoreet lectus. Donec nisi sem, laoreet quis pulvinar eu, eleifend ac dui. Integer vehicula non turpis a vestibulum. Nulla facilisi. Donec lobortis, ante vitae maximus consectetur, odio augue tempor mi, at vehicula purus orci sed sapien. Maecenas cursus massa id orci fermentum laoreet. Duis elementum justo sit amet tellus dignissim tristique.
21 |
22 | Pellentesque elit justo, viverra nec malesuada eu, dictum id urna. Vivamus et purus nunc. Cras sed massa dignissim, egestas orci ac, molestie purus. Aliquam iaculis neque diam, sed vulputate mauris blandit sit amet. Aenean eu ligula in nunc consequat porta. Nunc efficitur sem eget ante venenatis, ac luctus velit venenatis. Quisque cursus ante vel ligula hendrerit, vel condimentum mi pellentesque. Sed ut felis in odio facilisis maximus. Curabitur ut lacus nisl. Sed rutrum ornare elementum. Pellentesque et velit ullamcorper, lobortis urna at, congue massa. Nulla suscipit congue aliquet. Sed urna augue, ullamcorper tempor pharetra eget, mollis a quam. Cras rhoncus sagittis augue vel lacinia.
23 |
24 | Maecenas hendrerit semper egestas. Pellentesque at erat ligula. Ut a nisl aliquam, laoreet magna vitae, lacinia tortor. Sed at volutpat velit. Maecenas vitae consectetur elit. Fusce ut augue id sapien facilisis semper ac vel enim. In consequat nulla et nulla tincidunt, ac elementum odio molestie. Cras sed nulla finibus, hendrerit erat vitae, consequat magna. Aliquam id lectus iaculis, faucibus eros at, tempus erat. In iaculis ante sem, sit amet hendrerit dolor mattis elementum. Maecenas quis sapien ut turpis consectetur porta. Maecenas vitae consectetur tortor, vel lobortis ligula.
25 |
26 | Praesent eget tellus a augue vulputate vulputate. Phasellus volutpat eros sit amet libero placerat dapibus. Vestibulum hendrerit euismod odio vulputate sodales. Sed vel justo vel turpis rhoncus cursus sed sit amet urna. Suspendisse pellentesque sapien eget nisl commodo maximus. Nulla pharetra magna in ipsum ultricies, eu aliquet ipsum euismod. Etiam nec lectus ac dui blandit maximus. Aenean lobortis pretium ipsum, eget convallis mauris. Ut lobortis condimentum justo a ultricies. Donec accumsan viverra libero, id iaculis dui efficitur sit amet. Cras ut sapien porta, tempus purus in, consectetur nulla. Vivamus efficitur ante non leo euismod cursus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Morbi ex enim, lobortis non tincidunt a, sodales nec leo. Sed blandit tempor ante quis fringilla. Integer sit amet metus nisl.
27 |
28 | Duis elementum, massa ac tincidunt ultricies, ex ligula consectetur enim, quis viverra massa risus quis enim. Duis iaculis tellus at nisi hendrerit, vitae malesuada arcu volutpat. Morbi a elit tincidunt, tincidunt mauris at, convallis erat. Morbi nec ligula tortor. Aenean efficitur scelerisque massa, feugiat tristique massa consectetur a. Nulla lobortis et erat id pretium. Sed nec pharetra libero.
29 |
30 | In vel augue enim. Maecenas in magna ac risus egestas imperdiet. Vivamus consequat vel sem vel dapibus. Suspendisse eget dolor metus. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Fusce ornare purus sed erat porttitor ultrices. Praesent maximus quam in mauris pellentesque porta. Vivamus suscipit pulvinar nunc, ut ornare urna laoreet quis. In eu iaculis dolor, tristique faucibus lectus. Nam iaculis lorem quis leo fermentum facilisis. Sed cursus quam ac porttitor ultrices. Suspendisse tincidunt tortor in molestie hendrerit. Ut blandit congue nibh, ut scelerisque leo pharetra at. Proin ornare, magna convallis mattis malesuada, justo enim pretium ex, vel pellentesque ligula ipsum sed mi. Aenean consequat laoreet ex, sed malesuada lectus convallis ut.
31 |
32 | Vestibulum non feugiat diam, sit amet convallis nisl. Etiam a nunc eget velit tincidunt rhoncus. Phasellus ut euismod nisi. Morbi erat arcu, viverra ut feugiat sit amet, mollis id enim. Quisque venenatis ultricies odio eu mattis. Fusce vel placerat lacus, fermentum fringilla neque. Nam enim lectus, consequat id augue eget, laoreet pulvinar dolor.
33 |
34 | Vivamus a lacus ante. Morbi sed ex est. Nulla tempor risus eu hendrerit efficitur. Sed porta convallis sapien, eu porttitor augue eleifend eget. Suspendisse lorem turpis, elementum non neque tempus, pellentesque laoreet est. Suspendisse rhoncus justo ac scelerisque placerat. Donec ligula mi, luctus in scelerisque eu, lobortis vitae tellus. Aliquam eget tempus augue, egestas hendrerit est. Vivamus egestas nulla nec mi fermentum porta. Integer commodo nibh tristique nulla vehicula, id ultricies neque dictum. Fusce ut egestas diam. Aliquam at dolor efficitur nulla malesuada consequat ac ut ipsum.
35 |
--------------------------------------------------------------------------------
/gatsby-config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | siteMetadata: {
3 | navbarLinks: [
4 | {to: "/makeup", name: "Makeup"},
5 | {to: "/lifestyle", name: "Lifestyle"},
6 | {to: "/blog", name: "blog"},
7 | ],
8 | title: "TYRA",
9 | description: "Tyra is a fast, feminine, and chic Gatsby.js theme.",
10 | siteUrl: "https://tyra-starter.netlify.com",
11 | homepageHeader: "Welcome to Your New Blog",
12 | homepageAbout: "Tyra is a modern, sleek and feminine Gatsby.js theme. Easily create a beautiful and fast blog and draw attention to your stellar content.",
13 | mailChimpUrl: "https://mailchimp.com",
14 | mailChimpToken: "MAILCHIMP TOKEN HERE",
15 | youtube: "", // YOUR YOUTUBE PROFILE HERE
16 | github: "", // YOUR GITHUB PROFILE HERE
17 | pinterest: "", // YOUR PINTEREST PROFILE HERE
18 | facebook: "", // YOUR FACEBOOK PROFILE HERE
19 | twitter: "", // YOUR TWITTER PROFILE HERE
20 | },
21 | plugins: [
22 | 'gatsby-plugin-sitemap',
23 | 'gatsby-plugin-react-helmet',
24 | 'gatsby-transformer-sharp',
25 | 'gatsby-plugin-sharp',
26 | {
27 | resolve: 'gatsby-plugin-feed',
28 | options: {
29 | query: `
30 | {
31 | site {
32 | siteMetadata {
33 | title
34 | description
35 | siteUrl
36 | site_url: siteUrl
37 | }
38 | }
39 | }
40 | `,
41 | feeds: [
42 | {
43 | serialize: ({ query: { site, allMarkdownRemark } }) => {
44 | return allMarkdownRemark.edges.map(edge => {
45 | return Object.assign({}, edge.node.frontmatter, {
46 | description: edge.node.excerpt,
47 | date: edge.node.frontmatter.date,
48 | url: site.siteMetadata.siteUrl + edge.node.frontmatter.slug,
49 | guid: site.siteMetadata.siteUrl + edge.node.frontmatter.slug,
50 | custom_elements: [{ "content:encoded": edge.node.html }],
51 | })
52 | })
53 | },
54 | query: `
55 | {
56 | allMarkdownRemark(
57 | limit: 1000,
58 | sort: { order: DESC, fields: [frontmatter___date] },
59 | filter: {frontmatter: {type: {eq: "post"}}}
60 | ) {
61 | edges {
62 | node {
63 | excerpt
64 | html
65 | frontmatter {
66 | slug
67 | title
68 | date
69 | }
70 | }
71 | }
72 | }
73 | }
74 | `,
75 | output: "/rss.xml",
76 | title: "Gatsby RSS Feed",
77 | },
78 | ],
79 | },
80 | },
81 | {
82 | resolve: 'gatsby-source-filesystem',
83 | options: {
84 | path: `${__dirname}/content`,
85 | name: 'content',
86 | },
87 | },
88 | {
89 | resolve: 'gatsby-transformer-remark',
90 | options: {
91 | plugins: [
92 | 'gatsby-remark-copy-linked-files',
93 | {
94 | resolve: 'gatsby-remark-images',
95 | options: {
96 | maxWidth: 1400,
97 | },
98 | },
99 | ],
100 | }
101 | },
102 | {
103 | resolve: 'gatsby-plugin-web-font-loader',
104 | options: {
105 | google: {
106 | families: ['Karla', 'Playfair Display', 'Lora']
107 | }
108 | }
109 | },
110 | {
111 | resolve: 'gatsby-plugin-google-analytics',
112 | options: {
113 | trackingId: "",
114 | head: false,
115 | anonymize: true,
116 | respectDNT: true,
117 | exclude: ['/success'],
118 | cookieDomain: "tyra-starter.netlify.com",
119 | }
120 | }
121 | ]
122 | }
123 |
--------------------------------------------------------------------------------
/gatsby-node.js:
--------------------------------------------------------------------------------
1 | const path = require('path');
2 |
3 | exports.createPages = ({ graphql, actions}) => {
4 | const { createPage } = actions;
5 |
6 | return new Promise((resolve, reject) => {
7 | resolve(
8 | graphql(
9 | `
10 | {
11 | allPosts: allMarkdownRemark(
12 | filter: {frontmatter: {type: {eq: "post"}}},
13 | sort: {fields: frontmatter___date, order: DESC},
14 | ) {
15 | edges {
16 | node {
17 | frontmatter {
18 | slug
19 | }
20 | }
21 | }
22 | group(field: frontmatter___category) {
23 | fieldValue
24 | edges {
25 | node {
26 | frontmatter {
27 | slug
28 | }
29 | }
30 | }
31 | }
32 | }
33 | }
34 | `
35 | ).then(result => {
36 | if (result.errors) {
37 | reject(result.errors)
38 | }
39 | const allPosts = result.data.allPosts.edges;
40 | const groupedPosts = result.data.allPosts.group;
41 | const paginationTemplate = path.resolve('src/blog/index.js');
42 | const postsPerPage = 10;
43 | let numPages = Math.ceil(allPosts.length / postsPerPage);
44 |
45 | // Creating the main blog index
46 | Array.from({ length: numPages }).forEach((_, i) => {
47 | createPage({
48 | path: i === 0 ? '/blog' : `/blog/${i + 1}`,
49 | component: paginationTemplate,
50 | context: {
51 | limit: postsPerPage,
52 | skip: i * postsPerPage,
53 | nextPage: `/blog/${i + 2}`,
54 | pageNumber: i + 1,
55 | }
56 | })
57 | })
58 |
59 | // Creating all category pages.
60 | let category;
61 | let categoryPosts;
62 | const categoryTemplate = path.resolve('src/blog/category.js');
63 | groupedPosts.forEach((group, _) => {
64 | category = group.fieldValue;
65 | categoryPosts = group.edges;
66 | numPages = Math.ceil(categoryPosts.length / postsPerPage);
67 | Array.from({ length: numPages }).forEach((_, i) => {
68 | createPage({
69 | path: i === 0 ? `/${category}` : `/${category}/${i + 1}`,
70 | component: categoryTemplate,
71 | context: {
72 | limit: postsPerPage,
73 | skip: i * postsPerPage,
74 | nextPage: `/${category}/${i + 2}`,
75 | pageNumber: i + 1,
76 | category: category,
77 | }
78 | })
79 | })
80 | })
81 |
82 | // Create all the blog post pages.
83 | const template = path.resolve('src/blog/post.js');
84 | allPosts.forEach(({ node }) => {
85 | let slug = node.frontmatter.slug;
86 | createPage({
87 | path: slug,
88 | component: template,
89 | context: {
90 | slug,
91 | }
92 | })
93 | })
94 | })
95 | )
96 | })
97 | }
98 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "gatsby-starter-tyra",
3 | "description": "Gatsby Tyra Starter",
4 | "license": "MIT",
5 | "scripts": {
6 | "develop": "gatsby develop",
7 | "start": "npm run develop",
8 | "build": "gatsby build",
9 | "serve": "gatsby serve"
10 | },
11 | "dependencies": {
12 | "gatsby": "^2.19.49",
13 | "gatsby-image": "^2.11.0",
14 | "gatsby-plugin-feed": "^2.12.0",
15 | "gatsby-plugin-google-analytics": "^2.11.0",
16 | "gatsby-plugin-react-helmet": "^3.10.0",
17 | "gatsby-plugin-sharp": "^2.4.13",
18 | "gatsby-plugin-sitemap": "^2.12.0",
19 | "gatsby-plugin-web-font-loader": "^1.0.4",
20 | "gatsby-remark-copy-linked-files": "^2.10.0",
21 | "gatsby-remark-images": "^3.11.1",
22 | "gatsby-source-filesystem": "^2.11.1",
23 | "gatsby-transformer-remark": "^2.16.1",
24 | "gatsby-transformer-sharp": "^2.3.19",
25 | "react": "^16.14.0",
26 | "react-dom": "^16.14.0",
27 | "react-helmet": "^5.2.1",
28 | "react-icons": "^3.11.0",
29 | "tachyons": "^4.12.0"
30 | },
31 | "devDependencies": {}
32 | }
33 |
--------------------------------------------------------------------------------
/screenshot.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/madelyneriksen/gatsby-starter-tyra/4363653b54595103fbd7133be0bc7480b56786bd/screenshot.jpg
--------------------------------------------------------------------------------
/src/blog/category.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import Layout from '../common/layouts';
3 | import { Link, graphql } from 'gatsby';
4 | import Breadcrumbs from './components/breadcrumbs';
5 | import Preview from './components/post-preview.js';
6 | import Seo from '../common/seo';
7 | import 'tachyons';
8 |
9 |
10 | export default class BlogIndex extends React.Component {
11 | render() {
12 | const posts = this.props.data.posts.edges;
13 | const hasNext = this.props.data.posts.pageInfo.hasNextPage;
14 | const category = this.props.pageContext.category;
15 | return (
16 | Posts Tagged {category}
21 |
{data.site.siteMetadata.homepageAbout}
21 | About Tyra 22 |{props.description}
17 | Read More 18 |We couldn't find what you were looking for.
20 | Go to homepage 21 |Effective date: December 19, 2018
19 |Gatsby Starter Tyra ("us", "we", or "our") operates the gatsby-starter-tyra.netlify.com website (the "Service").
22 |This page informs you of our policies regarding the collection, use, and disclosure of personal data when you use our Service and the choices you have associated with that data. Our Privacy Policy for Gatsby Starter Tyra is based on the Free Privacy Policy Template Website.
23 |We use your data to provide and improve the Service. By using the Service, you agree to the collection and use of information in accordance with this policy. Unless otherwise defined in this Privacy Policy, terms used in this Privacy Policy have the same meanings as in our Terms and Conditions, accessible from gatsby-starter-tyra.netlify.com
24 |We collect several different types of information for various purposes to provide and improve our Service to you.
26 |While using our Service, we may ask you to provide us with certain personally identifiable information that can be used to contact or identify you ("Personal Data"). Personally identifiable information may include, but is not limited to:
29 |We may also collect information how the Service is accessed and used ("Usage Data"). This Usage Data may include information such as your computer's Internet Protocol address (e.g. IP address), browser type, browser version, the pages of our Service that you visit, the time and date of your visit, the time spent on those pages, unique device identifiers and other diagnostic data.
34 |We use cookies and similar tracking technologies to track the activity on our Service and hold certain information.
36 |Cookies are files with small amount of data which may include an anonymous unique identifier. Cookies are sent to your browser from a website and stored on your device. Tracking technologies also used are beacons, tags, and scripts to collect and track information and to improve and analyze our Service.
37 |You can instruct your browser to refuse all cookies or to indicate when a cookie is being sent. However, if you do not accept cookies, you may not be able to use some portions of our Service.
38 |Examples of Cookies we use:
39 |Gatsby Starter Tyra uses the collected data for various purposes:
46 |Your information, including Personal Data, may be transferred to — and maintained on — computers located outside of your state, province, country or other governmental jurisdiction where the data protection laws may differ than those from your jurisdiction.
57 |If you are located outside United States and choose to provide information to us, please note that we transfer the data, including Personal Data, to United States and process it there.
58 |Your consent to this Privacy Policy followed by your submission of such information represents your agreement to that transfer.
59 |Gatsby Starter Tyra will take all steps reasonably necessary to ensure that your data is treated securely and in accordance with this Privacy Policy and no transfer of your Personal Data will take place to an organization or a country unless there are adequate controls in place including the security of your data and other personal information.
60 |Gatsby Starter Tyra may disclose your Personal Data in the good faith belief that such action is necessary to:
63 |The security of your data is important to us, but remember that no method of transmission over the Internet, or method of electronic storage is 100% secure. While we strive to use commercially acceptable means to protect your Personal Data, we cannot guarantee its absolute security.
72 |We may employ third party companies and individuals to facilitate our Service ("Service Providers"), to provide the Service on our behalf, to perform Service-related services or to assist us in analyzing how our Service is used.
74 |These third parties have access to your Personal Data only to perform these tasks on our behalf and are obligated not to disclose or use it for any other purpose.
75 |We may use third-party Service Providers to monitor and analyze the use of our Service.
77 |Google Analytics
80 |Google Analytics is a web analytics service offered by Google that tracks and reports website traffic. Google uses the data collected to track and monitor the use of our Service. This data is shared with other Google services. Google may use the collected data to contextualize and personalize the ads of its own advertising network.
81 |You can opt-out of having made your activity on the Service available to Google Analytics by enabling "Do Not Track" in your browser.
82 |For more information on the privacy practices of Google, please visit the Google Privacy & Terms web page: https://policies.google.com/privacy?hl=en
83 |Our Service may contain links to other sites that are not operated by us. If you click on a third party link, you will be directed to that third party's site. We strongly advise you to review the Privacy Policy of every site you visit.
87 |We have no control over and assume no responsibility for the content, privacy policies or practices of any third party sites or services.
88 |Our Service does not address anyone under the age of 18 ("Children").
90 |We do not knowingly collect personally identifiable information from anyone under the age of 18. If you are a parent or guardian and you are aware that your Children has provided us with Personal Data, please contact us. If we become aware that we have collected Personal Data from children without verification of parental consent, we take steps to remove that information from our servers.
91 |We may update our Privacy Policy from time to time. We will notify you of any changes by posting the new Privacy Policy on this page.
93 |We will let you know via email and/or a prominent notice on our Service, prior to the change becoming effective and update the "effective date" at the top of this Privacy Policy.
94 |You are advised to review this Privacy Policy periodically for any changes. Changes to this Privacy Policy are effective when they are posted on this page.
95 |If you have any questions about this Privacy Policy, please contact us:
97 |