{"version":3,"sources":["webpack:///./src/components/adsense/adsense.tsx","webpack:///./src/components/button/button.tsx","webpack:///./src/components/badge/badge.tsx","webpack:///./src/templates/post/post.tsx","webpack:///./src/templates/page/page.tsx","webpack:///./src/templates/template.tsx"],"names":["Adsense","clientId","slotId","format","useEffect","window","adsbygoogle","push","className","style","display","data-ad-client","data-ad-slot","data-ad-format","Button","path","label","primary","to","Badges","Post","content","body","data","options","frontmatter","post","image","isIndex","adsense","html","isMore","match","key","boxShadow","title","dateTime","date","category","tags","map","tag","index","description","childImageSharp","fluid","margin","dangerouslySetInnerHTML","__html","replace","split","Page","pageQuery","Template","location","isPage","layout","site","meta"],"mappings":"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","file":"component---src-templates-template-tsx-5da02ae3347f99420e99.js","sourcesContent":["import React, { useEffect } from 'react'\nimport './style.scss'\n\ninterface Props {\n clientId?: string | null\n slotId: string\n format: string\n}\n\ndeclare global {\n interface Window {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n adsbygoogle: any\n }\n}\n\nconst Adsense: React.FC = ({ clientId, slotId, format }: Props) => {\n useEffect(() => {\n if (clientId) {\n window.adsbygoogle = (window.adsbygoogle || []).push({})\n }\n }, [clientId])\n\n return clientId ? (\n
\n \n
\n ) : (\n <>\n )\n}\n\nexport default Adsense\n","import React from 'react'\nimport { Link } from 'gatsby'\n\ninterface Props {\n path: string\n label: string\n primary: boolean\n}\n\nconst Button: React.FC = ({ path, label, primary }: Props) => {\n return (\n \n \n {label}\n \n \n )\n}\n\nexport default Button\n","import React from 'react'\n\ninterface Props {\n label: string\n primary: boolean\n}\n\nconst Badges: React.FC = ({ label, primary }: Props) => {\n return (\n \n {label}\n \n )\n}\n\nexport default Badges\n","import { Link } from 'gatsby'\nimport Img, { FluidObject } from 'gatsby-image'\nimport React from 'react'\n\nimport Adsense from '../../components/adsense/adsense'\nimport Button from '../../components/button/button'\nimport Badge from '../../components/badge/badge'\nimport { PostByPathQuery } from '../../../types/graphql-types'\n\nimport './style.scss'\n\nconst getDescription = (content: string): string => {\n const body = content.replace(\n /
/g,\n '
'\n )\n if (body.match('')) {\n const [description] = body.split('')\n return description\n }\n return body\n}\n\ninterface Props {\n data: PostByPathQuery\n options: {\n isIndex: boolean\n adsense?: string | null\n }\n}\n\nconst Post: React.FC = ({ data, options }: Props) => {\n const frontmatter = data.post?.frontmatter\n const path = frontmatter?.path || ''\n const image = frontmatter?.image || null\n const { isIndex, adsense } = options\n const html = data.post?.html || ''\n const isMore = isIndex && !!html.match('')\n\n return (\n
\n
\n
\n \n

{frontmatter?.title}

\n \n \n \n {(frontmatter?.tags || []).map((tag, index) => (\n \n ))}\n
\n {(frontmatter?.description || frontmatter?.image) &&\n
\n

{frontmatter?.description}

\n {image?.childImageSharp?.fluid && (\n \n )}\n
\n }\n \n {isMore &&
\n
\n )\n}\n\nexport default Post\n","import React from 'react'\n\nimport { PostByPathQuery } from '../../../types/graphql-types'\n\nimport './style.scss'\n\ninterface Props {\n data: PostByPathQuery\n location: Location\n}\n\nconst Page: React.FC = ({ data }: Props) => {\n return data.post?.html ? (\n
\n ) : (\n <>\n )\n}\n\nexport default Page\n","import { graphql } from 'gatsby'\nimport React from 'react'\n\nimport Post from './post/post'\nimport Meta from '../components/meta/meta'\nimport Layout from '../components/layout/layout'\nimport Page from './page/page'\nimport { PostByPathQuery } from '../../types/graphql-types'\n\ninterface Props {\n data: PostByPathQuery\n location: Location\n}\n\nconst Template: React.FC = ({ data, location }: Props) => {\n const isPage = data.post?.frontmatter?.layout != 'page'\n return (\n
\n \n \n {isPage ? (\n \n ) : (\n \n )}\n \n
\n )\n}\n\nexport default Template\n\nexport const pageQuery = graphql`\n query PostByPath($path: String!) {\n site {\n meta: siteMetadata {\n title\n description\n siteUrl\n author\n twitter\n adsense\n }\n }\n post: markdownRemark(frontmatter: { path: { eq: $path } }) {\n id\n html\n frontmatter {\n layout\n title\n path\n category\n tags\n description\n date(formatString: \"YYYY/MM/DD\")\n image {\n childImageSharp {\n fluid(maxWidth: 500) {\n ...GatsbyImageSharpFluid\n }\n }\n }\n }\n }\n }\n`\n"],"sourceRoot":""}