Skip to content

Commit 4a060de

Browse files
committed
블로그 목록 페이지 스타일 변경
1 parent 86d730a commit 4a060de

2 files changed

Lines changed: 45 additions & 11 deletions

File tree

src/pages/blog.js

Lines changed: 31 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,42 @@ import React from "react"
22
import { Link, graphql } from "gatsby"
33
import Layout from "@components/layout"
44
import SEO from "@components/seo"
5+
import { groupBy, orderBy } from "es-toolkit/array"
56

6-
const ProjectPage = ({ data }) => {
7+
const BlogPage = ({ data }) => {
78
const edges = data?.allMarkdownRemark?.edges ?? []
9+
10+
const groups = groupBy(edges, (post) => {
11+
const rawDate = post?.node?.frontmatter?.date
12+
const year = rawDate ? new Date(rawDate).getFullYear() : NaN
13+
return Number.isFinite(year) ? String(year) : "Unknown"
14+
})
15+
16+
const yearGroups = orderBy(
17+
Object.entries(groups),
18+
[([year]) => (year === "Unknown" ? -Infinity : Number(year))],
19+
["desc"]
20+
)
21+
822
return (
923
<Layout>
1024
<SEO title="Blog" />
11-
<ul>
12-
{edges.map((post) => (
13-
<li key={post.node.id} className="project-list">
14-
<Link to={post.node.frontmatter.path}>
15-
<h2>{post.node.frontmatter.title}</h2>
16-
</Link>
17-
</li>
25+
<div className="blog-list">
26+
{yearGroups.map(([year, posts]) => (
27+
<section key={year} className="year-group">
28+
<h2 className="year">{year}</h2>
29+
<ul className="year-list">
30+
{posts.map(({ node }) => (
31+
<li key={node.id} className="year-item">
32+
<Link to={node.frontmatter.path}>
33+
{node.frontmatter.title}
34+
</Link>
35+
</li>
36+
))}
37+
</ul>
38+
</section>
1839
))}
19-
</ul>
40+
</div>
2041
</Layout>
2142
)
2243
}
@@ -30,7 +51,6 @@ export const pageQuery = graphql`
3051
edges {
3152
node {
3253
id
33-
excerpt(pruneLength: 250)
3454
frontmatter {
3555
path
3656
title
@@ -43,4 +63,4 @@ export const pageQuery = graphql`
4363
}
4464
`
4565

46-
export default ProjectPage
66+
export default BlogPage

src/styles/blog.scss

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,20 @@
22
a:hover {
33
text-decoration: underline;
44
}
5+
.year {
6+
font-style: italic;
7+
margin-bottom: 12px;
8+
}
9+
10+
.year-list {
11+
padding-left: 16px;
12+
}
13+
14+
.year-item {
15+
list-style: disc;
16+
margin-left: 12px;
17+
font-size: 16px;
18+
}
519
}
620

721
.blog-header {

0 commit comments

Comments
 (0)