{"version":3,"sources":["webpack:///./src/components/Layout/Author/Author.tsx","webpack:///./src/components/Post/Post.tsx","webpack:///./src/templates/blog-post.tsx"],"names":["Root","styled","section","rhythm","colors","accentPeach","StyledImage","Image","device","tablet","Author","author","useSiteMetadata","avatar","useAvatar","width","height","avatarFixedImage","childImageSharp","fixed","src","srcSet","alt","name","href","social","linkedin","to","scale","Title","h1","Info","p","Content","article","Post","post","frontmatter","title","date","timeToRead","dangerouslySetInnerHTML","__html","html","className","pageQuery","BlogPostTemplate","data","location","markdownRemark","siteTitle","siteUrl","transitions","usePageTransitions","Layout","headerProps","showBackNav","description","image","cover","undefined","imageAlt","type","url","slug","meta","property","content","category","tags","map","t","props","key","div","style"],"mappings":"0OAuCMA,EAAOC,IAAOC,QAAV,mEAAGD,CAAH,8IAGIE,YAAO,GAEFA,YAAO,GAMXC,IAAOC,aAKhBC,EAAcL,YAAOM,KAAV,0EAAGN,CAAH,oJAONO,IAAOC,QAMHC,EA3DA,WAA0B,IAC/BC,EAAWC,cAAXD,OACFE,EAASC,YAAU,CAAEC,MAAO,GAAIC,OAAQ,KAExCC,EAAgC,OAAH,UAC9BJ,EAAOK,gBAAgBC,MADO,CAGjCC,IAAKP,EAAOK,gBAAgBC,MAAMC,IAClCC,OAAQR,EAAOK,gBAAgBC,MAAME,OACrCN,MAAO,GACPC,OAAQ,KAGV,OACE,kBAAChB,EAAD,KACE,kBAACM,EAAD,CAAaa,MAAOF,EAAkBK,IAAKX,EAAOY,OAClD,iDACqB,IACnB,uBAAGC,KAAI,+BAAiCb,EAAOc,OAAOC,UACnDf,EAAOY,MACL,IAJP,2EAK2E,IACzE,4BACE,kBAAC,OAAD,CAAMI,GAAG,WAAT,qBADF,U,4MCLF3B,EAAOC,IAAOC,QAAV,iEAAGD,CAAH,0MAEKE,YAAO,IAClByB,YAAM,IAMOzB,YAAO,IAYlB0B,EAAQ5B,IAAO6B,GAAV,kEAAG7B,CAAH,oCACKE,YAAO,IAIjB4B,EAAO9B,IAAO+B,EAAV,iEAAG/B,CAAH,qEACKE,YAAO,IAGHA,YAAO,IAGpB8B,EAAUhC,IAAOiC,QAAV,oEAAGjC,CAAH,sNAIP2B,aAAO,IAKQzB,YAAO,IAMZA,YAAO,KAMRgC,EApEkC,SAAC,GAAD,IAC/CC,EAD+C,EAC/CA,KAD+C,OAG/C,kBAACpC,EAAD,KACE,kBAAC6B,EAAD,KAAQO,EAAKC,YAAYC,OACzB,kBAACP,EAAD,KACGK,EAAKC,YAAYE,KADpB,MAC6BH,EAAKI,WADlC,aAGA,kBAACP,EAAD,CAASQ,wBAAyB,CAAEC,OAAQN,EAAKO,QACjD,yBAAKC,UAAU,cACf,kBAAClC,EAAA,EAAD,Q,YC0CSmC,GAFEC,UA5C0D,SAAC,GAGhD,IAFxBC,EAEwB,EAFxBA,KACAC,EACwB,EADxBA,SACwB,EACSD,EAAKE,eAA9BZ,EADgB,EAChBA,YAAgBD,EADA,iCAEcxB,cAAvBsC,EAFS,EAEhBZ,MAAkBa,EAFF,EAEEA,QAEpBC,EAAcC,YAAmB,CAAEL,aAEzC,OACE,kBAACM,EAAA,EAAD,CACEN,SAAUA,EACVV,MAAOY,EACPK,YAAa,CAAEC,aAAa,IAE5B,kBAAC,IAAD,CACElB,MAAOD,EAAYC,MACnBmB,YAAgBrB,EAAKI,WAAV,eAAmCH,EAAYoB,YAC1DC,MACErB,EAAYsB,MACRtB,EAAYsB,MAAMzC,gBAAgBC,MAAMC,SACxCwC,EAENC,SAAQ,mBAAqBxB,EAAYC,MACzCwB,KAAK,UACLC,IAAQZ,EAAL,SAAqBd,EAAY2B,KACpCC,KAAI,CACF,CAAEC,SAAU,yBAA0BC,QAAS9B,EAAYE,MAC3D,CAAE2B,SAAU,kBAAmBC,QAAS9B,EAAY+B,WAFlD,oBAGE/B,EAAYgC,MAAQ,IAAIC,KAAI,SAAAC,GAAC,MAAK,CACpCL,SAAU,cACVC,QAASI,UAIdnB,EAAYkB,KAAI,gBAAGE,EAAH,EAAGA,MAAOC,EAAV,EAAUA,IAAV,OACf,kBAAC,IAASC,IAAV,CAAcD,IAAKA,EAAKE,MAAOH,GAC7B,kBAAC,EAAD,CAAMpC,KAAI,eAAIC,eAAgBD,WASf","file":"component---src-templates-blog-post-tsx-6fabd5cad9af2cd7f3d5.js","sourcesContent":["import React from \"react\";\nimport styled from \"styled-components\";\nimport Image, { FixedObject } from \"gatsby-image\";\nimport { Link } from \"gatsby\";\n\nimport { rhythm } from \"../../../utils/typography\";\nimport { device, colors } from \"../../../styles/constants\";\nimport { useSiteMetadata, useAvatar } from \"../../../hooks\";\n\nconst Author = (): React.ReactElement => {\n const { author } = useSiteMetadata();\n const avatar = useAvatar({ width: 50, height: 50 });\n\n const avatarFixedImage: FixedObject = {\n ...avatar.childImageSharp.fixed,\n // need to set src and srcSet explicitly, otherwise there is a type conflict\n src: avatar.childImageSharp.fixed.src,\n srcSet: avatar.childImageSharp.fixed.srcSet,\n width: 50,\n height: 50,\n };\n\n return (\n \n \n
\n A personal blog by{\" \"}\n \n {author.name}\n {\" \"}\n about coding, coaching, travelling, and much more. (Interested in my CV?{\" \"}\n \n check it out here.)\n \n
\n
\n );\n};\n\nconst Root = styled.section`\n display: grid;\n grid-template-columns: 50px auto;\n grid-gap: ${rhythm(1)};\n align-items: center;\n margin-bottom: ${rhythm(1)};\n\n h5 {\n margin: 0;\n line-height: 1.5;\n a {\n color: ${colors.accentPeach};\n }\n }\n`;\n\nconst StyledImage = styled(Image)`\n margin-bottom: 0;\n justify-self: center;\n width: 50px;\n height: 50px;\n border-radius: 100px 100px 100px 8px;\n\n @media ${device.tablet} {\n grid-row: auto;\n justify-self: flex-end;\n }\n`;\n\nexport default Author;\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport { MarkdownRemark } from \"graphql-types\";\n\nimport Author from \"../Layout/Author\";\n\nimport { rhythm, scale } from \"../../utils/typography\";\n\ninterface PostProps {\n post: MarkdownRemark;\n}\n\nconst Post: React.FunctionComponent = ({\n post,\n}): React.ReactElement => (\n \n {post.frontmatter.title}\n \n {post.frontmatter.date} · {post.timeToRead} min read\n \n \n
\n \n \n);\n\nconst Root = styled.section`\n margin: auto;\n max-width: ${rhythm(28)};\n ${scale(0.1)}\n\n .separator {\n margin: 20px 0px;\n border: none;\n text-align: center;\n font-size: ${rhythm(1)};\n font-weight: 300;\n\n &:before {\n line-height: 1.4;\n text-indent: 0.6em;\n letter-spacing: 0.6em;\n content: \"···\";\n }\n }\n`;\n\nconst Title = styled.h1`\n margin-top: ${rhythm(1)};\n margin-bottom: 0;\n`;\n\nconst Info = styled.p`\n font-size: ${rhythm(0.6)};\n font-style: italic;\n display: block;\n margin-bottom: ${rhythm(1)};\n`;\n\nconst Content = styled.article`\n .md-figure-caption,\n .gatsby-resp-image-figcaption {\n text-align: center;\n ${scale(-0.2)};\n font-style: italic;\n }\n\n .gatsby-resp-image-background-image {\n margin-bottom: ${rhythm(0.1)};\n }\n\n .video_container {\n iframe {\n width: 100%;\n height: ${rhythm(20)};\n margin-bottom: 0;\n }\n }\n`;\n\nexport default Post;\n","import React from \"react\";\nimport { graphql } from \"gatsby\";\nimport { animated } from \"react-spring\";\nimport { GatsbyLocation } from \"local-types\";\nimport { MarkdownRemark } from \"graphql-types\";\n\nimport Layout from \"../components/Layout\";\nimport SEO from \"../components/Seo\";\nimport Post from \"../components/Post\";\nimport { useSiteMetadata, usePageTransitions } from \"../hooks\";\n\ninterface BlogPostTemplateProps {\n location: GatsbyLocation;\n data: {\n markdownRemark: MarkdownRemark;\n };\n}\n\nconst BlogPostTemplate: React.FunctionComponent = ({\n data,\n location,\n}): React.ReactElement => {\n const { frontmatter, ...post } = data.markdownRemark;\n const { title: siteTitle, siteUrl } = useSiteMetadata();\n\n const transitions = usePageTransitions({ location });\n\n return (\n \n ({\n property: \"article:tag\",\n content: t,\n })),\n ]}\n />\n {transitions.map(({ props, key }) => (\n \n \n \n ))}\n \n );\n};\n\nexport default BlogPostTemplate;\n\nexport const pageQuery = graphql`\n query BlogPostBySlug($slug: String!) {\n markdownRemark(fields: { slug: { eq: $slug } }) {\n id\n excerpt(pruneLength: 160)\n html\n frontmatter {\n title\n date(formatString: \"MMMM DD, YYYY\")\n cover {\n childImageSharp {\n fixed {\n src\n }\n }\n }\n slug\n description\n category\n tags\n }\n timeToRead\n }\n }\n`;\n"],"sourceRoot":""}