diff --git a/packages/labs-cli/src/create.ts b/packages/labs-cli/src/create.ts index ebd6495..39a23b9 100644 --- a/packages/labs-cli/src/create.ts +++ b/packages/labs-cli/src/create.ts @@ -5,6 +5,11 @@ import { readCreateInput } from './create-input.js'; import { writeProject } from './create-write.js'; import { archiveTemplate } from './create-archive.js'; +const siteIndexTemplate = new URL( + '../templates/generated-project/site-index.astro', + import.meta.url, +); + function assertAvailableSlug(root: string, slug: string): void { const reserved = [ path.join(root, 'apps', slug), @@ -159,8 +164,7 @@ export async function createLab(root: string, args: string[]): Promise { if (site) { files['astro.config.ts'] = `import { defineConfig } from 'astro/config';\nimport tailwindcss from '@tailwindcss/vite';\nexport default defineConfig({site:'https://labs.lasvegasfortransit.org',base:'${base}',build:{format:'directory'},vite:{plugins:[tailwindcss()]}});\n`; - files['src/pages/index.astro'] = - `---\nimport '../styles.css';\nimport LabLifecycleNotice from '@lvbt/ui/astro/lifecycle-notice';\nimport manifest from '../../lab.config';\n---\n{manifest.title}

{manifest.title}

{manifest.summary}

\n`; + files['src/pages/index.astro'] = await readFile(siteIndexTemplate, 'utf8'); } else { files['vite.config.ts'] = `import { defineConfig } from 'vite';\nimport react from '@vitejs/plugin-react';\nimport tailwindcss from '@tailwindcss/vite';\nexport default defineConfig({base:'${base}',plugins:[react(),tailwindcss()]});\n`; diff --git a/packages/labs-cli/templates/generated-project/site-index.astro b/packages/labs-cli/templates/generated-project/site-index.astro new file mode 100644 index 0000000..eff5cd2 --- /dev/null +++ b/packages/labs-cli/templates/generated-project/site-index.astro @@ -0,0 +1,21 @@ +--- +import '../styles.css'; +import LabLifecycleNotice from '@lvbt/ui/astro/lifecycle-notice'; +import manifest from '../../lab.config'; +--- + + + + + + + {manifest.title} + + +
+ +

{manifest.title}

+

{manifest.summary}

+
+ + diff --git a/packages/labs-cli/tests/create-archive.test.ts b/packages/labs-cli/tests/create-archive.test.ts index 3f7b715..b480604 100644 --- a/packages/labs-cli/tests/create-archive.test.ts +++ b/packages/labs-cli/tests/create-archive.test.ts @@ -1,4 +1,4 @@ -import { mkdtemp, rm, writeFile } from 'node:fs/promises'; +import { mkdtemp, readFile, rm, writeFile } from 'node:fs/promises'; import os from 'node:os'; import path from 'node:path'; import { fileURLToPath } from 'node:url'; @@ -49,6 +49,13 @@ test.each(['site', 'app'])( expect(archive).toContain('createArchiveContext'); expect(archive).toContain('archive.failures'); expect(archive).toContain('page.reload()'); + if (profile === 'site') { + const template = await readFile( + new URL('../templates/generated-project/site-index.astro', import.meta.url), + 'utf8', + ); + expect(files?.['src/pages/index.astro']).toBe(template); + } for (const name of [ 'tests/e2e/home.spec.ts-snapshots/page-desktop-lvbt.png', 'tests/e2e/home.spec.ts-snapshots/page-mobile-lvbt.png',