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';
}
};
--- ---
// src/pages/about.astro
import BaseLayout from '../layouts/BaseLayout.astro';
import PageTitle from '../components/PageTitle.astro';
--- ---
// src/pages/stack.astro
import BaseLayout from '../layouts/BaseLayout.astro';
import PageTitle from '../components/PageTitle.astro';
import Badge from '../components/Badge.astro';
import { myIngredients, museumItems } from '../data/ingredients';
--- ---
// src/pages/kitchen.astro
import BaseLayout from '../layouts/BaseLayout.astro';
import KitchenHeader from '../components/KitchenHeader.astro';
import KitchenFooter from '../components/KitchenFooter.astro';
import KitchenTitle from '../components/KitchenTitle.astro';
// 파일 트리 데이터
const fileTree = `
matcha-logic/
├── public/
│ ├── admin/ # Decap CMS (config.yml)
│ ├── images/ # Assets
│ └── _redirects # Routing Rules
├── src/
│ ├── components/ # UI Components
│ ├── content/ # Markdown Data
│ ├── layouts/ # Page Shells
│ └── pages/ # Routing Points
└── astro.config.mjs # Configuration
`;
--- main* Logic Only
UTF-8 Astro