-
Notifications
You must be signed in to change notification settings - Fork 0
/
component---src-templates-blog-post-js-7f2bb90c4cb38644f489.js.map
1 lines (1 loc) · 30.6 KB
/
component---src-templates-blog-post-js-7f2bb90c4cb38644f489.js.map
1
{"version":3,"sources":["webpack:///./src/components/Hero.js","webpack:///./node_modules/@babel/runtime/helpers/nonIterableSpread.js","webpack:///./node_modules/@babel/runtime/helpers/iterableToArray.js","webpack:///./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","webpack:///./src/components/Flag/fr-flag.png","webpack:///./src/components/Translations.js","webpack:///./src/components/Time.js","webpack:///./src/components/ContentHeader.js","webpack:///./src/components/Content.js","webpack:///./src/components/Flag/uk-flag.png","webpack:///./node_modules/@babel/runtime/helpers/toConsumableArray.js","webpack:///./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack:///./node_modules/@babel/runtime/helpers/arrayLikeToArray.js","webpack:///./node_modules/gatsby-plugin-mdx/mdx-renderer.js","webpack:///./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","webpack:///./node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js","webpack:///./src/components/TagList.js","webpack:///./src/components/Flag/Flag.js","webpack:///./node_modules/@babel/runtime/helpers/defineProperty.js","webpack:///./node_modules/@babel/runtime/helpers/construct.js","webpack:///./src/components/Article.js","webpack:///./src/components/PrevNextPost.js","webpack:///./src/templates/blog-post.js"],"names":["Container","styled","HeroImage","Trees","TitleContainer","Title","props","style","backgroundImage","module","exports","TypeError","iter","Symbol","iterator","Object","Array","from","arrayLikeToArray","arr","isArray","TranslationContainer","colors","InfoText","TranslationLink","render","translations","this","key","i","href","withPrefix","translation","React","Component","TimeContainer","date","dateObject","Date","yyyymmdd","year","month","day","friendlyDate","datetime","Header","tags","ContentBody","Content","content","arrayWithoutHoles","iterableToArray","unsupportedIterableToArray","nonIterableSpread","_setPrototypeOf","o","p","setPrototypeOf","__proto__","len","length","arr2","require","useMDXComponents","mdx","useMDXScope","scope","components","children","mdxComponents","mdxScope","End","fullScope","keys","values","fn","minLen","n","prototype","toString","call","slice","constructor","name","test","Reflect","construct","sham","Proxy","e","ListContainer","TagListItemLink","TagListItem","TagList","noLink","to","tag","FlagImage","Flag","language","img","alt","src","className","obj","value","defineProperty","enumerable","configurable","writable","isNativeReflectConstruct","_construct","Parent","args","Class","a","push","apply","instance","Function","bind","arguments","ArticleWrapper","post","PreviewContainer","Preview","PreviewCover","PreviewContent","articles","item","node","useSiteMetadata","siteCover","defaultLang","fluid","useSiteImages","article","excerpt","timeToRead","cover","title","slug","heroImg","aria-label","min","BlogPostTemplate","data","previous","next","location","description","imageShare","lang","path","isBlogPost","pageQuery"],"mappings":"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","file":"component---src-templates-blog-post-js-7f2bb90c4cb38644f489.js","sourcesContent":["import React from 'react'\nimport styled from 'styled-components'\n\nconst Container = styled.div`\n width: 100%;\n margin: 0 auto;\n height: 500px;\n`\n\nconst HeroImage = styled.div`\nposition: absolute; \n width: 100%;\n height: 500px;\n max-width: 1140px;\n left: 0;\n right: 0;\n margin: 0 auto;\n overflow: hidden;\n background-repeat: no-repeat;\n background-position: center;\n background-size: cover;\n`\n\nconst Trees = styled.div`\n position: absolute;\n max-width: 2070px;\n width: 100%;\n height: 500px;\n margin: 0 auto;\n background-repeat: repeat-x;\n background-position: center;\n background-size: cover;\n z-index: 1;\n`\n\nconst TitleContainer = styled.div`\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n text-align: center;\n width: 100%;\n vertical-align: bottom;\n padding-bottom: 32px;\n`\n\nconst Title = styled.h1`\n font-weight: 700;\n font-size: 32sp;\n margin: 10px 50px;\n color: white;\n text-shadow: 1px 1px 4px rgba(34, 34, 34, 0.85);\n`\n\nconst Hero = props => {\n return (\n <Container> \n <HeroImage style={{ backgroundImage: `url(\"${ props.heroImg}\")` }}>\n <TitleContainer>\n <Title>{props.title}</Title>\n </TitleContainer>\n </HeroImage>\n <Trees style={{ backgroundImage: `url(\"${props.treesImg}\")` }}/>\n </Container>\n )\n}\n\nexport default Hero\n","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableSpread;","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray;","var arrayLikeToArray = require(\"./arrayLikeToArray\");\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\n\nmodule.exports = _arrayWithoutHoles;","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAKnRFWHRDcmVhdGlvbiBUaW1lAEZyIDkgTm92IDIwMDcgMTY6Mjc6MDYgKzAxMDAM3ZqdAAAAB3RJTUUH1wsJDxwzm8yD2gAAAAlwSFlzAAALEgAACxIB0t1+/AAAAARnQU1BAACxjwv8YQUAAAHdSURBVHjaxVO7btRAFD3zsNdxQIqQqBYk6ghR0tLxDXwCn8HX0BGlo6JCKAqCIlVCkCjQLgkgxbDB67XnlXPHRvsJGWs04/F53ZkxcNtNvXj5arG7uzf3KfJNIUSFh/dn2H9Qc564pABj0Z98hPt6CsVHyzoCrv6tl/bO3Xvzx0+fw0cveugp8ORRjWf7e1lAmi5naKuAHh2QSI4RpQbeHBzOrSfIBQ/vAzWRE8jcDQNCQk4g3TtinMtkEUHfIaxW0OIqa55rMTEYu3xXWm/r1AYZ5AYolqoJ6D4dU1jDCjFkMrskoFukKG2ys56EFEkyC38abE4+w1z/heU3K0Q/OUchp0zNxCCuU+sX37F69xZYt9CmQDHKUYDwQMPIONpo9A5o2gH9ZoPBjwKm5h78/glcs+ayylQtpyOjQFLS2fnovMHrDz9wftEixTACJKY1HFUmZbIk5GM4WkWyI/bg+AJD0CjKAmVhMlFPpchmaWUm4v8+HrElAu/Pmnz+RWmReGmU2QoYmRsRQHYdE2CbYMOaF51HOWNt1iJSoODFqeSd9YlAUe2g4+gVpjI0ZmoUspe/Lpfdqpk7cWH0QN0zVeOwqxnSjJtYVWi/fEO/DlDWZ2chX4W0vO1/EbgBHTnbxGOMU+UAAAAASUVORK5CYII=\"","import React, { Fragment } from 'react'\nimport { withPrefix } from 'gatsby'\nimport styled from 'styled-components'\nimport { colors } from '../tokens'\n\nconst TranslationContainer = styled.div`\n border-radius: 5px;\n padding: 10px;\n margin-top: 10px;\n background-color: ${colors.lightYellow};\n border: 1px solid ${colors.grey700};\n`\n\nconst InfoText = styled.span`\n color: ${colors.grey900};\n`\n\nconst TranslationLink = styled.a`\n color: ${colors.grey900};\n text-decoration: underline;\n`\n\nclass Translations extends React.Component {\n render() {\n const { translations } = this.props\n\n return (\n <TranslationContainer>\n <InfoText>This article also exists in: </InfoText>\n {translations.map((translation, i) => {\n return (\n <Fragment key={`translation-${i}`}>\n <TranslationLink href={withPrefix(translation.link)}>\n {translation.language}\n </TranslationLink>\n {i < translations.length - 1 ? ', ' : ''}\n </Fragment>\n )\n })}\n </TranslationContainer>\n )\n }\n}\nexport default Translations\n","import React from 'react'\nimport styled from 'styled-components'\nimport { colors } from '../tokens'\n\nconst Time = props => {\n const TimeContainer = styled.time`\n color: ${colors.postMetadata};\n `\n const { date } = props\n\n const dateObject = new Date(date)\n const yyyymmdd = dateObject\n .toLocaleDateString('en-GB', {\n year: 'numeric',\n month: '2-digit',\n day: 'numeric',\n })\n .split('/')\n .reverse()\n .join('-')\n const friendlyDate = dateObject.toLocaleDateString('en-GB', {\n year: 'numeric',\n month: 'long',\n day: 'numeric',\n })\n\n return <TimeContainer datetime={yyyymmdd}>{friendlyDate}</TimeContainer>\n}\nexport default Time\n","import React, { Fragment } from 'react'\nimport styled from 'styled-components'\nimport TagList from './TagList'\nimport Translations from './Translations'\nimport Time from './Time'\nimport { colors } from '../tokens'\nimport { Bull } from './Commons'\n\nconst Header = styled.header`\n margin-bottom: 2rem;\n color: ${colors.textLight};\n font-size: 0.9em;\n`\n\nclass ContentIntro extends React.Component {\n render() {\n const { date, tags, translations } = this.props\n\n return (\n <Header>\n {date && <Time date={date} />}\n {date && Array.isArray(tags) && tags.length > 0 && <Bull />}\n {Array.isArray(tags) && tags.length > 0 && (\n <Fragment>\n <TagList tags={tags} />\n </Fragment>\n )}\n\n {translations && <Translations translations={translations} />}\n </Header>\n )\n }\n}\n\nexport default ContentIntro\n","import React from 'react'\nimport styled from 'styled-components'\nimport ContentHeader from './ContentHeader'\nimport { colors } from '../tokens'\nimport MDXRenderer from 'gatsby-plugin-mdx/mdx-renderer'\n\nconst ContentBody = styled.div`\n line-height: 1.6;\n text-align: justify;\n\n & > h2 {\n padding-top: 3rem;\n margin-top: 3rem;\n border-top: 1px solid #ececec;\n }\n\n & > h3 {\n padding-top: 3rem;\n }\n\n & > p {\n margin: 1em 0 0 0;\n }\n\n & a {\n box-shadow: 0 2px 0 0 ${colors.links};\n\n &:hover {\n filter: brightness(150%);\n box-shadow: none;\n }\n\n &.anchor,\n &.gatsby-resp-image-link {\n box-shadow: none;\n }\n }\n\n h1 .anchor svg,\n h2 .anchor svg,\n h3 .anchor svg,\n h4 .anchor svg,\n h5 .anchor svg,\n h6 .anchor svg {\n visibility: hidden;\n margin-left: -16px;\n }\n\n h1:hover .anchor svg,\n h2:hover .anchor svg,\n h3:hover .anchor svg,\n h4:hover .anchor svg,\n h5:hover .anchor svg,\n h6:hover .anchor svg,\n h1 .anchor:focus svg,\n h2 .anchor:focus svg,\n h3 .anchor:focus svg,\n h4 .anchor:focus svg,\n h5 .anchor:focus svg,\n h6 .anchor:focus svg {\n visibility: visible;\n }\n\n & > blockquote {\n box-sizing: border-box;\n background-color: #f7f7f7;\n border-left: 5px solid rgb(244, 213, 36);\n margin: 30px 0px;\n padding: 5px 20px;\n border-radius: 0 8px 8px 0;\n }\n\n & > blockquote p {\n margin: 0.8em 0;\n font-style: italic;\n }\n\n & .gatsby-highlight {\n border-radius: 5px;\n font-size: 15px;\n line-height: 1.7;\n border-radius: 10px;\n overflow: auto;\n tab-size: 1.5em;\n margin: 1.5em -1.5em;\n\n @media (max-width: 500px) {\n border-radius: 0;\n margin-left: -25px;\n margin-right: -25px;\n }\n }\n\n & .gatsby-highlight > pre {\n border: 0;\n margin: 0;\n padding: 1;\n }\n\n & .gatsby-highlight pre[class*='language-'] {\n float: left;\n min-width: 100%;\n }\n\n & .gatsby-highlight-code-line {\n background-color: ${colors.highlight_code_linebg};\n display: block;\n margin-right: -1em;\n margin-left: -1em;\n padding-right: 1em;\n padding-left: 0.75em;\n border-left: 0.25em solid ${colors.highlight_code_bg};\n }\n\n & h1 > code.language-text,\n & h2 > code.language-text,\n & h3 > code.language-text,\n & h4 > code.language-text,\n & h5 > code.language-text,\n & h6 > code.language-text,\n & a > code.language-text,\n & p > code.language-text,\n & li > code.language-text,\n & em > code.language-text,\n & strong > code.language-text {\n background: ${colors.highlight_code_oneline};\n color: #222222cc;\n padding: 0 3px;\n font-size: 0.94em;\n border-radius: 0.3rem;\n word-wrap: break-word;\n }\n\n & code {\n word-wrap: break-word;\n }\n\n & table {\n margin-top: 1em;\n border-collapse: collapse;\n border-radius: 0.5em;\n overflow: hidden;\n\n & th,\n & td {\n padding: 0.5em;\n background: #f7f7f7;\n border-bottom: 2px solid ${colors.white};\n }\n }\n`\n\nclass Content extends React.Component {\n render() {\n const { content, date, tags, translations } = this.props\n\n return (\n <section>\n {(tags || date || translations) && (\n <ContentHeader date={date} tags={tags} translations={translations} />\n )}\n\n <ContentBody>\n <MDXRenderer>{content}</MDXRenderer>\n </ContentBody>\n </section>\n )\n }\n}\n\nexport default Content\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAByUDbMAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAPASURBVDhPrZT7TxxVFMc/d/Y1wA60gEXwgSU1ViJiJSZqahpqm2jQNlRSHyhRa6wG2kTSpK3v2BptoyRorJi2IaLlF/qyoTU0sRAClDaKRqQ0qShElkJBdpd9z+7seGfQ+A9wkjvn3jnn3Pu93/PNFaY0lsiUf/2SmNATuqm4XYyPTRMOJ3C7nXbAMNLkF2STEw+RXAjjyvYSVDXmZhZwOBYx6HoKrWA5N4dmEZoXMflFi1m4YT2B4jtp2ncKny9IVpZKPK5TXfswlROXmb84RO5DFXQXP8CpYwOoqptoTOeWu4p4uUQn9/pfOJ7dgjJcupZIbz/qd8fZv7+aqk33EgpF5bkmQsivIqwZpviPWpNQIsnjm8p5S7tGocckZ8d2Bn6ZRLnUe5U9v+cSy9QI7H2Xmur7adxbJRHOEgrrSAikg0GIxQlHdK4vJNi5tZSNF9pQn6jC/WQV9fXfcrFvDCUm4fZ3DbPxkxEGVz2C75k6ykWAr1q3k6llkAyESM3NkwyG8OZnc2BdFsUnW1nW/CndvjQVFR/QNzBBTKJlzh8wdcM0o3raDOiWUEzTiEQWJ9Imd71njq5Zb3vbov/H/OGEXWfVW/uI0Z17TPObE5DhwVKcrTqLq/QiR44cDeGRsUQCQ6ITiiJzFhMVyafFq4SFeOEpFKtG98trzAdJ+YMYATmkTwcX7JGamSXpm7K9tTb8AdIyx47JPKvOqk/LzcVky1Ezs6cP0+0mlTSIRHWE1J1wyWEYhAd/InVjDueKfLwPVmDEJQrVIxEpqMLA5XJYgiNWuRZx4tzP5pU/YkQjCQqLNHY8Lwtm5zC+78JdV8vE1m3Mdxwnt6aG4o6j9tXDXd14VAfHnKu52j+CV+qytCQDh4uy95sPHGFqPETrkTpibe0kG17jHXMNpy/N8ljoCoHh31hx3z00/qhwvvMymxs246t/g1u7z/LZjTy+bjqMW3hQIpEYr7xey9i1j1l4cRuJM508V9ZIU8sZ8papiLSFRfIhuc3P1/i8uZ11lQe5/exJbpOkn5s4xJu7X0J3ulD2HXyaw4dqmVp5N9Ml5awaKaWz7bzcIFMOgWIRS8r2dpvJprfnV8nVq/y5YQvZPT/Q0L6btx/NQ8mYGmew4A4u7PqQso+GiYyNoWkSkXBgJPxMy3q/c7ntrbX1X5NiVpQUqwtr+bJjiKzRIcyZScTfwYDpTybxJBPkZMkOWofbJuQrEifqVFFk99Kyi5mpOF6vKmOLGrTABoOyefEkNxUVSipsBS6NLeHjCP8AHa/ubr0bcvgAAAAASUVORK5CYII=\"","var arrayWithoutHoles = require(\"./arrayWithoutHoles\");\n\nvar iterableToArray = require(\"./iterableToArray\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;","function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nmodule.exports = _arrayLikeToArray;","const React = require(`react`)\nconst { useMDXComponents, mdx } = require(`@mdx-js/react`)\nconst { useMDXScope } = require(`./context`)\n\nmodule.exports = function MDXRenderer({\n scope,\n components,\n children,\n ...props\n}) {\n const mdxComponents = useMDXComponents(components)\n const mdxScope = useMDXScope(scope)\n\n // Memoize the compiled component\n const End = React.useMemo(() => {\n if (!children) {\n return null\n }\n\n const fullScope = {\n // React is here just in case the user doesn't pass them in\n // in a manual usage of the renderer\n React,\n mdx,\n ...mdxScope,\n }\n\n const keys = Object.keys(fullScope)\n const values = keys.map(key => fullScope[key])\n const fn = new Function(`_fn`, ...keys, `${children}`)\n\n return fn({}, ...values)\n }, [children, scope])\n\n return React.createElement(End, { components: mdxComponents, ...props })\n}\n","var arrayLikeToArray = require(\"./arrayLikeToArray\");\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\n\nmodule.exports = _unsupportedIterableToArray;","function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nmodule.exports = _isNativeReflectConstruct;","import React, { Fragment } from 'react'\nimport { Link } from 'gatsby'\nimport styled from 'styled-components'\nimport { colors } from '../tokens'\n\nconst ListContainer = styled.div`\n display: inline;\n color: ${colors.postMetadata};\n`\n\nconst TagListItemLink = styled(Link)`\n text-transform: uppercase;\n color: ${colors.postMetadata};\n\n &:not(:first-child) {\n margin-left: 0.3rem;\n }\n\n &:hover {\n border-bottom: 1px dotted ${colors.textLight};\n }\n &:before {\n content: '#';\n }\n`\n\nconst TagListItem = styled.span`\n text-transform: uppercase;\n color: ${colors.postMetadata};\n &:not(:first-child) {\n margin-left: 0.3rem;\n }\n &:before {\n content: '#';\n }\n`\n\nclass TagList extends React.Component {\n render() {\n const { tags, noLink } = this.props\n\n return (\n <ListContainer>\n {tags.map((tag, i) => {\n return (\n <Fragment key={`tag-list-${i}`}>\n {!noLink && (\n <TagListItemLink to={`/tags/${tag}`}>{tag}</TagListItemLink>\n )}\n {noLink && <TagListItem to={`/tags/${tag}`}>{tag}</TagListItem>}\n {i < tags.length - 1 ? ', ' : ''}\n </Fragment>\n )\n })}\n </ListContainer>\n )\n }\n}\n\nexport default TagList\n","import React from 'react'\nimport styled from 'styled-components'\nimport ukFlag from './uk-flag.png'\nimport frFlag from './fr-flag.png'\n\nconst FlagImage = styled.img`\n padding-right: 0.5rem;\n padding-bottom: 0.2rem;\n`\n\nclass Flag extends React.Component {\n render() {\n const { language } = this.props\n const img = language === 'en' ? ukFlag : frFlag\n const alt = language === 'en' ? 'english post' : 'post en francais'\n\n return <FlagImage src={img} alt={alt} className=\"flag\" />\n }\n}\n\nexport default Flag\n","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nvar isNativeReflectConstruct = require(\"./isNativeReflectConstruct\");\n\nfunction _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n module.exports = _construct = Reflect.construct;\n } else {\n module.exports = _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\n\nmodule.exports = _construct;","import React from 'react'\nimport styled from 'styled-components'\nimport Content from './Content'\n\nconst ArticleWrapper = styled.article`\n padding: 0 30px 30px;\n\n @media only screen and (max-width: 500px) {\n padding: 0;\n }\n`\n\nclass Article extends React.Component {\n render() {\n const { post } = this.props\n\n return (\n <ArticleWrapper>\n <Content\n content={post.body}\n date={post.frontmatter.date}\n tags={post.frontmatter.tags}\n translations={post.frontmatter.translations}\n />\n \n </ArticleWrapper>\n )\n }\n}\n\nexport default Article\n","import React, { Fragment } from 'react'\nimport { Link } from 'gatsby'\nimport styled from 'styled-components'\nimport { colors } from '../tokens'\nimport useSiteMetadata from '../hooks/use-site-config'\nimport useSiteImages from '../hooks/use-site-images'\nimport TagList from './TagList'\nimport Flag from './Flag/Flag'\nimport { ReadingTime, Bull } from './Commons'\n\nconst PreviewContainer = styled.aside`\n display: flex;\n flex-wrap: wrap;\n max-width: 770px;\n width: 80%;\n margin: 0px auto 30px auto;\n top: 20px;\n position: relative;\n\n @media (max-width: 780px) {\n width: 100%;\n padding: 25px;\n }\n`\n\nconst Preview = styled.article`\n cursor: pointer;\n flex: 1 1 300px;\n background-color: ${colors.backgroundArticle};\n box-shadow: 0 0 0 0, 0 6px 12px rgba(0, 0, 0, 0.1);\n margin: 20px 20px;\n border-radius: 5px;\n\n &:hover {\n box-shadow: 0 0 0 0, 0 6px 12px ${colors.grey300};\n transition: all 0.3s ease;\n transform: translate3D(0, -1px, 0);\n }\n\n @media (min-width: 780px) {\n &:first-child {\n margin-left: 0;\n }\n &:last-child {\n margin-right: 0;\n }\n }\n`\n\nconst PreviewCover = styled.div`\n width: auto;\n height: 200px;\n background: #c5d2d9 no-repeat 50%;\n background-size: cover;\n border-radius: 5px 5px 0 0;\n`\n\nconst PreviewContent = styled.div`\n padding: 20px;\n\n header {\n padding: 0 0 10px 0;\n }\n section {\n padding-bottom: 10px;\n }\n footer {\n font-size: 0.8em;\n }\n`\n\nconst PrevNextPost = props => {\n const { previous, next } = props\n const articles = [previous, next].filter(i => i).map(item => ({ node: item }))\n const { siteCover, defaultLang } = useSiteMetadata()\n const { fluid } = useSiteImages(siteCover)\n\n return (\n <Fragment>\n <PreviewContainer>\n {articles.map((article, i) => {\n const { excerpt, timeToRead } = article.node\n const {\n tags,\n cover,\n title,\n slug,\n language,\n } = article.node.frontmatter\n const heroImg = (cover && cover.publicURL) || fluid.src\n\n return (\n <Preview key={`prev-next-${i}`}>\n <Link to={`/blog/${slug}`} aria-label={`View ${title} article`}>\n <PreviewCover\n style={{ backgroundImage: `url(\"${heroImg}\")` }}\n />\n <PreviewContent>\n <header>\n <h2>\n {defaultLang !== language && <Flag language={language} />}\n {title}\n </h2>\n </header>\n <section>\n <p>{excerpt}</p>\n </section>\n <footer>\n <ReadingTime min={timeToRead} />\n {Array.isArray(tags) && (\n <>\n <Bull />\n <TagList tags={tags} noLink={true} />\n </>\n )}\n </footer>\n </PreviewContent>\n </Link>\n </Preview>\n )\n })}\n </PreviewContainer>\n </Fragment>\n )\n}\n\nexport default PrevNextPost\n","import React from 'react'\nimport { graphql } from 'gatsby'\nimport Layout from '../components/layout'\nimport Wrapper from '../components/Wrapper'\nimport Hero from '../components/Hero'\nimport Article from '../components/Article'\nimport PrevNextPost from '../components/PrevNextPost'\nimport SEO from '../components/SEO'\n\nclass BlogPostTemplate extends React.Component {\n render() {\n const post = this.props.data.post\n const { previous, next } = this.props.pageContext\n\n return (\n <Layout location={this.props.location}>\n <SEO\n title={post.frontmatter.title}\n description={post.excerpt}\n cover={post.frontmatter.cover && post.frontmatter.cover.publicURL}\n imageShare={\n post.frontmatter.imageShare && post.frontmatter.imageShare.publicURL\n }\n lang={post.frontmatter.language}\n translations={post.frontmatter.translations}\n path={post.frontmatter.slug}\n isBlogPost\n />\n\n <Hero\n heroImg={post.frontmatter.cover && post.frontmatter.cover.publicURL}\n title={post.frontmatter.title}\n />\n\n <Wrapper>\n <Article post={post} />\n </Wrapper>\n\n <PrevNextPost previous={previous} next={next} />\n </Layout>\n )\n }\n}\n\nexport default BlogPostTemplate\n\nexport const pageQuery = graphql`\n query BlogPostBySlug($slug: String!) {\n post: mdx(frontmatter: { slug: { eq: $slug } }) {\n excerpt\n body\n frontmatter {\n title\n date\n slug\n language\n tags\n cover {\n publicURL\n }\n imageShare {\n publicURL\n }\n translations {\n language\n link\n hreflang\n }\n }\n }\n }\n`\n"],"sourceRoot":""}