@aerobuilt/template-minimal 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +18 -0
- package/client/assets/scripts/index.ts +2 -0
- package/client/assets/styles/global.css +18 -0
- package/client/components/footer.html +29 -0
- package/client/components/header.html +14 -0
- package/client/components/meta.html +19 -0
- package/client/layouts/base.html +20 -0
- package/client/pages/about.html +9 -0
- package/client/pages/index.html +14 -0
- package/content/site.ts +26 -0
- package/package.json +25 -0
- package/public/favicon.svg +7 -0
- package/tsconfig.json +19 -0
- package/vite.config.ts +6 -0
package/README.md
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# @aerobuilt/template-minimal
|
|
2
|
+
|
|
3
|
+
Minimal Aero template: one layout, index + about, `site.ts` only. No server, no content collections, no Alpine/HTMX. Use with `pnpm create aero my-app` (default) or `pnpm create aero my-app --template minimal`.
|
|
4
|
+
|
|
5
|
+
## Structure
|
|
6
|
+
|
|
7
|
+
- `client/` — Pages, layouts, components, assets
|
|
8
|
+
- `content/site.ts` — Global site data
|
|
9
|
+
- `public/` — Static assets
|
|
10
|
+
- No `server/` — static-only
|
|
11
|
+
|
|
12
|
+
## Commands
|
|
13
|
+
|
|
14
|
+
From the scaffolded project (after `pnpm create aero my-app`):
|
|
15
|
+
|
|
16
|
+
- `pnpm dev` — Vite dev server
|
|
17
|
+
- `pnpm build` — Static build to `dist/`
|
|
18
|
+
- `pnpm preview` — Preview built site
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
<script is:build>
|
|
2
|
+
import site from '@content/site'
|
|
3
|
+
const links = site.footer.links
|
|
4
|
+
</script>
|
|
5
|
+
|
|
6
|
+
<footer>
|
|
7
|
+
<ul>
|
|
8
|
+
<li each="{link in links}">
|
|
9
|
+
<a href="{link.path}">{link.label}</a>
|
|
10
|
+
</li>
|
|
11
|
+
</ul>
|
|
12
|
+
<style>
|
|
13
|
+
@scope {
|
|
14
|
+
:scope {
|
|
15
|
+
position: fixed;
|
|
16
|
+
inset-inline: 0;
|
|
17
|
+
margin-inline: auto;
|
|
18
|
+
bottom: 2rem;
|
|
19
|
+
width: fit-content;
|
|
20
|
+
}
|
|
21
|
+
ul {
|
|
22
|
+
display: flex;
|
|
23
|
+
gap: 2rem;
|
|
24
|
+
justify-content: center;
|
|
25
|
+
list-style-type: none;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
</style>
|
|
29
|
+
</footer>
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<script is:build>
|
|
2
|
+
import site from '@content/site'
|
|
3
|
+
const { title, description, image } = Aero.props
|
|
4
|
+
const defaultImage = Aero.site + site.meta.ogImage
|
|
5
|
+
</script>
|
|
6
|
+
|
|
7
|
+
<meta charset="utf-8" />
|
|
8
|
+
<meta name="viewport" content="width=device-width,initial-scale=1" />
|
|
9
|
+
|
|
10
|
+
<title>{title || site.meta.title}</title>
|
|
11
|
+
<meta name="title" content="{title || site.meta.title}" />
|
|
12
|
+
<meta name="description" content="{description || site.meta.description}" />
|
|
13
|
+
<link rel="icon" type="image/svg+xml" href="{site.meta.icon.svg}" />
|
|
14
|
+
<link rel="canonical" href="{Aero.site}" />
|
|
15
|
+
|
|
16
|
+
<meta property="og:type" content="website" />
|
|
17
|
+
<meta property="og:title" content="{title || site.meta.title}" />
|
|
18
|
+
<meta property="og:description" content="{description || site.meta.description}" />
|
|
19
|
+
<meta property="og:image" content="{image || defaultImage}" />
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
<script is:build>
|
|
2
|
+
import meta from '@components/meta'
|
|
3
|
+
import footer from '@components/footer'
|
|
4
|
+
</script>
|
|
5
|
+
|
|
6
|
+
<html lang="en">
|
|
7
|
+
<head>
|
|
8
|
+
<meta-component props="{...Aero.props}" />
|
|
9
|
+
<link rel="stylesheet" href="@styles/global.css" />
|
|
10
|
+
<script type="module">
|
|
11
|
+
import aero from 'aerobuilt'
|
|
12
|
+
aero.mount()
|
|
13
|
+
</script>
|
|
14
|
+
</head>
|
|
15
|
+
|
|
16
|
+
<body id="app">
|
|
17
|
+
<slot></slot>
|
|
18
|
+
<footer-component />
|
|
19
|
+
</body>
|
|
20
|
+
</html>
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
<script is:build>
|
|
2
|
+
import base from '@layouts/base'
|
|
3
|
+
import header from '@components/header'
|
|
4
|
+
import site from '@content/site'
|
|
5
|
+
</script>
|
|
6
|
+
|
|
7
|
+
<base-layout title="Meta Title">
|
|
8
|
+
<header-component title="{site.about.title}" subtitle="{site.about.subtitle}" />
|
|
9
|
+
</base-layout>
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
<script is:build>
|
|
2
|
+
import base from '@layouts/base'
|
|
3
|
+
import header from '@components/header'
|
|
4
|
+
import site from '@content/site'
|
|
5
|
+
|
|
6
|
+
const headerProps = {
|
|
7
|
+
title: site.home.title,
|
|
8
|
+
subtitle: site.home.subtitle,
|
|
9
|
+
}
|
|
10
|
+
</script>
|
|
11
|
+
|
|
12
|
+
<base-layout>
|
|
13
|
+
<header-component props="{...headerProps}" />
|
|
14
|
+
</base-layout>
|
package/content/site.ts
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export default {
|
|
2
|
+
meta: {
|
|
3
|
+
title: 'Minimal Template',
|
|
4
|
+
description: 'Site Meta Description',
|
|
5
|
+
ogImage: '/aero.png',
|
|
6
|
+
icon: {
|
|
7
|
+
ico: '/favicon.ico',
|
|
8
|
+
svg: '/favicon.svg',
|
|
9
|
+
apple: '/apple-touch-icon.png',
|
|
10
|
+
},
|
|
11
|
+
},
|
|
12
|
+
home: {
|
|
13
|
+
title: 'Welcome to Aero',
|
|
14
|
+
subtitle: 'A minimal static site with HTML-first templates.',
|
|
15
|
+
},
|
|
16
|
+
about: {
|
|
17
|
+
title: 'About',
|
|
18
|
+
subtitle: 'A minimal about page.',
|
|
19
|
+
},
|
|
20
|
+
footer: {
|
|
21
|
+
links: [
|
|
22
|
+
{ label: 'Home', path: '/' },
|
|
23
|
+
{ label: 'About', path: '/about' },
|
|
24
|
+
],
|
|
25
|
+
},
|
|
26
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@aerobuilt/template-minimal",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"author": "Jamie Wilson",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "https://github.com/aerobuilt/aero.git",
|
|
10
|
+
"directory": "packages/templates/minimal"
|
|
11
|
+
},
|
|
12
|
+
"homepage": "https://github.com/aerobuilt/aero",
|
|
13
|
+
"dependencies": {
|
|
14
|
+
"aerobuilt": "0.1.0"
|
|
15
|
+
},
|
|
16
|
+
"devDependencies": {
|
|
17
|
+
"autoprefixer": "^10.4.24",
|
|
18
|
+
"vite": "8.0.0-beta.15"
|
|
19
|
+
},
|
|
20
|
+
"scripts": {
|
|
21
|
+
"dev": "vite dev",
|
|
22
|
+
"build": "vite build",
|
|
23
|
+
"preview": "vite build && vite preview"
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path
|
|
3
|
+
fill="gold"
|
|
4
|
+
fill-rule="evenodd"
|
|
5
|
+
clip-rule="evenodd"
|
|
6
|
+
d="M19.6667 1.99469H17.1813L7.84799 17.9947L7.84799 20H14.3333V30L16.8187 30.0054L26.152 14.0054V12H19.6667V1.99469Z" />
|
|
7
|
+
</svg>
|
package/tsconfig.json
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"target": "ES2022",
|
|
4
|
+
"module": "ESNext",
|
|
5
|
+
"moduleResolution": "bundler",
|
|
6
|
+
"types": ["vite/client"],
|
|
7
|
+
"paths": {
|
|
8
|
+
"~/*": ["./*"],
|
|
9
|
+
"@client/*": ["./client/*"],
|
|
10
|
+
"@content/*": ["./content/*"],
|
|
11
|
+
"@pages/*": ["./client/pages/*"],
|
|
12
|
+
"@layouts/*": ["./client/layouts/*"],
|
|
13
|
+
"@components/*": ["./client/components/*"],
|
|
14
|
+
"@styles/*": ["./client/assets/styles/*"],
|
|
15
|
+
"@scripts/*": ["./client/assets/scripts/*"],
|
|
16
|
+
"@images/*": ["./client/assets/images/*"]
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|