File tree Expand file tree Collapse file tree 8 files changed +815
-18
lines changed
Expand file tree Collapse file tree 8 files changed +815
-18
lines changed Original file line number Diff line number Diff line change @@ -23,6 +23,7 @@ export default defineConfig({
2323 nav : [
2424 { text : "Home" , link : "/" } ,
2525 { text : "Blog" , link : "/posts/" } ,
26+ { text : "Archive" , link : "/archive" } ,
2627 ] ,
2728
2829 sidebar : {
@@ -42,6 +43,7 @@ export default defineConfig({
4243 } ,
4344
4445 rewrites : {
46+ "contents/archive/:slug*" : "archive/:slug*" ,
4547 "contents/posts/index.md" : "posts/index.md" ,
4648 "contents/posts/:slug*" : "posts/:slug*" ,
4749 "contents/projects/index.md" : "projects/index.md" ,
Original file line number Diff line number Diff line change 1+ <script setup >
2+ import ArchiveContent from ' @/components/ArchiveContent/ArchiveContent.vue'
3+ </script >
4+
5+ <ArchiveContent />
Original file line number Diff line number Diff line change 135135 }
136136 },
137137 {
138- "url" : " /posts/React/build-react-1 " ,
138+ "url" : " /posts/Web/indexed-db " ,
139139 "frontmatter" : {
140- "title" : " DIY React 1 - JSX 마크업을 Virtual DOM 객체로 변환하기 " ,
140+ "title" : " IndexedDB 를 TypeOrm 처럼 사용하기 " ,
141141 "createdAt" : " 2025-10-07T00:00:00.000Z" ,
142- "category" : " React " ,
143- "description" : " React의 핵심 개념과 동작 원리를 이해하기 위해, React를 직접 구현해보는 시리즈의 첫 번째 글입니다. 이번 글에서는 JSX 마크업을 Virtual DOM 객체로 변환하는 과정을 다룹니다 ."
142+ "category" : " Web " ,
143+ "description" : " IndexedDB 는 브라우저 내장 데이터베이스로, 대용량 데이터를 클라이언트에 저장할 수 있습니다. 이 글에서는 TypeOrm 스타일의 추상화를 통해 IndexedDB 를 더 쉽게 사용하는 방법을 소개합니다 ."
144144 }
145145 },
146146 {
147- "url" : " /posts/Web/indexed-db " ,
147+ "url" : " /posts/React/build-react-1 " ,
148148 "frontmatter" : {
149- "title" : " IndexedDB 를 TypeOrm 처럼 사용하기 " ,
149+ "title" : " DIY React 1 - JSX 마크업을 Virtual DOM 객체로 변환하기 " ,
150150 "createdAt" : " 2025-10-07T00:00:00.000Z" ,
151- "category" : " Web " ,
152- "description" : " IndexedDB 는 브라우저 내장 데이터베이스로, 대용량 데이터를 클라이언트에 저장할 수 있습니다. 이 글에서는 TypeOrm 스타일의 추상화를 통해 IndexedDB 를 더 쉽게 사용하는 방법을 소개합니다 ."
151+ "category" : " React " ,
152+ "description" : " React의 핵심 개념과 동작 원리를 이해하기 위해, React를 직접 구현해보는 시리즈의 첫 번째 글입니다. 이번 글에서는 JSX 마크업을 Virtual DOM 객체로 변환하는 과정을 다룹니다 ."
153153 }
154154 },
155155 {
Original file line number Diff line number Diff line change 1+ .archive-content {
2+ max-width : 800px ;
3+ margin : 0 auto;
4+ padding : 2rem 1rem ;
5+ }
6+
7+ .til-header {
8+ text-align : center;
9+ margin-bottom : 3rem ;
10+ }
11+
12+ .til-header h1 {
13+ font-size : 2.5rem ;
14+ margin-bottom : 1rem ;
15+ color : var (--vp-c-text-1 );
16+ }
17+
18+ .til-description {
19+ font-size : 1.1rem ;
20+ color : var (--vp-c-text-2 );
21+ font-style : italic;
22+ }
23+
24+ @media (max-width : 768px ) {
25+ .til-header {
26+ margin-bottom : 2rem ;
27+ }
28+
29+ .til-header h1 {
30+ font-size : 1.5rem ;
31+ }
32+
33+ .til-description {
34+ font-size : 1rem ;
35+ }
36+ }
37+
38+ @media (max-width : 480px ) {
39+ .til-header {
40+ margin-bottom : 1.5rem ;
41+ }
42+
43+ .til-header h1 {
44+ font-size : 1.25rem ;
45+ }
46+
47+ .til-description {
48+ font-size : 0.75rem ;
49+ }
50+ }
51+
52+ .til-input-section {
53+ margin-bottom : 2rem ;
54+ padding : 0 0.25rem ;
55+ }
56+
57+ .til-input-section h3 {
58+ font-size : 1.3rem ;
59+ margin-bottom : 1rem ;
60+ color : var (--vp-c-text-1 );
61+ }
62+
63+ .til-divider {
64+ height : 1px ;
65+ background : var (--vp-c-divider );
66+ margin : 3rem 0 ;
67+ }
68+
69+ .til-list-section {
70+ margin-bottom : 2rem ;
71+ }
72+
73+ .til-list-section h3 {
74+ font-size : 1.3rem ;
75+ margin-bottom : 0.5rem ;
76+ color : var (--vp-c-text-1 );
77+ }
78+
79+ .til-list-description {
80+ font-size : 0.95rem ;
81+ color : var (--vp-c-text-2 );
82+ margin-bottom : 1.5rem ;
83+ }
84+
85+ .giscus-input : deep (.giscus ),
86+ .giscus-input : deep (iframe ) {
87+ margin-top : 0 ;
88+ }
89+
90+ .giscus-frame {
91+ margin-top : 0 ;
92+ }
Original file line number Diff line number Diff line change 1+ <script setup lang="ts">
2+ import { computed } from " vue" ;
3+ import { useData } from " vitepress" ;
4+ import Giscus from " @giscus/vue" ;
5+ import { GISCUS } from " @/constants/giscus" ;
6+ import " ./ArchiveContent.css" ;
7+
8+ const { isDark, lang } = useData ();
9+
10+ const theme = computed (() => (isDark .value ? " dark" : " light" ));
11+ const mapping = " pathname" ;
12+ const uiLang = computed (() => (lang .value ?.startsWith (" ko" ) ? " ko" : " en" ));
13+ </script >
14+
15+ <template >
16+ <div class =" archive-content" >
17+ <header class =" til-header" >
18+ <h1 >📚 Archive of TIL</h1 >
19+ <p class =" til-description" >매일 하나씩, 아주 작은 것이라도 배우고 기록합니다.</p >
20+ </header >
21+
22+ <section class =" til-giscus-section" >
23+ <Giscus
24+ class =" giscus-comments"
25+ :repo =" GISCUS.repo"
26+ :repo-id =" GISCUS.repoId"
27+ :category =" GISCUS.category"
28+ :category-id =" GISCUS.categoryId"
29+ :mapping =" mapping"
30+ strict =" 0"
31+ reactions-enabled =" 0"
32+ emit-metadata =" 0"
33+ input-position =" top"
34+ :theme =" theme"
35+ :lang =" uiLang"
36+ crossorigin =" anonymous"
37+ loading =" lazy"
38+ />
39+ </section >
40+ </div >
41+ </template >
Original file line number Diff line number Diff line change @@ -3,13 +3,7 @@ import { computed } from "vue";
33import { useData } from " vitepress" ;
44import Giscus from " @giscus/vue" ;
55import { isProduction } from " @/constants/env" ;
6-
7- const GISCUS = {
8- repo: " toothlessdev/toothlessdev.github.io" ,
9- repoId: " R_kgDOK8A2Yg" ,
10- category: " General" ,
11- categoryId: " DIC_kwDOK8A2Ys4Cv8uz" ,
12- } as const ;
6+ import { GISCUS } from " @/constants/giscus" ;
137
148const { isDark, lang } = useData ();
159
Original file line number Diff line number Diff line change 1+ export const GISCUS = {
2+ repo : "toothlessdev/toothlessdev.github.io" ,
3+ repoId : "R_kgDOK8A2Yg" ,
4+ category : "General" ,
5+ categoryId : "DIC_kwDOK8A2Ys4Cv8uz" ,
6+ } as const ;
You can’t perform that action at this time.
0 commit comments