96 | Post index in grid format using gatsby-image to 97 | generate square thumbnail images from the same “cover 98 | image” source. 99 |
100 | {chunk(posts.slice(0, this.state.postsToShow), 4).map((chunk, i) => ( 101 |├── .editorconfig ├── .eslintignore ├── .eslintrc.js ├── .gitignore ├── .prettierrc ├── LICENSE ├── README.md ├── config └── SiteConfig.js ├── gatsby-config.js ├── gatsby-node.js ├── netlify.toml ├── package.json ├── src ├── assets │ └── images │ │ ├── 1200x500.png │ │ ├── 1200x600.JPG │ │ ├── 600x300.jpg │ │ ├── 7758832526_cc8f681e48_c.jpg │ │ ├── bio-photo.jpg │ │ ├── image-alignment-1200x4002.jpg │ │ ├── image-alignment-150x150.jpg │ │ ├── image-alignment-300x200.jpg │ │ ├── image-alignment-580x300.jpg │ │ ├── joshua-earle-234740.jpg │ │ ├── null.png │ │ ├── unsplash-image-1.jpg │ │ ├── unsplash-image-10.jpg │ │ ├── unsplash-image-11.jpg │ │ ├── unsplash-image-2.jpg │ │ ├── unsplash-image-3.jpg │ │ ├── unsplash-image-4.jpg │ │ ├── unsplash-image-5.jpg │ │ ├── unsplash-image-6.jpg │ │ ├── unsplash-image-7.jpg │ │ ├── unsplash-image-8.jpg │ │ └── unsplash-image-9.jpg ├── comments │ ├── markup │ │ ├── markup-html-tags-and-formatting │ │ │ └── comment-1528316381544.md │ │ ├── markup-syntax-highlighting │ │ │ └── comment-1528733989174.md │ │ └── markup-text-readability │ │ │ └── comment-1535554587673.md │ └── post │ │ ├── hello-world │ │ ├── comment-1470942205700.md │ │ ├── comment-1470942247755.md │ │ ├── comment-1470942265819.md │ │ ├── comment-1470942493518.md │ │ ├── comment-1471823346931.md │ │ ├── comment-1471834988411.md │ │ ├── comment-1472786599470.md │ │ ├── comment-1474328950155.md │ │ ├── comment-1500505983331.md │ │ └── comment-1507141538771.md │ │ └── post-future-date │ │ └── comment-1527277069391.md ├── components │ ├── Byline.js │ ├── Comment.js │ ├── Comments.js │ ├── CommentsForm.js │ ├── Footer.js │ ├── Header.js │ ├── Layout.js │ ├── Menu.js │ ├── OverlayMenu.js │ ├── OverlayMenuItems.js │ ├── PageMeta.js │ ├── PageTitle.js │ ├── Pagination.js │ ├── PaginationLink.js │ ├── PostCategories.js │ ├── PostListing.js │ ├── PostPagination.js │ ├── PostTags.js │ └── SkipLinks.js ├── css │ ├── global.css │ └── prism.css ├── pages │ ├── 404.js │ ├── category.js │ ├── comment-success.js │ ├── grid-example.js │ └── tag.js ├── templates │ ├── blog-post.js │ ├── categories.js │ ├── index.js │ └── tags.js ├── test-posts │ ├── 2009-05-15-edge-case-nested-and-mixed-lists.md │ ├── 2009-06-01-edge-case-many-tags.md │ ├── 2009-06-01-edge-case-no-tags.md │ ├── 2009-07-02-edge-case-many-categories.md │ ├── 2009-08-06-edge-case-no-body-content.md │ ├── 2009-09-05-edge-case-no-yaml-title.md │ ├── 2009-10-05-edge-case-title-should-not-overflow-the-content-area.md │ ├── 2009-10-05-edge-case-very-long-title.md │ ├── 2010-01-07-post-modified.md │ ├── 2010-01-07-post-standard.md │ ├── 2010-01-08-post-chat.md │ ├── 2010-02-05-post-notice.md │ ├── 2010-02-05-post-quote.md │ ├── 2010-03-07-post-link.md │ ├── 2010-06-02-post-video-youtube.md │ ├── 2010-08-05-post-cover-image.md │ ├── 2010-08-05-post-image-linked.md │ ├── 2010-08-05-post-image-standard.md │ ├── 2010-08-06-post-image-linked-caption.md │ ├── 2010-08-07-post-image-caption.md │ ├── 2010-09-10-post-twitter-embeds.md │ ├── 2010-10-25-post-future-date.md │ ├── 2012-05-22-markup-text-readability.md │ ├── 2013-01-05-markup-title-with-markup.md │ ├── 2013-01-05-markup-title-with-special-characters.md │ ├── 2013-01-09-markup-text-alignment.md │ ├── 2013-01-10-markup-image-alignment.md │ ├── 2013-01-11-markup-html-tags-and-formatting.md │ ├── 2013-05-22-markup-more-images.md │ ├── 2013-08-16-markup-syntax-highlighting.md │ └── 2018-04-30-hello-world.md └── utils │ ├── colors.js │ ├── fonts.js │ └── presets.js ├── static ├── favicon.ico └── robots.txt ├── staticman.yml └── yarn.lock /.editorconfig: -------------------------------------------------------------------------------- 1 | # editorconfig.org 2 | root = true 3 | 4 | [*] 5 | indent_style = space 6 | indent_size = 2 7 | end_of_line = lf 8 | charset = utf-8 9 | trim_trailing_whitespace = true 10 | insert_final_newline = true 11 | 12 | [*.md] 13 | trim_trailing_whitespace = false 14 | -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | public 3 | static 4 | .cache 5 | content 6 | -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | "env": { 3 | "browser": true, 4 | "es6": true, 5 | }, 6 | "root": true, 7 | "extends": ["airbnb", "plugin:prettier/recommended"], 8 | "settings": { 9 | "import/core-modules": ["gatsby", "react", "config"] 10 | }, 11 | "plugins": [ 12 | "react", 13 | ], 14 | "globals": { 15 | "graphql": true, 16 | }, 17 | "parserOptions": { 18 | "sourceType": "module", 19 | "ecmaFeatures": { 20 | "experimentalObjectRestSpread": true, 21 | "jsx": true, 22 | }, 23 | }, 24 | "rules": { 25 | "linebreak-style": 0, 26 | "react/prefer-stateless-function": "off", 27 | "react/jsx-filename-extension": [1, { "extensions": [".js", ".jsx"] }], 28 | "jsx-a11y/anchor-is-valid": [ 29 | "error", 30 | { 31 | "components": ["Link"], 32 | "specialLink": ["to"], 33 | "aspects": ["noHref", "invalidHref", "preferButton"] 34 | } 35 | ] 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | public 3 | .gatsby-context.js 4 | .DS_Store 5 | .intermediate-representation/ 6 | .cache/ 7 | yarn.lock 8 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "trailingComma": "es5", 3 | "semi": false, 4 | "singleQuote": true 5 | } 6 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 Gatsbyjs 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 | # Jekyll :arrow_right: Gatsby MVP 2 | 3 | Running Gatsby through its paces by trying to import content from an existing Jekyll site. 4 | 5 | See [#1](https://github.com/mmistakes/gatsby-test/issues/1) for more context. 6 | 7 | ## Development 8 | 9 | 1. Install [Yarn](https://yarnpkg.com/en/). 10 | 2. `yarn` 11 | 3. `gatsby develop` 12 | -------------------------------------------------------------------------------- /config/SiteConfig.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | pathPrefix: '/', // Prefix for all links. If you deploy your site to example.com/blog your pathPrefix should be "blog" 3 | siteUrl: `https://awesome-lewin-0d1356.netlify.com`, 4 | title: `Jekyll → Gatsby MVP`, 5 | author: `Michael Rose`, 6 | description: `Test conversion of a Jekyll powered site to Gatsby.`, 7 | } 8 | -------------------------------------------------------------------------------- /gatsby-config.js: -------------------------------------------------------------------------------- 1 | const config = require('./config/SiteConfig') 2 | 3 | const pathPrefix = config.pathPrefix === '/' ? '' : config.pathPrefix 4 | 5 | module.exports = { 6 | siteMetadata: { 7 | title: config.title, 8 | author: config.author, 9 | description: config.description, 10 | siteUrl: config.siteUrl + pathPrefix, 11 | }, 12 | plugins: [ 13 | { 14 | resolve: `gatsby-source-filesystem`, 15 | options: { 16 | path: `${__dirname}/src/pages`, 17 | name: `pages`, 18 | }, 19 | }, 20 | { 21 | resolve: `gatsby-source-filesystem`, 22 | options: { 23 | path: `${__dirname}/src/test-posts`, 24 | name: `test-posts`, 25 | }, 26 | }, 27 | { 28 | resolve: `gatsby-source-filesystem`, 29 | options: { 30 | path: `${__dirname}/src/assets/images`, 31 | name: `images`, 32 | }, 33 | }, 34 | { 35 | resolve: `gatsby-source-filesystem`, 36 | options: { 37 | path: `${__dirname}/src/comments`, 38 | name: `comments`, 39 | }, 40 | }, 41 | { 42 | resolve: `gatsby-transformer-remark`, 43 | options: { 44 | excerpt_separator: ``, 45 | plugins: [ 46 | { 47 | resolve: `gatsby-remark-images`, 48 | options: { 49 | maxWidth: 750, 50 | quality: 90, 51 | }, 52 | }, 53 | { 54 | resolve: `gatsby-remark-responsive-iframe`, 55 | options: { 56 | wrapperStyle: `margin-bottom: 1.0725rem`, 57 | }, 58 | }, 59 | { 60 | resolve: `gatsby-remark-prismjs`, 61 | options: { 62 | classPrefix: `language-`, 63 | inlineCodeMarker: null, 64 | aliases: {}, 65 | }, 66 | }, 67 | { 68 | resolve: `gatsby-remark-custom-blocks`, 69 | options: { 70 | blocks: { 71 | notice: { 72 | classes: `notice`, 73 | title: `optional`, 74 | }, 75 | info: { 76 | classes: `notice info`, 77 | title: `optional`, 78 | }, 79 | warning: { 80 | classes: `notice warning`, 81 | title: `optional`, 82 | }, 83 | danger: { 84 | classes: `notice danger`, 85 | title: `optional`, 86 | }, 87 | success: { 88 | classes: `notice success`, 89 | title: `optional`, 90 | }, 91 | }, 92 | }, 93 | }, 94 | { 95 | resolve: `gatsby-remark-smartypants`, 96 | options: { 97 | dashes: `oldschool`, 98 | }, 99 | }, 100 | `gatsby-remark-copy-linked-files`, 101 | `gatsby-remark-emoji`, 102 | `gatsby-remark-autolink-headers`, 103 | `gatsby-remark-abbr`, 104 | `gatsby-remark-numbered-footnotes`, 105 | ], 106 | }, 107 | }, 108 | `gatsby-remark-source-name`, 109 | `gatsby-plugin-glamor`, 110 | `gatsby-plugin-twitter`, 111 | `gatsby-transformer-sharp`, 112 | `gatsby-plugin-sharp`, 113 | { 114 | resolve: `gatsby-plugin-google-analytics`, 115 | options: { 116 | // trackingId: `ADD YOUR TRACKING ID HERE`, 117 | }, 118 | }, 119 | { 120 | resolve: `gatsby-plugin-feed`, 121 | options: { 122 | query: ` 123 | { 124 | site { 125 | siteMetadata { 126 | title 127 | description 128 | siteUrl 129 | site_url: siteUrl 130 | } 131 | } 132 | } 133 | `, 134 | feeds: [ 135 | { 136 | serialize: ({ query: { site, allMarkdownRemark } }) => { 137 | return allMarkdownRemark.edges.map(edge => { 138 | return Object.assign({}, edge.node.frontmatter, { 139 | description: edge.node.excerpt, 140 | url: site.siteMetadata.siteUrl + edge.node.fields.slug, 141 | guid: site.siteMetadata.siteUrl + edge.node.fields.slug, 142 | custom_elements: [{ 'content:encoded': edge.node.html }], 143 | }) 144 | }) 145 | }, 146 | query: ` 147 | { 148 | allMarkdownRemark( 149 | limit: 20, 150 | sort: { fields: [fields___date], order: DESC }, 151 | filter: { 152 | fields: { 153 | sourceName: { ne: "comments" } 154 | } 155 | } 156 | ) { 157 | edges { 158 | node { 159 | excerpt 160 | html 161 | fields { 162 | slug 163 | date 164 | } 165 | frontmatter { 166 | title 167 | } 168 | } 169 | } 170 | } 171 | } 172 | `, 173 | output: '/rss.xml', 174 | }, 175 | ], 176 | }, 177 | }, 178 | { 179 | resolve: `gatsby-plugin-sitemap`, 180 | options: { 181 | output: `/sitemap.xml`, 182 | // Exclude specific pages or groups of pages using glob parameters 183 | // See: https://github.com/isaacs/minimatch 184 | // The example below will exclude the single `path/to/page` and all routes beginning with `category` 185 | // exclude: ["/category/*", `/path/to/page`], 186 | query: ` 187 | { 188 | site { 189 | siteMetadata { 190 | siteUrl 191 | } 192 | } 193 | 194 | allSitePage { 195 | edges { 196 | node { 197 | path 198 | } 199 | } 200 | } 201 | }`, 202 | }, 203 | }, 204 | `gatsby-plugin-react-helmet`, 205 | `gatsby-plugin-netlify`, 206 | ], 207 | } 208 | -------------------------------------------------------------------------------- /gatsby-node.js: -------------------------------------------------------------------------------- 1 | const _ = require('lodash') 2 | const moment = require('moment') 3 | const Promise = require('bluebird') 4 | const path = require('path') 5 | const { createFilePath } = require('gatsby-source-filesystem') 6 | const { createPaginationPages } = require('gatsby-pagination') 7 | 8 | // Calculate post defaults. 9 | const calculateDefaults = (node, getNode) => { 10 | const defaultSlug = createFilePath({ node, getNode, basePath: `pages` }) 11 | const isPostShaped = defaultSlug.match( 12 | /^\/([\d]{4}-[\d]{2}-[\d]{2})-{1}(.+)\/$/ 13 | ) 14 | 15 | if (isPostShaped) { 16 | const [, defaultDate, defaultTitle] = isPostShaped 17 | return [defaultSlug, defaultTitle, defaultDate] 18 | } 19 | 20 | const [, defaultTitle] = defaultSlug.match(/^\/(.*)\/$/) 21 | const defaultDate = moment().format('YYYY-MM-DD') 22 | return [defaultSlug, defaultTitle, defaultDate] 23 | } 24 | 25 | exports.onCreateNode = ({ node, getNode, actions }) => { 26 | const { createNodeField } = actions 27 | 28 | if (node.internal.type === `MarkdownRemark`) { 29 | try { 30 | if (node.fields.sourceName !== `comments`) { 31 | const [defaultSlug, defaultTitle, defaultDate] = calculateDefaults( 32 | node, 33 | getNode 34 | ) 35 | 36 | const date = node.frontmatter.date || defaultDate 37 | const title = defaultTitle 38 | const { categories } = node.frontmatter 39 | const categoriesPath = categories 40 | .join('/') 41 | .replace(/([a-z])([A-Z])/g, '$1-$2') 42 | .replace(/\s+/g, '-') 43 | .toLowerCase() 44 | const slug = `/${categoriesPath}/${title}/` 45 | 46 | createNodeField({ node, name: `slug`, value: slug }) 47 | createNodeField({ node, name: `date`, value: date }) 48 | } 49 | } catch (ex) { 50 | console.log('Error onCreateNode():', node.fileAbsolutePath, '\n', ex) 51 | throw ex 52 | } 53 | } 54 | } 55 | 56 | exports.createPages = ({ graphql, actions }) => { 57 | const { createPage } = actions 58 | 59 | return new Promise((resolve, reject) => { 60 | const indexPage = path.resolve('./src/templates/index.js') 61 | const blogPostTemplate = path.resolve('./src/templates/blog-post.js') 62 | const categoryPageTemplate = path.resolve('./src/templates/categories.js') 63 | const tagPageTemplate = path.resolve('./src/templates/tags.js') 64 | 65 | resolve( 66 | graphql( 67 | ` 68 | { 69 | allMarkdownRemark( 70 | sort: { fields: [fields___date], order: DESC } 71 | filter: { fields: { sourceName: { ne: "comments" } } } 72 | ) { 73 | edges { 74 | node { 75 | id 76 | excerpt(pruneLength: 280) 77 | timeToRead 78 | fields { 79 | slug 80 | date(formatString: "MMMM DD, YYYY") 81 | } 82 | frontmatter { 83 | title 84 | excerpt 85 | categories 86 | tags 87 | image { 88 | path { 89 | childImageSharp { 90 | fluid(maxWidth: 750, quality: 90) { 91 | base64 92 | aspectRatio 93 | src 94 | srcSet 95 | sizes 96 | } 97 | } 98 | } 99 | cover 100 | } 101 | } 102 | } 103 | } 104 | } 105 | } 106 | ` 107 | ).then(result => { 108 | if (result.errors) { 109 | console.log(result.errors) 110 | reject(result.errors) 111 | } 112 | 113 | const posts = result.data.allMarkdownRemark.edges 114 | 115 | // Create post pages 116 | _.each(posts, (post, index) => { 117 | const previous = 118 | index === posts.length - 1 ? null : posts[index + 1].node 119 | const next = index === 0 ? null : posts[index - 1].node 120 | 121 | createPage({ 122 | path: post.node.fields.slug, 123 | component: blogPostTemplate, 124 | context: { 125 | slug: post.node.fields.slug, 126 | previous, 127 | next, 128 | }, 129 | }) 130 | }) 131 | 132 | // Create paginated index page 133 | createPaginationPages({ 134 | createPage, 135 | edges: posts, 136 | component: indexPage, 137 | limit: 5, 138 | }) 139 | 140 | const tagSet = new Set() 141 | const tagMap = new Map() 142 | const categorySet = new Set() 143 | const categoryMap = new Map() 144 | posts.forEach(edge => { 145 | if (edge.node.frontmatter.tags) { 146 | edge.node.frontmatter.tags.forEach(tag => { 147 | tagSet.add(tag) 148 | 149 | const array = tagMap.has(tag) ? tagMap.get(tag) : [] 150 | array.push(edge) 151 | tagMap.set(tag, array) 152 | }) 153 | } 154 | 155 | if (edge.node.frontmatter.categories) { 156 | edge.node.frontmatter.categories.forEach(category => { 157 | categorySet.add(category) 158 | 159 | const array = categoryMap.has(category) 160 | ? categoryMap.get(category) 161 | : [] 162 | array.push(edge) 163 | categoryMap.set(category, array) 164 | }) 165 | } 166 | }) 167 | 168 | const tagList = Array.from(tagSet) 169 | const categoryList = Array.from(categorySet) 170 | 171 | tagList.forEach(tag => { 172 | // Create paginated tag pages 173 | const tagFormatter = tag => route => 174 | `/tag/${_.kebabCase(tag)}/${route !== 1 ? route : ''}` 175 | createPaginationPages({ 176 | createPage, 177 | edges: tagMap.get(tag), 178 | component: tagPageTemplate, 179 | pathFormatter: tagFormatter(tag), 180 | limit: 5, 181 | context: { 182 | tag, 183 | }, 184 | }) 185 | }) 186 | 187 | categoryList.forEach(category => { 188 | // Create paginated category pages 189 | const categoryFormatter = category => route => 190 | `/${_.kebabCase(category)}/${route !== 1 ? route : ''}` 191 | createPaginationPages({ 192 | createPage, 193 | edges: categoryMap.get(category), 194 | component: categoryPageTemplate, 195 | pathFormatter: categoryFormatter(category), 196 | limit: 5, 197 | context: { 198 | category, 199 | }, 200 | }) 201 | }) 202 | }) 203 | ) 204 | }) 205 | } 206 | -------------------------------------------------------------------------------- /netlify.toml: -------------------------------------------------------------------------------- 1 | [build.environment] 2 | NODE_VERSION = "8" 3 | YARN_VERSION = "1.2.1" 4 | YARN_FLAGS = "--pure-lockfile --verbose" 5 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "gatsby-test", 3 | "description": "Gatsby Test", 4 | "version": "2.0.0", 5 | "author": "Michael Rose", 6 | "bugs": { 7 | "url": "https://github.com/mmistakes/gatsby-test/issues" 8 | }, 9 | "dependencies": { 10 | "bluebird": "^3.5.1", 11 | "classnames": "^2.2.6", 12 | "gatsby": "next", 13 | "gatsby-image": "next", 14 | "gatsby-pagination": "^1.2.0", 15 | "gatsby-plugin-feed": "next", 16 | "gatsby-plugin-glamor": "next", 17 | "gatsby-plugin-google-analytics": "next", 18 | "gatsby-plugin-netlify": "next", 19 | "gatsby-plugin-offline": "next", 20 | "gatsby-plugin-react-helmet": "next", 21 | "gatsby-plugin-sharp": "next", 22 | "gatsby-plugin-sitemap": "next", 23 | "gatsby-plugin-twitter": "next", 24 | "gatsby-remark-abbr": "^1.0.0", 25 | "gatsby-remark-autolink-headers": "next", 26 | "gatsby-remark-copy-linked-files": "next", 27 | "gatsby-remark-custom-blocks": "next", 28 | "gatsby-remark-emoji": "^0.0.1", 29 | "gatsby-remark-images": "next", 30 | "gatsby-remark-numbered-footnotes": "^1.0.0", 31 | "gatsby-remark-prismjs": "next", 32 | "gatsby-remark-responsive-iframe": "next", 33 | "gatsby-remark-smartypants": "next", 34 | "gatsby-remark-source-name": "^1.0.0", 35 | "gatsby-source-filesystem": "next", 36 | "gatsby-transformer-remark": "next", 37 | "gatsby-transformer-sharp": "next", 38 | "glamor": "^2.20.40", 39 | "lodash": "^4.17.19", 40 | "moment": "^2.22.2", 41 | "prismjs": "^1.15.0", 42 | "prop-types": "^15.6.2", 43 | "react": "^16.4.1", 44 | "react-dom": "^16.4.1", 45 | "react-gravatar": "^2.6.3", 46 | "react-helmet": "^5.2.0", 47 | "slug": "^0.9.1", 48 | "typeface-alegreya": "^0.0.54" 49 | }, 50 | "devDependencies": { 51 | "eslint": "4.19.1", 52 | "eslint-config-airbnb": "16.1.0", 53 | "eslint-config-prettier": "2.9.0", 54 | "eslint-plugin-import": "2.12.0", 55 | "eslint-plugin-jsx-a11y": "6.0.3", 56 | "eslint-plugin-prettier": "2.6.0", 57 | "eslint-plugin-react": "7.9.1", 58 | "prettier": "^1.11.1" 59 | }, 60 | "homepage": "https://github.com/gatsbyjs/gatsby-starter-blog#readme", 61 | "keywords": [ 62 | "gatsby" 63 | ], 64 | "license": "MIT", 65 | "main": "n/a", 66 | "repository": { 67 | "type": "git", 68 | "url": "git+https://github.com/gatsbyjs/gatsby-starter-blog.git" 69 | }, 70 | "scripts": { 71 | "lint": "./node_modules/.bin/eslint --ext .js,.jsx --ignore-pattern public .", 72 | "test": "echo \"Error: no test specified\" && exit 1", 73 | "format": "prettier --trailing-comma es5 --no-semi --single-quote --write \"src/**/*.js\"", 74 | "develop": "gatsby develop", 75 | "build": "gatsby build" 76 | } 77 | } 78 | -------------------------------------------------------------------------------- /src/assets/images/1200x500.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mmistakes/gatsby-test/5183cb42e5ec017c8bf5ca47830a3d39b5c7c2ba/src/assets/images/1200x500.png -------------------------------------------------------------------------------- /src/assets/images/1200x600.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mmistakes/gatsby-test/5183cb42e5ec017c8bf5ca47830a3d39b5c7c2ba/src/assets/images/1200x600.JPG -------------------------------------------------------------------------------- /src/assets/images/600x300.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mmistakes/gatsby-test/5183cb42e5ec017c8bf5ca47830a3d39b5c7c2ba/src/assets/images/600x300.jpg -------------------------------------------------------------------------------- /src/assets/images/7758832526_cc8f681e48_c.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mmistakes/gatsby-test/5183cb42e5ec017c8bf5ca47830a3d39b5c7c2ba/src/assets/images/7758832526_cc8f681e48_c.jpg -------------------------------------------------------------------------------- /src/assets/images/bio-photo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mmistakes/gatsby-test/5183cb42e5ec017c8bf5ca47830a3d39b5c7c2ba/src/assets/images/bio-photo.jpg -------------------------------------------------------------------------------- /src/assets/images/image-alignment-1200x4002.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mmistakes/gatsby-test/5183cb42e5ec017c8bf5ca47830a3d39b5c7c2ba/src/assets/images/image-alignment-1200x4002.jpg -------------------------------------------------------------------------------- /src/assets/images/image-alignment-150x150.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mmistakes/gatsby-test/5183cb42e5ec017c8bf5ca47830a3d39b5c7c2ba/src/assets/images/image-alignment-150x150.jpg -------------------------------------------------------------------------------- /src/assets/images/image-alignment-300x200.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mmistakes/gatsby-test/5183cb42e5ec017c8bf5ca47830a3d39b5c7c2ba/src/assets/images/image-alignment-300x200.jpg -------------------------------------------------------------------------------- /src/assets/images/image-alignment-580x300.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mmistakes/gatsby-test/5183cb42e5ec017c8bf5ca47830a3d39b5c7c2ba/src/assets/images/image-alignment-580x300.jpg -------------------------------------------------------------------------------- /src/assets/images/joshua-earle-234740.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mmistakes/gatsby-test/5183cb42e5ec017c8bf5ca47830a3d39b5c7c2ba/src/assets/images/joshua-earle-234740.jpg -------------------------------------------------------------------------------- /src/assets/images/null.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mmistakes/gatsby-test/5183cb42e5ec017c8bf5ca47830a3d39b5c7c2ba/src/assets/images/null.png -------------------------------------------------------------------------------- /src/assets/images/unsplash-image-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mmistakes/gatsby-test/5183cb42e5ec017c8bf5ca47830a3d39b5c7c2ba/src/assets/images/unsplash-image-1.jpg -------------------------------------------------------------------------------- /src/assets/images/unsplash-image-10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mmistakes/gatsby-test/5183cb42e5ec017c8bf5ca47830a3d39b5c7c2ba/src/assets/images/unsplash-image-10.jpg -------------------------------------------------------------------------------- /src/assets/images/unsplash-image-11.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mmistakes/gatsby-test/5183cb42e5ec017c8bf5ca47830a3d39b5c7c2ba/src/assets/images/unsplash-image-11.jpg -------------------------------------------------------------------------------- /src/assets/images/unsplash-image-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mmistakes/gatsby-test/5183cb42e5ec017c8bf5ca47830a3d39b5c7c2ba/src/assets/images/unsplash-image-2.jpg -------------------------------------------------------------------------------- /src/assets/images/unsplash-image-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mmistakes/gatsby-test/5183cb42e5ec017c8bf5ca47830a3d39b5c7c2ba/src/assets/images/unsplash-image-3.jpg -------------------------------------------------------------------------------- /src/assets/images/unsplash-image-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mmistakes/gatsby-test/5183cb42e5ec017c8bf5ca47830a3d39b5c7c2ba/src/assets/images/unsplash-image-4.jpg -------------------------------------------------------------------------------- /src/assets/images/unsplash-image-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mmistakes/gatsby-test/5183cb42e5ec017c8bf5ca47830a3d39b5c7c2ba/src/assets/images/unsplash-image-5.jpg -------------------------------------------------------------------------------- /src/assets/images/unsplash-image-6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mmistakes/gatsby-test/5183cb42e5ec017c8bf5ca47830a3d39b5c7c2ba/src/assets/images/unsplash-image-6.jpg -------------------------------------------------------------------------------- /src/assets/images/unsplash-image-7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mmistakes/gatsby-test/5183cb42e5ec017c8bf5ca47830a3d39b5c7c2ba/src/assets/images/unsplash-image-7.jpg -------------------------------------------------------------------------------- /src/assets/images/unsplash-image-8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mmistakes/gatsby-test/5183cb42e5ec017c8bf5ca47830a3d39b5c7c2ba/src/assets/images/unsplash-image-8.jpg -------------------------------------------------------------------------------- /src/assets/images/unsplash-image-9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mmistakes/gatsby-test/5183cb42e5ec017c8bf5ca47830a3d39b5c7c2ba/src/assets/images/unsplash-image-9.jpg -------------------------------------------------------------------------------- /src/comments/markup/markup-html-tags-and-formatting/comment-1528316381544.md: -------------------------------------------------------------------------------- 1 | --- 2 | _id: f192a200-69c6-11e8-923b-09e0420093dc 3 | _parent: /markup/markup-html-tags-and-formatting/ 4 | name: Tester 5 | email: b642b4217b34b1e8d3bd915fc65c4452 6 | url: '' 7 | date: '2018-06-06T20:19:41.542Z' 8 | timestamp: 1528316381 9 | tags: 10 | - comment-subscription 11 | --- 12 | This is a **test** comment. 13 | -------------------------------------------------------------------------------- /src/comments/markup/markup-syntax-highlighting/comment-1528733989174.md: -------------------------------------------------------------------------------- 1 | --- 2 | _id: 406aa0b0-6d93-11e8-ba6b-61e5423f919c 3 | _parent: /markup/markup-syntax-highlighting/ 4 | name: William Rick 5 | email: 8c0ab0e8950c120f8f398d7047d65fbe 6 | url: 'https://thewhip.com' 7 | date: '2018-06-11T16:19:49.173Z' 8 | tags: 9 | - comment-subscription 10 | --- 11 | This is a message with **Markdown**. 12 | 13 | - Cool list item 14 | - Another list item 15 | -------------------------------------------------------------------------------- /src/comments/markup/markup-text-readability/comment-1535554587673.md: -------------------------------------------------------------------------------- 1 | --- 2 | _id: b4989820-ab9b-11e8-b6e7-61e1106727d7 3 | _parent: /markup/markup-text-readability/ 4 | name: Tester 5 | email: b642b4217b34b1e8d3bd915fc65c4452 6 | url: '' 7 | date: '2018-08-29T14:56:27.672Z' 8 | --- 9 | Testing comments. Is **Markdown** working? 10 | -------------------------------------------------------------------------------- /src/comments/post/hello-world/comment-1470942205700.md: -------------------------------------------------------------------------------- 1 | --- 2 | _id: 21389089-ggg-0129089048123 3 | _parent: /post/hello-world/ 4 | name: Michael Rose 5 | email: 1ce71bc10b86565464b612093d89707e 6 | url: 'https://mademistakes.com' 7 | hidden: '' 8 | date: '2016-08-11T19:03:24.929Z' 9 | --- 10 | 11 | This is a test comment with some **Markdown** sprinkled about for *testing purposes*. 12 | 13 | ### Subheading in a comment? Madness! 14 | 15 | Nam et risus nec ipsum efficitur facilisis. Aenean tincidunt dapibus odio, eget rutrum urna lacinia non. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. 16 | -------------------------------------------------------------------------------- /src/comments/post/hello-world/comment-1470942247755.md: -------------------------------------------------------------------------------- 1 | --- 2 | _id: 2380982-yyy-09342 3 | _parent: /post/hello-world/ 4 | name: Jackalope 5 | email: cba827e665ae179e1d1ae007a6c3c1ab 6 | url: '' 7 | hidden: '' 8 | date: '2016-08-11T19:04:06.958Z' 9 | --- 10 | 11 | How much wood would a woodchuck chuck if a woodchuck could chuck wood? 12 | -------------------------------------------------------------------------------- /src/comments/post/hello-world/comment-1470942265819.md: -------------------------------------------------------------------------------- 1 | --- 2 | _id: 9C8F8CF0139B-eeee-1840C596C18913899B67 3 | _parent: /post/hello-world/ 4 | name: Jackalope Duplicate 5 | email: cba827e665ae179e1d1ae007a6c3c1ab 6 | url: '' 7 | hidden: '' 8 | date: '2016-08-11T19:04:25.085Z' 9 | --- 10 | 11 | How much wood would a woodchuck chuck if a woodchuck could chuck wood? 12 | -------------------------------------------------------------------------------- /src/comments/post/hello-world/comment-1470942493518.md: -------------------------------------------------------------------------------- 1 | --- 2 | _id: D62452A6A2-fffe-A92A491C042057F34CEC4D 3 | _parent: /post/hello-world/ 4 | name: Michael Rose 5 | email: 1ce71bc10b86565464b612093d89707e 6 | url: 'https://mademistakes.com' 7 | hidden: '' 8 | date: '2016-08-11T19:08:12.789Z' 9 | --- 10 | 11 | Images can be added to a comment using Markdown like this 12 | 13 | ```markdown 14 |  15 | ``` 16 | 17 |  18 | -------------------------------------------------------------------------------- /src/comments/post/hello-world/comment-1471823346931.md: -------------------------------------------------------------------------------- 1 | --- 2 | _id: 4364EC7E5B1AAF92-abcv-0D1633BD76596353 3 | _parent: /post/hello-world/ 4 | name: kkangshawn 5 | email: db92190b2ee6118786fd1f25dceb448c 6 | url: '' 7 | hidden: '' 8 | date: '2016-08-21T23:49:06.270Z' 9 | --- 10 | 11 | Wow, this is awesome 12 | -------------------------------------------------------------------------------- /src/comments/post/hello-world/comment-1471834988411.md: -------------------------------------------------------------------------------- 1 | --- 2 | _id: BC0ABD33B576-efg-FBC851247CE03D5CFE03 3 | _parent: /post/hello-world/ 4 | name: Test 5 | email: b642b4217b34b1e8d3bd915fc65c4452 6 | url: '' 7 | hidden: '' 8 | date: '2016-08-22T03:03:07.694Z' 9 | --- 10 | 11 | Test 12 | -------------------------------------------------------------------------------- /src/comments/post/hello-world/comment-1472786599470.md: -------------------------------------------------------------------------------- 1 | --- 2 | _id: 4EE3610819D22-rytrtr-E465A8E2E53D64A2FAB 3 | _parent: /post/hello-world/ 4 | name: TestName 5 | email: 97dfebf4098c0f5c16bca61e2b76c373 6 | url: '' 7 | hidden: '' 8 | date: '2016-09-02T03:23:18.756Z' 9 | --- 10 | 11 | This is a test 12 | -------------------------------------------------------------------------------- /src/comments/post/hello-world/comment-1474328950155.md: -------------------------------------------------------------------------------- 1 | --- 2 | _id: 7E86DB11E41E719942C-reqq-48C84EA9BC7C0 3 | _parent: /post/hello-world/ 4 | name: js 5 | email: f349d4bc6fa472971f68bcccc04337f9 6 | url: '' 7 | hidden: '' 8 | date: '2016-09-19T23:49:09.452Z' 9 | --- 10 | 11 | just testing as well 12 | -------------------------------------------------------------------------------- /src/comments/post/hello-world/comment-1500505983331.md: -------------------------------------------------------------------------------- 1 | --- 2 | _id: d073fc00-6cd7-11e7-a639-bb0964fd6b0b 3 | _parent: /post/hello-world/ 4 | name: Bob Whitelock 5 | email: 38d95e43292a76cbefab8f8a823df64f 6 | url: 'http://www.bobwhitelock.co.uk' 7 | hidden: '' 8 | date: '2017-07-19T23:13:03.331Z' 9 | --- 10 | 11 | Another test comment here :) 12 | -------------------------------------------------------------------------------- /src/comments/post/hello-world/comment-1507141538771.md: -------------------------------------------------------------------------------- 1 | --- 2 | uuid: 6b96b520-a931-11e7-9a7d-c99de06bb99b 3 | _parent: /post/hello-world/ 4 | name: Michael Rose 5 | email: 1ce71bc10b86565464b612093d89707e 6 | url: 'https://mademistakes.com' 7 | hidden: '' 8 | date: '2017-10-04T18:25:38.766Z' 9 | --- 10 | 11 | Testing out leaving a comment with the new Staticman v2 endpoint and reCAPTCHA enabled. 12 | -------------------------------------------------------------------------------- /src/comments/post/post-future-date/comment-1527277069391.md: -------------------------------------------------------------------------------- 1 | --- 2 | _id: 1b413350-6053-11e8-bf3d-35969255318e 3 | _parent: /post/post-future-date/ 4 | name: Michael 5 | email: b642b4217b34b1e8d3bd915fc65c4452 6 | url: '' 7 | date: '2018-05-25T19:37:49.391Z' 8 | timestamp: 1527277069 9 | tags: 10 | - comment-subscription 11 | --- 12 | 13 | Test comment. 14 | -------------------------------------------------------------------------------- /src/components/Byline.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import PropTypes from 'prop-types' 3 | import colors from '../utils/colors' 4 | import fonts from '../utils/fonts' 5 | import presets from '../utils/presets' 6 | 7 | class Byline extends React.Component { 8 | render() { 9 | const { author } = this.props 10 | return ( 11 |
You just hit a route that doesn't exist... the sadness.
16 | 17 |Your comment is currently in moderation and will be reviewed soon.
23 | 24 |96 | Post index in grid format using gatsby-image to 97 | generate square thumbnail images from the same “cover 98 | image” source. 99 |
100 | {chunk(posts.slice(0, this.state.postsToShow), 4).map((chunk, i) => ( 101 |" | remove: "
" }} 22 |" | remove: "
" }}15 | 16 | This post tests Twitter Embeds. 17 | -------------------------------------------------------------------------------- /src/test-posts/2010-10-25-post-future-date.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Post: Future Date" 3 | image: 4 | path: ../assets/images/null.png 5 | date: 9999-12-31 6 | categories: 7 | - Post 8 | --- 9 | 10 | This post lives in the future and is dated {{ page.date | date: "%c" }}. When building Jekyll with the `--future` flag it should appear. 11 | -------------------------------------------------------------------------------- /src/test-posts/2012-05-22-markup-text-readability.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Markup: Text Readability Test" 3 | image: 4 | path: ../assets/images/unsplash-image-9.jpg 5 | cover: true 6 | excerpt: "A bunch of text to test readability." 7 | categories: 8 | - Markup 9 | tags: 10 | - sample post 11 | - readability 12 | - test 13 | - gallery 14 | --- 15 | 16 | Portland in shoreditch Vice, labore typewriter pariatur hoodie fap sartorial Austin. Pinterest literally occupy Schlitz forage. Odio ad blue bottle vinyl, 90's narwhal commodo bitters pour-over nostrud. Ugh est hashtag in, fingerstache adipisicing laboris esse Pinterest shabby chic Portland. Shoreditch bicycle rights anim, flexitarian laboris put a bird on it vinyl cupidatat narwhal. Hashtag artisan skateboard, flannel Bushwick nesciunt salvia aute fixie do plaid post-ironic dolor McSweeney's. Cliche pour-over chambray nulla four loko skateboard sapiente hashtag. 17 | 18 | Vero laborum commodo occupy. Semiotics voluptate mumblecore pug. Cosby sweater ullamco quinoa ennui assumenda, sapiente occupy delectus lo-fi. Ea fashion axe Marfa cillum aliquip. Retro Bushwick keytar cliche. Before they sold out sustainable gastropub Marfa readymade, ethical Williamsburg skateboard brunch qui consectetur gentrify semiotics. Mustache cillum irony, fingerstache magna pour-over keffiyeh tousled selfies. 19 | 20 | ## Cupidatat 90's lo-fi authentic try-hard 21 | 22 | In pug Portland incididunt mlkshk put a bird on it vinyl quinoa. Terry Richardson shabby chic +1, scenester Tonx excepteur tempor fugiat voluptate fingerstache aliquip nisi next level. Farm-to-table hashtag Truffaut, Odd Future ex meggings gentrify single-origin coffee try-hard 90's. 23 | 24 | * Sartorial hoodie 25 | * Labore viral forage 26 | * Tote bag selvage 27 | * DIY exercitation et id ugh tumblr church-key 28 | 29 | Incididunt umami sriracha, ethical fugiat VHS ex assumenda yr irure direct trade. Marfa Truffaut bicycle rights, kitsch placeat Etsy kogi asymmetrical. Beard locavore flexitarian, kitsch photo booth hoodie plaid ethical readymade leggings yr. 30 | 31 | Aesthetic odio dolore, meggings disrupt qui readymade stumptown brunch Terry Richardson pour-over gluten-free. Banksy american apparel in selfies, biodiesel flexitarian organic meh wolf quinoa gentrify banjo kogi. Readymade tofu ex, scenester dolor umami fingerstache occaecat fashion axe Carles jean shorts minim. Keffiyeh fashion axe nisi Godard mlkshk dolore. Lomo you probably haven't heard of them eu non, Odd Future Truffaut pug keytar meggings McSweeney's Pinterest cred. Etsy literally aute esse, eu bicycle rights qui meggings fanny pack. Gentrify leggings pug flannel duis. 32 | 33 | ## Forage occaecat cardigan qui 34 | 35 | Fashion axe hella gastropub lo-fi kogi 90's aliquip +1 veniam delectus tousled. Cred sriracha locavore gastropub kale chips, iPhone mollit sartorial. Anim dolore 8-bit, pork belly dolor photo booth aute flannel small batch. Dolor disrupt ennui, tattooed whatever salvia Banksy sartorial roof party selfies raw denim sint meh pour-over. Ennui eu cardigan sint, gentrify iPhone cornhole. 36 | 37 | > Whatever velit occaecat quis deserunt gastropub, leggings elit tousled roof party 3 wolf moon kogi pug blue bottle ea. Fashion axe shabby chic Austin quinoa pickled laborum bitters next level, disrupt deep v accusamus non fingerstache. 38 | 39 | Tote bag asymmetrical elit sunt. Occaecat authentic Marfa, hella McSweeney's next level irure veniam master cleanse. Sed hoodie letterpress artisan wolf leggings, 3 wolf moon commodo ullamco. Anim occupy ea labore Terry Richardson. Tofu ex master cleanse in whatever pitchfork banh mi, occupy fugiat fanny pack Austin authentic. Magna fugiat 3 wolf moon, labore McSweeney's sustainable vero consectetur. Gluten-free disrupt enim, aesthetic fugiat jean shorts trust fund keffiyeh magna try-hard. 40 | 41 | ## Hoodie Duis 42 | 43 | Actually salvia consectetur, hoodie duis lomo YOLO sunt sriracha. Aute pop-up brunch farm-to-table odio, salvia irure occaecat. Sriracha small batch literally skateboard. Echo Park nihil hoodie, aliquip forage artisan laboris. Trust fund reprehenderit nulla locavore. Stumptown raw denim kitsch, keffiyeh nulla twee dreamcatcher fanny pack ullamco 90's pop-up est culpa farm-to-table. Selfies 8-bit do pug odio. 44 | 45 | ### Thundercats Ho! 46 | 47 | Fingerstache thundercats Williamsburg, deep v scenester Banksy ennui vinyl selfies mollit biodiesel duis odio pop-up. Banksy 3 wolf moon try-hard, sapiente enim stumptown deep v ad letterpress. Squid beard brunch, exercitation raw denim yr sint direct trade. Raw denim narwhal id, flannel DIY McSweeney's seitan. Letterpress artisan bespoke accusamus, meggings laboris consequat Truffaut qui in seitan. Sustainable cornhole Schlitz, twee Cosby sweater banh mi deep v forage letterpress flannel whatever keffiyeh. Sartorial cred irure, semiotics ethical sed blue bottle nihil letterpress. 48 | 49 | Occupy et selvage squid, pug brunch blog nesciunt hashtag mumblecore skateboard yr kogi. Ugh small batch swag four loko. Fap post-ironic qui tote bag farm-to-table american apparel scenester keffiyeh vero, swag non pour-over gentrify authentic pitchfork. Schlitz scenester lo-fi voluptate, tote bag irony bicycle rights pariatur vero Vice freegan wayfarers exercitation nisi shoreditch. Chambray tofu vero sed. Street art swag literally leggings, Cosby sweater mixtape PBR lomo Banksy non in pitchfork ennui McSweeney's selfies. Odd Future Banksy non authentic. 50 | 51 | Aliquip enim artisan dolor post-ironic. Pug tote bag Marfa, deserunt pour-over Portland wolf eu odio intelligentsia american apparel ugh ea. Sunt viral et, 3 wolf moon gastropub pug id. Id fashion axe est typewriter, mlkshk Portland art party aute brunch. Sint pork belly Cosby sweater, deep v mumblecore kitsch american apparel. Try-hard direct trade tumblr sint skateboard. Adipisicing bitters excepteur biodiesel, pickled gastropub aute veniam. 52 | -------------------------------------------------------------------------------- /src/test-posts/2013-01-05-markup-title-with-markup.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Markup: Title *with* **Markdown**" 3 | image: 4 | path: ../assets/images/unsplash-image-8.jpg 5 | cover: true 6 | categories: 7 | - Markdown 8 | tags: 9 | - css 10 | - html 11 | - title 12 | - gallery 13 | --- 14 | 15 | Verify that: 16 | 17 | * The post title renders the word "with" in _italics_ and the word "Markdown" in **bold**. 18 | * The post title markup should be removed from the browser window / tab. 19 | -------------------------------------------------------------------------------- /src/test-posts/2013-01-05-markup-title-with-special-characters.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Markup: Page Title — with Special Characters" 3 | image: 4 | path: ../assets/images/unsplash-image-7.jpg 5 | cover: true 6 | categories: 7 | - Markup 8 | tags: 9 | - html 10 | - markup 11 | - post 12 | - title 13 | - gallery 14 | --- 15 | 16 | Putting special characters in the title should have no adverse effect on the layout or functionality. 17 | 18 | Special characters in the post title have been known to cause issues with JavaScript and XML when not properly encoded and escaped. 19 | 20 | ## Latin Character Tests 21 | 22 | This is a test to see if the fonts used in this theme support basic Latin characters. 23 | 24 |🎨 Finally got around to adding all my @procreateapp creations with time lapse videos https://t.co/1nNbkefC3L pic.twitter.com/gcNLJoJ0Gn
— Michael Rose (@mmistakes) November 6, 2015
27 | ! 28 | | 29 | 30 |31 | “ 32 | | 33 | 34 |35 | # 36 | | 37 | 38 |39 | $ 40 | | 41 | 42 |43 | % 44 | | 45 | 46 |47 | & 48 | | 49 | 50 |51 | ‘ 52 | | 53 | 54 |55 | ( 56 | | 57 | 58 |59 | ) 60 | | 61 | 62 |63 | * 64 | | 65 |
69 | + 70 | | 71 | 72 |73 | , 74 | | 75 | 76 |77 | – 78 | | 79 | 80 |81 | . 82 | | 83 | 84 |85 | / 86 | | 87 | 88 |89 | | 90 | 91 |92 | 1 93 | | 94 | 95 |96 | 2 97 | | 98 | 99 |100 | 3 101 | | 102 | 103 |104 | 4 105 | | 106 |
110 | 5 111 | | 112 | 113 |114 | 6 115 | | 116 | 117 |118 | 7 119 | | 120 | 121 |122 | 8 123 | | 124 | 125 |126 | 9 127 | | 128 | 129 |130 | : 131 | | 132 | 133 |134 | ; 135 | | 136 | 137 |138 | > 139 | | 140 | 141 |142 | = 143 | | 144 | 145 |146 | < 147 | | 148 |
152 | ? 153 | | 154 | 155 |156 | @ 157 | | 158 | 159 |160 | A 161 | | 162 | 163 |164 | B 165 | | 166 | 167 |168 | C 169 | | 170 | 171 |172 | D 173 | | 174 | 175 |176 | E 177 | | 178 | 179 |180 | F 181 | | 182 | 183 |184 | G 185 | | 186 | 187 |188 | H 189 | | 190 |
194 | I 195 | | 196 | 197 |198 | J 199 | | 200 | 201 |202 | K 203 | | 204 | 205 |206 | L 207 | | 208 | 209 |210 | M 211 | | 212 | 213 |214 | N 215 | | 216 | 217 |218 | O 219 | | 220 | 221 |222 | P 223 | | 224 | 225 |226 | Q 227 | | 228 | 229 |230 | R 231 | | 232 |
236 | S 237 | | 238 | 239 |240 | T 241 | | 242 | 243 |244 | U 245 | | 246 | 247 |248 | V 249 | | 250 | 251 |252 | W 253 | | 254 | 255 |256 | X 257 | | 258 | 259 |260 | Y 261 | | 262 | 263 |264 | Z 265 | | 266 | 267 |268 | [ 269 | | 270 | 271 |272 | | 273 |
277 | ] 278 | | 279 | 280 |281 | ^ 282 | | 283 | 284 |285 | _ 286 | | 287 | 288 |289 | ` 290 | | 291 | 292 |293 | a 294 | | 295 | 296 |297 | b 298 | | 299 | 300 |301 | c 302 | | 303 | 304 |305 | d 306 | | 307 | 308 |309 | e 310 | | 311 | 312 |313 | f 314 | | 315 |
319 | g 320 | | 321 | 322 |323 | h 324 | | 325 | 326 |327 | i 328 | | 329 | 330 |331 | j 332 | | 333 | 334 |335 | k 336 | | 337 | 338 |339 | l 340 | | 341 | 342 |343 | m 344 | | 345 | 346 |347 | n 348 | | 349 | 350 |351 | o 352 | | 353 | 354 |355 | p 356 | | 357 |
361 | q 362 | | 363 | 364 |365 | r 366 | | 367 | 368 |369 | s 370 | | 371 | 372 |373 | t 374 | | 375 | 376 |377 | u 378 | | 379 | 380 |381 | v 382 | | 383 | 384 |385 | w 386 | | 387 | 388 |389 | x 390 | | 391 | 392 |393 | y 394 | | 395 | 396 |397 | z 398 | | 399 |
403 | { 404 | | 405 | 406 |407 | | 408 | | 409 | 410 |411 | } 412 | | 413 | 414 |415 | ~ 416 | | 417 | 418 |419 | | 420 | 421 |422 | | 423 | 424 |425 | | 426 | 427 |428 | | 429 | 430 |431 | | 432 | 433 |434 | | 435 |
` tag.
151 |
152 | ### Preformatted Tag
153 |
154 | This tag styles large blocks of code.
155 |
156 |
157 | .post-title {
158 | margin: 0 0 5px;
159 | font-weight: bold;
160 | font-size: 38px;
161 | line-height: 1.2;
162 | and here's a line of some really, really, really, really long text, just to see how the PRE tag handles it and to find out how it overflows;
163 | }
164 |
165 |
166 | ### Quote Tag
167 |
168 | Developers, developers, developers…
–Steve Ballmer
169 |
170 | ### Strong Tag
171 |
172 | This tag shows **bold text**.
173 |
174 | ### Subscript Tag
175 |
176 | Getting our science styling on with H2O, which should push the "2" down.
177 |
178 | ### Superscript Tag
179 |
180 | Still sticking with science and Isaac Newton's E = MC2, which should lift the 2 up.
181 |
182 | ### Variable Tag
183 |
184 | This allows you to denote variables.
185 |
--------------------------------------------------------------------------------
/src/test-posts/2013-05-22-markup-more-images.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Markup: Another Post with Images"
3 | image:
4 | path: ../assets/images/unsplash-image-3.jpg
5 | cover: true
6 | excerpt: "Examples and code for displaying images in posts."
7 | categories:
8 | - Markup
9 | tags:
10 | - sample post
11 | - images
12 | - test
13 | - gallery
14 | ---
15 |
16 | Here are some examples of what a post with images might look like.
17 |
18 | ### Figures (for images or video)
19 |
20 | #### One Up
21 |
22 | ```markdown
23 | 
24 | *Morning Fog Emerging from Trees by a Guy taking pictures on Flickr*
25 | ```
26 |
27 | 
28 | _**Morning Fog Emerging** from Trees by a Guy taking pictures on [Flickr](https://flickr.com)_
29 |
30 | Vero laborum commodo occupy. Semiotics voluptate mumblecore pug. Cosby sweater ullamco quinoa ennui assumenda, sapiente occupy delectus lo-fi. Ea fashion axe Marfa cillum aliquip. Retro Bushwick keytar cliche. Before they sold out sustainable gastropub Marfa readymade, ethical Williamsburg skateboard brunch qui consectetur gentrify semiotics. Mustache cillum irony, fingerstache magna pour-over keffiyeh tousled selfies.
31 |
32 | ```markdown
33 | 
34 | 
35 | ```
36 |
37 | And you'll get something that looks like this:
38 |
39 | 
40 | 
41 | *Two images*
42 |
43 | 
44 | 
45 | 
46 | *Three images*
47 |
48 | 
49 | 
50 | 
51 | 
52 | *Four images*
53 |
--------------------------------------------------------------------------------
/src/test-posts/2013-08-16-markup-syntax-highlighting.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Markup: Syntax Highlighting"
3 | image:
4 | path: ../assets/images/unsplash-image-2.jpg
5 | cover: true
6 | excerpt: "Post displaying the various ways of highlighting code in Markdown."
7 | last_modified_at: 2018-01-03T09:45:06-05:00
8 | categories:
9 | - Markup
10 | tags:
11 | - code
12 | - syntax highlighting
13 | - gallery
14 | toc: true
15 | ---
16 |
17 | Syntax highlighting is a feature that displays source code, in different colors and fonts according to the category of terms. This feature facilitates writing in a structured language such as a programming language or a markup language as both structures and syntax errors are visually distinct. Highlighting does not affect the meaning of the text itself; it is intended only for human readers.[^1]
18 |
19 | [^1]:
20 |
21 | ### GFM Code Blocks
22 |
23 | GitHub Flavored Markdown [fenced code blocks](https://help.github.com/articles/creating-and-highlighting-code-blocks/) are supported. To modify styling and highlight colors edit `/_sass/syntax.scss`.
24 |
25 | ```css
26 | #container {
27 | float: left;
28 | margin: 0 -240px 0 0;
29 | width: 100%;
30 | }
31 | ```
32 |
33 | ```scss
34 | .highlight {
35 | margin: 0;
36 | padding: 1em;
37 | font-family: $monospace;
38 | font-size: $type-size-7;
39 | line-height: 1.8;
40 | }
41 | ```
42 |
43 | ```html
44 |
52 | ```
53 |
54 | ```ruby
55 | module Jekyll
56 | class TagIndex < Page
57 | def initialize(site, base, dir, tag)
58 | @site = site
59 | @base = base
60 | @dir = dir
61 | @name = 'index.html'
62 | self.process(@name)
63 | self.read_yaml(File.join(base, '_layouts'), 'tag_index.html')
64 | self.data['tag'] = tag
65 | tag_title_prefix = site.config['tag_title_prefix'] || 'Tagged: '
66 | tag_title_suffix = site.config['tag_title_suffix'] || '–'
67 | self.data['title'] = "#{tag_title_prefix}#{tag}"
68 | self.data['description'] = "An archive of posts tagged #{tag}."
69 | end
70 | end
71 | end
72 | ```
73 |
74 | ### Code Blocks in Lists
75 |
76 | Indentation matters. Be sure the indent of the code block aligns with the first non-space character after the list item marker (e.g., `1.`). Usually this will mean indenting 3 spaces instead of 4.
77 |
78 | 1. Do step 1.
79 | 2. Now do this:
80 |
81 | ```ruby
82 | def print_hi(name)
83 | puts "Hi, #{name}"
84 | end
85 | print_hi('Tom')
86 | #=> prints 'Hi, Tom' to STDOUT.
87 | ```
88 |
89 | 3. Now you can do this.
90 |
91 | ### Line Highlighting
92 |
93 | You can also add line highlighting. It adds a span around lines of code with a special class `.gatsby-highlight-code-line` that you can target with styles.
94 |
95 | In the following code snippet, lines 1 and 4 through 6 will get the line highlighting. The line range parsing is done with .
96 |
97 | ```javascript{1,4-6}
98 | // In your gatsby-config.js
99 | plugins: [
100 | {
101 | resolve: `gatsby-transformer-remark`,
102 | options: {
103 | plugins: [
104 | `gatsby-remark-prismjs`,
105 | ]
106 | }
107 | }
108 | ]
109 | ```
110 |
111 | ### Code Titles
112 |
113 | Add a title to snippets:
114 |
115 | ```
116 | javascript:title=example-file.js
117 | alert('how cool is this!');
118 | ```
119 |
120 | ```javascript:title=example-file.js
121 | alert('how cool is this!');
122 | ```
123 |
--------------------------------------------------------------------------------
/src/test-posts/2018-04-30-hello-world.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Hello World: The remark Kitchen Sink"
3 | image:
4 | cover: true
5 | path: ../assets/images/joshua-earle-234740.jpg
6 | excerpt: "Post displaying the various ways of highlighting code in Markdown."
7 | last_modified_at: 2018-04-30T15:40:39-04:00
8 | categories:
9 | - Post
10 | tags:
11 | - images
12 | - gallery
13 | ---
14 |
15 | [[info | This is a title]]
16 | | **Note how all headlines below show an anchor link when you hover them?** That's [gatsby-remark-autolink-headers][5] hooking up all `MarkdownRemark` headers with anchor links for us.
17 |
18 | ## Markdown in Gatsby
19 |
20 | Markdown parsing in Gatsby is done with [gatsby-transformer-remark][1], which
21 | uses the excellent [remark][2] under the hood.\
22 | Alongside remark we also use [gatsby-remark-smartypants][6], which provides smart
23 | punctuation through [retext-smartypants][7].
24 |
25 | The examples on this page cover the basic Markdown syntax and are adapted from
26 | [Markdown Here's Cheatsheet][3] ([CC-BY][4]).
27 |
28 | ---
29 |
30 | This is intended as a quick reference and showcase. For more complete info, see
31 | [John Gruber's original spec](http://daringfireball.net/projects/markdown/) and
32 | the
33 | [GitHub-flavored Markdown info page](http://github.github.com/github-flavored-markdown/).
34 |
35 | ##### Table of Contents
36 |
37 | [Headers](#headers) [Emphasis](#emphasis) [Lists](#lists) [Links](#links)
38 | [Images](#images) [Tables](#tables) [Footnotes](#footnotes)
39 | [Blockquotes](#blockquotes) [Inline HTML](#html) [Horizontal Rule](#hr)
40 | [Line Breaks](#lines)
41 |
42 |
43 |
44 | ## Headers
45 |
46 | ```markdown
47 | # H1
48 | ## H2
49 | ### H3
50 | #### H4
51 | ##### H5
52 | ###### H6
53 |
54 | Alternatively, for H1 and H2, an underline-ish style:
55 |
56 | Alt-H1
57 | ======
58 |
59 | Alt-H2
60 | ------
61 | ```
62 |
63 | # H1
64 |
65 | ## H2
66 |
67 | ### H3
68 |
69 | #### H4
70 |
71 | ##### H5
72 |
73 | ###### H6
74 |
75 | Alternatively, for H1 and H2, an underline-ish style:
76 |
77 | # Alt-H1
78 |
79 | ## Alt-H2
80 |
81 |
82 |
83 | ## Emphasis
84 |
85 | ```markdown
86 | Emphasis, aka italics, with *asterisks* or _underscores_.
87 |
88 | Strong emphasis, aka bold, with **asterisks** or __underscores__.
89 |
90 | Combined emphasis with **asterisks and _underscores_**.
91 |
92 | Strikethrough uses two tildes. ~~Scratch this.~~
93 | ```
94 |
95 | Emphasis, aka italics, with _asterisks_ or _underscores_.
96 |
97 | Strong emphasis, aka bold, with **asterisks** or **underscores**.
98 |
99 | Combined emphasis with **asterisks and _underscores_**.
100 |
101 | Strikethrough uses two tildes. ~~Scratch this.~~
102 |
103 |
104 |
105 | ## Lists
106 |
107 | In this example, leading and trailing spaces are shown with with dots: ⋅
108 |
109 | ```markdown
110 | 1. First ordered list item
111 | 2. Another item
112 | ⋅⋅⋅* Unordered sub-list.
113 | 1. Actual numbers don't matter, just that it's a number
114 | ⋅⋅⋅1. Ordered sub-list
115 | 4. And another item.
116 |
117 | ⋅⋅⋅You can have properly indented paragraphs within list items. Notice the blank line above, and the leading spaces (at least one, but we'll use three here to also align the raw Markdown).
118 |
119 | ⋅⋅⋅To have a line break without a paragraph, you will need to use two trailing spaces.⋅⋅
120 | ⋅⋅⋅Note that this line is separate, but within the same paragraph.⋅⋅
121 |
122 | * Unordered list can use asterisks
123 | - Or minuses
124 | + Or pluses
125 | ```
126 |
127 | 1. First ordered list item
128 | 2. Another item
129 | * Unordered sub-list.
130 | 3. Actual numbers don't matter, just that it's a number
131 | 1. Ordered sub-list
132 | 4. And another item.
133 |
134 | You can have properly indented paragraphs within list items. Notice the blank
135 | line above, and the leading spaces (at least one, but we'll use three here to
136 | also align the raw Markdown).
137 |
138 | To have a line break without a paragraph, you will need to use two trailing
139 | spaces.\
140 | Note that this line is separate, but within the same paragraph.
141 |
142 | * Unordered list can use asterisks
143 |
144 | - Or minuses
145 |
146 | * Or pluses
147 |
148 |
149 |
150 | ## Links
151 |
152 | There are two ways to create links.
153 |
154 | ```markdown
155 | [I'm an inline-style link](https://www.google.com)
156 |
157 | [I'm an inline-style link with title](https://www.google.com "Google's Homepage")
158 |
159 | [I'm a reference-style link][Arbitrary case-insensitive reference text]
160 |
161 | [I'm a relative reference to a repository file](../blob/master/LICENSE)
162 |
163 | [You can use numbers for reference-style link definitions][1]
164 |
165 | Or leave it empty and use the [link text itself].
166 |
167 | URLs and URLs in angle brackets will automatically get turned into links.
168 | http://www.example.com or and sometimes
169 | example.com (but not on GitHub, for example).
170 |
171 | Some text to show that the reference links can follow later.
172 |
173 | [arbitrary case-insensitive reference text]: https://www.mozilla.org
174 | [1]: http://slashdot.org
175 | [link text itself]: http://www.reddit.com
176 | ```
177 |
178 | [I'm an inline-style link](https://www.google.com)
179 |
180 | [I'm an inline-style link with title](https://www.google.com "Google's Homepage")
181 |
182 | [I'm a reference-style link][arbitrary case-insensitive reference text]
183 |
184 | [I'm a relative reference to a repository file](../blob/master/LICENSE)
185 |
186 | [You can use numbers for reference-style link definitions][1]
187 |
188 | Or leave it empty and use the [link text itself].
189 |
190 | URLs and URLs in angle brackets will automatically get turned into links.
191 | http://www.example.com or and sometimes example.com
192 | (but not on GitHub, for example).
193 |
194 | Some text to show that the reference links can follow later.
195 |
196 | [arbitrary case-insensitive reference text]: https://www.mozilla.org
197 | [1]: http://slashdot.org
198 | [link text itself]: http://www.reddit.com
199 |
200 |
201 |
202 | ## Images
203 |
204 | ```markdown
205 | Here's our logo (hover to see the title text):
206 |
207 | Inline-style:
208 | 
209 |
210 | Reference-style:
211 | ![alt text][logo]
212 |
213 | [logo]: https://pbs.twimg.com/profile_images/875556871427375106/Xuq8DypK_bigger.jpg "Logo Title Text 2"
214 | ```
215 |
216 | Here's our logo (hover to see the title text):
217 |
218 | Inline-style:
219 | 
220 |
221 | Reference-style: ![alt text][logo]
222 |
223 | [logo]: https://pbs.twimg.com/profile_images/875556871427375106/Xuq8DypK_bigger.jpg "Logo Title Text 2"
224 |
225 |
226 |
227 | ## Tables
228 |
229 | Tables aren't part of the core Markdown spec, but they are part of our
230 | implementation. They are an easy way of adding tables to your email -- a task
231 | that would otherwise require copy-pasting from another application.
232 |
233 | ```markdown
234 | Colons can be used to align columns.
235 |
236 | | Tables | Are | Cool |
237 | | ------------- |:-------------:| -----:|
238 | | col 3 is | right-aligned | $1600 |
239 | | col 2 is | centered | $12 |
240 | | zebra stripes | are neat | $1 |
241 |
242 | There must be at least 3 dashes separating each header cell.
243 | The outer pipes (|) are optional, and you don't need to make the
244 | raw Markdown line up prettily. You can also use inline Markdown.
245 |
246 | Markdown | Less | Pretty
247 | --- | --- | ---
248 | *Still* | `renders` | **nicely**
249 | 1 | 2 | 3
250 | ```
251 |
252 | Colons can be used to align columns.
253 |
254 | | Tables | Are | Cool |
255 | | ------------- | :-----------: | ----: |
256 | | col 3 is | right-aligned | $1600 |
257 | | col 2 is | centered | $12 |
258 | | zebra stripes | are neat | $1 |
259 |
260 | There must be at least 3 dashes separating each header cell. The outer pipes (|)
261 | are optional, and you don't need to make the raw Markdown line up prettily. You
262 | can also use inline Markdown.
263 |
264 | | Markdown | Less | Pretty |
265 | | -------- | --------- | ---------- |
266 | | _Still_ | `renders` | **nicely** |
267 | | 1 | 2 | 3 |
268 |
269 |
270 |
271 | ## Footnotes
272 |
273 | Footnotes are also not a core feature of markdown, but they're a common
274 | extension feature. The footnote syntax looks like this:
275 |
276 | ```markdown
277 | This line has a footnote [^1]. Scroll down or click the link to see it.
278 | ```
279 |
280 | That renders like this:
281 |
282 | This line has a footnote [^1]. Scroll down or click the link to see it.
283 |
284 |
285 |
286 | ## Blockquotes
287 |
288 | ```markdown
289 | > Blockquotes are very handy in email to emulate reply text.
290 | > This line is part of the same quote.
291 |
292 | Quote break.
293 |
294 | > This is a very long line that will still be quoted properly when it wraps. Oh boy let's keep writing to make sure this is long enough to actually wrap for everyone. Oh, you can *put* **Markdown** into a blockquote.
295 | ```
296 |
297 | > Blockquotes are very handy in email to emulate reply text. This line is part
298 | > of the same quote.
299 |
300 | Quote break.
301 |
302 | > This is a very long line that will still be quoted properly when it wraps. Oh
303 | > boy let's keep writing to make sure this is long enough to actually wrap for
304 | > everyone. Oh, you can _put_ **Markdown** into a blockquote.
305 |
306 |
307 |
308 | ## Inline HTML
309 |
310 | You can also use raw HTML in your Markdown, and it'll mostly work pretty well.
311 |
312 | ```html
313 |
314 | - Definition list
315 | - Is something people use sometimes.
316 |
317 | - Markdown in HTML
318 | - Does *not* work **very** well. Use HTML tags.
319 |
320 | ```
321 |
322 |
323 | - Definition list
324 | - Is something people use sometimes.
325 |
326 | - Markdown in HTML
327 | - Does *not* work **very** well. Use HTML tags.
328 |
329 |
330 |
331 |
332 | ## Horizontal Rule
333 |
334 | ```
335 | Three or more...
336 |
337 | ---
338 |
339 | Hyphens
340 |
341 | ***
342 |
343 | Asterisks
344 |
345 | ___
346 |
347 | Underscores
348 | ```
349 |
350 | Three or more...
351 |
352 | ---
353 |
354 | Hyphens
355 |
356 | ---
357 |
358 | Asterisks
359 |
360 | ---
361 |
362 | Underscores
363 |
364 |
365 |
366 | ## Line Breaks
367 |
368 | Here are some things to try out:
369 |
370 | ```
371 | Here's a line for us to start with.
372 |
373 | This line is separated from the one above by two newlines, so it will be a *separate paragraph*.
374 |
375 | This line is also a separate paragraph, but...
376 | This line is only separated by a single newline, so it's a separate line in the *same paragraph*.
377 | ```
378 |
379 | Here's a line for us to start with.
380 |
381 | This line is separated from the one above by two newlines, so it will be a
382 | _separate paragraph_.
383 |
384 | This line is also begins a separate paragraph, but...\
385 | This line is only separated by a single newline, so it's a separate line in the _same
386 | paragraph_.
387 |
388 | [^1]: The footnote appears at the bottom of the page
389 |
390 | [1]: https://www.gatsbyjs.org/packages/gatsby-transformer-remark/
391 | [2]: http://remark.js.org/
392 | [3]: https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet
393 | [4]: https://creativecommons.org/licenses/by/3.0/
394 | [5]: https://www.gatsbyjs.org/packages/gatsby-remark-autolink-headers/
395 | [6]: https://www.gatsbyjs.org/packages/gatsby-remark-smartypants/
396 | [7]: https://github.com/wooorm/retext-smartypants
397 |
--------------------------------------------------------------------------------
/src/utils/colors.js:
--------------------------------------------------------------------------------
1 | const colors = {
2 | primary: `#000000`,
3 | }
4 |
5 | module.exports = colors
6 |
--------------------------------------------------------------------------------
/src/utils/fonts.js:
--------------------------------------------------------------------------------
1 | const fonts = {
2 | sansSerif: `sans-serif`,
3 | serif: `Georgia, serif`,
4 | monospace: `"SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace`,
5 | alternate: `"Alegreya", serif`,
6 | }
7 |
8 | module.exports = fonts
9 |
--------------------------------------------------------------------------------
/src/utils/presets.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | smUp: `@media (min-width: 576px)`,
3 | mdUp: `@media (min-width: 768px)`,
4 | lgUp: `@media (min-width: 992px)`,
5 | xlUp: `@media (min-width: 1200px)`,
6 |
7 | smDown: `@media (max-width: 575.98px)`,
8 | mdDown: `@media (max-width: 767.98px)`,
9 | lgDown: `@media (max-width: 991.98px)`,
10 | xlDown: `@media (max-width: 1199.98px)`,
11 |
12 | xsOnly: `@media (max-width: 575.98px)`,
13 | smOnly: `@media (min-width: 576px) and (max-width: 767.98px)`,
14 | mdOnly: `@media (min-width: 768px) and (max-width: 991.98px)`,
15 | lgOnly: `@media (min-width: 992px) and (max-width: 1199.98px)`,
16 | xlOnly: `@media (min-width: 1200px)`,
17 | }
18 |
--------------------------------------------------------------------------------
/static/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mmistakes/gatsby-test/5183cb42e5ec017c8bf5ca47830a3d39b5c7c2ba/static/favicon.ico
--------------------------------------------------------------------------------
/static/robots.txt:
--------------------------------------------------------------------------------
1 | User-agent: *
2 | Disallow:
3 |
--------------------------------------------------------------------------------
/staticman.yml:
--------------------------------------------------------------------------------
1 | # Name of the property. You can have multiple properties with completely
2 | # different config blocks for different sections of your site.
3 | # For example, you can have one property to handle comment submission and
4 | # another one to handle posts.
5 | # To encrypt strings use the following endpoint:
6 | # https://api.staticman.net/v2/encrypt/{TEXT TO BE ENCRYPTED}
7 |
8 | comments:
9 | # (*) REQUIRED
10 | #
11 | # Names of the fields the form is allowed to submit. If a field that is
12 | # not here is part of the request, an error will be thrown.
13 | allowedFields: ["name", "email", "url", "message"]
14 |
15 | # Names of required files. If any of these isn't in the request or is empty,
16 | # an error will be thrown.
17 | requiredFields: ["name", "email", "message"]
18 |
19 | # (*) REQUIRED
20 | #
21 | # Name of the branch being used. Must match the one sent in the URL of the
22 | # request.
23 | branch: "master"
24 |
25 | commitMessage: "New comment by {fields.name}"
26 |
27 | # (*) REQUIRED
28 | #
29 | # The format of the generated data files. Accepted values are "json", "yaml"
30 | # or "frontmatter"
31 | format: "frontmatter"
32 |
33 | # (*) REQUIRED
34 | #
35 | # Destination path (directory) for the data files. Accepts placeholders.
36 | path: "src/comments/{options.slug}"
37 | filename: "comment-{@timestamp}"
38 | extension: "md"
39 |
40 | # List of fields to be populated automatically by Staticman and included in
41 | # the data file. Keys are the name of the field. The value can be an object
42 | # with a `type` property, which configures the generated field, or any value
43 | # to be used directly (e.g. a string, number or array)
44 | generatedFields:
45 | date:
46 | type: "date"
47 | options:
48 | format: "iso8601"
49 |
50 | # List of transformations to apply to any of the fields supplied. Keys are
51 | # the name of the field and values are possible transformation types.
52 | transforms:
53 | message: "frontmatterContent"
54 | email: "md5"
55 |
56 | # Whether entries need to be approved before they are published to the main
57 | # branch. If set to `true`, a pull request will be created for your approval.
58 | # Otherwise, entries will be published to the main branch automatically.
59 | moderation: true
60 |
61 | # Name of the site. Used in notification emails.
62 | name: "Gatsby Test"
63 |
64 | # EOF
65 |
--------------------------------------------------------------------------------