From c26e2c7fab301eff1fd8c7ef50ecb25bdee4d128 Mon Sep 17 00:00:00 2001 From: pozafly Date: Mon, 8 Jul 2024 22:51:50 +0900 Subject: [PATCH] =?UTF-8?q?=EB=B0=B0=ED=8F=AC:=202024-07-08?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 14cad5d5-bdd75a890659ae72b924.js | 2 + 14cad5d5-bdd75a890659ae72b924.js.map | 1 + ...753fb2ae881c988403-163021418b0c39f705f4.js | 2 + ...b2ae881c988403-163021418b0c39f705f4.js.map | 1 + ...d58b6910ae5888c1e0-fb16efca41264a831f8a.js | 2 + ...6910ae5888c1e0-fb16efca41264a831f8a.js.map | 1 + 404.html | 4 +- 404/index.html | 4 +- ...e57f1f21adca07f5e8-f1602e23e5a0da4fb776.js | 2 + ...1f21adca07f5e8-f1602e23e5a0da4fb776.js.map | 1 + 860-3f5c1cf4142a3ceeda90.js | 3 + 860-3f5c1cf4142a3ceeda90.js.LICENSE.txt | 19 +++++ 860-3f5c1cf4142a3ceeda90.js.map | 1 + _gatsby/slices/_gatsby-scripts-1.html | 4 +- about/index.html | 4 +- app-4429b5c4e9885f63e75f.js | 3 + app-4429b5c4e9885f63e75f.js.LICENSE.txt | 77 +++++++++++++++++++ app-4429b5c4e9885f63e75f.js.map | 1 + b4ffff85-b8f43195dbad92272872.js | 2 + b4ffff85-b8f43195dbad92272872.js.map | 1 + blog/Gatsby-Blog/index.html | 4 +- blog/blog-insert-tap/index.html | 4 +- blog/jekyll-kakao-share-button/index.html | 4 +- chunk-map.json | 2 +- commons-c8e7d78a001b66809770.js | 2 + commons-c8e7d78a001b66809770.js.map | 1 + ...-src-pages-404-tsx-c286f97739911ba27eaa.js | 2 + ...-pages-404-tsx-c286f97739911ba27eaa.js.map | 1 + ...rc-pages-about-tsx-374d19d932b0119d4de3.js | 2 + ...ages-about-tsx-374d19d932b0119d4de3.js.map | 1 + ...src-pages-tags-tsx-68730946c4941429370e.js | 2 + ...pages-tags-tsx-68730946c4941429370e.js.map | 1 + ...emplates-index-tsx-5c5ab75dd3268725f065.js | 2 + ...ates-index-tsx-5c5ab75dd3268725f065.js.map | 1 + ...templates-tags-tsx-d722e50ffb12cfa536cd.js | 2 + ...lates-tags-tsx-d722e50ffb12cfa536cd.js.map | 1 + .../index.html | 4 +- css/stacking-context/index.html | 4 +- .../index.html | 4 +- diary/geultto-8-retrospect/index.html | 4 +- .../index.html | 4 +- environment/webpack-boilerplate/index.html | 4 +- .../index.html | 4 +- html/meta-tag-and-vue-meta/index.html | 4 +- .../index.html | 4 +- html/semantic-web/index.html | 4 +- index.html | 4 +- .../index.html" | 4 +- javascript/array-is-object/index.html | 4 +- javascript/closure-with-currying/index.html | 4 +- javascript/event-loop-and-async/index.html | 4 +- javascript/getter-setter/index.html | 4 +- javascript/javascript-mvc/index.html | 4 +- javascript/prototype/index.html | 4 +- .../shallo-copy-and-deep-copy/index.html | 4 +- javascript/symbol/index.html | 4 +- .../index.html | 4 +- .../index.html | 4 +- node/node-version-manager/index.html | 4 +- .../index.html | 4 +- oracle/CHR-ASCII/index.html | 4 +- oracle/table-space/index.html | 4 +- .../index.html" | 4 +- page-data/app-data.json | 2 +- .../mutation-after-data-update/index.html | 4 +- .../index.html | 4 +- .../index.html | 4 +- .../index.html | 4 +- rss.xml | 2 +- spring/JUnit(1)motive/index.html | 4 +- spring/JUnit(2)Mockito/index.html | 4 +- spring/MediaType/index.html | 4 +- tags/alfred/index.html | 4 +- tags/automation/index.html | 4 +- tags/blog/index.html | 4 +- tags/bundler/index.html | 4 +- tags/chezmoi/index.html | 4 +- tags/cloud/index.html | 4 +- tags/css/index.html | 4 +- tags/design-pattern/index.html | 4 +- tags/dev-ops/index.html | 4 +- tags/diary/index.html | 4 +- tags/environment/index.html | 4 +- tags/error/index.html | 4 +- tags/es-lint/index.html | 4 +- tags/gatsby/index.html | 4 +- tags/git-hub-actions/index.html | 4 +- tags/html/index.html | 4 +- tags/index.html | 4 +- tags/j-unit/index.html | 4 +- tags/java-script/index.html | 4 +- tags/java/index.html | 4 +- tags/jwt/index.html | 4 +- tags/lets-encrypt/index.html | 4 +- tags/media-type/index.html | 4 +- tags/my-sql/index.html | 4 +- tags/network/index.html | 4 +- tags/next-js/index.html | 4 +- tags/node-js/index.html | 4 +- tags/oracle/index.html | 4 +- tags/pdf/index.html | 4 +- tags/performance/index.html | 4 +- tags/react-query/index.html | 4 +- tags/react/index.html | 4 +- tags/refactoring/index.html | 4 +- tags/semantic-web/index.html | 4 +- tags/sentry/index.html | 4 +- tags/seo/index.html | 4 +- tags/slack/index.html | 4 +- tags/social-login/index.html | 4 +- tags/spring-boot/index.html | 4 +- tags/spring-security/index.html | 4 +- tags/tool/index.html | 4 +- .../index.html" | 4 +- tags/type-script/index.html | 4 +- tags/uri/index.html | 4 +- tags/vite/index.html | 4 +- tags/vue-js/index.html | 4 +- tags/webpack/index.html | 4 +- .../index.html | 4 +- .../index.html | 4 +- .../index.html | 4 +- tripllo/(1)production-motive/index.html | 4 +- tripllo/(10)vue-travis-automation/index.html | 4 +- .../index.html | 4 +- .../index.html | 4 +- tripllo/(13)Vuex-and-eventBus/index.html | 4 +- tripllo/(14)Closure-Currying/index.html | 4 +- .../(2)mysql-design-spring-boot/index.html | 4 +- .../(3)vue-esLint-prettier-setting/index.html | 4 +- tripllo/(4)spring-security-jwt/index.html | 4 +- tripllo/(5)login2-SpringBoot/index.html | 4 +- tripllo/(6)login3-vue/index.html | 4 +- tripllo/(7)login4-vue-social-login/index.html | 4 +- tripllo/(8)vue-refactor1/index.html | 4 +- tripllo/(9)vue-refactor2/index.html | 4 +- tripllo/tripllo-delete/index.html | 4 +- tripllo/tripllo-epilogue/index.html | 4 +- typescript/typescript-env/index.html | 4 +- .../index.html | 4 +- vue/vue2-about-reactive/index.html | 4 +- webpack-runtime-593d782398a1143e74ca.js | 2 + webpack-runtime-593d782398a1143e74ca.js.map | 1 + webpack.stats.json | 2 +- 144 files changed, 364 insertions(+), 224 deletions(-) create mode 100644 14cad5d5-bdd75a890659ae72b924.js create mode 100644 14cad5d5-bdd75a890659ae72b924.js.map create mode 100644 161edb849f784c06ff2710753fb2ae881c988403-163021418b0c39f705f4.js create mode 100644 161edb849f784c06ff2710753fb2ae881c988403-163021418b0c39f705f4.js.map create mode 100644 2db0c6464e31255548080ed58b6910ae5888c1e0-fb16efca41264a831f8a.js create mode 100644 2db0c6464e31255548080ed58b6910ae5888c1e0-fb16efca41264a831f8a.js.map create mode 100644 4a9bc246ec22e0a2d47fe8e57f1f21adca07f5e8-f1602e23e5a0da4fb776.js create mode 100644 4a9bc246ec22e0a2d47fe8e57f1f21adca07f5e8-f1602e23e5a0da4fb776.js.map create mode 100644 860-3f5c1cf4142a3ceeda90.js create mode 100644 860-3f5c1cf4142a3ceeda90.js.LICENSE.txt create mode 100644 860-3f5c1cf4142a3ceeda90.js.map create mode 100644 app-4429b5c4e9885f63e75f.js create mode 100644 app-4429b5c4e9885f63e75f.js.LICENSE.txt create mode 100644 app-4429b5c4e9885f63e75f.js.map create mode 100644 b4ffff85-b8f43195dbad92272872.js create mode 100644 b4ffff85-b8f43195dbad92272872.js.map create mode 100644 commons-c8e7d78a001b66809770.js create mode 100644 commons-c8e7d78a001b66809770.js.map create mode 100644 component---src-pages-404-tsx-c286f97739911ba27eaa.js create mode 100644 component---src-pages-404-tsx-c286f97739911ba27eaa.js.map create mode 100644 component---src-pages-about-tsx-374d19d932b0119d4de3.js create mode 100644 component---src-pages-about-tsx-374d19d932b0119d4de3.js.map create mode 100644 component---src-pages-tags-tsx-68730946c4941429370e.js create mode 100644 component---src-pages-tags-tsx-68730946c4941429370e.js.map create mode 100644 component---src-templates-index-tsx-5c5ab75dd3268725f065.js create mode 100644 component---src-templates-index-tsx-5c5ab75dd3268725f065.js.map create mode 100644 component---src-templates-tags-tsx-d722e50ffb12cfa536cd.js create mode 100644 component---src-templates-tags-tsx-d722e50ffb12cfa536cd.js.map create mode 100644 webpack-runtime-593d782398a1143e74ca.js create mode 100644 webpack-runtime-593d782398a1143e74ca.js.map diff --git a/14cad5d5-bdd75a890659ae72b924.js b/14cad5d5-bdd75a890659ae72b924.js new file mode 100644 index 000000000..85296f4a9 --- /dev/null +++ b/14cad5d5-bdd75a890659ae72b924.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkrecord_journey=self.webpackChunkrecord_journey||[]).push([[120],{9625:function(e,t,a){a.d(t,{A:function(){return g},M:function(){return A}});var r=a(8868),o=a(4421),i=a(758),s=a(8249),n=a(9778),l=a(5257),c=a(4388),d=a(7600),p=a(7509),m=a(5510);function g({post:e,isLarge:t=!1,isNext:a=!1}){const r=new Date(e.frontmatter.date),d=(0,l.GP)(r,"yyyy-MM-dd"),p=(0,l.GP)(r,"yyyy-MM-dd"),g=e.frontmatter.image,A=(0,c.c)(g);return(0,n.Y)("article",{className:`post-card ${g?"":"no-image"} ${t?"post-card-large":""} ${a?"is-next":""}`,css:[f,t&&y,"",""]},g&&(0,n.Y)(s.Link,{className:"post-card-image-link",css:h,to:e.fields.slug},(0,n.Y)(b,{className:"post-card-image"},A&&(0,n.Y)(c.G,{image:A,alt:`${e.frontmatter.title} cover image`,style:{height:"100%"},loading:t?"eager":"lazy"}))),(0,n.Y)(x,{className:"post-card-content"},e.frontmatter.tags&&m.A.showAllTags&&(0,n.Y)(k,{className:"post-card-primary-tag"},e.frontmatter.tags.map(((e,t)=>(0,n.Y)(i.Fragment,{key:e},t>0&&(0,n.Y)(i.Fragment,null,",  "),(0,n.Y)(s.Link,{to:`/tags/${(0,o.A)(e)}/`},e))))),e.frontmatter.tags&&!m.A.showAllTags&&(0,n.Y)(k,{className:"post-card-primary-tag"},(0,n.Y)(s.Link,{to:`/tags/${(0,o.A)(e.frontmatter.tags[0])}/`},e.frontmatter.tags[0])),(0,n.Y)(s.Link,{className:"post-card-content-link",css:u,to:e.fields.slug},(0,n.Y)("header",null,(0,n.Y)(v,{className:"post-card-title"},e.frontmatter.title)),(0,n.Y)(w,{className:"post-card-excerpt"},(0,n.Y)("p",null,e.frontmatter.excerpt||e.excerpt))),(0,n.Y)(Y,{className:"post-card-meta"},(0,n.Y)(z,{className:"post-card-byline-content"},(0,n.Y)("span",{className:"post-card-byline-date"},(0,n.Y)("time",{dateTime:d},p)," ",(0,n.Y)("span",{className:"bull"},"•")," ",(0,n.Y)("span",null,e.fields.readingTime.text))))))}const f={name:"1ayk19t",styles:"position:relative;overflow:hidden;display:flex;flex:1 1 301px;flex-direction:column;min-height:220px;margin:0 20px 60px;background-size:cover;img{transform:scale(1)!important;transition:opacity 0.3s ease-out 0s,transform 0.5s ease 0s!important;}&:hover{.post-card-image:after{opacity:var(--post-card-after-opacity);}img[data-main-image]{transform:scale(1.03)!important;}}&.is-next{.post-card-image{background:#191b1f;border:1px solid var(--image-border-color__dark);}.post-card-primary-tag{a{color:#90a2aa;}}.post-card-excerpt{color:#768086;}.post-card-byline-content{color:#90a2aa;}}"},y={name:"13ypsv",styles:"p{display:block;}@media (min-width: 795px){flex:1 1 100%;flex-direction:row;min-height:280px;border-top:0;:not(.no-image) .post-card-header{margin-top:0;}.post-card-image-link{position:relative;flex:1 1 auto;min-height:380px;margin-bottom:0;}.post-card-image{position:absolute;width:100%;height:100%;}.post-card-content{flex:0 1 361px;justify-content:center;padding:0 0 0 40px;}.post-card-title{margin-top:0;font-size:3.2rem;word-break:keep-all;}.post-card-excerpt p{margin-bottom:1.5em;font-size:1.8rem;line-height:1.5em;}}"},h={name:"uih3rl",styles:"position:relative;overflow:hidden;display:block;border-radius:12px"},b=(0,r.A)("div",{target:"ezywgfd6"})({name:"pg199o",styles:"overflow:hidden;width:auto;height:200px;background-color:var(--background-color);background-size:cover;border:1px solid var(--image-border-color);border-radius:12px;&:after{content:'';position:absolute;top:0;left:0;display:block;width:100%;height:100%;opacity:var(--post-card-opacity);background-color:var(--post-card-background);transition:all 0.3s ease 0s;}img{border-radius:12px;}"}),x=(0,r.A)("div",{target:"ezywgfd5"})({name:"z5atxi",styles:"display:flex;flex-direction:column;flex-grow:1"}),u=(0,n.AH)("position:relative;display:block;color:",p.T.darkgrey,";:hover{text-decoration:none;}","","",""),k=(0,r.A)("div",{target:"ezywgfd4"})("margin:15px 0 0.2em;font-size:1.2rem;font-weight:500;color:",(0,d.a)("0.1",p.T.midgrey),";letter-spacing:0.2px;a{font-size:1.2rem;color:var(--anchor-secondary-color);}"),v=(0,r.A)("h2",{target:"ezywgfd3"})({name:"18yvs8h",styles:"margin:0 0 0.4em;line-height:1.15em;color:var(--post-card-title);word-break:keep-all"}),w=(0,r.A)("section",{target:"ezywgfd2"})({name:"13tchzb",styles:"font-size:1.6rem;color:var(--post-card-description);p{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;width:100%;margin-bottom:0.4em;font-size:1.4rem;text-overflow:ellipsis;word-break:keep-all;-webkit-line-clamp:2;}"}),Y=(0,r.A)("footer",{target:"ezywgfd1"})({name:"143c7df",styles:"display:flex;align-items:flex-start;padding:0"}),z=(0,r.A)("div",{target:"ezywgfd0"})("display:flex;flex:1 1 50%;flex-direction:column;font-weight:400;line-height:1.4em;color:",(0,d.a)("0.1",p.T.midgrey),";letter-spacing:0.2px;time{font-size:1.3rem;}span{margin:0;font-size:1.3rem;}a{font-weight:600;color:var(--post-card-by-line);}"),A={name:"1ip6e3z",styles:"display:block;width:100%;height:100%;object-fit:cover;background:var(--background-color);border-radius:100%;img{border-radius:100%;}"}}}]); +//# sourceMappingURL=14cad5d5-bdd75a890659ae72b924.js.map \ No newline at end of file diff --git a/14cad5d5-bdd75a890659ae72b924.js.map b/14cad5d5-bdd75a890659ae72b924.js.map new file mode 100644 index 000000000..a4fe79a32 --- /dev/null +++ b/14cad5d5-bdd75a890659ae72b924.js.map @@ -0,0 +1 @@ +{"version":3,"file":"14cad5d5-bdd75a890659ae72b924.js","mappings":"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","sources":["webpack://record-journey/./src/components/PostCard.tsx"],"sourcesContent":["import { Fragment } from 'react';\nimport { Link } from 'gatsby';\nimport { css } from '@emotion/react';\nimport styled from '@emotion/styled';\nimport { format } from 'date-fns';\nimport { GatsbyImage, getImage } from 'gatsby-plugin-image';\nimport { kebabCase } from 'lodash-es';\nimport { lighten } from 'polished';\n\nimport { colors } from '@/styles/colors.ts';\nimport config from '@/website-config.ts';\n\nimport type { PageContext } from '@/templates/post.tsx';\n\nexport type PostCardProps = {\n post: PageContext;\n isLarge?: boolean;\n isNext?: boolean;\n};\n\nexport default function PostCard({ post, isLarge = false, isNext = false }: PostCardProps) {\n const date = new Date(post.frontmatter.date);\n const datetime = format(date, 'yyyy-MM-dd');\n const displayDatetime = format(date, 'yyyy-MM-dd');\n\n const imageData = post.frontmatter.image;\n const imageSource = getImage(imageData);\n\n return (\n \n {imageData && (\n \n \n {imageSource && (\n \n )}\n \n \n )}\n \n {post.frontmatter.tags && config.showAllTags && (\n \n {post.frontmatter.tags.map((tag, idx) => (\n \n {idx > 0 && ,  }\n {tag}\n \n ))}\n \n )}\n {post.frontmatter.tags && !config.showAllTags && (\n \n \n {post.frontmatter.tags[0]}\n \n \n )}\n \n
\n {post.frontmatter.title}\n
\n \n

{post.frontmatter.excerpt || post.excerpt}

\n
\n \n \n \n \n {' '}\n {post.fields.readingTime.text}\n \n \n \n
\n \n );\n}\n\nconst PostCardStyles = css`\n position: relative;\n overflow: hidden;\n display: flex;\n flex: 1 1 301px;\n flex-direction: column;\n min-height: 220px;\n margin: 0 20px 60px;\n background-size: cover;\n\n img {\n transform: scale(1) !important;\n transition:\n opacity 0.3s ease-out 0s,\n transform 0.5s ease 0s !important;\n }\n\n &:hover {\n .post-card-image:after {\n opacity: var(--post-card-after-opacity);\n }\n\n img[data-main-image] {\n transform: scale(1.03) !important;\n }\n }\n\n &.is-next {\n .post-card-image {\n background: #191b1f;\n border: 1px solid var(--image-border-color__dark);\n }\n\n .post-card-primary-tag {\n a {\n color: #90a2aa;\n }\n }\n\n .post-card-excerpt {\n color: #768086;\n }\n\n .post-card-byline-content {\n color: #90a2aa;\n }\n }\n`;\n\nconst PostCardLarge = css`\n p {\n display: block;\n }\n\n @media (min-width: 795px) {\n flex: 1 1 100%;\n flex-direction: row;\n min-height: 280px;\n border-top: 0;\n\n :not(.no-image) .post-card-header {\n margin-top: 0;\n }\n\n .post-card-image-link {\n position: relative;\n flex: 1 1 auto;\n min-height: 380px;\n margin-bottom: 0;\n }\n\n .post-card-image {\n position: absolute;\n width: 100%;\n height: 100%;\n }\n\n .post-card-content {\n flex: 0 1 361px;\n justify-content: center;\n padding: 0 0 0 40px;\n }\n\n .post-card-title {\n margin-top: 0;\n font-size: 3.2rem;\n word-break: keep-all;\n }\n\n .post-card-excerpt p {\n margin-bottom: 1.5em;\n font-size: 1.8rem;\n line-height: 1.5em;\n }\n }\n`;\n\nconst PostCardImageLink = css`\n position: relative;\n overflow: hidden;\n display: block;\n border-radius: 12px;\n`;\n\nconst PostCardImage = styled.div`\n overflow: hidden;\n width: auto;\n height: 200px;\n background-color: var(--background-color);\n background-size: cover;\n border: 1px solid var(--image-border-color);\n border-radius: 12px;\n\n &:after {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n display: block;\n width: 100%;\n height: 100%;\n opacity: var(--post-card-opacity);\n background-color: var(--post-card-background);\n transition: all 0.3s ease 0s;\n }\n\n img {\n border-radius: 12px;\n }\n`;\n\nconst PostCardContent = styled.div`\n display: flex;\n flex-direction: column;\n flex-grow: 1;\n`;\n\nconst PostCardContentLink = css`\n position: relative;\n display: block;\n color: ${colors.darkgrey};\n\n :hover {\n text-decoration: none;\n }\n`;\n\nconst PostCardPrimaryTag = styled.div`\n margin: 15px 0 0.2em;\n font-size: 1.2rem;\n font-weight: 500;\n color: ${lighten('0.1', colors.midgrey)};\n letter-spacing: 0.2px;\n\n a {\n font-size: 1.2rem;\n color: var(--anchor-secondary-color);\n }\n`;\n\nconst PostCardTitle = styled.h2`\n margin: 0 0 0.4em;\n line-height: 1.15em;\n color: var(--post-card-title);\n word-break: keep-all;\n`;\n\nconst PostCardExcerpt = styled.section`\n font-size: 1.6rem;\n color: var(--post-card-description);\n\n p {\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n width: 100%;\n margin-bottom: 0.4em;\n font-size: 1.4rem;\n text-overflow: ellipsis;\n word-break: keep-all;\n -webkit-line-clamp: 2;\n }\n`;\n\nconst PostCardMeta = styled.footer`\n display: flex;\n align-items: flex-start;\n padding: 0;\n`;\n\nconst PostCardBylineContent = styled.div`\n display: flex;\n flex: 1 1 50%;\n flex-direction: column;\n font-weight: 400;\n line-height: 1.4em;\n color: ${lighten('0.1', colors.midgrey)};\n letter-spacing: 0.2px;\n\n time {\n font-size: 1.3rem;\n }\n\n span {\n margin: 0;\n font-size: 1.3rem;\n }\n\n a {\n font-weight: 600;\n color: var(--post-card-by-line);\n }\n`;\n\nexport const AuthorProfileImage = css`\n display: block;\n width: 100%;\n height: 100%;\n object-fit: cover;\n background: var(--background-color);\n border-radius: 100%;\n\n img {\n border-radius: 100%;\n }\n`;\n"],"names":["PostCard","post","isLarge","isNext","date","Date","frontmatter","datetime","format","displayDatetime","imageData","image","imageSource","getImage","___EmotionJSX","className","css","PostCardStyles","PostCardLarge","Link","PostCardImageLink","to","fields","slug","PostCardImage","GatsbyImage","alt","title","style","height","loading","PostCardContent","tags","config","showAllTags","PostCardPrimaryTag","map","tag","idx","Fragment","key","_kebabCase","PostCardContentLink","PostCardTitle","PostCardExcerpt","excerpt","PostCardMeta","PostCardBylineContent","dateTime","readingTime","text","name","styles","_styled","target","colors","darkgrey","lighten","midgrey","AuthorProfileImage"],"sourceRoot":""} \ No newline at end of file diff --git a/161edb849f784c06ff2710753fb2ae881c988403-163021418b0c39f705f4.js b/161edb849f784c06ff2710753fb2ae881c988403-163021418b0c39f705f4.js new file mode 100644 index 000000000..d22f29922 --- /dev/null +++ b/161edb849f784c06ff2710753fb2ae881c988403-163021418b0c39f705f4.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkrecord_journey=self.webpackChunkrecord_journey||[]).push([[52],{860:function(e,t,n){n.r(t),n.d(t,{Head:function(){return O},NoImage:function(){return B},PostFull:function(){return X},default:function(){return R}});var o=n(758),a=n(5257),r=n(4388),i=n(8052),l=n(3595),s=n(1659),c=n(9778);function p(){const e=(0,o.createRef)(),{theme:t}=(0,o.useContext)(s.Z);return(0,o.useEffect)((()=>{var t;const n=document.createElement("script");n.src="https://giscus.app/client.js",n.async=!0,n.crossOrigin="anonymous",n.setAttribute("data-repo","pozafly/blog-comments"),n.setAttribute("data-repo-id","MDEwOlJlcG9zaXRvcnkyNjU3MTk2NDk="),n.setAttribute("data-category","Comments"),n.setAttribute("data-category-id","DIC_kwDOD9aPYc4CX-sv"),n.setAttribute("data-mapping","pathname"),n.setAttribute("data-strict","0"),n.setAttribute("data-reactions-enabled","1"),n.setAttribute("data-emit-metadata","0"),n.setAttribute("data-input-position","top"),n.setAttribute("data-theme","dark"===document.body.className?"dark":"light"),null===(t=e.current)||void 0===t||t.appendChild(n)}),[]),(0,o.useEffect)((()=>{var e;const n=document.querySelector("iframe.giscus-frame");null==n||null===(e=n.contentWindow)||void 0===e||e.postMessage({giscus:{setConfig:{theme:t}}},"https://giscus.app")}),[t]),(0,c.Y)("div",{ref:e})}var d=(0,o.memo)(p),m=n(8868),g=n(4421),u=n(8249),h=n(9625);function b({author:e}){const t=(0,r.c)(e.avatar);return(0,c.Y)(k,{className:"author-list-item"},(0,c.Y)(u.Link,{css:f,className:"author-avatar",to:"/about"},t&&(0,c.Y)(r.G,{image:t,css:h.M,className:"author-profile-image",alt:e.name})))}const k=(0,m.A)("li",{target:"e13xkhp00"})({name:"4q5div",styles:"position:relative;flex-shrink:0;margin:0;padding:0;:hover .author-name-tooltip{transform:translate(-10px, -2px);opacity:1;}"}),f={name:"aezf96",styles:"overflow:hidden;display:block;width:40px;height:40px;margin:0 -4px;border:2px solid var(--author-border);border-radius:100%;@media (max-width: 500px){width:36px;height:36px;}"};var x=n(7509),v=n(8252),y=n(5510);function w({tags:e,datetime:t,readingTime:n,author:a,excerpt:r,title:i}){return(0,c.Y)(v.XG,{className:"post-full-header"},(0,c.Y)(Y,{className:"post-full-tags"},e&&e.length>0&&y.A.showAllTags&&e.map(((e,t)=>(0,c.Y)(o.Fragment,{key:e},t>0&&(0,c.Y)(o.Fragment,null,",  "),(0,c.Y)(u.Link,{to:`/tags/${(0,g.A)(e)}/`},e)))),e&&e.length>0&&!y.A.showAllTags&&(0,c.Y)(u.Link,{to:`/tags/${(0,g.A)(e[0])}/`},e[0])),(0,c.Y)(v.MH,{className:"post-full-title"},i),(0,c.Y)(A,{className:"post-full-custom-excerpt"},r),(0,c.Y)(z,{className:"post-full-byline"},(0,c.Y)("section",{className:"post-full-byline-content"},(0,c.Y)(N,{className:"author-list"},(0,c.Y)(b,{key:a[0].name,author:a[0]})),(0,c.Y)("section",{className:"post-full-byline-meta"},(0,c.Y)("div",{className:"author-name"},a.map((e=>(0,c.Y)(u.Link,{key:e.name,to:"/about"},e.name)))),(0,c.Y)("div",{className:"byline-meta-content"},(0,c.Y)("time",{className:"byline-meta-date",dateTime:t},t),(0,c.Y)("span",{className:"byline-reading-time"},(0,c.Y)("span",{className:"bull"},"•"),n.text))))))}const Y=(0,m.A)("section",{target:"emmlh0d3"})("display:flex;align-items:center;justify-content:flex-start;font-size:1.2rem;font-weight:600;line-height:1.4em;color:",x.T.midgrey,";a{font-size:1.2rem;color:var(--anchor-secondary-color);}"),A=(0,m.A)("p",{target:"emmlh0d2"})({name:"d62skr",styles:"margin:20px 0 0;font-size:2rem;font-weight:300;line-height:1.4em;color:var(--post-card-description);@media (max-width: 500px){font-size:1.9rem;line-height:1.5em;}"}),z=(0,m.A)("div",{target:"emmlh0d1"})({name:"r2irbu",styles:"display:flex;justify-content:space-between;margin:35px 0 0;padding-top:15px;border-top:1px solid var(--post-full-border);.post-full-byline-content{display:flex;flex-grow:1;align-items:flex-start;}.post-full-byline-content .author-list{justify-content:flex-start;padding:0 12px 0 0;}.post-full-byline-meta{margin:2px 0 0;font-size:1.4rem;line-height:1.2em;color:#768086;letter-spacing:0.2px;}.post-full-byline-meta .author-name{margin:0 0 3px;font-size:1.4rem;font-weight:500;line-height:1.3em;}.post-full-byline-meta .author-name a{font-size:13px;color:var(--post-full-meta-link);}.post-full-byline-meta .author-name a:hover{color:var(--post-full-meta-link-hover);}.post-full-byline-meta .byline-reading-time,.post-full-byline-meta .byline-meta-date{font-size:13px;}.post-full-byline-meta .bull{display:inline-block;margin:0 4px;opacity:0.6;}"}),N=(0,m.A)("ul",{target:"emmlh0d0"})({name:"12fmpzj",styles:"display:flex;flex-wrap:wrap;margin:0 0 0 4px;padding:0;list-style:none"});function P({imageSource:e,title:t,imageMeta:n}){var a,i;const[l,s,p]=(null===(a=n.photoAuthor)||void 0===a?void 0:a.split(">>"))||[void 0,void 0,void 0],[d,m]=(null===(i=n.photoVender)||void 0===i?void 0:i.split(">>"))||[void 0,void 0];return(0,c.Y)(T,null,(0,c.Y)("div",{className:"image-wrapper"},(0,c.Y)(r.G,{image:e,style:{height:"100%"},alt:t})),s&&(0,c.Y)(M,null,(0,c.Y)(o.Fragment,null,p?"Background photo by ":"Photo by "),(0,c.Y)("a",{href:s,target:"_blank",rel:"noreferrer"},l),d&&(0,c.Y)(o.Fragment,null," ","on"," ",m?(0,c.Y)("a",{href:m,target:"_blank",rel:"noreferrer"},d):(0,c.Y)("span",null,d))))}const T=(0,m.A)("figure",{target:"e16cwxex1"})({name:"1y1xnji",styles:"width:80%;max-height:800px;margin:25px auto 100px;background-size:cover;.image-wrapper{overflow:hidden;width:100%;border:1px solid var(--image-border-color);border-radius:8px;img{border-radius:8px;}}@media (max-width: 1170px){.image-wrapper{img{max-width:1170px;}}}@media (max-width: 800px){width:100%;margin:25px auto 60px;}"}),M=(0,m.A)("figcaption",{target:"e16cwxex0"})({name:"2cqlea",styles:"max-width:728px;margin:10px auto;font-size:12px;text-align:center;a,span{font-size:12px;color:var(--anchor-secondary-color);}@media (max-width: 800px){font-size:11px;a,span{font-size:11px;}}"});var j=e=>(0,c.AH)("*:not(pre)>code[class*='language-']{border-radius:0.3em;background:var(--little-code-background);border:1px solid var(--little-code-border);color:var(--main-color);padding:0.15em 0.5em;white-space:normal;font-size:13px;@media (max-width: 800px){display:inline;}}.gatsby-highlight-code-line{display:block;margin-right:-1.3125rem;margin-left:-1.3125rem;padding-right:1em;padding-left:1.25em;background-color:var(--prism-background);border-left:0.25em solid var(--prism-border-left);font-size:1.4rem;}.gatsby-highlight{margin-bottom:1.75rem;margin-left:-1.3125rem;margin-right:-1.3125rem;border-radius:10px;background:var(--highlight-background);box-shadow:inset 0 0 0 1px var(--highlight-border);-webkit-overflow-scrolling:touch;overflow:auto;}.gatsby-highlight pre[class*='language-']{float:left;min-width:100%;font-size:1.4rem;line-height:24px;}pre[class*='language-'],code[class*='language-']{color:var(--pre-code-color);text-shadow:none;font-family:Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace;direction:ltr;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;line-height:1.8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;&::-webkit-scrollbar{background-color:transparent;height:4px;}&::-webkit-scrollbar-thumb{border-radius:8px;background-color:hsla(230, 5%, 35%, 1);}@media (max-width: 800px){display:inline-block;}}pre[class*='language-']{overflow:auto;}.token{font-size:1.4rem;}pre[data-line]{padding:1em 0 1em 3em;position:relative;}@media print{pre[class*='language-'],code[class*='language-']{text-shadow:none;}}pre[class*='language-']{padding:1em;overflow:auto;margin:0;}:not(pre)>code[class*='language-']{padding:0.1em 0.3em;border-radius:0.3em;color:#c9d1d9;background:#343942;}pre[data-line]{position:relative;}pre[class*='language-']>code[class*='language-']{position:relative;z-index:1;}.line-highlight{position:absolute;left:0;right:0;padding:inherit 0;margin-top:1em;background:#2f2a1e;box-shadow:inset 5px 0 0 #674c16;z-index:0;pointer-events:none;line-height:inherit;white-space:pre;}.namespace{opacity:0.7;}.token.comment,.token.prolog,.token.doctype,.token.cdata{color:#8b949e;}.token.punctuation{color:#c9d1d9;}.token.property,.token.tag,.token.boolean,.token.number,.token.constant,.token.symbol,.token.deleted{color:#79c0ff;}.token.selector,.token.attr-name,.token.string,.token.char,.token.builtin,.token.inserted{color:#a5d6ff;}.token.operator,.token.entity,.token.url,.language-css .token.string,.style .token.string{color:#a5d6ff;}.token.atrule,.token.attr-value,.token.keyword{color:#a5d6ff;}.token.function{color:#d2a8ff;}.token.regex,.token.important,.token.variable{color:#a8daff;}.token.important,.token.bold{font-weight:bold;}.token.italic{font-style:italic;}.token.entity{cursor:help;}","light"===e.mode?"\n .token.comment,\n .token.prolog,\n .token.cdata {\n color: hsl(230, 4%, 64%);\n }\n\n .token.doctype,\n .token.punctuation,\n .token.entity {\n color: hsl(230, 8%, 24%);\n }\n\n .token.attr-name,\n .token.class-name,\n .token.boolean,\n .token.constant,\n .token.number,\n .token.atrule {\n color: hsl(35, 99%, 36%);\n }\n\n .token.keyword {\n color: hsl(301, 63%, 40%);\n }\n\n .token.property,\n .token.tag,\n .token.symbol,\n .token.deleted,\n .token.important {\n color: hsl(5, 74%, 59%);\n }\n\n .token.selector,\n .token.string,\n .token.char,\n .token.builtin,\n .token.inserted,\n .token.regex,\n .token.attr-value,\n .token.attr-value > .token.punctuation {\n color: hsl(119, 34%, 47%);\n }\n\n .token.variable,\n .token.operator,\n .token.function {\n color: hsl(221, 87%, 60%);\n }\n\n .token.url {\n color: hsl(198, 99%, 37%);\n }\n\n .token.attr-value > .token.punctuation.attr-equals,\n .token.special-attr > .token.attr-value > .token.value.css {\n color: hsl(230, 8%, 24%);\n }\n\n .language-css .token.selector {\n color: hsl(5, 74%, 59%);\n }\n\n .language-css .token.property {\n color: hsl(230, 8%, 24%);\n }\n\n .language-css .token.function,\n .language-css .token.url > .token.function {\n color: hsl(198, 99%, 37%);\n }\n\n .language-css .token.url > .token.string.url {\n color: hsl(119, 34%, 47%);\n }\n\n .language-css .token.important,\n .language-css .token.atrule .token.rule {\n color: hsl(301, 63%, 40%);\n }\n\n .language-javascript .token.operator {\n color: hsl(301, 63%, 40%);\n }\n\n .language-javascript\n .token.template-string\n > .token.interpolation\n > .token.interpolation-punctuation.punctuation {\n color: hsl(344, 84%, 43%);\n }\n\n .language-json .token.operator {\n color: hsl(230, 8%, 24%);\n }\n\n .language-json .token.null.keyword {\n color: hsl(35, 99%, 36%);\n }\n\n .language-markdown .token.url,\n .language-markdown .token.url > .token.operator,\n .language-markdown .token.url-reference.url > .token.string {\n color: hsl(230, 8%, 24%);\n }\n\n .language-markdown .token.url > .token.content {\n color: hsl(221, 87%, 60%);\n }\n\n .language-markdown .token.url > .token.url,\n .language-markdown .token.url-reference.url {\n color: hsl(198, 99%, 37%);\n }\n\n .language-markdown .token.blockquote.punctuation,\n .language-markdown .token.hr.punctuation {\n color: hsl(230, 4%, 64%);\n }\n\n .language-markdown .token.code-snippet {\n color: hsl(119, 34%, 47%);\n }\n\n .language-markdown .token.bold .token.content {\n color: hsl(35, 99%, 36%);\n }\n\n .language-markdown .token.italic .token.content {\n color: hsl(301, 63%, 40%);\n }\n\n .language-markdown .token.strike .token.content,\n .language-markdown .token.strike .token.punctuation,\n .language-markdown .token.list.punctuation,\n .language-markdown .token.title.important > .token.punctuation {\n color: hsl(5, 74%, 59%);\n }\n\n .token.bold {\n font-weight: bold;\n }\n\n .token.entity {\n cursor: help;\n }\n\n .token.namespace {\n color: rgb(75 117 133);\n }\n\n .token.token.tab:not(:empty):before,\n .token.token.cr:before,\n .token.token.lf:before,\n .token.token.space:before {\n color: hsla(230, 8%, 24%, 0.2);\n }\n div.code-toolbar > .toolbar.toolbar > .toolbar-item > button,\n div.code-toolbar > .toolbar.toolbar > .toolbar-item > a,\n div.code-toolbar > .toolbar.toolbar > .toolbar-item > span {\n background: hsl(230, 1%, 90%);\n color: hsl(230, 6%, 44%);\n padding: 0.1em 0.4em;\n border-radius: 0.3em;\n }\n\n div.code-toolbar > .toolbar.toolbar > .toolbar-item > button:hover,\n div.code-toolbar > .toolbar.toolbar > .toolbar-item > button:focus,\n div.code-toolbar > .toolbar.toolbar > .toolbar-item > a:hover,\n div.code-toolbar > .toolbar.toolbar > .toolbar-item > a:focus,\n div.code-toolbar > .toolbar.toolbar > .toolbar-item > span:hover,\n div.code-toolbar > .toolbar.toolbar > .toolbar-item > span:focus {\n background: hsl(230, 1%, 78%);\n color: hsl(230, 8%, 24%);\n }\n\n .line-highlight.line-highlight {\n background: hsla(230, 8%, 24%, 0.05);\n }\n\n .line-highlight.line-highlight:before,\n .line-highlight.line-highlight[data-end]:after {\n background: hsl(230, 1%, 90%);\n color: hsl(230, 8%, 24%);\n padding: 0.1em 0.6em;\n border-radius: 0.3em;\n box-shadow: 0 2px 0 0 rgba(0, 0, 0, 0.2); /* same as Toolbar plugin default */\n }\n\n pre[id].linkable-line-numbers.linkable-line-numbers\n span.line-numbers-rows\n > span:hover:before {\n background-color: hsla(230, 8%, 24%, 0.05);\n }\n\n .line-numbers.line-numbers .line-numbers-rows,\n .command-line .command-line-prompt {\n border-right-color: hsla(230, 8%, 24%, 0.2);\n }\n\n .line-numbers .line-numbers-rows > span:before,\n .command-line .command-line-prompt > span:before {\n color: hsl(230, 1%, 62%);\n }\n\n .rainbow-braces .token.token.punctuation.brace-level-1,\n .rainbow-braces .token.token.punctuation.brace-level-5,\n .rainbow-braces .token.token.punctuation.brace-level-9 {\n color: hsl(5, 74%, 59%);\n }\n\n .rainbow-braces .token.token.punctuation.brace-level-2,\n .rainbow-braces .token.token.punctuation.brace-level-6,\n .rainbow-braces .token.token.punctuation.brace-level-10 {\n color: hsl(119, 34%, 47%);\n }\n\n .rainbow-braces .token.token.punctuation.brace-level-3,\n .rainbow-braces .token.token.punctuation.brace-level-7,\n .rainbow-braces .token.token.punctuation.brace-level-11 {\n color: hsl(221, 87%, 60%);\n }\n\n .rainbow-braces .token.token.punctuation.brace-level-4,\n .rainbow-braces .token.token.punctuation.brace-level-8,\n .rainbow-braces .token.token.punctuation.brace-level-12 {\n color: hsl(301, 63%, 40%);\n }\n\n pre.diff-highlight > code .token.token.deleted:not(.prefix),\n pre > code.diff-highlight .token.token.deleted:not(.prefix) {\n background-color: hsla(353, 100%, 66%, 0.15);\n }\n\n pre.diff-highlight > code .token.token.inserted:not(.prefix),\n pre > code.diff-highlight .token.token.inserted:not(.prefix) {\n background-color: hsla(137, 100%, 55%, 0.15);\n }\n\n .prism-previewer.prism-previewer:before,\n .prism-previewer-gradient.prism-previewer-gradient div {\n border-color: hsl(0, 0, 95%);\n }\n .prism-previewer.prism-previewer:after {\n border-top-color: hsl(0, 0, 95%);\n }\n\n .prism-previewer-flipped.prism-previewer-flipped.after {\n border-bottom-color: hsl(0, 0, 95%);\n }\n\n .prism-previewer-angle.prism-previewer-angle:before,\n .prism-previewer-time.prism-previewer-time:before,\n .prism-previewer-easing.prism-previewer-easing {\n background: hsl(0, 0%, 100%);\n }\n\n .prism-previewer-angle.prism-previewer-angle circle,\n .prism-previewer-time.prism-previewer-time circle {\n stroke: hsl(230, 8%, 24%);\n stroke-opacity: 1;\n }\n\n .prism-previewer-easing.prism-previewer-easing circle,\n .prism-previewer-easing.prism-previewer-easing path,\n .prism-previewer-easing.prism-previewer-easing line {\n stroke: hsl(230, 8%, 24%);\n }\n\n .prism-previewer-easing.prism-previewer-easing circle {\n fill: transparent;\n }\n ":"",";","");var C=function({html:e}){return(0,c.Y)(v.jS,{className:"post-full-content",css:j},(0,c.Y)("div",{className:"post-content",dangerouslySetInnerHTML:{__html:e}}))},S=n(7600);function $(e){const t=e.relatedPosts.edges.filter((t=>t.node.fields.slug!==e.currentPageSlug)).slice(0,3);return(0,c.Y)(_,{className:"read-next-card"},(0,c.Y)("header",{className:"read-next-card-header"},(0,c.Y)(D,null,(0,c.Y)("span",null,"More in")," ",(0,c.Y)(u.Link,{to:`/tags/${(0,g.A)(e.tags[0])}/`},e.tags[0]))),(0,c.Y)(L,{className:"read-next-card-content"},(0,c.Y)("ul",null,t.map((e=>{const t=new Date(e.node.frontmatter.date),n=(0,a.GP)(t,"yyyy-MM-dd"),o=(0,a.GP)(t,"yyyy-MM-dd");return(0,c.Y)("li",{key:e.node.frontmatter.title},(0,c.Y)("h4",null,(0,c.Y)(u.Link,{to:e.node.fields.slug},e.node.frontmatter.title)),(0,c.Y)(q,{className:"read-next-card-meta"},(0,c.Y)("p",null,(0,c.Y)("time",{dateTime:n},o)," -"," ",e.node.fields.readingTime.text)))})))),(0,c.Y)(F,{className:"read-next-card-footer"},(0,c.Y)(u.Link,{to:`/tags/${(0,g.A)(e.tags[0])}/`},e.relatedPosts.totalCount>1&&`See all ${e.relatedPosts.totalCount} posts`,1===e.relatedPosts.totalCount&&"1 post",0===e.relatedPosts.totalCount&&"No posts"," →")))}const _=(0,m.A)("article",{target:"ez817vd4"})("position:relative;overflow:hidden;display:flex;flex:0 1 326px;flex-direction:column;margin:0 25px 50px;padding:25px;background:linear-gradient(\n ",(0,S.a)("0.02",x.T.darkgrey),",\n ",(0,S.a)("-0.05",x.T.darkgrey),"\n );border-radius:12px;a{transition:all 0.2s ease-in-out;}a:hover{text-decoration:none;}@media (max-width: 1170px){flex:1 1 261px;margin-bottom:5vw;}@media (max-width: 650px){display:none;flex:1 1 auto;margin:0 25px;padding:0;background:none;}"),D=(0,m.A)("h3",{target:"ez817vd3"})({name:"18chcim",styles:"margin:0;font-size:1.3rem;font-weight:300;line-height:1em;color:rgb(255 255 255 / 0.6);letter-spacing:0.4px;span,a{font-size:inherit;}a{font-weight:500;color:#fff;text-decoration:none;opacity:0.8;}a:hover{opacity:1;}"}),L=(0,m.A)("div",{target:"ez817vd2"})({name:"1vix6iq",styles:"font-size:1.3rem;ul{display:flex;flex-direction:column;margin:0;padding:0;list-style:none;}li{display:flex;flex-direction:column;align-items:flex-start;margin:0;padding:20px 0;border-bottom:rgb(255 255 255 / 0.1);}li:last-of-type{padding-bottom:5px;border:none;}h4{margin:0;font-size:1.3rem;font-weight:600;line-height:1.6em;}li a{display:block;font-size:inherit;color:#fff;opacity:0.8;}li a:hover{opacity:1;}"}),q=(0,m.A)("div",{target:"ez817vd1"})({name:"1qhf9t",styles:"margin-top:2px;font-size:1.2rem;font-weight:400;line-height:1.4em;p{margin:0;font-size:inherit;color:rgb(255 255 255 / 0.6);time{font-size:inherit;}}"}),F=(0,m.A)("footer",{target:"ez817vd0"})("position:relative;margin:40px 0 5px;a{padding:7px 12px 8px 14px;font-size:1.3rem;color:rgb(255 255 255 / 0.6);border:1px solid rgb(255 255 255 / 0.6);border-radius:999px;transition:all 0.35s ease-in-out;}a:hover{color:",x.T.yellow,";text-decoration:none;border-color:",x.T.yellow,";}");function G({relatedPosts:e,currentPageSlug:t,tags:n,pageContext:o}){const a=e.totalCount>1;return(0,c.Y)(U,{className:"read-next",css:v.A7},(0,c.Y)("div",{css:v.vW},(0,c.Y)(E,{className:"read-next-feed"},a&&(0,c.Y)($,{currentPageSlug:t,tags:n,relatedPosts:e}),o.prev&&(0,c.Y)(h.A,{post:o.prev,isNext:!0}),o.next&&(0,c.Y)(h.A,{post:o.next,isNext:!0}))))}const U=(0,m.A)("aside",{target:"e7ky4j51"})("background:",(0,S.a)("-0.05",x.T.darkgrey),";.post-card{padding-bottom:0;border-bottom:none;}.post-card:after{display:none;}.post-card-primary-tag{color:#fff;opacity:0.6;}.post-card-title{color:#fff;word-break:keep-all;opacity:0.8;transition:all 0.2s ease-in-out;}.post-card:hover .post-card-image{opacity:1;}.post-card-excerpt{color:rgb(255 255 255 / 0.6);}.static-avatar{border-color:#000;}.post-card-byline-content{color:rgb(255 255 255 / 0.6);}.post-card-byline-content a{color:rgb(255 255 255 / 0.8);}.author-avatar{border-color:",(0,S.a)("-0.05",x.T.darkgrey),";}.author-profile-image{background:",(0,S.a)("-0.05",x.T.darkgrey),";}@media (max-width: 650px){.post-card{flex:1 1 auto;margin:25px;padding:25px 0 0;}}"),E=(0,m.A)("div",{target:"e7ky4j50"})({name:"2ud111",styles:"display:flex;flex-wrap:wrap;margin:0 -25px;padding:60px 0 0"});var H=n(5028),I=n(6075);const O=({data:e,location:t})=>{var n,a;const i=e.markdownRemark,l=i.frontmatter.image;let s,p;var d,m;l&&(s=null===(d=(0,r.c)(l))||void 0===d?void 0:d.width,p=null===(m=(0,r.c)(l))||void 0===m?void 0:m.height);const g=new Date(i.frontmatter.date).toISOString();return(0,c.Y)(o.Fragment,null,(0,c.Y)("title",null,i.frontmatter.title),(0,c.Y)("meta",{name:"description",content:i.frontmatter.excerpt||i.excerpt}),(0,c.Y)("meta",{property:"og:site_name",content:y.A.title}),(0,c.Y)("meta",{property:"og:type",content:"article"}),(0,c.Y)("meta",{property:"og:title",content:i.frontmatter.title}),(0,c.Y)("meta",{property:"og:description",content:i.frontmatter.excerpt||i.excerpt}),(0,c.Y)("meta",{property:"og:url",content:y.A.siteUrl+t.pathname}),l&&(0,c.Y)("meta",{property:"og:image",content:`${y.A.siteUrl}${(0,r.d)(l)}`}),(0,c.Y)("meta",{property:"article:published_time",content:g}),i.frontmatter.tags&&(0,c.Y)("meta",{property:"article:tag",content:i.frontmatter.tags[0]}),y.A.instagram&&(0,c.Y)("meta",{property:"article:publisher",content:y.A.instagram}),y.A.instagram&&(0,c.Y)("meta",{property:"article:author",content:y.A.instagram}),(0,c.Y)("meta",{name:"github:card",content:"summary_large_image"}),(0,c.Y)("meta",{name:"github:title",content:i.frontmatter.title}),(0,c.Y)("meta",{name:"github:description",content:i.frontmatter.excerpt||i.excerpt}),(0,c.Y)("meta",{name:"github:url",content:y.A.siteUrl+t.pathname}),l&&(0,c.Y)("meta",{name:"github:image",content:`${y.A.siteUrl}${(0,r.d)(l)}`}),(0,c.Y)("meta",{name:"github:label1",content:"Written by"}),(0,c.Y)("meta",{name:"github:data1",content:i.frontmatter.author[0].name}),(0,c.Y)("meta",{name:"github:label2",content:"Filed under"}),i.frontmatter.tags&&(0,c.Y)("meta",{name:"github:data2",content:i.frontmatter.tags[0]}),y.A.github&&(0,c.Y)("meta",{name:"github:site",content:`@${y.A.github.split("https://github.com/")[1]}`}),y.A.github&&(0,c.Y)("meta",{name:"github:creator",content:`@${y.A.github.split("https://github.com/")[1]}`}),s&&(0,c.Y)("meta",{property:"og:image:width",content:null===(n=s)||void 0===n?void 0:n.toString()}),p&&(0,c.Y)("meta",{property:"og:image:height",content:null===(a=p)||void 0===a?void 0:a.toString()}))};function R({data:e,pageContext:t,location:n}){const o=e.markdownRemark,s=o.frontmatter.image,p=(0,r.c)(s),m={photoAuthor:o.frontmatter.photoAuthor,photoVender:o.frontmatter.photoVender},g=new Date(o.frontmatter.date),u=(0,a.GP)(g,"yyyy-MM-dd");return(0,c.Y)(I.A,{className:"post-template"},(0,c.Y)(H.A,{css:V},(0,c.Y)(l.A,{isPost:!0,post:o.frontmatter}),(0,c.Y)("main",{id:"site-main",className:"site-main",css:[v.rg,v.A7,"",""]},(0,c.Y)("div",{css:v.vW},(0,c.Y)("article",{css:[X,!s&&B,"",""]},(0,c.Y)(w,{tags:o.frontmatter.tags,readingTime:o.fields.readingTime,datetime:u,author:o.frontmatter.author,excerpt:o.frontmatter.excerpt,title:o.frontmatter.title}),p&&(0,c.Y)(P,{imageSource:p,title:o.frontmatter.title,imageMeta:m}),(0,c.Y)(C,{html:o.html})),(0,c.Y)("div",{css:W},(0,c.Y)(d,null)))),(0,c.Y)(G,{currentPageSlug:n.pathname,tags:o.frontmatter.tags,relatedPosts:e.relatedPosts,pageContext:t}),(0,c.Y)(i.A,null)))}const W={name:"lhozv1",styles:"position:relative;box-sizing:border-box;width:100%;max-width:760px;margin-right:auto;margin-left:auto"},V={name:"vva9px",styles:".site-main{margin-top:64px;padding-bottom:4vw;background:var(--background-color);}"},X={name:"bjn8wh",styles:"position:relative"},B={name:"ftxusk",styles:".post-full-content{padding-top:0;padding-bottom:0;}.post-full-content:before,.post-full-content:after{display:none;}"}}}]); +//# sourceMappingURL=161edb849f784c06ff2710753fb2ae881c988403-163021418b0c39f705f4.js.map \ No newline at end of file diff --git a/161edb849f784c06ff2710753fb2ae881c988403-163021418b0c39f705f4.js.map b/161edb849f784c06ff2710753fb2ae881c988403-163021418b0c39f705f4.js.map new file mode 100644 index 000000000..6451f435b --- /dev/null +++ b/161edb849f784c06ff2710753fb2ae881c988403-163021418b0c39f705f4.js.map @@ -0,0 +1 @@ +{"version":3,"file":"161edb849f784c06ff2710753fb2ae881c988403-163021418b0c39f705f4.js","mappings":"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","sources":["webpack://record-journey/./src/components/post/Giscus.tsx","webpack://record-journey/./src/components/AuthorItem.tsx","webpack://record-journey/./src/components/post/PostHead.tsx","webpack://record-journey/./src/components/post/PostImage.tsx","webpack://record-journey/./src/styles/prism.ts","webpack://record-journey/./src/components/PostContent.tsx","webpack://record-journey/./src/components/ReadNextCard.tsx","webpack://record-journey/./src/components/ReadNext.tsx","webpack://record-journey/./src/templates/post.tsx"],"sourcesContent":["import { createRef, memo, useContext, useEffect } from 'react';\n\nimport { ThemeToggleContext } from '@/contexts/ThemeToggleContext.ts';\n\nconst src = 'https://giscus.app/client.js';\nconst repo = 'pozafly/blog-comments';\n\nfunction Giscus() {\n const containerRef = createRef();\n const { theme } = useContext(ThemeToggleContext);\n\n useEffect(() => {\n const scriptElement = document.createElement('script');\n\n scriptElement.src = src;\n scriptElement.async = true;\n scriptElement.crossOrigin = 'anonymous';\n scriptElement.setAttribute('data-repo', repo);\n scriptElement.setAttribute('data-repo-id', 'MDEwOlJlcG9zaXRvcnkyNjU3MTk2NDk=');\n scriptElement.setAttribute('data-category', 'Comments');\n scriptElement.setAttribute('data-category-id', 'DIC_kwDOD9aPYc4CX-sv');\n scriptElement.setAttribute('data-mapping', 'pathname');\n scriptElement.setAttribute('data-strict', '0');\n scriptElement.setAttribute('data-reactions-enabled', '1');\n scriptElement.setAttribute('data-emit-metadata', '0');\n scriptElement.setAttribute('data-input-position', 'top');\n scriptElement.setAttribute('data-theme', document.body.className === 'dark' ? 'dark' : 'light');\n\n containerRef.current?.appendChild(scriptElement);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n const iframe = document.querySelector('iframe.giscus-frame');\n iframe?.contentWindow?.postMessage({ giscus: { setConfig: { theme } } }, 'https://giscus.app');\n }, [theme]);\n\n return
;\n}\n\nexport default memo(Giscus);\n","import { Link } from 'gatsby';\nimport { css } from '@emotion/react';\nimport styled from '@emotion/styled';\nimport { GatsbyImage, getImage } from 'gatsby-plugin-image';\n\nimport { AuthorProfileImage } from '@/components/PostCard.tsx';\n\nimport type { Author } from '@/templates/post.tsx';\n\ntype AuthorItemProps = {\n author: Author;\n};\n\nexport default function AuthorItem({ author }: AuthorItemProps) {\n const imageSrc = getImage(author.avatar);\n\n return (\n \n \n {imageSrc && (\n \n )}\n \n \n );\n}\n\nconst AuthorItemLi = styled.li`\n position: relative;\n flex-shrink: 0;\n margin: 0;\n padding: 0;\n\n :hover .author-name-tooltip {\n transform: translate(-10px, -2px);\n opacity: 1;\n }\n`;\n\nconst AuthorAvatar = css`\n overflow: hidden;\n display: block;\n width: 40px;\n height: 40px;\n margin: 0 -4px;\n border: 2px solid var(--author-border);\n border-radius: 100%;\n\n @media (max-width: 500px) {\n width: 36px;\n height: 36px;\n }\n`;\n","import { Fragment } from 'react';\nimport { Link } from 'gatsby';\nimport styled from '@emotion/styled';\nimport { kebabCase } from 'lodash-es';\n\nimport AuthorItem from '@/components/AuthorItem.tsx';\nimport { colors } from '@/styles/colors.ts';\nimport { PostFullHeader, PostFullTitle } from '@/styles/shared.ts';\nimport config from '@/website-config.ts';\n\nimport type { Author } from '@/templates/post.tsx';\n\ntype Props = {\n tags: string[];\n excerpt: string;\n title: string;\n author: Author[];\n readingTime: {\n text: string;\n };\n datetime: string;\n};\n\nexport default function PostHead({ tags, datetime, readingTime, author, excerpt, title }: Props) {\n return (\n \n \n {tags &&\n tags.length > 0 &&\n config.showAllTags &&\n tags.map((tag, idx) => (\n \n {idx > 0 && ,  }\n {tag}\n \n ))}\n {tags && tags.length > 0 && !config.showAllTags && (\n {tags[0]}\n )}\n \n {title}\n {excerpt}\n \n
\n \n \n \n\n
\n
\n {author.map((author) => (\n \n {author.name}\n \n ))}\n
\n
\n \n \n \n {readingTime.text}\n \n
\n
\n
\n
\n
\n );\n}\n\nconst PostFullTags = styled.section`\n display: flex;\n align-items: center;\n justify-content: flex-start;\n font-size: 1.2rem;\n font-weight: 600;\n line-height: 1.4em;\n color: ${colors.midgrey};\n\n a {\n font-size: 1.2rem;\n color: var(--anchor-secondary-color);\n }\n`;\n\nconst PostFullCustomExcerpt = styled.p`\n margin: 20px 0 0;\n font-size: 2rem;\n font-weight: 300;\n line-height: 1.4em;\n color: var(--post-card-description);\n\n @media (max-width: 500px) {\n font-size: 1.9rem;\n line-height: 1.5em;\n }\n`;\n\nconst PostFullByline = styled.div`\n display: flex;\n justify-content: space-between;\n margin: 35px 0 0;\n padding-top: 15px;\n border-top: 1px solid var(--post-full-border);\n\n .post-full-byline-content {\n display: flex;\n flex-grow: 1;\n align-items: flex-start;\n }\n\n .post-full-byline-content .author-list {\n justify-content: flex-start;\n padding: 0 12px 0 0;\n }\n\n .post-full-byline-meta {\n margin: 2px 0 0;\n font-size: 1.4rem;\n line-height: 1.2em;\n color: #768086;\n letter-spacing: 0.2px;\n }\n\n .post-full-byline-meta .author-name {\n margin: 0 0 3px;\n font-size: 1.4rem;\n font-weight: 500;\n line-height: 1.3em;\n }\n\n .post-full-byline-meta .author-name a {\n font-size: 13px;\n color: var(--post-full-meta-link);\n }\n\n .post-full-byline-meta .author-name a:hover {\n color: var(--post-full-meta-link-hover);\n }\n\n .post-full-byline-meta .byline-reading-time,\n .post-full-byline-meta .byline-meta-date {\n font-size: 13px;\n }\n\n .post-full-byline-meta .bull {\n display: inline-block;\n margin: 0 4px;\n opacity: 0.6;\n }\n`;\n\nconst AuthorListUl = styled.ul`\n display: flex;\n flex-wrap: wrap;\n margin: 0 0 0 4px;\n padding: 0;\n list-style: none;\n`;\n","import { Fragment } from 'react';\nimport styled from '@emotion/styled';\nimport { GatsbyImage } from 'gatsby-plugin-image';\n\nimport type { IGatsbyImageData } from 'gatsby-plugin-image';\n\ntype Props = {\n imageSource: IGatsbyImageData;\n title: string;\n imageMeta: {\n photoAuthor?: string;\n photoVender?: string;\n };\n};\n\nexport default function PostImage({ imageSource, title, imageMeta }: Props) {\n const [photoAuthorName, photoAuthorLink, isBackground] = imageMeta.photoAuthor?.split('>>') || [\n undefined,\n undefined,\n undefined,\n ];\n const [photoVenderName, photoVenderLink] = imageMeta.photoVender?.split('>>') || [\n undefined,\n undefined,\n ];\n\n return (\n \n
\n \n
\n\n {photoAuthorLink && (\n \n {isBackground ? 'Background photo by ' : 'Photo by '}\n\n \n {photoAuthorName}\n \n\n {photoVenderName && (\n \n {' '}\n on{' '}\n {photoVenderLink ? (\n \n {photoVenderName}\n \n ) : (\n {photoVenderName}\n )}\n \n )}\n \n )}\n
\n );\n}\n\nconst PostFullImage = styled.figure`\n width: 80%;\n max-height: 800px;\n margin: 25px auto 100px;\n background-size: cover;\n\n .image-wrapper {\n overflow: hidden;\n width: 100%;\n border: 1px solid var(--image-border-color);\n border-radius: 8px;\n\n img {\n border-radius: 8px;\n }\n }\n\n @media (max-width: 1170px) {\n .image-wrapper {\n img {\n max-width: 1170px;\n }\n }\n }\n\n @media (max-width: 800px) {\n width: 100%;\n margin: 25px auto 60px;\n }\n`;\n\nconst PhotoAuthorSection = styled.figcaption`\n max-width: 728px;\n margin: 10px auto;\n font-size: 12px;\n text-align: center;\n\n a,\n span {\n font-size: 12px;\n color: var(--anchor-secondary-color);\n }\n\n @media (max-width: 800px) {\n font-size: 11px;\n\n a,\n span {\n font-size: 11px;\n }\n }\n`;\n","import { css } from '@emotion/react';\n\nimport type { Theme } from '@emotion/react';\n\nexport default (theme: Theme) => css`\n *:not(pre) > code[class*='language-'] {\n border-radius: 0.3em;\n background: var(--little-code-background);\n border: 1px solid var(--little-code-border);\n color: var(--main-color);\n padding: 0.15em 0.5em;\n white-space: normal;\n font-size: 13px;\n\n @media (max-width: 800px) {\n display: inline;\n }\n }\n\n .gatsby-highlight-code-line {\n display: block;\n margin-right: -1.3125rem;\n margin-left: -1.3125rem;\n padding-right: 1em;\n padding-left: 1.25em;\n background-color: var(--prism-background);\n border-left: 0.25em solid var(--prism-border-left);\n font-size: 1.4rem;\n }\n\n .gatsby-highlight {\n margin-bottom: 1.75rem;\n margin-left: -1.3125rem;\n margin-right: -1.3125rem;\n border-radius: 10px;\n background: var(--highlight-background);\n box-shadow: inset 0 0 0 1px var(--highlight-border);\n -webkit-overflow-scrolling: touch;\n overflow: auto;\n }\n\n .gatsby-highlight pre[class*='language-'] {\n float: left;\n min-width: 100%;\n font-size: 1.4rem;\n line-height: 24px;\n }\n\n pre[class*='language-'],\n code[class*='language-'] {\n color: var(--pre-code-color);\n text-shadow: none;\n font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;\n direction: ltr;\n text-align: left;\n white-space: pre;\n word-spacing: normal;\n word-break: normal;\n line-height: 1.8;\n -moz-tab-size: 4;\n -o-tab-size: 4;\n tab-size: 4;\n -webkit-hyphens: none;\n -moz-hyphens: none;\n -ms-hyphens: none;\n hyphens: none;\n\n &::-webkit-scrollbar {\n background-color: transparent;\n height: 4px;\n }\n\n &::-webkit-scrollbar-thumb {\n border-radius: 8px;\n background-color: hsla(230, 5%, 35%, 1);\n }\n\n @media (max-width: 800px) {\n display: inline-block;\n }\n }\n\n pre[class*='language-'] {\n overflow: auto;\n }\n\n .token {\n font-size: 1.4rem;\n }\n\n pre[data-line] {\n padding: 1em 0 1em 3em;\n position: relative;\n }\n\n @media print {\n pre[class*='language-'],\n code[class*='language-'] {\n text-shadow: none;\n }\n }\n\n pre[class*='language-'] {\n padding: 1em;\n overflow: auto;\n margin: 0;\n }\n\n :not(pre) > code[class*='language-'] {\n padding: 0.1em 0.3em;\n border-radius: 0.3em;\n color: #c9d1d9;\n background: #343942;\n }\n /* Line highlighting */\n\n pre[data-line] {\n position: relative;\n }\n\n pre[class*='language-'] > code[class*='language-'] {\n position: relative;\n z-index: 1;\n }\n\n .line-highlight {\n position: absolute;\n left: 0;\n right: 0;\n padding: inherit 0;\n margin-top: 1em;\n background: #2f2a1e;\n box-shadow: inset 5px 0 0 #674c16;\n z-index: 0;\n pointer-events: none;\n line-height: inherit;\n white-space: pre;\n }\n\n .namespace {\n opacity: 0.7;\n }\n\n .token.comment,\n .token.prolog,\n .token.doctype,\n .token.cdata {\n color: #8b949e;\n }\n\n .token.punctuation {\n color: #c9d1d9;\n }\n\n .token.property,\n .token.tag,\n .token.boolean,\n .token.number,\n .token.constant,\n .token.symbol,\n .token.deleted {\n color: #79c0ff;\n }\n\n .token.selector,\n .token.attr-name,\n .token.string,\n .token.char,\n .token.builtin,\n .token.inserted {\n color: #a5d6ff;\n }\n\n .token.operator,\n .token.entity,\n .token.url,\n .language-css .token.string,\n .style .token.string {\n color: #a5d6ff;\n }\n\n .token.atrule,\n .token.attr-value,\n .token.keyword {\n color: #a5d6ff;\n }\n\n .token.function {\n color: #d2a8ff;\n }\n\n .token.regex,\n .token.important,\n .token.variable {\n color: #a8daff;\n }\n\n .token.important,\n .token.bold {\n font-weight: bold;\n }\n\n .token.italic {\n font-style: italic;\n }\n\n .token.entity {\n cursor: help;\n }\n\n ${theme.mode === 'light'\n ? `\n .token.comment,\n .token.prolog,\n .token.cdata {\n color: hsl(230, 4%, 64%);\n }\n\n .token.doctype,\n .token.punctuation,\n .token.entity {\n color: hsl(230, 8%, 24%);\n }\n\n .token.attr-name,\n .token.class-name,\n .token.boolean,\n .token.constant,\n .token.number,\n .token.atrule {\n color: hsl(35, 99%, 36%);\n }\n\n .token.keyword {\n color: hsl(301, 63%, 40%);\n }\n\n .token.property,\n .token.tag,\n .token.symbol,\n .token.deleted,\n .token.important {\n color: hsl(5, 74%, 59%);\n }\n\n .token.selector,\n .token.string,\n .token.char,\n .token.builtin,\n .token.inserted,\n .token.regex,\n .token.attr-value,\n .token.attr-value > .token.punctuation {\n color: hsl(119, 34%, 47%);\n }\n\n .token.variable,\n .token.operator,\n .token.function {\n color: hsl(221, 87%, 60%);\n }\n\n .token.url {\n color: hsl(198, 99%, 37%);\n }\n\n .token.attr-value > .token.punctuation.attr-equals,\n .token.special-attr > .token.attr-value > .token.value.css {\n color: hsl(230, 8%, 24%);\n }\n\n .language-css .token.selector {\n color: hsl(5, 74%, 59%);\n }\n\n .language-css .token.property {\n color: hsl(230, 8%, 24%);\n }\n\n .language-css .token.function,\n .language-css .token.url > .token.function {\n color: hsl(198, 99%, 37%);\n }\n\n .language-css .token.url > .token.string.url {\n color: hsl(119, 34%, 47%);\n }\n\n .language-css .token.important,\n .language-css .token.atrule .token.rule {\n color: hsl(301, 63%, 40%);\n }\n\n .language-javascript .token.operator {\n color: hsl(301, 63%, 40%);\n }\n\n .language-javascript\n .token.template-string\n > .token.interpolation\n > .token.interpolation-punctuation.punctuation {\n color: hsl(344, 84%, 43%);\n }\n\n .language-json .token.operator {\n color: hsl(230, 8%, 24%);\n }\n\n .language-json .token.null.keyword {\n color: hsl(35, 99%, 36%);\n }\n\n .language-markdown .token.url,\n .language-markdown .token.url > .token.operator,\n .language-markdown .token.url-reference.url > .token.string {\n color: hsl(230, 8%, 24%);\n }\n\n .language-markdown .token.url > .token.content {\n color: hsl(221, 87%, 60%);\n }\n\n .language-markdown .token.url > .token.url,\n .language-markdown .token.url-reference.url {\n color: hsl(198, 99%, 37%);\n }\n\n .language-markdown .token.blockquote.punctuation,\n .language-markdown .token.hr.punctuation {\n color: hsl(230, 4%, 64%);\n }\n\n .language-markdown .token.code-snippet {\n color: hsl(119, 34%, 47%);\n }\n\n .language-markdown .token.bold .token.content {\n color: hsl(35, 99%, 36%);\n }\n\n .language-markdown .token.italic .token.content {\n color: hsl(301, 63%, 40%);\n }\n\n .language-markdown .token.strike .token.content,\n .language-markdown .token.strike .token.punctuation,\n .language-markdown .token.list.punctuation,\n .language-markdown .token.title.important > .token.punctuation {\n color: hsl(5, 74%, 59%);\n }\n\n .token.bold {\n font-weight: bold;\n }\n\n .token.entity {\n cursor: help;\n }\n\n .token.namespace {\n color: rgb(75 117 133);\n }\n\n .token.token.tab:not(:empty):before,\n .token.token.cr:before,\n .token.token.lf:before,\n .token.token.space:before {\n color: hsla(230, 8%, 24%, 0.2);\n }\n div.code-toolbar > .toolbar.toolbar > .toolbar-item > button,\n div.code-toolbar > .toolbar.toolbar > .toolbar-item > a,\n div.code-toolbar > .toolbar.toolbar > .toolbar-item > span {\n background: hsl(230, 1%, 90%);\n color: hsl(230, 6%, 44%);\n padding: 0.1em 0.4em;\n border-radius: 0.3em;\n }\n\n div.code-toolbar > .toolbar.toolbar > .toolbar-item > button:hover,\n div.code-toolbar > .toolbar.toolbar > .toolbar-item > button:focus,\n div.code-toolbar > .toolbar.toolbar > .toolbar-item > a:hover,\n div.code-toolbar > .toolbar.toolbar > .toolbar-item > a:focus,\n div.code-toolbar > .toolbar.toolbar > .toolbar-item > span:hover,\n div.code-toolbar > .toolbar.toolbar > .toolbar-item > span:focus {\n background: hsl(230, 1%, 78%);\n color: hsl(230, 8%, 24%);\n }\n\n .line-highlight.line-highlight {\n background: hsla(230, 8%, 24%, 0.05);\n }\n\n .line-highlight.line-highlight:before,\n .line-highlight.line-highlight[data-end]:after {\n background: hsl(230, 1%, 90%);\n color: hsl(230, 8%, 24%);\n padding: 0.1em 0.6em;\n border-radius: 0.3em;\n box-shadow: 0 2px 0 0 rgba(0, 0, 0, 0.2); /* same as Toolbar plugin default */\n }\n\n pre[id].linkable-line-numbers.linkable-line-numbers\n span.line-numbers-rows\n > span:hover:before {\n background-color: hsla(230, 8%, 24%, 0.05);\n }\n\n .line-numbers.line-numbers .line-numbers-rows,\n .command-line .command-line-prompt {\n border-right-color: hsla(230, 8%, 24%, 0.2);\n }\n\n .line-numbers .line-numbers-rows > span:before,\n .command-line .command-line-prompt > span:before {\n color: hsl(230, 1%, 62%);\n }\n\n .rainbow-braces .token.token.punctuation.brace-level-1,\n .rainbow-braces .token.token.punctuation.brace-level-5,\n .rainbow-braces .token.token.punctuation.brace-level-9 {\n color: hsl(5, 74%, 59%);\n }\n\n .rainbow-braces .token.token.punctuation.brace-level-2,\n .rainbow-braces .token.token.punctuation.brace-level-6,\n .rainbow-braces .token.token.punctuation.brace-level-10 {\n color: hsl(119, 34%, 47%);\n }\n\n .rainbow-braces .token.token.punctuation.brace-level-3,\n .rainbow-braces .token.token.punctuation.brace-level-7,\n .rainbow-braces .token.token.punctuation.brace-level-11 {\n color: hsl(221, 87%, 60%);\n }\n\n .rainbow-braces .token.token.punctuation.brace-level-4,\n .rainbow-braces .token.token.punctuation.brace-level-8,\n .rainbow-braces .token.token.punctuation.brace-level-12 {\n color: hsl(301, 63%, 40%);\n }\n\n pre.diff-highlight > code .token.token.deleted:not(.prefix),\n pre > code.diff-highlight .token.token.deleted:not(.prefix) {\n background-color: hsla(353, 100%, 66%, 0.15);\n }\n\n pre.diff-highlight > code .token.token.inserted:not(.prefix),\n pre > code.diff-highlight .token.token.inserted:not(.prefix) {\n background-color: hsla(137, 100%, 55%, 0.15);\n }\n\n .prism-previewer.prism-previewer:before,\n .prism-previewer-gradient.prism-previewer-gradient div {\n border-color: hsl(0, 0, 95%);\n }\n .prism-previewer.prism-previewer:after {\n border-top-color: hsl(0, 0, 95%);\n }\n\n .prism-previewer-flipped.prism-previewer-flipped.after {\n border-bottom-color: hsl(0, 0, 95%);\n }\n\n .prism-previewer-angle.prism-previewer-angle:before,\n .prism-previewer-time.prism-previewer-time:before,\n .prism-previewer-easing.prism-previewer-easing {\n background: hsl(0, 0%, 100%);\n }\n\n .prism-previewer-angle.prism-previewer-angle circle,\n .prism-previewer-time.prism-previewer-time circle {\n stroke: hsl(230, 8%, 24%);\n stroke-opacity: 1;\n }\n\n .prism-previewer-easing.prism-previewer-easing circle,\n .prism-previewer-easing.prism-previewer-easing path,\n .prism-previewer-easing.prism-previewer-easing line {\n stroke: hsl(230, 8%, 24%);\n }\n\n .prism-previewer-easing.prism-previewer-easing circle {\n fill: transparent;\n }\n `\n : ``}\n`;\n","import prism from '@/styles/prism.ts';\nimport { PostFullContent } from '@/styles/shared.ts';\n\nfunction PostContent({ html }: { html: string }) {\n return (\n \n
\n \n );\n}\n\nexport default PostContent;\n","import { Link } from 'gatsby';\nimport styled from '@emotion/styled';\nimport { format } from 'date-fns';\nimport { kebabCase } from 'lodash-es';\nimport { lighten } from 'polished';\n\nimport { colors } from '@/styles/colors.ts';\n\nexport type ReadNextProps = {\n tags: string[];\n currentPageSlug: string;\n relatedPosts: {\n totalCount: number;\n edges: Array<{\n node: {\n frontmatter: {\n title: string;\n date: string;\n };\n fields: {\n readingTime: {\n text: string;\n };\n slug: string;\n };\n };\n }>;\n };\n};\n\nexport default function ReadNextCard(props: ReadNextProps) {\n // filter out current post and limit to 3 related posts\n const relatedPosts = props.relatedPosts.edges\n .filter((post) => post.node.fields.slug !== props.currentPageSlug)\n .slice(0, 3);\n\n return (\n \n
\n \n More in{' '}\n {props.tags[0]}\n \n
\n \n
    \n {relatedPosts.map((n) => {\n const date = new Date(n.node.frontmatter.date);\n const datetime = format(date, 'yyyy-MM-dd');\n const displayDatetime = format(date, 'yyyy-MM-dd');\n\n return (\n
  • \n

    \n {n.node.frontmatter.title}\n

    \n \n

    \n -{' '}\n {n.node.fields.readingTime.text}\n

    \n
    \n
  • \n );\n })}\n
\n
\n \n \n {props.relatedPosts.totalCount > 1 && `See all ${props.relatedPosts.totalCount} posts`}\n {props.relatedPosts.totalCount === 1 && '1 post'}\n {props.relatedPosts.totalCount === 0 && 'No posts'} →\n \n \n
\n );\n}\n\nconst ReadNextCardArticle = styled.article`\n position: relative;\n overflow: hidden;\n display: flex;\n flex: 0 1 326px;\n flex-direction: column;\n margin: 0 25px 50px;\n padding: 25px;\n background: linear-gradient(\n ${lighten('0.02', colors.darkgrey)},\n ${lighten('-0.05', colors.darkgrey)}\n );\n border-radius: 12px;\n\n a {\n transition: all 0.2s ease-in-out;\n }\n\n a:hover {\n text-decoration: none;\n }\n\n @media (max-width: 1170px) {\n flex: 1 1 261px;\n margin-bottom: 5vw;\n }\n\n @media (max-width: 650px) {\n display: none;\n flex: 1 1 auto;\n margin: 0 25px;\n padding: 0;\n background: none;\n }\n`;\n\nconst ReadNextCardHeaderTitle = styled.h3`\n margin: 0;\n font-size: 1.3rem;\n font-weight: 300;\n line-height: 1em;\n color: rgb(255 255 255 / 0.6);\n letter-spacing: 0.4px;\n\n span,\n a {\n font-size: inherit;\n }\n\n a {\n font-weight: 500;\n color: #fff;\n text-decoration: none;\n opacity: 0.8;\n }\n\n a:hover {\n opacity: 1;\n }\n`;\n\nconst ReadNextCardContent = styled.div`\n font-size: 1.3rem;\n\n ul {\n display: flex;\n flex-direction: column;\n margin: 0;\n padding: 0;\n list-style: none;\n }\n\n li {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n margin: 0;\n padding: 20px 0;\n border-bottom: rgb(255 255 255 / 0.1);\n }\n\n li:last-of-type {\n padding-bottom: 5px;\n border: none;\n }\n\n h4 {\n margin: 0;\n font-size: 1.3rem;\n font-weight: 600;\n line-height: 1.6em;\n }\n\n li a {\n display: block;\n font-size: inherit;\n color: #fff;\n opacity: 0.8;\n }\n\n li a:hover {\n opacity: 1;\n }\n`;\n\nconst ReadNextCardMeta = styled.div`\n margin-top: 2px;\n font-size: 1.2rem;\n font-weight: 400;\n line-height: 1.4em;\n\n p {\n margin: 0;\n font-size: inherit;\n color: rgb(255 255 255 / 0.6);\n\n time {\n font-size: inherit;\n }\n }\n`;\n\nconst ReadNextCardFooter = styled.footer`\n position: relative;\n margin: 40px 0 5px;\n\n a {\n padding: 7px 12px 8px 14px;\n font-size: 1.3rem;\n color: rgb(255 255 255 / 0.6);\n border: 1px solid rgb(255 255 255 / 0.6);\n border-radius: 999px;\n transition: all 0.35s ease-in-out;\n }\n\n a:hover {\n color: ${colors.yellow};\n text-decoration: none;\n border-color: ${colors.yellow};\n }\n`;\n","import styled from '@emotion/styled';\nimport { lighten } from 'polished';\n\nimport PostCard from '@/components/PostCard.tsx';\nimport ReadNextCard from '@/components/ReadNextCard.tsx';\nimport { colors } from '@/styles/colors.ts';\nimport { inner, outer } from '@/styles/shared.ts';\n\nimport type { PageContext } from '@/templates/post.tsx';\n\ntype ReadNextProps = {\n tags: string[];\n currentPageSlug: string;\n relatedPosts: {\n totalCount: number;\n edges: Array<{\n node: {\n frontmatter: {\n date: string;\n title: string;\n };\n fields: {\n slug: string;\n readingTime: {\n text: string;\n };\n };\n };\n }>;\n };\n pageContext: {\n prev: PageContext;\n next: PageContext;\n };\n};\n\nexport default function ReadNext({\n relatedPosts,\n currentPageSlug,\n tags,\n pageContext,\n}: ReadNextProps) {\n const showRelatedPosts = relatedPosts.totalCount > 1;\n\n return (\n \n
\n \n {showRelatedPosts && (\n \n )}\n\n {pageContext.prev && }\n {pageContext.next && }\n \n
\n
\n );\n}\n\nconst ReadNextAside = styled.aside`\n background: ${lighten('-0.05', colors.darkgrey)};\n\n .post-card {\n padding-bottom: 0;\n border-bottom: none;\n }\n\n .post-card:after {\n display: none;\n }\n\n .post-card-primary-tag {\n color: #fff;\n opacity: 0.6;\n }\n\n .post-card-title {\n color: #fff;\n word-break: keep-all;\n opacity: 0.8;\n transition: all 0.2s ease-in-out;\n }\n\n .post-card:hover .post-card-image {\n opacity: 1;\n }\n\n .post-card-excerpt {\n color: rgb(255 255 255 / 0.6);\n }\n\n .static-avatar {\n border-color: #000;\n }\n\n .post-card-byline-content {\n color: rgb(255 255 255 / 0.6);\n }\n\n .post-card-byline-content a {\n color: rgb(255 255 255 / 0.8);\n }\n\n .author-avatar {\n border-color: ${lighten('-0.05', colors.darkgrey)};\n }\n\n .author-profile-image {\n background: ${lighten('-0.05', colors.darkgrey)};\n }\n\n @media (max-width: 650px) {\n .post-card {\n flex: 1 1 auto;\n margin: 25px;\n padding: 25px 0 0;\n }\n }\n`;\n\nconst ReadNextFeed = styled.div`\n display: flex;\n flex-wrap: wrap;\n margin: 0 -25px;\n padding: 60px 0 0;\n`;\n","import { Fragment } from 'react';\nimport { graphql } from 'gatsby';\nimport { css } from '@emotion/react';\nimport { format } from 'date-fns';\nimport { getImage, getSrc } from 'gatsby-plugin-image';\n\nimport Footer from '@/components/Footer.tsx';\nimport SiteNav from '@/components/header/SiteNav.tsx';\nimport Giscus from '@/components/post/Giscus.tsx';\nimport PostHead from '@/components/post/PostHead.tsx';\nimport PostImage from '@/components/post/PostImage.tsx';\nimport PostContent from '@/components/PostContent.tsx';\nimport ReadNext from '@/components/ReadNext.tsx';\nimport Wrapper from '@/components/Wrapper.tsx';\nimport IndexLayout from '@/layouts/index.tsx';\nimport { inner, outer, SiteMain } from '@/styles/shared.ts';\nimport config from '@/website-config.ts';\n\nimport type { ImageDataLike } from 'gatsby-plugin-image';\n\nexport type Author = {\n name: string;\n bio: string;\n avatar: ImageDataLike;\n};\n\ntype PageTemplateProps = {\n location: Location;\n data: {\n markdownRemark: {\n html: string;\n htmlAst: unknown;\n excerpt: string;\n frontmatter: {\n title: string;\n date: string;\n userDate: string;\n image: ImageDataLike;\n excerpt: string;\n tags: string[];\n author: Author[];\n photoAuthor: string;\n photoVender: string;\n };\n fields: {\n readingTime: {\n text: string;\n };\n };\n };\n relatedPosts: {\n totalCount: number;\n edges: Array<{\n node: {\n frontmatter: {\n title: string;\n date: string;\n };\n fields: {\n readingTime: {\n text: string;\n };\n slug: string;\n };\n };\n }>;\n };\n };\n pageContext: {\n prev: PageContext;\n next: PageContext;\n };\n};\n\nexport type PageContext = {\n excerpt: string;\n fields: {\n slug: string;\n readingTime: {\n text: string;\n };\n };\n frontmatter: {\n image: ImageDataLike;\n excerpt: string;\n title: string;\n date: string;\n draft?: boolean;\n tags: string[];\n author: Author[];\n };\n};\n\nexport const Head = ({ data, location }: PageTemplateProps) => {\n const post = data.markdownRemark;\n const imageData = post.frontmatter.image;\n let width: number | undefined;\n let height: number | undefined;\n if (imageData) {\n width = getImage(imageData)?.width;\n height = getImage(imageData)?.height;\n }\n\n const date = new Date(post.frontmatter.date);\n const publishedTime = date.toISOString();\n\n return (\n \n {post.frontmatter.title}\n\n \n \n \n \n \n \n {imageData && }\n \n {/* not sure if modified time possible */}\n {/* */}\n {post.frontmatter.tags && }\n\n {config.instagram && }\n {config.instagram && }\n \n \n \n \n {imageData && }\n \n \n \n {post.frontmatter.tags && }\n {config.github && (\n \n )}\n {config.github && (\n \n )}\n {width && }\n {height && }\n \n );\n};\n\nexport default function PageTemplate({ data, pageContext, location }: PageTemplateProps) {\n const post = data.markdownRemark;\n const imageData = post.frontmatter.image;\n const imageSource = getImage(imageData);\n const imageMeta = {\n photoAuthor: post.frontmatter.photoAuthor,\n photoVender: post.frontmatter.photoVender,\n };\n const date = new Date(post.frontmatter.date);\n const datetime = format(date, 'yyyy-MM-dd');\n\n return (\n \n \n \n
\n
\n {/* TODO: no-image css tag? */}\n
\n \n\n {imageSource && (\n \n )}\n\n \n
\n
\n \n
\n
\n
\n \n