Git Product home page Git Product logo

gatsby-theme-simplex's People

Contributors

leobang17 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

gatsby-theme-simplex's Issues

[Feat] Nav ๋ฐ ๋ ˆ์ด์•„์›ƒ ์Šคํƒ€์ผ๋ง ๊ฐœ์„ 

๐Ÿ’ก ์–ด๋–ค ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋‚˜์š”?

ํ˜„์žฌ nav์˜ ์š”์†Œ๋“ค๊ณผ layout์˜ ๋ ๋ถ€๋ถ„์˜ ์ •๋ ฌ์ด ์ž˜ ๋งž์ง€ ์•Š๋Š”๋‹ค.
ํŠนํžˆ layout์˜ main ๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ์ขŒ์šฐ margin์ด ์žกํ˜€์žˆ์ง€ ์•Š์•„ ์ฐฝ์ด ์ข์•„์งˆ ๊ฒฝ์šฐ ๋ ๋ถ€๋ถ„์— ๋”ฑ ๋ถ™์–ด๋ฒ„๋ฆผ.

๐Ÿ“ todo

  • nav element๋“ค๊ณผ layout ๋๋ถ€๋ถ„ ์ •๋ ฌ ๋งž์ถ”๊ธฐ
  • nav ๋ฐ˜์‘ํ˜• breakpoint mobile์—์„œ tablet S ๋กœ ๋ณ€๊ฒฝํ•˜๊ธฐ
    • category๋Š” tablet S์—์„œ ์‚ฌ๋ผ์ง€๋Š”๋ฐ mobile ํฌ๊ธฐ๊ฐ€ ๋˜์–ด์„œ์•ผ drawer ๋ฉ”๋‰ด๊ฐ€ ์ƒ๊น€.

[Feat] Footer ๋ฐ˜์‘ํ˜• ๊ฐœ์„ 

๐Ÿ’ก ์–ด๋–ค ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋‚˜์š”?

Footer ๋ฐ˜์‘ํ˜• ๊ฐœ์„ . ํ˜„์žฌ๋Š” ๋ชจ๋ฐ”์ผ ํ™”๋ฉด๋„ˆ๋น„์—์„œ overflow๋กœ ๋ฐ‘์œผ๋กœ ํ…์ŠคํŠธ๊ฐ€ ๋ฐ€๋ฆฐ๋‹ค.

๐Ÿ“ todo

  • react-response ์˜์กด์„ฑ ์„ค์น˜
  • responsive break point๋“ค์— ๋Œ€ํ•ด hook ์ƒ์„ฑ
  • Mobile ์šฉ Footer ์ƒ์„ฑ... ๋ถ„๊ธฐ์ฒ˜๋ฆฌ๋Š” Footer ์ปดํฌ๋„ŒํŠธ์•ˆ์—์„œ.

References

[Feat] Nav ๋ฐ” ๊ฐœ์„ 

๐Ÿ’ก ์–ด๋–ค ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋‚˜์š”?

Nav ๋ฐ” ๊ฐœ์„ ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“ todo

  • ๋ธ”๋กœ๊ทธ ํƒ€์ดํ‹€์— gatsby link api ์—ฐ๊ฒฐ (index page๋กœ ๊ฐ€๋„๋ก)
  • Tablet (S) ํฌ๊ธฐ๋ถ€ํ„ฐ Nav๋ฐ” ์šฐ ์ƒ๋‹จ์— ๋ฉ”๋‰ด ํ† ๊ธ€ ์ƒ์„ฑ
  • ๋ฉ”๋‰ด ํ† ๊ธ€์˜ ๊ฒฝ์šฐ category๋ฅผ ์ˆ˜์ง‘ํ•  ์ˆ˜ ์—†๋Š” ํŽ˜์ด์ง€์ผ ๊ฒฝ์šฐ ์ˆ˜์ง‘ํ•˜์ง€ ์•Š๋„๋ก ์กฐ์น˜
  • 404, 500 ์—๋Ÿฌ ํŽ˜์ด์ง€๋ฅผ ErrorPageContext๋กœ ๊ฐ์‹ธ์ค˜ category context๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ๋„๋ก ๋ณ€๊ฒฝ

[Feat] 404 ํŽ˜์ด์ง€, 500 ํŽ˜์ด์ง€ ์ƒ์„ฑ

๐Ÿ’ก ์–ด๋–ค ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋‚˜์š”?

ํ˜ธ์ŠคํŒ…ํ•˜๊ณ  ์žˆ๋Š” ๋„๋ฉ”์ธ ๋‚ด ์ž˜๋ชป๋œ route๋ฅผ hit ํ–ˆ์„ ๋•Œ ํ‘œ์‹œํ•  404 ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ค์–ด๋ณด์•„์š”

๐Ÿ“ todo

  • 404 404 404
  • image ํฌ๊ธฐ ๋ฐ˜์‘ํ˜•์œผ๋กœ ์ค„์—ฌ์ฃผ๊ธฐ
  • home page๋กœ ๋ณด๋‚ด๋Š” ๋งํฌ ๋‹ฌ์•„์ฃผ๊ธฐ
  • 500 internal error page ์ƒ์„ฑ

[Bugfix] /documents ์— ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์—†์„ ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ์—๋Ÿฌ

๐Ÿ’ก Error์˜ ์›์ธ๊ณผ ๋‚ด์šฉ์€ ๋ฌด์—‡์ธ๊ฐ€์š”?

 ERROR #85923  GRAPHQL.VALIDATION

There was an error in your GraphQL query:

Cannot query field "major" on type "MdxFieldsCategory".

If you don't expect "major" to exist on the type "MdxFieldsCategory" it is most likely a typo. However, if you expect "major" to exist there are a couple of solutions to common problems:

- If you added a new data source and/or changed something inside gatsby-node/gatsby-config, please try a restart of your development server.
- You want to optionally use your field "major" and right now it is not used anywhere.

It is recommended to explicitly type your GraphQL schema if you want to use optional fields.

File: src/templates/ArticlePage.tsx:33:11

See our docs page for more info on this error: https://gatsby.dev/creating-type-definitions

/documents path์— ์นดํ…Œ๊ณ ๋ฆฌ๊ฐ€ ํ•˜๋‚˜๋„ ์—†์„ ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ์—๋Ÿฌ.
onCreateNode API ์ด์šฉ์‹œ ๊ธฐ์กด MDX ๋…ธ๋“œ์— ์ถ”๊ฐ€ํ•œ major ํ˜น์€ minor ํ”„๋กœํผํ‹ฐ๊ฐ€ ํ•˜๋‚˜๋„ ์—†์–ด ์ƒ๊ธฐ๋Š” ์—๋Ÿฌ ๊ฐ™์Œ.

๐Ÿ“ todo

  • todo !

[Feat] ArticlePage ๊ฐœ์„ 

๐Ÿ’ก ์–ด๋–ค ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋‚˜์š”?

