Sane defaults, please
This commit is contained in:
parent
6a2fa88cdf
commit
bc5d108dde
13 changed files with 973 additions and 139 deletions
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"endOfLine": "lf",
|
"endOfLine": "lf",
|
||||||
"semi": false,
|
"semi": true,
|
||||||
"singleQuote": false,
|
"singleQuote": false,
|
||||||
"tabWidth": 2,
|
"tabWidth": 2,
|
||||||
"trailingComma": "es5"
|
"trailingComma": "es5"
|
||||||
|
|
|
@ -29,5 +29,20 @@ module.exports = {
|
||||||
},
|
},
|
||||||
`gatsby-plugin-typescript`,
|
`gatsby-plugin-typescript`,
|
||||||
`gatsby-plugin-sass`,
|
`gatsby-plugin-sass`,
|
||||||
|
{
|
||||||
|
resolve: `gatsby-source-filesystem`,
|
||||||
|
options: {
|
||||||
|
name: `content`,
|
||||||
|
path: `${__dirname}/src/content`,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
resolve: `gatsby-transformer-yaml-plus`,
|
||||||
|
options: {
|
||||||
|
enableRemark: true,
|
||||||
|
markdownPreface: "md//",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
`gatsby-transformer-remark`,
|
||||||
],
|
],
|
||||||
}
|
};
|
||||||
|
|
|
@ -13,13 +13,16 @@
|
||||||
"gatsby-plugin-sass": "^2.1.27",
|
"gatsby-plugin-sass": "^2.1.27",
|
||||||
"gatsby-plugin-sharp": "^2.3.5",
|
"gatsby-plugin-sharp": "^2.3.5",
|
||||||
"gatsby-plugin-typescript": "^2.1.26",
|
"gatsby-plugin-typescript": "^2.1.26",
|
||||||
"gatsby-source-filesystem": "^2.1.40",
|
"gatsby-source-filesystem": "^2.1.46",
|
||||||
|
"gatsby-transformer-remark": "^2.6.48",
|
||||||
"gatsby-transformer-sharp": "^2.3.7",
|
"gatsby-transformer-sharp": "^2.3.7",
|
||||||
|
"gatsby-transformer-yaml-plus": "^0.2.2",
|
||||||
"node-sass": "^4.13.1",
|
"node-sass": "^4.13.1",
|
||||||
"prop-types": "^15.7.2",
|
"prop-types": "^15.7.2",
|
||||||
"react": "^16.12.0",
|
"react": "^16.12.0",
|
||||||
"react-dom": "^16.12.0",
|
"react-dom": "^16.12.0",
|
||||||
"react-helmet": "^5.2.1"
|
"react-helmet": "^5.2.1",
|
||||||
|
"remark-html": "^10.0.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/react": "^16.9.19",
|
"@types/react": "^16.9.19",
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
import { Link } from "gatsby"
|
import { Link } from "gatsby";
|
||||||
import PropTypes from "prop-types"
|
import PropTypes from "prop-types";
|
||||||
import React from "react"
|
import React from "react";
|
||||||
|
|
||||||
const Header = ({ siteTitle }) => (
|
const Header = ({ siteTitle }) => (
|
||||||
<header
|
<header
|
||||||
|
id="header"
|
||||||
style={{
|
style={{
|
||||||
background: `rebeccapurple`,
|
|
||||||
marginBottom: `1.45rem`,
|
marginBottom: `1.45rem`,
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
|
@ -15,28 +15,16 @@ const Header = ({ siteTitle }) => (
|
||||||
maxWidth: 960,
|
maxWidth: 960,
|
||||||
padding: `1.45rem 1.0875rem`,
|
padding: `1.45rem 1.0875rem`,
|
||||||
}}
|
}}
|
||||||
>
|
></div>
|
||||||
<h1 style={{ margin: 0 }}>
|
|
||||||
<Link
|
|
||||||
to="/"
|
|
||||||
style={{
|
|
||||||
color: `white`,
|
|
||||||
textDecoration: `none`,
|
|
||||||
}}
|
|
||||||
>
|
|
||||||
{siteTitle}
|
|
||||||
</Link>
|
|
||||||
</h1>
|
|
||||||
</div>
|
|
||||||
</header>
|
</header>
|
||||||
)
|
);
|
||||||
|
|
||||||
Header.propTypes = {
|
Header.propTypes = {
|
||||||
siteTitle: PropTypes.string,
|
siteTitle: PropTypes.string,
|
||||||
}
|
};
|
||||||
|
|
||||||
Header.defaultProps = {
|
Header.defaultProps = {
|
||||||
siteTitle: ``,
|
siteTitle: ``,
|
||||||
}
|
};
|
||||||
|
|
||||||
export default Header
|
export default Header;
|
||||||
|
|
|
@ -1,32 +0,0 @@
|
||||||
import React from "react"
|
|
||||||
import { useStaticQuery, graphql } from "gatsby"
|
|
||||||
import Img from "gatsby-image"
|
|
||||||
|
|
||||||
/*
|
|
||||||
* This component is built using `gatsby-image` to automatically serve optimized
|
|
||||||
* images with lazy loading and reduced file sizes. The image is loaded using a
|
|
||||||
* `useStaticQuery`, which allows us to load the image from directly within this
|
|
||||||
* component, rather than having to pass the image data down from pages.
|
|
||||||
*
|
|
||||||
* For more information, see the docs:
|
|
||||||
* - `gatsby-image`: https://gatsby.dev/gatsby-image
|
|
||||||
* - `useStaticQuery`: https://www.gatsbyjs.org/docs/use-static-query/
|
|
||||||
*/
|
|
||||||
|
|
||||||
const Image = () => {
|
|
||||||
const data = useStaticQuery(graphql`
|
|
||||||
query {
|
|
||||||
placeholderImage: file(relativePath: { eq: "gatsby-astronaut.png" }) {
|
|
||||||
childImageSharp {
|
|
||||||
fluid(maxWidth: 300) {
|
|
||||||
...GatsbyImageSharpFluid
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
`)
|
|
||||||
|
|
||||||
return <Img fluid={data.placeholderImage.childImageSharp.fluid} />
|
|
||||||
}
|
|
||||||
|
|
||||||
export default Image
|
|
|
@ -1 +1,19 @@
|
||||||
@import "./normalize.scss";
|
@import "./normalize.scss";
|
||||||
|
|
||||||
|
body {
|
||||||
|
background-color: black;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
color: white;
|
||||||
|
transition: all 100ms;
|
||||||
|
|
||||||
|
&:hover {}
|
||||||
|
}
|
||||||
|
|
||||||
|
#header {
|
||||||
|
a {
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
}
|
|
@ -5,12 +5,12 @@
|
||||||
* See: https://www.gatsbyjs.org/docs/use-static-query/
|
* See: https://www.gatsbyjs.org/docs/use-static-query/
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import React from "react"
|
import React from "react";
|
||||||
import PropTypes from "prop-types"
|
import PropTypes from "prop-types";
|
||||||
import { useStaticQuery, graphql } from "gatsby"
|
import { useStaticQuery, graphql } from "gatsby";
|
||||||
|
|
||||||
import Header from "./header"
|
import Header from "./header";
|
||||||
import "./layout.scss"
|
import "./layout.scss";
|
||||||
|
|
||||||
const Layout = ({ children }) => {
|
const Layout = ({ children }) => {
|
||||||
const data = useStaticQuery(graphql`
|
const data = useStaticQuery(graphql`
|
||||||
|
@ -21,7 +21,7 @@ const Layout = ({ children }) => {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
`)
|
`);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
|
@ -34,18 +34,13 @@ const Layout = ({ children }) => {
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<main>{children}</main>
|
<main>{children}</main>
|
||||||
<footer>
|
|
||||||
© {new Date().getFullYear()}, Built with
|
|
||||||
{` `}
|
|
||||||
<a href="https://www.gatsbyjs.org">Gatsby</a>
|
|
||||||
</footer>
|
|
||||||
</div>
|
</div>
|
||||||
</>
|
</>
|
||||||
)
|
);
|
||||||
}
|
};
|
||||||
|
|
||||||
Layout.propTypes = {
|
Layout.propTypes = {
|
||||||
children: PropTypes.node.isRequired,
|
children: PropTypes.node.isRequired,
|
||||||
}
|
};
|
||||||
|
|
||||||
export default Layout
|
export default Layout;
|
||||||
|
|
|
@ -5,10 +5,10 @@
|
||||||
* See: https://www.gatsbyjs.org/docs/use-static-query/
|
* See: https://www.gatsbyjs.org/docs/use-static-query/
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import React from "react"
|
import React from "react";
|
||||||
import PropTypes from "prop-types"
|
import PropTypes from "prop-types";
|
||||||
import Helmet from "react-helmet"
|
import Helmet from "react-helmet";
|
||||||
import { useStaticQuery, graphql } from "gatsby"
|
import { useStaticQuery, graphql } from "gatsby";
|
||||||
|
|
||||||
function SEO({ description, lang, meta, title }) {
|
function SEO({ description, lang, meta, title }) {
|
||||||
const { site } = useStaticQuery(
|
const { site } = useStaticQuery(
|
||||||
|
@ -23,9 +23,9 @@ function SEO({ description, lang, meta, title }) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
`
|
`
|
||||||
)
|
);
|
||||||
|
|
||||||
const metaDescription = description || site.siteMetadata.description
|
const metaDescription = description || site.siteMetadata.description;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Helmet
|
<Helmet
|
||||||
|
@ -69,20 +69,20 @@ function SEO({ description, lang, meta, title }) {
|
||||||
},
|
},
|
||||||
].concat(meta)}
|
].concat(meta)}
|
||||||
/>
|
/>
|
||||||
)
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
SEO.defaultProps = {
|
SEO.defaultProps = {
|
||||||
lang: `en`,
|
lang: `en`,
|
||||||
meta: [],
|
meta: [],
|
||||||
description: ``,
|
description: ``,
|
||||||
}
|
};
|
||||||
|
|
||||||
SEO.propTypes = {
|
SEO.propTypes = {
|
||||||
description: PropTypes.string,
|
description: PropTypes.string,
|
||||||
lang: PropTypes.string,
|
lang: PropTypes.string,
|
||||||
meta: PropTypes.arrayOf(PropTypes.object),
|
meta: PropTypes.arrayOf(PropTypes.object),
|
||||||
title: PropTypes.string.isRequired,
|
title: PropTypes.string.isRequired,
|
||||||
}
|
};
|
||||||
|
|
||||||
export default SEO
|
export default SEO;
|
||||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 163 KiB |
|
@ -1,7 +1,7 @@
|
||||||
import React from "react"
|
import React from "react";
|
||||||
|
|
||||||
import Layout from "../components/layout"
|
import Layout from "../components/layout";
|
||||||
import SEO from "../components/seo"
|
import SEO from "../components/seo";
|
||||||
|
|
||||||
const NotFoundPage = () => (
|
const NotFoundPage = () => (
|
||||||
<Layout>
|
<Layout>
|
||||||
|
@ -9,6 +9,6 @@ const NotFoundPage = () => (
|
||||||
<h1>NOT FOUND</h1>
|
<h1>NOT FOUND</h1>
|
||||||
<p>You just hit a route that doesn't exist... the sadness.</p>
|
<p>You just hit a route that doesn't exist... the sadness.</p>
|
||||||
</Layout>
|
</Layout>
|
||||||
)
|
);
|
||||||
|
|
||||||
export default NotFoundPage
|
export default NotFoundPage;
|
||||||
|
|
|
@ -1,21 +1,12 @@
|
||||||
import React from "react"
|
import React from "react";
|
||||||
import { Link } from "gatsby"
|
|
||||||
|
|
||||||
import Layout from "../components/layout"
|
import Layout from "../components/layout";
|
||||||
import Image from "../components/image"
|
import SEO from "../components/seo";
|
||||||
import SEO from "../components/seo"
|
|
||||||
|
|
||||||
const IndexPage = () => (
|
const IndexPage = () => (
|
||||||
<Layout>
|
<Layout>
|
||||||
<SEO title="Home" />
|
<SEO title="Home" />
|
||||||
<h1>Hi people</h1>
|
|
||||||
<p>Welcome to your new Gatsby site.</p>
|
|
||||||
<p>Now go build something great.</p>
|
|
||||||
<div style={{ maxWidth: `300px`, marginBottom: `1.45rem` }}>
|
|
||||||
<Image />
|
|
||||||
</div>
|
|
||||||
<Link to="/page-2/">Go to page 2</Link>
|
|
||||||
</Layout>
|
</Layout>
|
||||||
)
|
);
|
||||||
|
|
||||||
export default IndexPage
|
export default IndexPage;
|
||||||
|
|
|
@ -1,16 +0,0 @@
|
||||||
import React from "react"
|
|
||||||
import { Link } from "gatsby"
|
|
||||||
|
|
||||||
import Layout from "../components/layout"
|
|
||||||
import SEO from "../components/seo"
|
|
||||||
|
|
||||||
const SecondPage = () => (
|
|
||||||
<Layout>
|
|
||||||
<SEO title="Page two" />
|
|
||||||
<h1>Hi from the second page</h1>
|
|
||||||
<p>Welcome to page 2</p>
|
|
||||||
<Link to="/">Go back to the homepage</Link>
|
|
||||||
</Layout>
|
|
||||||
)
|
|
||||||
|
|
||||||
export default SecondPage
|
|
Loading…
Reference in a new issue