74 lines
1.9 KiB
Plaintext
74 lines
1.9 KiB
Plaintext
---
|
|
export interface Props {
|
|
children: any;
|
|
}
|
|
import '../styles/global.css';
|
|
import '../styles/theme.css';
|
|
import 'github-markdown-css/github-markdown-light.css';
|
|
import { Menu, MenuItem } from '../apps/menu';
|
|
export interface Props {
|
|
title?: string;
|
|
description?: string;
|
|
lang?: string;
|
|
charset?: string;
|
|
showMenu?: boolean;
|
|
menu?: MenuItem[];
|
|
basename?: string;
|
|
}
|
|
|
|
const {
|
|
title = 'Light Code',
|
|
description = 'A lightweight code editor',
|
|
lang = 'zh-CN',
|
|
charset = 'UTF-8',
|
|
showMenu = true,
|
|
menu,
|
|
basename = '',
|
|
} = Astro.props;
|
|
---
|
|
|
|
<html lang={lang}>
|
|
<head>
|
|
<meta charset={charset} />
|
|
<meta name='viewport' content='width=device-width, initial-scale=1.0' />
|
|
<title>{title}</title>
|
|
<meta name='description' content={description} />
|
|
<style>
|
|
html,
|
|
body {
|
|
width: 100%;
|
|
height: 100%;
|
|
margin: 0;
|
|
padding: 0;
|
|
overflow: hidden;
|
|
}
|
|
</style>
|
|
</head>
|
|
<body class='flex flex-col items-center bg-background'>
|
|
<div class='w-full'>
|
|
<slot name='header' />
|
|
</div>
|
|
<main class='flex-1 flex overflow-hidden w-full max-w-7xl px-4 py-4'>
|
|
{
|
|
showMenu && (
|
|
<aside class='w-64 min-w-64 h-full flex flex-col'>
|
|
<slot name='menu'>
|
|
<Menu items={menu!} client:only basename={basename} />
|
|
</slot>
|
|
</aside>
|
|
)
|
|
}
|
|
<div class='flex-1 h-full flex items-start justify-center overflow-hidden'>
|
|
<article class='markdown-body h-full scrollbar overflow-auto px-8 py-6 w-full max-w-4xl border border-border rounded-lg shadow-sm bg-card'>
|
|
<slot />
|
|
</article>
|
|
</div>
|
|
</main>
|
|
<footer class='w-full border-t border-border bg-card/50 backdrop-blur-sm'>
|
|
<slot name='footer'>
|
|
<div class='text-center text-sm text-muted-foreground py-4'>Copyright © 2025</div>
|
|
</slot>
|
|
</footer>
|
|
</body>
|
|
</html>
|