Article Page์„ ๊ฐœ์„ ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“ todo

  • PageQuery ์ˆ˜์ •
    • ๋ถˆํ•„์š”ํ•œ field ์ œ๊ฑฐ
    • min read ์ถ”๊ฐ€
  • Title ๋ฐ ์ž‘์„ฑ์ผ์ž ์žฌ๋ฐฐ์น˜
  • ์ž‘์„ฑ์ž profile
  • TOC ์‚ฌ์ด๋“œ ๋ฐ” ์ˆ˜์ •
    • ์Šคํฌ๋กค์„ ๋”ฐ๋ผ ์ค‘์‹ฌ์œผ๋กœ toc ์‚ฌ์ด๋“œ๋ฐ”๋„ ์›€์ง์ด๋„๋ก ๋ณ€๊ฒฝ
    • useTableOfContentsObserver์˜ threshold 0.1์œผ๋กœ ์ค„์ด๊ธฐ. (์ง€๊ธˆ ๊ฐ๋„๊ฐ€ ์ข€ ๋‚ฎ์€ ๋“ฏํ•จ)
    • hover์‹œ ์ฒœ์ฒœํžˆ ์ผœ์ง€๊ฒŒ ๋ณ€๊ฒฝ
    • active ์‹œ font-size๊ฐ€ ์ปค์ง€๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ ์™ผ์ชฝ์œผ๋กœ ๋ฐ€๋ฆฌ๋„๋ก ๋ณ€๊ฒฝ
  • ํ•˜๋‹จ์— ๊ณต๋ฐฑ ์ถ”๊ฐ€
    • ์ผ์ • ์ด์ƒ ๊ณต๋ฐฑ์ด ์—†์œผ๋‹ˆ toc ์‚ฌ์ด๋“œ๋ฐ”์˜ ํ•ญ๋ชฉ์ด observer์— ํฌ์ฐฉ๋˜์ง€ ์•Š์Œ

[Feat] Head API ์ ์šฉ, ๊ฒ€์ƒ‰ ์—”์ง„ ์ตœ์ ํ™”

๐Ÿ’ก ์–ด๋–ค ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋‚˜์š”?

๊ณต์‹๋ฌธ์„œ๋ฅผ ์ฝ๊ณ  Gatsby์˜ Head API๋ฅผ ์ด์šฉํ•ด ๊ฐ ๋ฌธ์„œ์˜ head tag๋ฅผ ์ฑ„์›Œ๋ณด์•„์š”~

