1
- import Head from 'next/head'
2
- import Image from 'next/image'
3
- import { Inter } from '@next/font/google'
4
- import styles from '@/styles/Home.module.css'
1
+ import Card from 'components/Card' ;
2
+ import dayjs from 'dayjs' ;
3
+ import data from 'data/posts' ;
5
4
6
- const inter = Inter ( { subsets : [ 'latin' ] } )
7
-
8
- export default function Home ( ) {
5
+ export default function Home ( { posts} ) {
9
6
return (
10
- < >
11
- < Head >
12
- < title > Create Next App</ title >
13
- < meta name = "description" content = "Generated by create next app" />
14
- < meta name = "viewport" content = "width=device-width, initial-scale=1" />
15
- < link rel = "icon" href = "/favicon.ico" />
16
- </ Head >
17
- < main className = { styles . main } >
18
- < div className = { styles . description } >
19
- < p >
20
- Get started by editing
21
- < code className = { styles . code } > pages/index.tsx</ code >
22
- </ p >
23
- < div >
24
- < a
25
- href = "https://vercel.com?utm_source=create-next-app& utm_medium = default - template & utm_campaign = create - next - app "
26
- target = "_blank"
27
- rel = "noopener noreferrer"
28
- >
29
- By{ ' ' }
30
- < Image
31
- src = "/vercel.svg"
32
- alt = "Vercel Logo"
33
- className = { styles . vercelLogo }
34
- width = { 100 }
35
- height = { 24 }
36
- priority
37
- />
38
- </ a >
39
- </ div >
40
- </ div >
7
+ < main className = "container" >
8
+
9
+ {
10
+ posts . map ( item => < Card
11
+
12
+ key = { item . id }
41
13
42
- < div className = { styles . center } >
43
- < Image
44
- className = { styles . logo }
45
- src = "/next.svg"
46
- alt = "Next.js Logo"
47
- width = { 180 }
48
- height = { 37 }
49
- priority
50
- />
51
- < div className = { styles . thirteen } >
52
- < Image
53
- src = "/thirteen.svg"
54
- alt = "13"
55
- width = { 40 }
56
- height = { 31 }
57
- priority
58
- />
59
- </ div >
60
- </ div >
14
+ title = { item . title }
61
15
62
- < div className = { styles . grid } >
63
- < a
64
- href = "https://nextjs.org/docs?utm_source=create-next-app& utm_medium = default - template & utm_campaign = create - next - app "
65
- className = { styles . card }
66
- target = "_blank"
67
- rel = "noopener noreferrer"
68
- >
69
- < h2 className = { inter . className } >
70
- Docs < span > -></ span >
71
- </ h2 >
72
- < p className = { inter . className } >
73
- Find in-depth information about Next.js features and API.
74
- </ p >
75
- </ a >
16
+ tag = { item . tags [ 0 ] }
17
+
18
+ description = { item . description }
76
19
77
- < a
78
- href = "https://nextjs.org/learn?utm_source=create-next-app& utm_medium = default - template & utm_campaign = create - next - app "
79
- className = { styles . card }
80
- target = "_blank"
81
- rel = "noopener noreferrer"
82
- >
83
- < h2 className = { inter . className } >
84
- Learn < span > -></ span >
85
- </ h2 >
86
- < p className = { inter . className } >
87
- Learn about Next.js in an interactive course with quizzes!
88
- </ p >
89
- </ a >
20
+ author = { item . author }
90
21
91
- < a
92
- href = "https://vercel.com/templates?framework=next.js& utm_source = create - next - app & utm_medium = default - template & utm_campaign = create - next - app "
93
- className = { styles . card }
94
- target = "_blank"
95
- rel = "noopener noreferrer"
96
- >
97
- < h2 className = { inter . className } >
98
- Templates < span > -></ span >
99
- </ h2 >
100
- < p className = { inter . className } >
101
- Discover and deploy boilerplate example Next.js projects.
102
- </ p >
103
- </ a >
22
+ date = { dayjs ( item . date ) . format ( 'DD MMMM, YYYY' ) }
104
23
105
- < a
106
- href = "https://vercel.com/new?utm_source=create-next-app& utm_medium = default - template & utm_campaign = create - next - app "
107
- className = { styles . card }
108
- target = "_blank"
109
- rel = "noopener noreferrer"
110
- >
111
- < h2 className = { inter . className } >
112
- Deploy < span > -></ span >
113
- </ h2 >
114
- < p className = { inter . className } >
115
- Instantly deploy your Next.js site to a shareable URL
116
- with Vercel.
117
- </ p >
118
- </ a >
119
- </ div >
120
- </ main >
121
- </ >
24
+ image = { item . image }
25
+
26
+ /> )
27
+ }
28
+
29
+ </ main >
122
30
)
123
31
}
32
+
33
+ export async function getStaticProps ( context ) {
34
+
35
+
36
+
37
+ return {
38
+ props : { posts :data } ,
39
+ }
40
+ }
0 commit comments