-
Notifications
You must be signed in to change notification settings - Fork 0
/
component---src-app-templates-post-template-post-layout-ui-tsx-content-file-path-posts-2019-07-21-blog-migration-2-md-a91cc6c3bb48d4d5b136.js.map
1 lines (1 loc) · 43.9 KB
/
component---src-app-templates-post-template-post-layout-ui-tsx-content-file-path-posts-2019-07-21-blog-migration-2-md-a91cc6c3bb48d4d5b136.js.map
1
{"version":3,"file":"component---src-app-templates-post-template-post-layout-ui-tsx-content-file-path-posts-2019-07-21-blog-migration-2-md-a91cc6c3bb48d4d5b136.js","mappings":"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","sources":["webpack://kyoungah-dev-blog/./posts/2019-07-21-blog-migration-2.md","webpack://kyoungah-dev-blog/./src/app/templates/post-template/post-layout.ui.tsx","webpack://kyoungah-dev-blog/./src/app/templates/post-template/components/post-layout-content/post-layout.content.module.css","webpack://kyoungah-dev-blog/./src/app/templates/post-template/components/post-layout-content/post-layout-content.ui.tsx","webpack://kyoungah-dev-blog/./src/app/templates/post-template/components/post-layout-date/post-layout-date.module.css","webpack://kyoungah-dev-blog/./src/app/templates/post-template/components/post-layout-date/post-layout-date.tsx","webpack://kyoungah-dev-blog/./src/app/templates/post-template/components/post-layout-tags/post-layout.module.css","webpack://kyoungah-dev-blog/./src/app/templates/post-template/components/post-layout-tags/post-layout-tags.ui.tsx","webpack://kyoungah-dev-blog/./src/app/templates/post-template/components/post-layout-title/post-layout-title.module.css","webpack://kyoungah-dev-blog/./src/app/templates/post-template/components/post-layout-title/post-layout-title.ui.tsx","webpack://kyoungah-dev-blog/./src/entities/tags/index.ts","webpack://kyoungah-dev-blog/./src/entities/tags/tags.ui.tsx","webpack://kyoungah-dev-blog/./src/entities/tags/tags.module.css","webpack://kyoungah-dev-blog/./src/shared/uis/tag/tag.ui.tsx","webpack://kyoungah-dev-blog/./src/shared/uis/tag/tag.module.css","webpack://kyoungah-dev-blog/./src/shared/uis/container/container.module.css","webpack://kyoungah-dev-blog/./src/shared/uis/container/container.ui.tsx","webpack://kyoungah-dev-blog/./src/widgets/basic-layout/basic-layout.module.css","webpack://kyoungah-dev-blog/./src/widgets/basic-layout/basic-layout.ui.tsx","webpack://kyoungah-dev-blog/./src/widgets/header/header.module.css","webpack://kyoungah-dev-blog/./src/widgets/header/header.ui.tsx","webpack://kyoungah-dev-blog/./src/widgets/footer/footer.module.css","webpack://kyoungah-dev-blog/./src/widgets/footer/footer.ui.tsx","webpack://kyoungah-dev-blog/./src/widgets/default-layout/default-layout.ui.tsx","webpack://kyoungah-dev-blog/./src/app/templates/post-template/post-layout.module.css","webpack://kyoungah-dev-blog/./node_modules/@mdx-js/react/lib/index.js","webpack://kyoungah-dev-blog/./node_modules/clsx/dist/clsx.mjs"],"sourcesContent":["/*@jsxRuntime classic @jsx React.createElement @jsxFrag React.Fragment*/\nimport {useMDXComponents as _provideComponents} from \"@mdx-js/react\";\nimport React from \"react\";\nfunction _createMdxContent(props) {\n const _components = Object.assign({\n p: \"p\",\n a: \"a\",\n h2: \"h2\",\n h3: \"h3\",\n span: \"span\",\n ol: \"ol\",\n li: \"li\"\n }, _provideComponents(), props.components);\n return React.createElement(React.Fragment, null, React.createElement(_components.p, null, React.createElement(_components.a, {\n href: \"/etc/blog-migration/\"\n }, \"Hexo에서 Gatsby로 블로그 마이그레이션 작업\"), \"을 계속 이어 하면서 과정을 한번 더 정리 하였다. 직접 이것 저것 원하는대로 다 커스터마이징 하려다 보니 끝이 없는 것 같다 ㅠ.\"), \"\\n\", React.createElement(_components.h2, null, \"disqus\"), \"\\n\", React.createElement(_components.p, null, \"댓글은 disqus를 사용했다. \", React.createElement(_components.a, {\n href: \"https://github.com/utterance/utterances\"\n }, \"utterances\"), \"도 고려해봤는데 github 아이디가 있어아만 댓글을 쓸 수 있다는 점이 단점으로 느껴져서 그냥 disqus를 계속 사용하기로 했다.\"), \"\\n\", React.createElement(_components.p, null, \"Gatsby에서 disqus를 사용하려면 gatsby-plugin-disqus 플러그인을 설치하면 된다.\"), \"\\n\", React.createElement(_components.h3, null, \"Install\"), \"\\n\", React.createElement(_components.span, {\n dangerouslySetInnerHTML: {\n __html: \"<div class=\\\"gatsby-highlight\\\" data-language=\\\"bash\\\"><pre class=\\\"language-bash\\\"><code class=\\\"language-bash\\\"><span class=\\\"token function\\\">yarn</span> <span class=\\\"token function\\\">add</span> gatsby-plugin-disqus</code></pre></div>\"\n }\n }), \"\\n\", React.createElement(_components.h3, null, \"gatsby-config.js\"), \"\\n\", React.createElement(_components.p, null, \"plugins에 gatsby-plugin-disqus를 추가해주자.\"), \"\\n\", React.createElement(_components.span, {\n dangerouslySetInnerHTML: {\n __html: \"<div class=\\\"gatsby-highlight\\\" data-language=\\\"javascript\\\"><pre class=\\\"language-javascript\\\"><code class=\\\"language-javascript\\\">module<span class=\\\"token punctuation\\\">.</span>exports <span class=\\\"token operator\\\">=</span> <span class=\\\"token punctuation\\\">{</span>\\n <span class=\\\"token comment\\\">// 생략...</span>\\n <span class=\\\"token literal-property property\\\">plugins</span><span class=\\\"token operator\\\">:</span> <span class=\\\"token punctuation\\\">[</span>\\n <span class=\\\"token comment\\\">// 생략...</span>\\n <span class=\\\"token punctuation\\\">{</span>\\n <span class=\\\"token literal-property property\\\">resolve</span><span class=\\\"token operator\\\">:</span> <span class=\\\"token template-string\\\"><span class=\\\"token template-punctuation string\\\">`</span><span class=\\\"token string\\\">gatsby-plugin-disqus</span><span class=\\\"token template-punctuation string\\\">`</span></span><span class=\\\"token punctuation\\\">,</span>\\n <span class=\\\"token literal-property property\\\">options</span><span class=\\\"token operator\\\">:</span> <span class=\\\"token punctuation\\\">{</span>\\n <span class=\\\"token literal-property property\\\">shortname</span><span class=\\\"token operator\\\">:</span> <span class=\\\"token template-string\\\"><span class=\\\"token template-punctuation string\\\">`</span><span class=\\\"token string\\\">kyoungah</span><span class=\\\"token template-punctuation string\\\">`</span></span><span class=\\\"token punctuation\\\">,</span>\\n <span class=\\\"token punctuation\\\">}</span><span class=\\\"token punctuation\\\">,</span>\\n <span class=\\\"token punctuation\\\">}</span><span class=\\\"token punctuation\\\">,</span>\\n <span class=\\\"token punctuation\\\">]</span><span class=\\\"token punctuation\\\">,</span>\\n<span class=\\\"token punctuation\\\">}</span><span class=\\\"token punctuation\\\">;</span></code></pre></div>\"\n }\n }), \"\\n\", React.createElement(_components.h3, null, \"blogTemplate.tsx\"), \"\\n\", React.createElement(_components.p, null, \"포스트에 관련된 정보를 blogTemplate 컴포넌트에서 호출하고 있기 때문에 여기에 댓글 컴포넌트를 삽입하기로 했다. query문 호출 부분에 id를 호출 할 수 있도록 추가해주었고 gatsby-plugin-disqus의 Disqus 컴포넌트를 사용하여 아주 쉽게 댓글 영역을 추가해주었다.\"), \"\\n\", React.createElement(_components.span, {\n dangerouslySetInnerHTML: {\n __html: \"<div class=\\\"gatsby-highlight\\\" data-language=\\\"javascript\\\"><pre class=\\\"language-javascript\\\"><code class=\\\"language-javascript\\\"><span class=\\\"token keyword\\\">import</span> React <span class=\\\"token keyword\\\">from</span> <span class=\\\"token string\\\">\\\"react\\\"</span><span class=\\\"token punctuation\\\">;</span>\\n<span class=\\\"token keyword\\\">import</span> <span class=\\\"token punctuation\\\">{</span> graphql <span class=\\\"token punctuation\\\">}</span> <span class=\\\"token keyword\\\">from</span> <span class=\\\"token string\\\">\\\"gatsby\\\"</span><span class=\\\"token punctuation\\\">;</span>\\n<span class=\\\"token keyword\\\">import</span> styled<span class=\\\"token punctuation\\\">,</span> <span class=\\\"token punctuation\\\">{</span> theme <span class=\\\"token punctuation\\\">}</span> <span class=\\\"token keyword\\\">from</span> <span class=\\\"token string\\\">\\\"../styledComponents\\\"</span><span class=\\\"token punctuation\\\">;</span>\\n<span class=\\\"token keyword\\\">import</span> <span class=\\\"token punctuation\\\">{</span> Disqus <span class=\\\"token punctuation\\\">}</span> <span class=\\\"token keyword\\\">from</span> <span class=\\\"token string\\\">\\\"gatsby-plugin-disqus\\\"</span><span class=\\\"token punctuation\\\">;</span>\\n\\n<span class=\\\"token keyword\\\">export</span> <span class=\\\"token keyword\\\">default</span> <span class=\\\"token keyword\\\">function</span> <span class=\\\"token function\\\">Template</span><span class=\\\"token punctuation\\\">(</span><span class=\\\"token punctuation\\\">{</span>\\n data<span class=\\\"token punctuation\\\">,</span> <span class=\\\"token comment\\\">// this prop will be injected by the GraphQL query below.</span>\\n<span class=\\\"token punctuation\\\">}</span><span class=\\\"token operator\\\">:</span> any<span class=\\\"token punctuation\\\">)</span> <span class=\\\"token punctuation\\\">{</span>\\n <span class=\\\"token keyword\\\">const</span> <span class=\\\"token punctuation\\\">{</span> markdownRemark <span class=\\\"token punctuation\\\">}</span> <span class=\\\"token operator\\\">=</span> data<span class=\\\"token punctuation\\\">;</span> <span class=\\\"token comment\\\">// data.markdownRemark holds our post data</span>\\n <span class=\\\"token keyword\\\">const</span> <span class=\\\"token punctuation\\\">{</span> frontmatter<span class=\\\"token punctuation\\\">,</span> html<span class=\\\"token punctuation\\\">,</span> id <span class=\\\"token punctuation\\\">}</span> <span class=\\\"token operator\\\">=</span> markdownRemark<span class=\\\"token punctuation\\\">;</span>\\n <span class=\\\"token keyword\\\">const</span> disqusConfig <span class=\\\"token operator\\\">=</span> <span class=\\\"token punctuation\\\">{</span>\\n <span class=\\\"token literal-property property\\\">url</span><span class=\\\"token operator\\\">:</span> <span class=\\\"token template-string\\\"><span class=\\\"token template-punctuation string\\\">`</span><span class=\\\"token interpolation\\\"><span class=\\\"token interpolation-punctuation punctuation\\\">${</span><span class=\\\"token string\\\">\\\"https://dev.kyoungah.com\\\"</span> <span class=\\\"token operator\\\">+</span> frontmatter<span class=\\\"token punctuation\\\">.</span>path<span class=\\\"token interpolation-punctuation punctuation\\\">}</span></span><span class=\\\"token template-punctuation string\\\">`</span></span><span class=\\\"token punctuation\\\">,</span>\\n <span class=\\\"token literal-property property\\\">identifier</span><span class=\\\"token operator\\\">:</span> id<span class=\\\"token punctuation\\\">,</span>\\n <span class=\\\"token literal-property property\\\">title</span><span class=\\\"token operator\\\">:</span> frontmatter<span class=\\\"token punctuation\\\">.</span>title<span class=\\\"token punctuation\\\">,</span>\\n <span class=\\\"token punctuation\\\">}</span><span class=\\\"token punctuation\\\">;</span>\\n\\n <span class=\\\"token keyword\\\">return</span> <span class=\\\"token punctuation\\\">(</span>\\n <span class=\\\"token operator\\\"><</span><span class=\\\"token operator\\\">></span>\\n <span class=\\\"token punctuation\\\">{</span><span class=\\\"token comment\\\">/** 포스트 컨텐츠 **/</span><span class=\\\"token punctuation\\\">}</span>\\n <span class=\\\"token operator\\\"><</span>Disqus config<span class=\\\"token operator\\\">=</span><span class=\\\"token punctuation\\\">{</span>disqusConfig<span class=\\\"token punctuation\\\">}</span> <span class=\\\"token operator\\\">/</span><span class=\\\"token operator\\\">></span>\\n <span class=\\\"token operator\\\"><</span><span class=\\\"token operator\\\">/</span><span class=\\\"token operator\\\">></span>\\n <span class=\\\"token punctuation\\\">)</span><span class=\\\"token punctuation\\\">;</span>\\n<span class=\\\"token punctuation\\\">}</span>\\n\\n<span class=\\\"token comment\\\">// grapthql을 이용하여 markdown에서 데이터를 가지고 온다.</span>\\n<span class=\\\"token keyword\\\">export</span> <span class=\\\"token keyword\\\">const</span> pageQuery <span class=\\\"token operator\\\">=</span> graphql<span class=\\\"token template-string\\\"><span class=\\\"token template-punctuation string\\\">`</span><span class=\\\"token string\\\">\\n query ($path: String!) {\\n markdownRemark(frontmatter: { path: { eq: $path } }) {\\n id\\n html\\n frontmatter {\\n date(formatString: \\\"YYYY년 MM월 DD일\\\")\\n description\\n path\\n title\\n }\\n }\\n }\\n</span><span class=\\\"token template-punctuation string\\\">`</span></span><span class=\\\"token punctuation\\\">;</span></code></pre></div>\"\n }\n }), \"\\n\", React.createElement(_components.h2, null, \"KaTeX\"), \"\\n\", React.createElement(_components.p, null, \"이전 블로그에서 수학 수식을 표현해주는 mathjax 라는 js 라이브러리를 사용하고 있었기 때문에 gatsby-remark-mathjax 라는 플러그인을 사용하려고 했으나 설정을 했음에도 불구하고 mathjax가 제대로 실행이 되질 않았다. 계속 방법을 찾아보다가 \", React.createElement(_components.a, {\n href: \"https://katex.org/docs/supported.html\"\n }, \"KaTeX\"), \"라는걸 알게되었는데 mathjax 처럼 역시 수학 수식을 표현해주는 js 라이브러리 였다. 혹시나 하는 마음에 적용해보았는데 다행히 mathjax와 문법(?)이 같애서 수학 수식이 원하는대로 출력되었다.\\ngatsby-remark-katex 플러그인을 사용하려면 gatsby-transformer-remark가 같이 필요한데 나처럼 markdown 작업 등을 미리 해놨으면 이미 설치가 되어 있을 것이다. 없으면 같이 설치해주면 된다.\"), \"\\n\", React.createElement(_components.h3, null, \"Install\"), \"\\n\", React.createElement(_components.span, {\n dangerouslySetInnerHTML: {\n __html: \"<div class=\\\"gatsby-highlight\\\" data-language=\\\"bash\\\"><pre class=\\\"language-bash\\\"><code class=\\\"language-bash\\\"><span class=\\\"token function\\\">yarn</span> <span class=\\\"token function\\\">add</span> gatsby-remark-katex katex</code></pre></div>\"\n }\n }), \"\\n\", React.createElement(_components.h3, null, \"gatsby-config.js\"), \"\\n\", React.createElement(_components.span, {\n dangerouslySetInnerHTML: {\n __html: \"<div class=\\\"gatsby-highlight\\\" data-language=\\\"javascript\\\"><pre class=\\\"language-javascript\\\"><code class=\\\"language-javascript\\\">module<span class=\\\"token punctuation\\\">.</span>exports <span class=\\\"token operator\\\">=</span> <span class=\\\"token punctuation\\\">{</span>\\n <span class=\\\"token comment\\\">// 생략...</span>\\n <span class=\\\"token literal-property property\\\">plugins</span><span class=\\\"token operator\\\">:</span> <span class=\\\"token punctuation\\\">[</span>\\n <span class=\\\"token comment\\\">// 생략...</span>\\n <span class=\\\"token punctuation\\\">{</span>\\n <span class=\\\"token literal-property property\\\">resolve</span><span class=\\\"token operator\\\">:</span> <span class=\\\"token template-string\\\"><span class=\\\"token template-punctuation string\\\">`</span><span class=\\\"token string\\\">gatsby-transformer-remark</span><span class=\\\"token template-punctuation string\\\">`</span></span><span class=\\\"token punctuation\\\">,</span>\\n <span class=\\\"token literal-property property\\\">options</span><span class=\\\"token operator\\\">:</span> <span class=\\\"token punctuation\\\">{</span>\\n <span class=\\\"token literal-property property\\\">plugins</span><span class=\\\"token operator\\\">:</span> <span class=\\\"token punctuation\\\">[</span>\\n <span class=\\\"token comment\\\">// 생략 ...</span>\\n <span class=\\\"token punctuation\\\">{</span>\\n <span class=\\\"token literal-property property\\\">resolve</span><span class=\\\"token operator\\\">:</span> <span class=\\\"token template-string\\\"><span class=\\\"token template-punctuation string\\\">`</span><span class=\\\"token string\\\">gatsby-remark-katex</span><span class=\\\"token template-punctuation string\\\">`</span></span><span class=\\\"token punctuation\\\">,</span>\\n <span class=\\\"token literal-property property\\\">options</span><span class=\\\"token operator\\\">:</span> <span class=\\\"token punctuation\\\">{</span>\\n <span class=\\\"token comment\\\">// Add any KaTeX options from https://github.com/KaTeX/KaTeX/blob/master/docs/options.md here</span>\\n <span class=\\\"token literal-property property\\\">strict</span><span class=\\\"token operator\\\">:</span> <span class=\\\"token template-string\\\"><span class=\\\"token template-punctuation string\\\">`</span><span class=\\\"token string\\\">ignore</span><span class=\\\"token template-punctuation string\\\">`</span></span><span class=\\\"token punctuation\\\">,</span>\\n <span class=\\\"token punctuation\\\">}</span><span class=\\\"token punctuation\\\">,</span>\\n <span class=\\\"token punctuation\\\">}</span><span class=\\\"token punctuation\\\">,</span>\\n <span class=\\\"token punctuation\\\">]</span><span class=\\\"token punctuation\\\">,</span>\\n <span class=\\\"token punctuation\\\">}</span><span class=\\\"token punctuation\\\">,</span>\\n <span class=\\\"token punctuation\\\">}</span><span class=\\\"token punctuation\\\">,</span>\\n <span class=\\\"token comment\\\">// 생략...</span>\\n <span class=\\\"token punctuation\\\">]</span><span class=\\\"token punctuation\\\">,</span>\\n<span class=\\\"token punctuation\\\">}</span><span class=\\\"token punctuation\\\">;</span></code></pre></div>\"\n }\n }), \"\\n\", React.createElement(_components.h2, null, \"Google Analytics\"), \"\\n\", React.createElement(_components.p, null, \"구글 애널리틱스 설정은 gatsby-plugin-google-analytics 플러그인을 사용하였다.\"), \"\\n\", React.createElement(_components.span, {\n dangerouslySetInnerHTML: {\n __html: \"<div class=\\\"gatsby-highlight\\\" data-language=\\\"bash\\\"><pre class=\\\"language-bash\\\"><code class=\\\"language-bash\\\"><span class=\\\"token function\\\">yarn</span> <span class=\\\"token function\\\">add</span> gatsby-plugin-google-analytics</code></pre></div>\"\n }\n }), \"\\n\", React.createElement(_components.span, {\n dangerouslySetInnerHTML: {\n __html: \"<div class=\\\"gatsby-highlight\\\" data-language=\\\"javascript\\\"><pre class=\\\"language-javascript\\\"><code class=\\\"language-javascript\\\">module<span class=\\\"token punctuation\\\">.</span>exports <span class=\\\"token operator\\\">=</span> <span class=\\\"token punctuation\\\">{</span>\\n <span class=\\\"token comment\\\">// 생략 ...</span>\\n <span class=\\\"token literal-property property\\\">plugins</span><span class=\\\"token operator\\\">:</span> <span class=\\\"token punctuation\\\">[</span>\\n <span class=\\\"token comment\\\">// 생략...</span>\\n <span class=\\\"token punctuation\\\">{</span>\\n <span class=\\\"token literal-property property\\\">resolve</span><span class=\\\"token operator\\\">:</span> <span class=\\\"token template-string\\\"><span class=\\\"token template-punctuation string\\\">`</span><span class=\\\"token string\\\">gatsby-plugin-google-analytics</span><span class=\\\"token template-punctuation string\\\">`</span></span><span class=\\\"token punctuation\\\">,</span>\\n <span class=\\\"token literal-property property\\\">options</span><span class=\\\"token operator\\\">:</span> <span class=\\\"token punctuation\\\">{</span>\\n <span class=\\\"token literal-property property\\\">trackingId</span><span class=\\\"token operator\\\">:</span> <span class=\\\"token string\\\">\\\"UA-80236732-4\\\"</span><span class=\\\"token punctuation\\\">,</span>\\n <span class=\\\"token punctuation\\\">}</span><span class=\\\"token punctuation\\\">,</span>\\n <span class=\\\"token punctuation\\\">}</span><span class=\\\"token punctuation\\\">,</span>\\n <span class=\\\"token punctuation\\\">]</span><span class=\\\"token punctuation\\\">,</span>\\n<span class=\\\"token punctuation\\\">}</span><span class=\\\"token punctuation\\\">;</span></code></pre></div>\"\n }\n }), \"\\n\", React.createElement(_components.h2, null, \"RSS\"), \"\\n\", React.createElement(_components.p, null, \"부끄럽지만 솔직히 말하자면 RSS 기능을 적극적으로 사용해본적이 없어서 생각지도 않고 있었는데 회사 슬랙에서 RSS 봇으로 기술 블로그들의 글을 공유하는걸 보고서 아 나도 추가해야겠구나 싶었다. \", React.createElement(_components.a, {\n href: \"https://www.gatsbyjs.org/packages/gatsby-plugin-feed/\"\n }, \"gatsby-plugin-feed\"), \"을 사용하면 RSS 기능을 쉽게 추가할 수 있다.\"), \"\\n\", React.createElement(_components.h3, null, \"Install\"), \"\\n\", React.createElement(_components.span, {\n dangerouslySetInnerHTML: {\n __html: \"<div class=\\\"gatsby-highlight\\\" data-language=\\\"markdown\\\"><pre class=\\\"language-markdown\\\"><code class=\\\"language-markdown\\\">yarn add gatsby-plugin-feed</code></pre></div>\"\n }\n }), \"\\n\", React.createElement(_components.h3, null, \"gatsby-config.js\"), \"\\n\", React.createElement(_components.p, null, \"여러가지 옵션들을 추가할 수 있으나 뭐가 뭔지 잘 몰라서 일단 기본으로만 설정해두었다. 추후에 필요한 부분이 있으면 옵션을 추가하여 커스터마이징 할 생각이다.\"), \"\\n\", React.createElement(_components.span, {\n dangerouslySetInnerHTML: {\n __html: \"<div class=\\\"gatsby-highlight\\\" data-language=\\\"javascript\\\"><pre class=\\\"language-javascript\\\"><code class=\\\"language-javascript\\\">module<span class=\\\"token punctuation\\\">.</span>exports <span class=\\\"token operator\\\">=</span> <span class=\\\"token punctuation\\\">{</span>\\n <span class=\\\"token comment\\\">// 생략 ...</span>\\n <span class=\\\"token literal-property property\\\">plugins</span><span class=\\\"token operator\\\">:</span> <span class=\\\"token punctuation\\\">[</span>\\n <span class=\\\"token comment\\\">// 생략...</span>\\n <span class=\\\"token template-string\\\"><span class=\\\"token template-punctuation string\\\">`</span><span class=\\\"token string\\\">gatsby-plugin-feed</span><span class=\\\"token template-punctuation string\\\">`</span></span><span class=\\\"token punctuation\\\">,</span>\\n <span class=\\\"token punctuation\\\">]</span><span class=\\\"token punctuation\\\">,</span>\\n<span class=\\\"token punctuation\\\">}</span><span class=\\\"token punctuation\\\">;</span></code></pre></div>\"\n }\n }), \"\\n\", React.createElement(_components.h2, null, \"남은 작업\"), \"\\n\", React.createElement(_components.ol, null, \"\\n\", React.createElement(_components.li, null, \"블로그 리스트 pagination 작업\"), \"\\n\", React.createElement(_components.li, null, \"블로그 포스트 pagination 작업\"), \"\\n\", React.createElement(_components.li, null, \"태그 페이지 작업\"), \"\\n\", React.createElement(_components.li, null, \"카테고리 작업\"), \"\\n\"), \"\\n\", React.createElement(_components.h2, null, \"마무리\"), \"\\n\", React.createElement(_components.p, null, \"블로그 마이그레이션 작업을 꽤 진행했는데도 아직 굵직굵직한 작업들이 남았다. 그리고 컴포넌트 구조나 css도 맘에 안들어서 정리도 하고 싶다. 그럼에도 불구하고 내가 원하는 입맛대로 블로그를 만들 수 있으니 블로그 마이그레이션 작업이 너무 재밌다. Gatsby로 블로그 마이그레이션 작업을 시작한게 잘 한 일이라는 생각이 든다. 포기하지말고 꾸준히 마이그레이션 작업을 하여 멋진 블로그를 만들고 싶다.\"));\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = Object.assign({}, _provideComponents(), props.components);\n return MDXLayout ? React.createElement(MDXLayout, props, React.createElement(_createMdxContent, props)) : _createMdxContent(props);\n}\nexport default MDXContent;\n","import React from \"react\";\nimport GATSBY_COMPILED_MDX from \"/Users/yookyoung.park/Workspace/kyoungah-dev-blog/posts/2019-07-21-blog-migration-2.md\";\nimport {MDXProvider} from '@mdx-js/react';\nimport {Container} from '@/shared/uis/container';\nimport {DefaultLayout} from '@/widgets/default-layout';\nimport {PostLayoutContent} from './components/post-layout-content';\nimport {PostLayoutDate} from './components/post-layout-date';\nimport {PostLayoutTags} from './components/post-layout-tags';\nimport {PostLayoutTitle} from './components/post-layout-title';\nimport {postLayoutContainer, postLayoutTitle} from './post-layout.module.css';\nimport {jsx as _jsx} from \"react/jsx-runtime\";\nimport {jsxs as _jsxs} from \"react/jsx-runtime\";\nfunction PostLayout(_ref) {\n var _data$mdx$frontmatter, _data$mdx;\n let {data, children} = _ref;\n const {date, tags, title} = (_data$mdx$frontmatter = data === null || data === void 0 ? void 0 : (_data$mdx = data.mdx) === null || _data$mdx === void 0 ? void 0 : _data$mdx.frontmatter) !== null && _data$mdx$frontmatter !== void 0 ? _data$mdx$frontmatter : {};\n return _jsx(DefaultLayout, {\n children: _jsxs(Container, {\n className: postLayoutContainer,\n children: [_jsx(PostLayoutTitle, {\n className: postLayoutTitle,\n title: title\n }), _jsx(PostLayoutDate, {\n date: date\n }), _jsx(PostLayoutTags, {\n tags: tags\n }), _jsx(PostLayoutContent, {\n children: _jsx(MDXProvider, {\n children: children\n })\n })]\n })\n });\n}\nconst query = \"1347208223\";\nPostLayout\nexport default function GatsbyMDXWrapper(props) {\n return React.createElement(PostLayout, props, React.createElement(GATSBY_COMPILED_MDX, props));\n}\n","// extracted by mini-css-extract-plugin\nexport var postLayoutContentRoot = \"post-layout-content-module--post-layout-content-root--01754\";","import { clsx } from \"clsx\";\nimport { type HTMLAttributes, type PropsWithChildren } from \"react\";\n\nimport { postLayoutContentRoot } from \"./post-layout.content.module.css\";\n\ntype Props = PropsWithChildren & HTMLAttributes<HTMLDivElement>;\n\nfunction PostLayoutContent({ children, className, ...props }: Props) {\n return (\n <div className={clsx(postLayoutContentRoot, className)} {...props}>\n {children}\n </div>\n );\n}\n\nexport { PostLayoutContent };\n","// extracted by mini-css-extract-plugin\nexport var postLayoutDateRoot = \"post-layout-date-module--post-layout-date-root--f34d1\";","import { clsx } from \"clsx\";\nimport { type HTMLAttributes } from \"react\";\n\nimport { postLayoutDateRoot } from \"./post-layout-date.module.css\";\n\ntype Props = { date: string } & HTMLAttributes<HTMLHeadingElement>;\n\nfunction PostLayoutDate({ className, date, ...props }: Props) {\n return (\n <span className={clsx(postLayoutDateRoot, className)} {...props}>\n {date}\n </span>\n );\n}\n\nexport { PostLayoutDate };\n","// extracted by mini-css-extract-plugin\nexport var postLayoutTags = \"post-layout-module--post-layout-tags--837df\";","import { Tags } from \"@/entities/tags\";\nimport { Link } from \"gatsby\";\n\nimport { postLayoutTags } from \"./post-layout.module.css\";\n\ntype Props = { tags: string[] };\n\nfunction PostLayoutTags({ tags }: Props) {\n return (\n <Tags className={postLayoutTags}>\n {tags.map((tag) => (\n <Link key={tag} to={`/tags/${tag}`}>\n <Tags.Tag tag={tag} />\n </Link>\n ))}\n </Tags>\n );\n}\n\nexport { PostLayoutTags };\n","// extracted by mini-css-extract-plugin\nexport var postLayoutTitleRoot = \"post-layout-title-module--post-layout-title-root--88374\";","import { clsx } from \"clsx\";\nimport { postLayoutTitleRoot } from \"./post-layout-title.module.css\";\nimport { HTMLAttributes } from \"react\";\n\ntype Props = { title: string } & HTMLAttributes<HTMLHeadingElement>;\n\nfunction PostLayoutTitle({ className, title, ...props }: Props) {\n return (\n <h1 className={clsx(postLayoutTitleRoot, className)} {...props}>\n {title}\n </h1>\n );\n}\n\nexport { PostLayoutTitle };\n","import { Tag } from '@/shared/uis/tag';\nimport { Tags } from './tags.ui';\n\nconst ComposedTags = Object.assign(Tags, {\n Tag,\n});\n\nexport { ComposedTags as Tags };\n","import { PropsWithChildren, type HTMLAttributes } from 'react';\nimport { clsx } from 'clsx';\n\nimport { tagsRoot } from './tags.module.css';\n\ntype Props = PropsWithChildren & HTMLAttributes<HTMLDivElement>;\n\nfunction Tags({ children, className, ...props }: Props) {\n return (\n <div className={clsx(tagsRoot, className)} {...props}>\n {children}\n </div>\n );\n}\n\nexport { Tags };\n","// extracted by mini-css-extract-plugin\nexport var show = \"tags-module--show--7704b\";\nexport var tagsRoot = \"tags-module--tags-root--e3461\";","import { clsx } from 'clsx';\n\nimport type { HTMLAttributes, ReactNode } from 'react';\n\nimport { tagRoot } from './tag.module.css';\n\ntype Props = {\n tag: ReactNode;\n} & HTMLAttributes<HTMLSpanElement>;\n\nfunction Tag({ className, tag, ...props }: Props) {\n return (\n <span className={clsx(tagRoot, className)} {...props}>\n {tag}\n </span>\n );\n}\n\nexport type { Props as TagProps };\nexport { Tag };\n","// extracted by mini-css-extract-plugin\nexport var tagRoot = \"tag-module--tag-root--aae01\";","// extracted by mini-css-extract-plugin\nexport var containerRoot = \"container-module--container-root--3b208\";","import { clsx } from 'clsx';\nimport type { PropsWithChildren, HTMLAttributes } from 'react';\n\nimport { containerRoot } from './container.module.css';\n\ntype Props = PropsWithChildren & HTMLAttributes<HTMLSpanElement>;\n\nfunction Container({ children, className, ...props }: Props) {\n return (\n <div className={clsx(containerRoot, className)} {...props}>\n {children}\n </div>\n );\n}\n\nexport { Container };\n","// extracted by mini-css-extract-plugin\nexport var basicLayoutRoot = \"basic-layout-module--basic-layout-root--a11e0\";","import { clsx } from 'clsx';\nimport { type HTMLAttributes, type PropsWithChildren } from 'react';\n\nimport { basicLayoutRoot } from './basic-layout.module.css';\n\ntype Props = PropsWithChildren & HTMLAttributes<HTMLDivElement>;\n\nfunction BasicLayout({ children, className, ...props }: Props) {\n return (\n <div className={clsx(basicLayoutRoot, className)} {...props}>\n {children}\n </div>\n );\n}\n\nexport { BasicLayout };\n","// extracted by mini-css-extract-plugin\nexport var about = \"header-module--about--32ac9\";\nexport var headerLogo = \"header-module--header-logo--5bbdc\";\nexport var headerNavigation = \"header-module--header-navigation--24bcb\";\nexport var headerNavigationItem = \"header-module--header-navigation-item--ba248\";\nexport var headerNavigationItemLink = \"header-module--header-navigation-item-link--d6da9\";\nexport var headerNavigationList = \"header-module--header-navigation-list--3815c\";\nexport var headerRoot = \"header-module--header-root--01ceb\";\nexport var tags = \"header-module--tags--eb332\";","import { Link } from 'gatsby';\nimport { clsx } from 'clsx';\n\nimport {\n about,\n headerRoot,\n headerLogo,\n headerNavigation,\n headerNavigationList,\n headerNavigationItem,\n headerNavigationItemLink,\n tags,\n} from './header.module.css';\n\nfunction Header() {\n return (\n <header className={headerRoot}>\n <Link to=\"/\">\n <img\n src=\"/images/logo.png\"\n srcSet={`/images/logo-small.png 200w, /images/logo.png 300w`}\n sizes=\"(max-width: 360px) 200px, 300px\"\n alt=\"dev.kyoungah.me\"\n className={headerLogo}\n />\n </Link>\n <nav className={headerNavigation}>\n <ul className={headerNavigationList}>\n <li className={headerNavigationItem}>\n <Link to=\"/tags\">\n <span\n aria-label=\"tags\"\n className={clsx(headerNavigationItemLink, tags)}\n />\n </Link>\n </li>\n <li className={headerNavigationItem}>\n <a href=\"/about\" rel=\"noopener\" target=\"_blank\">\n <span\n aria-label=\"about\"\n className={clsx(headerNavigationItemLink, about)}\n />\n </a>\n </li>\n </ul>\n </nav>\n </header>\n );\n}\n\nexport { Header };\n","// extracted by mini-css-extract-plugin\nexport var footerRoot = \"footer-module--footer-root--795ff\";","import { footerRoot } from './footer.module.css';\n\nfunction Footer() {\n return (\n <footer className={footerRoot}>\n <span>Powered by Gatsby, Hosted by GitHub Pages.</span>\n <span>\n ©\n <a\n href=\"https://github.com/partykyoung\"\n rel=\"noreferrer\"\n target=\"_blank\">\n KyoungAh\n </a>\n , All rights reserved.\n </span>\n </footer>\n );\n}\n\nexport { Footer };\n","import type { PropsWithChildren } from \"react\";\n\nimport { Header } from \"../header\";\nimport { Footer } from \"../footer\";\nimport { BasicLayout } from \"../basic-layout\";\n\nfunction DefaultLayout({ children }: PropsWithChildren) {\n return (\n <>\n <Header />\n <BasicLayout>{children}</BasicLayout>\n <Footer />\n </>\n );\n}\n\nexport { DefaultLayout };\n","// extracted by mini-css-extract-plugin\nexport var postLayoutContainer = \"post-layout-module--post-layout-container--f40b5\";\nexport var postLayoutTitle = \"post-layout-module--post-layout-title--1c575\";","/**\n * @typedef {import('mdx/types.js').MDXComponents} MDXComponents\n * @typedef {import('react').Component<{}, {}, unknown>} Component\n * @typedef {import('react').ReactNode} ReactNode\n */\n\n/**\n * @callback MergeComponents\n * Custom merge function.\n * @param {Readonly<MDXComponents>} currentComponents\n * Current components from the context.\n * @returns {MDXComponents}\n * Additional components.\n *\n * @typedef Props\n * Configuration for `MDXProvider`.\n * @property {ReactNode | null | undefined} [children]\n * Children (optional).\n * @property {Readonly<MDXComponents> | MergeComponents | null | undefined} [components]\n * Additional components to use or a function that creates them (optional).\n * @property {boolean | null | undefined} [disableParentContext=false]\n * Turn off outer component context (default: `false`).\n */\n\nimport React from 'react'\n\n/** @type {Readonly<MDXComponents>} */\nconst emptyComponents = {}\n\nconst MDXContext = React.createContext(emptyComponents)\n\n/**\n * Get current components from the MDX Context.\n *\n * @param {Readonly<MDXComponents> | MergeComponents | null | undefined} [components]\n * Additional components to use or a function that creates them (optional).\n * @returns {MDXComponents}\n * Current components.\n */\nexport function useMDXComponents(components) {\n const contextComponents = React.useContext(MDXContext)\n\n // Memoize to avoid unnecessary top-level context changes\n return React.useMemo(\n function () {\n // Custom merge via a function prop\n if (typeof components === 'function') {\n return components(contextComponents)\n }\n\n return {...contextComponents, ...components}\n },\n [contextComponents, components]\n )\n}\n\n/**\n * Provider for MDX context.\n *\n * @param {Readonly<Props>} properties\n * Properties.\n * @returns {JSX.Element}\n * Element.\n * @satisfies {Component}\n */\nexport function MDXProvider(properties) {\n /** @type {Readonly<MDXComponents>} */\n let allComponents\n\n if (properties.disableParentContext) {\n allComponents =\n typeof properties.components === 'function'\n ? properties.components(emptyComponents)\n : properties.components || emptyComponents\n } else {\n allComponents = useMDXComponents(properties.components)\n }\n\n return React.createElement(\n MDXContext.Provider,\n {value: allComponents},\n properties.children\n )\n}\n","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;"],"names":["_createMdxContent","props","_components","Object","assign","p","a","h2","h3","span","ol","li","_provideComponents","components","React","href","dangerouslySetInnerHTML","__html","wrapper","MDXLayout","PostLayout","_ref","_data$mdx$frontmatter","_data$mdx","data","children","date","tags","title","mdx","frontmatter","_jsx","DefaultLayout","_jsxs","Container","className","postLayoutContainer","PostLayoutTitle","postLayoutTitle","PostLayoutDate","PostLayoutTags","PostLayoutContent","MDXProvider","GatsbyMDXWrapper","GATSBY_COMPILED_MDX","postLayoutContentRoot","clsx","postLayoutDateRoot","postLayoutTags","Tags","map","tag","Link","to","Tag","postLayoutTitleRoot","ComposedTags","containerRoot","basicLayoutRoot","BasicLayout","about","headerLogo","headerNavigation","headerNavigationItem","headerNavigationItemLink","headerNavigationList","headerRoot","Header","src","srcSet","sizes","alt","rel","target","footerRoot","Footer","_Fragment","emptyComponents","MDXContext","useMDXComponents","contextComponents","properties","allComponents","disableParentContext","Provider","value","r","e","t","f","n","Array","isArray","o","length","arguments"],"sourceRoot":""}