๐Ÿ“ todo

  • link ํƒœ๊ทธ (https://developer.mozilla.org/ko/docs/Web/HTML/Element/link)
    • ํ˜„์žฌ ๋ฌธ์„œ์™€ ์™ธ๋ถ€ ๋ฆฌ์†Œ์Šค์™€์˜ ๊ด€๊ณ„๋ฅผ ๋ช…์‹œํ•จ stylesheet, favicon์„ ์„ค์ •ํ•  ๋•Œ ์“ฐ์ž„
  • meta ํƒœ๊ทธ
  • style ํƒœ๊ทธ
  • title ํƒœ๊ทธ
    • title์€ ์ตœ๋Œ€ํ•œ descriptive ํ•˜๊ฒŒ ์ž‘์„ฑ
  • base ํƒœ๊ทธ (https://developer.mozilla.org/ko/docs/Web/HTML/Element/base)
    • relative path๋กœ ํƒ์ƒ‰ํ•  ๋•Œ ๊ธฐ์ค€์ด ๋  base uri๋ฅผ ์„ค์ •.
  • tagscript ํƒœ๊ทธ
  • noscript ํƒœ๊ทธ
  • html ํƒœ๊ทธ (์–˜๋Š” property overriding)
  • body ํƒœ๊ทธ (์–˜๋„ property overriding)
  • Open Graph ํƒœ๊ทธ
    • twitter
    • facebook
  • non-sementic tag๋“ค semantic tag๋กœ ๋ณ€๊ฒฝํ•˜๊ธฐ (nav, footer, article ๋“ฑ...)
  • ArticlePage์˜ uri ์ˆ˜์ • (category๋ฅผ ๋”์ด์ƒ uri endpoint์— ๋…ธ์ถœํ•˜์ง€ ์•Š๋„๋ก)
  • sitemap ์ƒ์„ฑ
  • robots.txt ์ž‘์„ฑ

References

[Feat] GraphQL datalayer ๊ตฌ์กฐ ๋ณ€๊ฒฝ (category๋ฅผ ์ฃผ๋กœ)

๐Ÿ’ก ์–ด๋–ค ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋‚˜์š”?

์›๋ž˜ category tree๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋…ธ๋“œ์— ๋Œ€ํ•ด์„œ๋งŒ ๊ฐ„๋‹จํžˆ ๋ณ€๊ฒฝํ•˜๋ ค๊ณ  ํ–ˆ๋Š”๋ฐ... ๊ทธ๊ฒŒ ๊ทธ๋ ‡๊ฒŒ ๊ฐ„๋‹จํ•˜์ง€ ์•Š์•˜๋‹ค.
category ๊ด€๋ จํ•œ ๊ตฌ์กฐ๋ฅผ ๋œฏ์–ด๊ณ ์น˜๊ณ  ์ด๋ฅผ category tree, article page, category page์— ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๋ฟŒ๋ ค์ฃผ๋„๋ก ํ•œ๋‹ค.

๊ฒธํ•˜์—ฌ dataLayer path๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ ˆ์ด์–ด์— ์ ‘๊ทผํ•˜๋Š” api point๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.
๊ธฐ์กด์˜ ์‚ฐ๊ฐœ๋œ ํ•จ์ˆ˜๋“ค์„ ๋ฆฌํŒฉํ† ๋งํ•˜์—ฌ ํด๋ž˜์Šคํ™” ํ•˜๋Š”๊ฒŒ ๋ชฉ์ ์ธ๋ฐ ... gatsby๊ฐ€ graphql ์ฟผ๋ฆฌ๋ฅผ ์ด์šฉํ•˜๋Š” page ์™€ static์œผ๋กœ ๋‚˜๋ˆ„์–ด์ ธ์žˆ๊ณ , ๋˜ ์ด๋ฅผ node api ์†์—์„œ ์ด์šฉํ•  ๊ฒฝ์šฐ ํ•ด๋‹น api๊ฐ€ ์ œ๊ณตํ•˜๋Š” parameter์ธ graphql ๋ฉ”์„œ๋“œ๋ฅผ ์ด์šฉํ•ด์•ผํ•˜๋Š”์ง€๋ผ ๊ตณ์ด ๋ชจ๋“  ์ผ€์ด์Šค์˜ ๊ฒฝ์šฐ๋ฅผ ๋‹ค๋ฃจ๋Š”๊ฒŒ ํ•„์š”ํ• ์ง€๋Š” ์ž˜ ๋ชจ๋ฅด๊ฒ ๋‹ค.

๐Ÿ“ todo

  • CategoryPage์—์„œ article ํ•„ํ„ฐ๋ง ์ˆ˜์ • (trailing slash ์„ค์ •์ด ์•ˆ๋˜์–ด์žˆ์–ด์„œ ๋‹ค๋ฅธ directory์—ฌ๋„ ๊ทธ๋ƒฅ startswith์œผ๋กœ ๊ฐ™์ด ๋ณด์—ฌ์คŒ.)
  • Graphql data layer์— ์ ‘๊ทผํ•˜๋Š” API point ์ƒ์„ฑ
    • DataLayer (Config)
    • API -> Service -> QueryService -> Query ์ˆœ์œผ๋กœ ์˜์กด
  • Mdx.field.slug ๊ฐ’ ๋ณ€๊ฒฝ
    • gatsby filesystem api์—์„œ ์ œ๊ณตํ•˜๋Š” filepath๋ฅผ ๊ทธ๋Œ€๋กœ ์ผ์—ˆ์Œ
    • ์ด์ œ category directory + title ์„ ์กฐํ•ฉํ•œ slug๋ฅผ ์ด์šฉํ•œ๋‹ค.
  • Mdx ํ•„๋“œ์— ์ถ”๊ฐ€ํ•œ field.category ์‚ญ์ œ (major, minor, slug)
    • ์ด์ œ major, minor๊ฐ€ ์•„๋‹ˆ๋ผ ํ•˜๋‚˜์˜ string์—์„œ ํŒŒ์ƒ๋œ CATEGORY_THRESHOLD ๋งŒํผ ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•ด์„œ ๋‚˜๋ˆˆ๋‹ค.
  • raw query ํ•œ ๋ฒˆ ์‹น ์ ๊ฒ€.. ํ•„์š”์—†๋Š” ๊ฐ’์„ ๊ฐ€์ ธ์˜ค์ง€ ์•Š๋„๋ก

[Feat] Layout ์ ์šฉ

๐Ÿ’ก ์–ด๋–ค ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋‚˜์š”?

Layout component ์ƒ์„ฑ

@@@
Nav
RightStack Content LeftStack
Footer
@@@

Layout component๋ฅผ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ตฌํ˜„..
์œ„์˜ Layout์„ ๊ธฐ๋ณธ์œผ๋กœ Page ๋‹จ์œ„๋กœ๋Š” ์ด๋ฅผ ์ž์„ธํ•˜๊ฒŒ ๊ตฌํ˜„ํ•œ Layout component๋ฅผ ๋งŒ๋“ค ์˜ˆ์ •.

๐Ÿ“ todo

  • todo !

[Feat] Slugify ํ•จ์ˆ˜ ๊ฐœ์„ 

๐Ÿ’ก ์–ด๋–ค ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋‚˜์š”?

์ง€๊ธˆ์€

  • ์†Œ๋ฌธ์žํ™”
  • ๊ณต๋ฐฑ์„ hyphen์œผ๋กœ replace
    ๋ฐ–์— ์—†์Œ.

slug ์ „๋žต๋ฅผ ๋ณด๋‹ค ๊ฐœ์„ ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“ todo

  • camel case๋ฅผ ์ธ์‹ํ•ด hyphen์œผ๋กœ ๋ณ€๊ฒฝ
  • hyphen์ด ์ค‘๋ณต๋  ๊ฒฝ์šฐ 1๊ฐœ๋กœ ์••์ถ•ํ•œ๋‹ค.
  • ๋งˆ์ง€๋ง‰์— . ์ด ์žˆ์„ ๊ฒฝ์šฐ ์ œ๊ฑฐ

[Feat] ๊ธ€ ๊ฒ€์ƒ‰ ์ถ”๊ฐ€

๐Ÿ’ก ์–ด๋–ค ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋‚˜์š”?

๋ธ”๋กœ๊ทธ์— ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์‹ถ๋„ค์š”์˜น

๐Ÿ“ todo

  • navigation ๋ฐ”์— ๊ฒ€์ƒ‰ ํ…์ŠคํŠธ ํ•„๋“œ ์‚ฝ์ž…
  • search ํŽ˜์ด์ง€ ์ƒ์„ฑ

[Feat] Last Modified Date ์ ์šฉ

๐Ÿ’ก ์–ด๋–ค ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋‚˜์š”?

๊ธ€์„ ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰์— ์ˆ˜์ •ํ•œ ์ผ์ž๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“ todo

  • last modified date
    • gatsby-transformer-info ํ”Œ๋Ÿฌ๊ทธ์ธ ์„ค์น˜

References

[Feat] Bio

๐Ÿ’ก ์–ด๋–ค ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋‚˜์š”?

Bio ๊ตฌํ˜„

๐Ÿ“ todo

  • Bio ๋ฐ Social ๋งํฌ
  • GraphQL ๋ฐ์ดํ„ฐ๋ ˆ์ด์–ด ์ˆ˜์ •

[Feat] prev, next posts ์ถ”๊ฐ€

๐Ÿ’ก ์–ด๋–ค ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋‚˜์š”?

article page์˜ ๋งˆ์ง€๋ง‰ ๋ถ€๋ถ„์— ๋‹ค๋ฅธ ๊ธ€๋กœ๋„ ํƒ์ƒ‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
related post ๋‚˜ recent post, ํ˜น์€ ์ด์ „๊ธ€ - ๋‹ค์Œ๊ธ€ ์ค‘ ๋ญ๋ผ๋„ ์ผ๋‹จ ๋ณด์—ฌ์ฃผ๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“ todo

  • hateoas

[Bugfix] gatsby-remark-highlight-code ์˜์กด์„ฑ ์ ์šฉ

๐Ÿ’ก Error์˜ ์›์ธ๊ณผ ๋‚ด์šฉ์€ ๋ฌด์—‡์ธ๊ฐ€์š”?

readme์— ๋”ฐ๋ฅด๋ฉด gatsby-transformer-remark ๋ฟ ์•„๋‹ˆ๋ผ gatsby-plugin-mdx ์—ญ์‹œ ํ˜ธํ™˜ํ•œ๋‹ค๊ณ  ๋‚˜์™€์žˆ๋Š”๋ฐ ์ผ๋‹จ ์ ์šฉ์ด ์•ˆ๋จ.
issue ๋‚จ๊ธฐ๊ณ  ๋‹ค์‹œ ์ ์šฉํ•ด๋ณด๊ธฐ.

๐Ÿ“ todo

  • todo !

[Feat] gatsby-config๊ฐ€ esm์„ ๋ฐ˜์˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ˆ˜์ •

๐Ÿ’ก ์–ด๋–ค ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋‚˜์š”?

๊ธฐ์กด์—๋Š” Gatsby ํ™˜๊ฒฝ์„ ๊ตฌ์„ฑํ•˜๋Š” ํŒŒ์ผ๋“ค์€ CommonJS์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ž‘์„ฑ๋˜์–ด์•ผ ํ–ˆ์—ˆ๋‹ค. (๊ณ ํ•œ๋‹ค)
์‚ฌ์‹ค ๊ธฐ์กด์—๋„ gatsby-config ๋‚˜ gatsby-node๋ฅผ .ts ํ™•์žฅ์ž๋กœ ์ƒ์„ฑํ•˜๊ณ  ๋‚ด ์†Œ์Šค์ฝ”๋“œ์˜ ํ•จ์ˆ˜๋‚˜ ๋ณ€์ˆ˜๋“ค์€ ES6์˜ ๋ฌธ๋ฒ•์— ๋งž๊ฒŒ import ํ•ด์˜ค๊ธด ํ–ˆ์—ˆ์ง€๋งŒ. ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ฐ€์ ธ์™€์•ผํ•  ๊ฒฝ์šฐ์—๋Š” cjs์˜ require()๋ฅผ ์ด์šฉํ–ˆ์—ˆ๋‹ค.

๋ฌธ์ œ๋Š” mdx์™€ ๊ด€๋ จ๋œ ์˜ต์…˜๋“ค์„ ์„œ๋“œํŒŒํ‹ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค์„ ์ด์šฉํ•ด ๋ฐ˜์˜ํ•ด์•ผํ•  ๋•Œ ์ธ๋ฐ... remark๋‚˜ rehype ๊ด€๋ จ ๋Œ€๋ถ€๋ถ„ ๊ตฌ๋ฒ„์ „์„ ์ œ์™ธํ•˜๊ณ ๋Š” ESM ๋ชจ๋“ˆ ํ™˜๊ฒฝ์—์„œ๋งŒ ์‹คํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ์— gatsby-config์—์„œ ์ด ์„œ๋“œํŒŒํ‹ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค์„ ์„ค์ •ํ•˜๋ ค๋ฉด ์ œ์•ฝ์‚ฌํ•ญ๋“ค์ด ์žˆ์—ˆ๋‹ค.
์‹ค์ œ๋กœ ์•„์ง๋„ ๊ณต์‹ ํŽ˜์ด์ง€์˜ docs์—์„œ๋Š” ๋‹ค์Œ ์ œ์•ฝ์‚ฌํ•ญ์„ ๋ช…์‹œํ•˜๊ณ  ์žˆ๋‹ค.
https://www.gatsbyjs.com/plugins/gatsby-plugin-mdx/?=mdx#mdxoptions

  1. ESM์„ ๋”ฐ๋ฅด์ง€ ์•Š๋Š” ๊ตฌ๋ฒ„์ „์„ ๋‹ค์šด๋กœ๋“œ๋ฐ›๊ฑฐ๋‚˜.
  2. wrapper ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด ๊ฐ€์ ธ์˜ค๊ฑฐ๋‚˜...

๋Œ€๋ถ€๋ถ„์˜ remark๋‚˜ rehype ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค์€ only ESM ์ด๋ผ๋Š” ๋”ฑ์ง€๋ฅผ ๋‹ฌ๊ณ  ๋‚˜์˜จ๋‹ค. ๋”ฐ๋ผ์„œ ์ผ์ผ์ด ๋ฆด๋ฆฌ์ฆˆ ๋…ธํŠธ๋ฅผ ํ™•์ธํ•˜๋ฉฐ ESM์ด ์ ์šฉ๋˜์ง€ ์•Š์€ ๋ฒ„์ „์„ ์„ค์น˜ํ•˜๋Š” ์ผ์€ x
๋‘๋ฒˆ์งธ wrapper ํ•จ์ˆ˜๋Š” ์™œ์ธ์ง€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๋™์ž‘ํ•˜์ง€ ์•Š์•˜๋‹ค.

gatsby์˜ ๋ฆด๋ฆฌ์ฆˆ ๋…ธํŠธ๋ฅผ ๋’ค์ ธ๋ณด๋‹ˆ v5.3์—์„œ gatsby-config์™€ gatsby-node ์—ญ์‹œ esm์„ ๋ฐ˜์˜ํ•˜๋„๋ก ๋ณ€๊ฒฝํ–ˆ๋‹ค๊ณ  ํ•œ๋‹ค!
https://www.gatsbyjs.com/docs/reference/release-notes/v5.3/
์™œ ๊ณต์‹๋ฌธ์„œ์— ์•ˆ ์ ์–ด๋†“์€๊ฑด์ง€;; ๋‹ค์‹œ ๋ณด๋‹ˆ ๋ ˆํฌ์ง€ํ† ๋ฆฌ์˜ ํŒจํ‚ค์ง€ ์† ์ตœ์‹  readme์—๋Š” ๋ฐ˜์˜์ด ๋˜์–ด์žˆ์—ˆ๋‹ค.
https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-plugin-mdx#mdxoptions
์ตœ๊ทผ์— ๋‹ค์‹œ ๋ธ”๋กœ๊ทธ ์ˆ˜์ •์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๋ฉด์„œ gatsby ๋ฒ„์ „์„ ์—…๊ทธ๋ ˆ์ด๋“œ ํ–ˆ์—ˆ๋Š”๋ฐ ์ด ๋•Œ ๋ฐ˜์˜๋˜์–ด์„œ ์›๋ž˜ ๋ฌธ์„œ์— ์ ํ˜€์žˆ๋˜ wrapper ํ•จ์ˆ˜๊ฐ€ ์ž‘๋™ํ•˜์ง€ ์•Š์€ ๋“ฏ...?

์•„๋ฌดํŠผ esm์„ ๋ฐ˜์˜์€ ํ•˜๊ธดํ•˜๋Š”๋ฐ, .mjs ํ™•์žฅ์ž์˜ ํŒŒ์ผ๋งŒ ๊ฐ€๋Šฅํ•˜๊ณ  ์•„์ง ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ํ˜ธํ™˜์€ ์•ˆ๋œ๋‹ค๊ณ  ํ•œ๋‹ค.

gatsbyjs/gatsby#37069
mjs์— ๊ด€ํ•œ umbrella discussion

๐Ÿ“ todo

  • todo !

[Feat] Beta (v0.0.1) ๋ฐฐํฌ ์ค€๋น„

๐Ÿ’ก ์–ด๋–ค ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋‚˜์š”?

๋ฒ ํƒ€ ๋ฒ„์ „ ๋ฐฐํฌ์— ์•ž์„œ ์ž์ž˜ํ•œ ์ž‘์—…๋“ค์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“ todo

  • Configs.ts ์ˆ˜์ •
    • ๋ฒ ํƒ€๋ฒ„์ „์—์„œ๋Š” ์ด์šฉ๋˜์ง€ ์•Š๋Š” ์ •๋ณด๊นŒ์ง€ ์ž…๋ ฅ๋ฐ›๋„๋ก ํ•˜๊ณ  ์žˆ์Œ.
    • ์ž…๋ ฅ๋˜์ง€ ์•Š์€ ๊ฐ’์€ default ๊ฐ’์„ ์ œ๊ณตํ•˜๋Š” ํ•˜๋‚˜์˜ layer๋ฅผ ๋” ๊ฑฐ์น˜๋„๋ก ๋ณ€๊ฒฝ
  • ์œ ์ €๊ฐ€ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋Š” ์ƒ์ˆ˜๋“ค ์ œ๊ณต
    • table of content stack depth (๋ช‡๋ฒˆ์งธ header๊นŒ์ง€ ํ‘œ์‹œํ•  ๊ฒƒ์ธ์ง€)
  • ์ด์šฉํ•˜์ง€ ์•Š๋Š” ํŒŒ์ผ๋“ค ์ œ๊ฑฐ (dsg.. ๋“ฑ๋“ฑ)
  • repo ์ด๋ฆ„ ์ˆ˜์ •... ์ง€๊ธˆ ๋„ˆ๋ฌด ๋ฐ‹๋ฐ‹ํ•˜๋‹ค.
  • repo tag๋“ค ์ถ”๊ฐ€
  • readme ์ถ”๊ฐ€
  • ์ด์šฉํ•˜์ง€ ์•Š๋Š” frontmatter ์‚ญ์ œ
  • example ์šฉ ๋งˆํฌ๋‹ค์šด ํŒŒ์ผ ์ˆ˜์ •. (์ˆ˜์‹, ์‚ฌ์ง„๋„ ๊ฐ™์ด ๋ณด์ด๋„๋ก)
  • package.json ์ˆ˜์ •
  • src/styles/responsive <-- case ์ˆ˜์ •

[Feat] MDX content ์Šคํƒ€์ผ๋ง ๋ฐ ๊ฐœ์„ ์‚ฌํ•ญ

๐Ÿ’ก ์–ด๋–ค ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋‚˜์š”?

MDX ์Šคํƒ€์ผ๋ง์ด ๋˜์–ด์žˆ์ง€ ์•Š์€ ์ƒํƒœ์ž…๋‹ˆ๋‹ค.
MDXProvider๋ฅผ ์ด์šฉํ•ด ์ „์ฒด์ ์ธ ์Šคํƒ€์ผ์„ ์ ์šฉํ•˜๊ณ , ๊ธฐ์กด ๋ฏธํกํ•œ ์ ์„ ๊ฐœ์„ ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“ todo

  • MDXProvider๋ฅผ ์ด์šฉํ•ด ์Šคํƒ€์ผ๋ง
  • CodeBlock ๋ฌธ์ œ ํ•ด๊ฒฐ.
    • code block์„ ์ผ๋‹จ์€ width์— ๋งž๊ฒŒ ์ค„์–ด๋“ค๋„๋ก ํ–ˆ์ง€๋งŒ, ๋‚จ์€ ๊ณต๊ฐ„์ด scroll๋กœ overflow๋˜๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ ์ค„๋ฐ”๊ฟˆ๋˜์–ด์„œ ๋ฐ‘์œผ๋กœ ๊ฐ.
    • ๊ทธ๋ž˜์„œ ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ์ด ๋–จ์–ด์ง€๋Š”๋ฐ, ๋ชจ๋ฐ”์ผ ํ™˜๊ฒฝ์—์„œ ํŠนํžˆ ์ด์ƒํ•  ๋“ฏ
    • window width์— ๋งž๊ฒŒ code block์˜ width๊ฐ€ ์ค„์–ด๋“ค๊ณ , ๋‚จ์€ ๊ณต๊ฐ„์ด x์ถ•์œผ๋กœ scroll๋˜๋„๋ก ๋ณ€๊ฒฝํ•ด์•ผํ•จ.
  • remark ์ด๋ฏธ์ง€ ์ ์šฉ
  • remark external link ์ ์šฉ
  • ์ˆ˜์‹์„ ์œ„ํ•œ markdown ๋ฌธ๋ฒ• (๋‹ฌ๋Ÿฌ์‹ธ์ธ)์„ ์ด์šฉํ•  ๊ฒฝ์šฐ ๋ทฐ ์ „์ฒด๊ฐ€ ๊นจ์ง€๋Š”๋ฐ ๋ฌด์‹œํ•˜๋„๋ก ์ ์šฉ
    • remark katex ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ ์šฉํ•˜๊ธฐ
  • mdx remark ๊ด€๋ จํ•ด์„œ ์ฐพ์•„๋ณด๊ธฐ ..
    • ์ง€๊ธˆ mdx์˜ default๋กœ ์ง€์›ํ•˜๋Š” syntax tree ์ž‘์—…์—์„œ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ๋ฌธ๋ฒ•๋“ค์ด ์žˆ์Œ.
    • ํŠนํžˆ ``์ด ๋ณ€ํ™˜๋˜์–ด <code /> ๊ฐ€ ๋˜์–ด์•ผ ํ•˜๋Š”๋ฐ <div> ํƒœ๊ทธ์— ํ•œ๋ฒˆ ๋” ๊ฐ์‹ธ์ ธ์„œ ๋‚˜์˜ด.
    • ~~ ~~ ์ž์ฒด๋ฅผ ์ธ์‹ ๋ชปํ•œ๋‹ค.. <del /> tag๋ฅผ ๊พธ๋ฉฐ์ค˜๋„ ์†Œ์šฉ์ด ์—†์Œ.
  • code block์— copy ๋ฒ„ํŠผ ๋‹ฌ๊ธฐ
  • code block์— title ๋‹ฌ๊ธฐ
  • ๋ฐ˜์‘ํ˜•์œผ๋กœ font-size ์ค„์—ฌ์ฃผ๊ธฐ

References

[Feat] ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ ์„ค์ •

๐Ÿ’ก ์–ด๋–ค ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋‚˜์š”?

๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ ์„ค์ • ๋ฐ ๋™์  ํŽ˜์ด์ง€ ์ƒ์„ฑ

๐Ÿ“ todo

  • constant
  • types
  • hooks
  • utils
  • FileSystemRoute API๋ฅผ ์ด์šฉํ•œ dynamic page

[Feat] Article ํŽ˜์ด์ง€

๐Ÿ’ก ์–ด๋–ค ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋‚˜์š”?

  • ๊ธ€ ์ „๋ฌธ์„ ํ™•์ธํ•˜๋Š” ArticlePage ์ƒ์„ฑ
    • FileSystemRoute API vs createPage API
  • ๊ธ€ ๋ชฉ์ฐจ๋ฅผ ํ™•์ธํ•˜๋Š” Table Of Content ์ƒ์„ฑ
    • Intersection Observer API ์ด์šฉ
  • ArticlePage์˜ PageQuery๋ฅผ spreadํ•˜๋Š” context ์ƒ์„ฑ

๐Ÿ“ todo

  • todo !

[Feat] CategoryString ์ž๋ฃŒ๊ตฌ์กฐ ์ƒ์„ฑ

๐Ÿ’ก ์–ด๋–ค ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋‚˜์š”?

category๊ด€๋ จํ•œ string์„ directory string์œผ๋กœ ๋ฐ”๊ฟจ๋‹ค ๋ญํ–ˆ๋‹ค slug๋กœ ๋งŒ๋“ค์—ˆ๋‹ค ๋ฐฐ์—ด๋กœ ๋งŒ๋“ค์—ˆ๋‹ค ํ•˜๋Š” ์ž‘์—…๋“ค์ด ์‚ฐ๊ฐœ๋˜์–ด์žˆ์Œ. ์ฃผ๋กœ util function์—
ํ•˜๋‚˜์˜ ํด๋ž˜์Šค๋กœ ๋งŒ๋“ค์–ด ์ƒ์„ฑ ๋ฐ ๊ด€๋ฆฌํ•˜๋„๋ก CategoryString ๊ฐ์ฒด๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“ todo

  • CategoryStrings ํด๋ž˜์Šค ์ •์˜
    • categoryDirectory: ํ•ด๋‹น ์นดํ…Œ๊ณ ๋ฆฌ์˜ slugify๋˜์ง€ ์•Š์€ path
    • slug: ํ•ด๋‹น ์นดํ…Œ๊ณ ๋ฆฌ์˜ slugify๋œ path
    • categories: ํ•ด๋‹น ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ ๋ฐฐ์—ด๋กœ ๋‹ด์Œ
  • CategoryStrings ์ ์šฉ ๋ฐ ๋Œ€์ฒด๋œ ๋ฉ”์„œ๋“œ ์‚ญ์ œ

[Doc] Project snippet ์ž‘์„ฑ

๐Ÿ’ก ๋ฌด์—‡์— ๋Œ€ํ•œ ๋ฌธ์„œ์ž‘์—…์ธ๊ฐ€์š”?

์กฐ๊ธˆ ๋Šฆ์€ ๊ฐ์ด ์žˆ์ง€๋งŒ ํ”„๋กœ์ ํŠธ์— ์‚ฌ์šฉ๋  vscode snippet์„ ์ •์˜ํ•จ.

๐Ÿ“ todo

  • Emotion CSS๋ฅผ ์ด์šฉํ•˜๋Š” react arrow functional component ์Šค๋‹ˆํŽซ
    • ํŒŒ์ผ๋ช…์— ๋งž๊ฒŒ type๋„ ๋ช…์‹œํ•˜๋„๋ก.
  • markdown์„ ์œ„ํ•œ ์Šค๋‹ˆํŽซ. frontmatter์™€ ๊ฐ™์€ ๊ฐ’๋“ค์„ ๋„ฃ๊ธฐ ํŽธํ•˜๊ฒŒ

[Feat] Nav ๋ฐ” ๊ฐœ๋ฐœ

๐Ÿ’ก ์–ด๋–ค ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋‚˜์š”?

Nav๋ฐ” ๊ฐœ๋ฐœ

๐Ÿ“ todo

  • emotionjs, mui ์ ์šฉํ•ด๋ณด๊ธฐ
  • ๋ธ”๋กœ๊ทธ ํƒ€์ดํ‹€, Github ๋งํฌ

[Feat] gatsby-mdx-plugin -> gatsby-transformer-remark ๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜

๐Ÿ’ก ์–ด๋–ค ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋‚˜์š”?

mdx ํ๊ธฐํ•ฉ๋‹ˆ๋‹ค... mdx๋ฅผ ์ด์šฉํ•˜๋Š” ๋™์•ˆ Gatsby๊ฐ€ ์™œ ๊ณต์‹ docs์— ๋ฐ€์–ด์ฃผ๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ์„๋งŒํผ ์งœ์ฆ๋‚˜๋Š” ์ผ๋“ค๋งŒ ์žˆ์—ˆ๋‹ค. gfm์œผ๋กœ ์ƒ์„ฑํ•œ ํ…Œ์ด๋ธ”์€ ์ž‘์€ ํ™”๋ฉด์—์„œ๋Š” ์˜†์œผ๋กœ ์ญ‰ ๋ฐ€๋ฆฌ์งˆ ์•Š๋‚˜.. theme์€ ๋˜ ์ ์šฉํ•˜๋Š”๊ฒŒ ๋ญ์ด๋ฆฌ ํž˜๋“ ์ง€.
๊นŠ์ด ์ดํ•ดํ•˜๊ณ  ์ปค์Šคํ„ฐ๋งˆ์ด์ง•์„ ์›ํ•œ๋‹ค๋ฉด ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ๋‚˜์ฒ˜๋Ÿผ ๊ทธ๋ƒฅ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋ธ”๋กœ๊ทธ ๋š๋”ฑ ๋งŒ๋“ค์–ด์„œ ์ด์šฉํ•˜๊ณ  ์‹ถ์€ ์œ ์ €์—๊ฒŒ๋Š” ๋งž์ง€ ์•Š๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ์ด์—ˆ๋‹ค.
๊ทธ๋‚˜๋งˆ ์žฅ์ ์€ rehype ์„œ๋“œํŒŒํ‹ฐ ํ”Œ๋Ÿฌ๊ทธ์ธ๋“ค์„ ์˜ต์…˜์œผ๋กœ ๋ฐ›์•„๋“ค์ด๋Š” ๊ฑฐ ๊ฐ™๊ธดํ•œ๋ฐ .. ๊ณต์‹๋ฌธ์„œ์—์„œ๋„ ๋ชจ๋“ˆ๊ฐ„ ํ˜ธํ™˜์ด ์•ˆ๋˜๋Š” ๋ฌธ์ œ๋ฅผ ์ž„์‹œ๋ฐฉํŽธ์œผ๋กœ ํ•ด๊ฒฐํ•˜๋Š” ์˜ˆ์ œ๋ฅผ ๋ณด์—ฌ์ฃผ๊ณ  ์žˆ๊ณ , 5.3 ๋ฒ„์ „ ์ดํ›„๋กœ๋Š” esm์„ ์ง€์›ํ•˜์ง€๋งŒ ๊ทธ๋งˆ์ €๋„ rehype ํ”Œ๋Ÿฌ๊ทธ์ธ๋“ค ์ ์šฉํ•ด๋ณด๋ฉด ๋˜๋Š”๊ฑด์ง€ ์•ˆ๋˜๋Š”๊ฑด์ง€ ๋ชจ๋ฅด๊ฒ ๋Š” ๋†ˆ๋“ค์ด ๋งŽ์•˜๋‹ค.
๊ทธ๋ฆฌ๊ณ  ์• ์ดˆ์— remark, rehype ์–˜๋„ค๋Š” ๋ฌธ์„œ๋ฅผ ์™œ์ด๋ ‡๊ฒŒ ๋Œ€์ถฉ๋งŒ๋“œ๋Š” ๊ฑธ๊นŒ? ๋ญ˜ ๊ธฐ๋Œ€ํ•˜๋ฉด ๋˜๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ๋“ค์ธ์ง€ ์•Œ ์ˆ˜๊ฐ€ ์—†์œผ๋‹ˆ ์„ค์น˜ํ•˜๊ณ  ์‹ถ์ง€๋„ ์•Š์•˜๋‹ค.
๋‚˜๋Š” ๋งˆํฌ๋‹ค์šด ํŒŒ์‹ฑํ•ด์„œ html๋กœ ๋ฐ”๊พธ๋Š” ๊ทธ ์•ˆ์— ์›๋ฆฌ ๊ฐ™์€๊ฑด ๊ทธ๋‹ค์ง€ ์•Œ๊ณ  ์‹ถ์ง€ ์•Š๋‹ค๊ณ ..

๊ทธ๋ž˜๋„ trasnformer-remark๋Š” ์• ์ดˆ์— gatsby์™€ ํ˜ธํ™˜๋˜๊ฒŒ ์ด๋ฆ„์„ ๋‹ฌ๊ณ  ๋‚˜์˜จ ๋…€์„๋“ค์ด ๋งŽ์œผ๋‹ˆ ๊ดœ์ฐฎ์ง€ ์•Š์„๊นŒ? ํ•˜๋Š” ๊ธฐ๋Œ€์— ์ด๋ฏผ์„ ์‹œ๋„ํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค.
transformer-remark๊ฐ€ ๋” ์˜ค๋ž˜๋œ ํ”Œ๋Ÿฌ๊ทธ์ธ์ด๊ณ , ํ˜„์žฌ๋Š” ๊ณต์‹๋ฌธ์„œ์—์„œ๋„ mdx -> transformer-remark๋กœ์˜ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ์„ค๋ช… ๋ฐ ๊ถŒ์žฅํ•˜๊ณ  ์žˆ์œผ๋‹ˆ ๋‚˜๋Š” ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์‹œ๋„ํ•˜๋Š” ๊ฑฐ๊ฒ ์ง€.
๊ทธ์น˜๋งŒ mdx๋Š” ๋„์ €ํžˆ ๋ชป์จ๋จน๊ฒ ๋‹ค. ์ปค๋ฎค๋‹ˆํ‹ฐ๊ฐ€ ํ’๋ถ€?ํ•œ ๋ ˆ๊ฑฐ์‹œ๋กœ ๊ท€ํ™˜ํ•ด์•ผ๊ฒ ๋‹ค..
๋งˆํฌ๋‹ค์šด ๋ฒ ์ด์Šค ๋ธ”๋กœ๊ทธ ํ”„๋กœ์ ํŠธ์ธ๋งŒํผ ๋Œ€๊ณต์‚ฌ๊ฐ€ ๋  ์˜ˆ์ •์ธ๋ฐ ์ž˜ ํ•ด๋‚ผ ์ˆ˜ ์žˆ์„์ง€ ์กฐ๊ธˆ ๋ง‰๋ง‰ํ•˜๋‹ค.

๐Ÿ“ todo

  • todo !

[Feat] Layout ์ˆ˜์ • ๋ฐ Footer ์ƒ์„ฑ

๐Ÿ’ก ์–ด๋–ค ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋‚˜์š”?

๋ฐ˜์‘ํ˜•์— ๋งž๊ฒŒ Layout ์ˆ˜์ •

๐Ÿ“ todo

  • ๋ฐ˜์‘ํ˜•์— ๋งž๊ฒŒ Layout ์ˆ˜์ •
    • bp 3๊ฐœ (mobile - laptop -desktop)
  • CategoryPage๋„ ์ „์šฉ Layout ์ƒ์„ฑ
    • LeftStack ์—ญ์‹œ ์ƒ์†ํ•œ Layout์ด ์ฃผ์ž…ํ•˜๋„๋ก ๋ณ€๊ฒฝ
  • Footer ๋งŒ๋“ค๊ธฐ
  • ํŽ˜์ด์ง€ min-height ์กฐ์ ˆ (footer๋Š” ํ•ญ์ƒ ๋ฐ”๋‹ฅ์— ๋ถ™์–ด์žˆ๋„๋ก)

[Feat] Footer ์ƒ์„ฑ ๋ฐ page์˜ min-height ์กฐ์ • (#20)

  • Footer์˜ ๊ฐ’์€ config.ts์˜ ๊ฐ’ ์žฌํƒ•.
  • body์˜ default margin ๊ฐ’ ์‚ญ์ œ
  • flex์™€ min-height์„ ์ด์šฉํ•ด footer๋Š” ํ•ญ์ƒ ๋ฐ”๋‹ฅ์— ์กด์žฌํ•จ
    • ํŽ˜์ด์ง€์˜ ๋‚ด์šฉ์ด ๋ถ€์กฑํ•  ๋•Œ๋Š” HStack์˜ height์„ ํ™•์žฅ.

[Feat] CategoryPage ๊ฐœ์„ 

๐Ÿ’ก ์–ด๋–ค ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋‚˜์š”?

CategoryPage๋ฅผ ๊ฐœ์„ ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“ todo

  • ์–ด๋–ค ์นดํ…Œ๊ณ ๋ฆฌ์— ๋“ค์–ด์˜จ๊ฑด์ง€ ๋งจ ์œ„์— ํฐ ํ…์ŠคํŠธ๋กœ ๋ช…์‹œํ•ด์คŒ.
  • CategoryPage์˜ ์ „์ฒด์ ์ธ text styling
  • ๋ฐ˜์‘ํ˜•์— ๋งž๊ฒŒ ํ…์ŠคํŠธ ํฌ๊ธฐ ์ค„์—ฌ์ฃผ๊ธฐ

[Bugfix] Gatsby ๋ฐœ์ž‘์ง€์  ๋ชจ์Œ์ง‘

๐Ÿ’ก Error์˜ ์›์ธ๊ณผ ๋‚ด์šฉ์€ ๋ฌด์—‡์ธ๊ฐ€์š”?

์ง„์งœ ์ด ์ด์Šˆ๊ฐ€ ์˜ˆ์ „๋ถ€ํ„ฐ ๊ณ„์†๋˜์–ด์„œ ๋„ˆ๋ฌด๋„ˆ๋ฌด ์งœ์ฆ๋‚˜๋Š”๋ฐ.. ์™œ์ธ์ง€ ์ด์œ ๋„ ๋ชจ๋ฅด๊ฒ ์–ด์„œ ๊ทธ๋ƒฅ ๋˜ฅ ํ”ผํ•˜๊ธฐ ์šฉ์œผ๋กœ ์จ๋†“์Œ
gatsby docs, issues, discussions ๋‹ค ๋’ค์ ธ๋ดค๋Š”๋ฐ ๋‚˜๊ฐ™์€ ์ผ€์ด์Šค๋Š” ์—†๋Š” ๊ฒƒ ๊ฐ™๋‹ค.

image

onCreateNode ๋ผ์ดํ”„์‚ฌ์ดํด์—์„œ ์ƒ๊ธด ๋ฌธ์  ๋ฐ ์ด ์—๋Ÿฌ๋ฉ”์‹œ์ง€๊ฐ€ mdx node ๋งˆ๋‹ค ์ƒ๊ธฐ๋Š” ๊ฒƒ ๊ฐ™๋‹ค
์ด๋†ˆ ๋•Œ๋ฌธ์— ๊ทธ ๋’ค์˜ gatsby ๋นŒ๋“œ ์‚ฌ์ดํด ๋‹ค ํ„ฐ์ง€๊ณ  ๋‚˜์ค‘์— ์›นํŒฉ ๋นŒ๋“œ๋„ ํ„ฐ์ง€๊ณ  ๋‚ด ์†๋„ ํŒกํŒก ํ„ฐ์ง„๋‹ค

๋ฌธ์ œ์ด์œ ๋„ ์–ด์ด์—†๋Š”๊ฒŒ ํŠน์ • ํŒŒ์ผ์—์„œ path alias๋ฅผ ์ด์šฉํ•ด import ํ•˜๋ฉด ํ„ฐ์ง„๋‹ค. ๊ทธ๋ƒฅ relative path๋กœ importํ•˜๋ฉด ์•ˆํ„ฐ์ง ใ…Žใ…Ž
์™œ์ผ๊นŒ?
์‹ฌ์ง€์–ด ๊ทธ ํŠน์ • ํŒŒ์ผ๋“ค์ด node API๋ž‘ ๊ด€๋ จ ์žˆ๋Š” ๊ฒƒ๋„ ์•„๋‹˜. query๋ž‘๋„ ๊ด€๋ จ ์žˆ๋Š” ๊ฒƒ๋„ ์•„๋‹ˆ๋‹ค. CategoryTree๋Š” gatsby์™€ ์ „ํ˜€ ๊ด€๋ จ ์—†๋Š” ๋ฐ”๋‹๋ผ TS ๊ฐ์ฒด์ธ๋ฐ ํ„ฐ์ง€๋Š”๊ฑฐ ๋ณด๋ฉด ๋ฌด์Šจ ๊ธฐ์ค€์ธ์ง€๋„ ๋ชจ๋ฅด๊ฒ ๋‹ค.
์ด์œ ๊ฐ€ ์–ด์ด์—†์–ด์„œ ํŠธ๋Ÿฌ๋ธ” ์ŠˆํŒ…ํ•˜๊ธฐ๋„ ์‹ซ์€ ์ด์Šˆ๋‹ค.. ๋‚˜์ค‘์— ๋ธ”๋กœ๊ทธ ๊ฐˆ๋ฌด๋ฆฌ ๋  ์ฏค์— ํ•ด๊ฒฐํ•ด์•ผ์ง€

์˜ˆ์ „์—๋Š” typescript๊ฐ€ ํƒ€์ž…ํ•‘ ํ•˜๋Š” ์žฌ๋ฏธ๋„ ์žˆ๊ณ  ๋น„๊ต์  ์ž์œ ๋กญ๋‹ค๊ณ  ์ƒ๊ฐํ•ด์„œ ์ข‹์•„ํ–ˆํ—œ๋Š”๋ฐ ์“ฐ๋ฉด ์“ธ์ˆ˜๋ก Java๊ฐ€ ๋‹ต๋‹ตํ•˜๊ธฐ๋Š” ํ•ด๋„ ์ข‹์€ ์–ธ์–ด๋ผ๋Š” ๊ฑธ ๋Š๋‚€๋‹ค.
Java + IntelliJ ์กฐํ•ฉ์€ ์‹ ์ด๋‹ค. ์ฝ”ํ‹€๋ฆฐ ๋ฐฐ์›Œ๋ณผ๊นŒ

๐Ÿ“ path alias ํ”ผํ•  ๋†ˆ๋“ค

  • /src/dataLayer/services/CategoryService.ts
  • /src/datastructures/category/CategoryTree.ts
  • /src/hooks/createCategoryPages.ts
  • /src/hooks/onMdxAppendFields.ts
  • /src/utils/nodeApi/parseCategory.ts < ์ง„์งœ ์–˜๋Š” ์™œ ํ„ฐ์ง€๋Š”๊ฑฐ์•ผ

[Feat] ์นดํ…Œ๊ณ ๋ฆฌ ์‚ฌ์ด๋“œ๋ฐ” ๊ฐœ์„ 

๐Ÿ’ก ์–ด๋–ค ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋‚˜์š”?

Category ์‚ฌ์ด๋“œ๋ฐ”๋ฅผ ๊ฐœ์„ ํ•ฉ๋‹ˆ๋‹ค.

  • slug
  • ์นดํ…Œ๊ณ ๋ฆฌ data fetching ๋ฐฉ์‹
  • ์ „์ฒด์ ์ธ ์Šคํƒ€์ผ๋ง

๐Ÿ“ todo

  • Category Page ํ˜น์€ Article Page์—์„œ ํ˜„์žฌ ์†ํ•œ ์นดํ…Œ๊ณ ๋ฆฌ ๋ณผ๋“œ ์ฒ˜๋ฆฌ
  • ์นดํ…Œ๊ณ ๋ฆฌ ์Šฌ๋Ÿฌ๊ทธ ์ˆ˜์ •
    • slugify -> lowercase๋กœ ๋ณ€๊ฒฝ.
      • ํ˜„์žฌ ์Šฌ๋Ÿฌ๊ทธ๊ฐ€ category title๋กœ ์‚ฌ์ด๋“œ๋ฐ”์— ๊ทธ๋Œ€๋กœ ์ถœ๋ ฅ๋˜๊ณ  ์žˆ์Œ
    • ์›๋ž˜ title์„ ์‚ฌ์ด๋“œ ๋ฐ”์— ์ถœ๋ ฅ
  • ์นดํ…Œ๊ณ ๋ฆฌ ์„ ํƒ ๋ฐ•์Šค ๋ฐ”์šด๋”๋ฆฌ ์ˆ˜์ • (์ง€๊ธˆ์€ ์˜†์— ํด๋ฆญํ•ด๋„ ์ธ์‹ํ•จ)
  • category tree๋Š” Context API์—์„œ ๊ฐ€์ ธ์˜ค๋„๋ก ๋ณ€๊ฒฝ
  • Category ์‚ฌ์ด๋“œ ๋ฐ” ์Šคํƒ€์ผ๋ง

[Feat] ์นดํ…Œ๊ณ ๋ฆฌ

๐Ÿ’ก ์–ด๋–ค ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋‚˜์š”?

node ์ƒ์„ฑ์‹œ ์นดํ…Œ๊ณ ๋ฆฌ ์ƒ์„ฑ ๋ฐ ์นดํ…Œ๊ณ ๋ฆฌ๋ฐ” ์ขŒ์ธก ์ถœ๋ ฅ
์นดํ…Œ๊ณ ๋ฆฌ ํŽ˜์ด์ง€ ์ƒ์„ฑ

๐Ÿ“ todo

  • onCreateNode -> ์นดํ…Œ๊ณ ๋ฆฌ ์ƒ์„ฑ
  • ์นดํ…Œ๊ณ ๋ฆฌ dynamic page ์ƒ์„ฑ (createPage? FileSystemRoute API?)
  • ์นดํ…Œ๊ณ ๋ฆฌ ์ขŒ์ธก ์ถœ๋ ฅ.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.