~/kitchen _

The Source.

이 블로그를 구성하는 실제 소스 코드(Raw Code)의 로직을 탐색합니다.

src / pages ReadOnly

* 파일을 클릭하면 우측 에디터에
실제 로직(Frontmatter)이 로드됩니다.

ASTRO index.astro
---
// src/pages/index.astro
import BaseLayout from '../layouts/BaseLayout.astro';
import Card from '../components/Card.astro';
import { getCollection } from 'astro:content';
import Button from '../components/Button.astro';
import { siteCourse } from '../data/siteCourse';

const allPosts = await getCollection('blog');
const sortedPosts = allPosts.sort((a, b) => b.data.pubDate.valueOf() - a.data.pubDate.valueOf());
const latestPosts = sortedPosts.slice(0, 3);

const allUpdates = await getCollection('updates');
const recentUpdates = allUpdates
  .sort((a, b) => {
    const dateDiff = b.data.date.valueOf() - a.data.date.valueOf();
    if (dateDiff !== 0) return dateDiff;
    return b.data.version.localeCompare(a.data.version, undefined, { numeric: true });
  })
  .slice(0, 5);

const getTypeColor = (type: string) => {
  switch(type) {
    case 'feature': return 'bg-matcha-500';
    case 'design': return 'bg-coral';
    case 'fix': return 'bg-slate-400';
    default: return 'bg-matcha-200';
  }
};
---
main* Logic Only
UTF-8 Astro