@shipsite.dev/cli 0.2.13 → 0.2.15

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.
@@ -66,6 +66,7 @@ async function addBlog(title) {
66
66
  writeFileSync(mdxPath, `---
67
67
  title: "${title}"
68
68
  description: ""
69
+ excerpt: ""
69
70
  date: "${today}"
70
71
  image: "/images/placeholder.webp"
71
72
  readingTime: 5
@@ -75,10 +76,6 @@ author: ""
75
76
 
76
77
  <BlogArticle>
77
78
 
78
- <BlogIntro>
79
- Write your introduction here.
80
- </BlogIntro>
81
-
82
79
  ## Getting Started
83
80
 
84
81
  Your content here...
@@ -1 +1 @@
1
- {"version":3,"file":"add.js","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"add.js","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { GeneratorContext } from '../types.js';
2
+ export declare function generateAiConfig(ctx: GeneratorContext): void;
3
+ //# sourceMappingURL=ai-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-config.d.ts","sourceRoot":"","sources":["../../../src/workspace/generators/ai-config.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAkNpD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,gBAAgB,GAAG,IAAI,CAe5D"}
@@ -0,0 +1,198 @@
1
+ import { join, dirname } from 'path';
2
+ import { existsSync, readFileSync, writeFileSync, mkdirSync } from 'fs';
3
+ const BEGIN_MARKER = '<!-- BEGIN SHIPSITE AUTO-GENERATED - DO NOT EDIT THIS SECTION -->';
4
+ const END_MARKER = '<!-- END SHIPSITE AUTO-GENERATED -->';
5
+ function resolveComponentsJson(rootDir) {
6
+ let searchDir = rootDir;
7
+ for (let i = 0; i < 10; i++) {
8
+ const candidate = join(searchDir, 'node_modules', '@shipsite.dev', 'components', 'components.json');
9
+ if (existsSync(candidate)) {
10
+ return JSON.parse(readFileSync(candidate, 'utf-8'));
11
+ }
12
+ const parent = dirname(searchDir);
13
+ if (parent === searchDir)
14
+ break;
15
+ searchDir = parent;
16
+ }
17
+ return null;
18
+ }
19
+ function formatComponentCatalog(components) {
20
+ const grouped = {};
21
+ for (const c of components) {
22
+ const cat = c.category.charAt(0).toUpperCase() + c.category.slice(1);
23
+ (grouped[cat] ??= []).push(c);
24
+ }
25
+ const lines = [];
26
+ for (const [category, comps] of Object.entries(grouped)) {
27
+ lines.push(`### ${category}`);
28
+ for (const c of comps) {
29
+ lines.push(`- **${c.name}** — ${c.description}`);
30
+ }
31
+ lines.push('');
32
+ }
33
+ return lines.join('\n');
34
+ }
35
+ function buildSharedContent(ctx, components) {
36
+ const config = ctx.config;
37
+ const siteName = config.name || 'ShipSite Project';
38
+ const locales = config.i18n?.locales || ['en'];
39
+ const defaultLocale = config.i18n?.defaultLocale || 'en';
40
+ const componentCatalog = components ? formatComponentCatalog(components.components) : '_Components not found — run `npm install` first._';
41
+ return `# ${siteName} — ShipSite Project
42
+
43
+ ## Tech Stack
44
+
45
+ - **Framework:** Next.js (App Router)
46
+ - **Content:** MDX files in \`content/\` — processed by content-collections
47
+ - **Styling:** Tailwind CSS v4 + shadcn/ui design tokens
48
+ - **i18n:** next-intl (locales: ${locales.join(', ')} — default: ${defaultLocale})
49
+ - **Components:** \`@shipsite.dev/components\` — pre-built marketing, blog & legal components
50
+
51
+ ## Project Structure
52
+
53
+ \`\`\`
54
+ shipsite.json # Site configuration (pages, nav, footer, colors, i18n)
55
+ # Navigation & footer labels accept string | { locale: "text" } for i18n
56
+ content/ # MDX content files, one folder per page
57
+ {page-name}/
58
+ {locale}.mdx # Content file per locale
59
+ components/ # Custom components (auto-available in MDX)
60
+ public/ # Static assets (images, fonts, favicons)
61
+ .shipsite/ # Generated workspace (do NOT edit)
62
+ \`\`\`
63
+
64
+ ## Content Conventions
65
+
66
+ - Each page is an MDX file at \`content/{page-name}/{locale}.mdx\`
67
+ - Markdown is automatically styled — no need to import prose wrappers
68
+ - ShipSite components are globally available in MDX — no imports needed
69
+ - Images go in \`public/images/\` and are referenced as \`/images/filename.ext\`
70
+ - Custom components in \`components/\` are also auto-available in MDX
71
+
72
+ ## Frontmatter by Page Type
73
+
74
+ ### Landing / Page (\`type: "landing"\` or \`type: "page"\`)
75
+ \`\`\`yaml
76
+ ---
77
+ title: "Page Title — Site Name"
78
+ description: "Meta description for SEO."
79
+ ---
80
+ \`\`\`
81
+ Then use marketing components directly:
82
+ \`\`\`mdx
83
+ <Hero title="..." description="..." primaryCta={{ label: "...", href: "..." }} />
84
+ <Features title="...">
85
+ <Feature title="..." description="..." />
86
+ </Features>
87
+ \`\`\`
88
+
89
+ ### Blog Article (\`type: "blog-article"\`)
90
+ \`\`\`yaml
91
+ ---
92
+ title: "Article Title"
93
+ description: "Meta description."
94
+ excerpt: "Short preview text for blog index cards."
95
+ date: "YYYY-MM-DD"
96
+ readingTime: 3
97
+ author: default
98
+ ---
99
+ \`\`\`
100
+ Wrap content in \`<BlogArticle>\`:
101
+ \`\`\`mdx
102
+ <BlogArticle>
103
+
104
+ ## Section Heading
105
+
106
+ Paragraph content with **bold** and [links](/path).
107
+
108
+ </BlogArticle>
109
+ \`\`\`
110
+
111
+ ### Blog Index (\`type: "blog-index"\`)
112
+ \`\`\`yaml
113
+ ---
114
+ title: "Blog — Site Name"
115
+ description: "Meta description."
116
+ ---
117
+ \`\`\`
118
+ \`\`\`mdx
119
+ <BlogIndex title="Blog" description="Latest posts." />
120
+ \`\`\`
121
+
122
+ ### Legal / Content (\`type: "legal"\`)
123
+ \`\`\`yaml
124
+ ---
125
+ title: "Privacy Policy"
126
+ description: "How we handle your data."
127
+ ---
128
+ \`\`\`
129
+ \`\`\`mdx
130
+ <ContentPage title="Privacy Policy" lastUpdated="YYYY-MM-DD">
131
+ <ContentSection title="1. Section">Content here.</ContentSection>
132
+ </ContentPage>
133
+ \`\`\`
134
+
135
+ ## Available Components
136
+
137
+ ${componentCatalog}
138
+
139
+ ## Key Rules
140
+
141
+ 1. **Never edit files inside \`.shipsite/\`** — they are auto-generated and will be overwritten.
142
+ 2. **Don't import ShipSite components** — they are globally registered in MDX.
143
+ 3. **Page structure is defined in \`shipsite.json\`** — to add a page, add an entry to the \`pages\` array and create the content folder.
144
+ 4. **One MDX file per locale per page** — e.g. \`content/landing/en.mdx\`, \`content/landing/de.mdx\`.
145
+ 5. **Use the component catalog above** to pick the right component for each section.
146
+ `;
147
+ }
148
+ function writeWithPreservedContent(filePath, autoContent) {
149
+ let userContent = '';
150
+ if (existsSync(filePath)) {
151
+ const existing = readFileSync(filePath, 'utf-8');
152
+ const endIdx = existing.indexOf(END_MARKER);
153
+ if (endIdx !== -1) {
154
+ userContent = existing.slice(endIdx + END_MARKER.length);
155
+ }
156
+ }
157
+ const dir = dirname(filePath);
158
+ if (!existsSync(dir)) {
159
+ mkdirSync(dir, { recursive: true });
160
+ }
161
+ const output = `${BEGIN_MARKER}\n${autoContent}\n${END_MARKER}${userContent || '\n'}`;
162
+ writeFileSync(filePath, output);
163
+ }
164
+ function writeCursorRules(filePath, content) {
165
+ let userContent = '';
166
+ if (existsSync(filePath)) {
167
+ const existing = readFileSync(filePath, 'utf-8');
168
+ const endIdx = existing.indexOf(END_MARKER);
169
+ if (endIdx !== -1) {
170
+ userContent = existing.slice(endIdx + END_MARKER.length);
171
+ }
172
+ }
173
+ const dir = dirname(filePath);
174
+ if (!existsSync(dir)) {
175
+ mkdirSync(dir, { recursive: true });
176
+ }
177
+ const frontmatter = `---
178
+ description: ShipSite project conventions, components, and content structure
179
+ globs: "**/*.mdx,**/*.tsx,shipsite.json"
180
+ alwaysApply: true
181
+ ---
182
+ `;
183
+ const output = `${frontmatter}${BEGIN_MARKER}\n${content}\n${END_MARKER}${userContent || '\n'}`;
184
+ writeFileSync(filePath, output);
185
+ }
186
+ export function generateAiConfig(ctx) {
187
+ const components = resolveComponentsJson(ctx.rootDir);
188
+ const content = buildSharedContent(ctx, components);
189
+ // Claude Code
190
+ writeWithPreservedContent(join(ctx.rootDir, 'CLAUDE.md'), content);
191
+ // Cursor
192
+ writeCursorRules(join(ctx.rootDir, '.cursor', 'rules', 'shipsite.mdc'), content);
193
+ // GitHub Copilot
194
+ writeWithPreservedContent(join(ctx.rootDir, '.github', 'copilot-instructions.md'), content);
195
+ // Windsurf
196
+ writeWithPreservedContent(join(ctx.rootDir, '.windsurf', 'rules', 'shipsite.md'), content);
197
+ }
198
+ //# sourceMappingURL=ai-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-config.js","sourceRoot":"","sources":["../../../src/workspace/generators/ai-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAaxE,MAAM,YAAY,GAAG,mEAAmE,CAAC;AACzF,MAAM,UAAU,GAAG,sCAAsC,CAAC;AAE1D,SAAS,qBAAqB,CAAC,OAAe;IAC5C,IAAI,SAAS,GAAG,OAAO,CAAC;IACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,cAAc,EAAE,eAAe,EAAE,YAAY,EAAE,iBAAiB,CAAC,CAAC;QACpG,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;QACtD,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;QAClC,IAAI,MAAM,KAAK,SAAS;YAAE,MAAM;QAChC,SAAS,GAAG,MAAM,CAAC;IACrB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,sBAAsB,CAAC,UAAuB;IACrD,MAAM,OAAO,GAAgC,EAAE,CAAC;IAChD,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACrE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACxD,KAAK,CAAC,IAAI,CAAC,OAAO,QAAQ,EAAE,CAAC,CAAC;QAC9B,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QACnD,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,kBAAkB,CAAC,GAAqB,EAAE,UAAiC;IAClF,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;IAC1B,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,IAAI,kBAAkB,CAAC;IACnD,MAAM,OAAO,GAAa,MAAM,CAAC,IAAI,EAAE,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC;IACzD,MAAM,aAAa,GAAW,MAAM,CAAC,IAAI,EAAE,aAAa,IAAI,IAAI,CAAC;IAEjE,MAAM,gBAAgB,GAAG,UAAU,CAAC,CAAC,CAAC,sBAAsB,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,mDAAmD,CAAC;IAE1I,OAAO,KAAK,QAAQ;;;;;;;kCAOY,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyF9E,gBAAgB;;;;;;;;;CASjB,CAAC;AACF,CAAC;AAED,SAAS,yBAAyB,CAAC,QAAgB,EAAE,WAAmB;IACtE,IAAI,WAAW,GAAG,EAAE,CAAC;IAErB,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC5C,IAAI,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;YAClB,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAED,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC9B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACrB,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,MAAM,GAAG,GAAG,YAAY,KAAK,WAAW,KAAK,UAAU,GAAG,WAAW,IAAI,IAAI,EAAE,CAAC;IACtF,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAClC,CAAC;AAED,SAAS,gBAAgB,CAAC,QAAgB,EAAE,OAAe;IACzD,IAAI,WAAW,GAAG,EAAE,CAAC;IAErB,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC5C,IAAI,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;YAClB,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAED,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC9B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACrB,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,WAAW,GAAG;;;;;CAKrB,CAAC;IAEA,MAAM,MAAM,GAAG,GAAG,WAAW,GAAG,YAAY,KAAK,OAAO,KAAK,UAAU,GAAG,WAAW,IAAI,IAAI,EAAE,CAAC;IAChG,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,GAAqB;IACpD,MAAM,UAAU,GAAG,qBAAqB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACtD,MAAM,OAAO,GAAG,kBAAkB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAEpD,cAAc;IACd,yBAAyB,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,EAAE,OAAO,CAAC,CAAC;IAEnE,SAAS;IACT,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAAC;IAEjF,iBAAiB;IACjB,yBAAyB,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,yBAAyB,CAAC,EAAE,OAAO,CAAC,CAAC;IAE5F,WAAW;IACX,yBAAyB,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,aAAa,CAAC,EAAE,OAAO,CAAC,CAAC;AAC7F,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../../src/workspace/generators/layout.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,wBAAgB,cAAc,CAAC,GAAG,EAAE,gBAAgB,GAAG,IAAI,CA0F1D"}
1
+ {"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../../src/workspace/generators/layout.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,wBAAgB,cAAc,CAAC,GAAG,EAAE,gBAAgB,GAAG,IAAI,CA6G1D"}
@@ -18,7 +18,7 @@ import { routing } from '../../i18n/routing';
18
18
  import { ShipSiteProvider } from '@shipsite.dev/components/context';
19
19
  import { ThemeProvider } from '@shipsite.dev/components/theme';
20
20
  import { Header, Footer } from '@shipsite.dev/components';
21
- import { generateNavLinks, generateAlternatePathMap, getConfig, getSiteUrl } from '@shipsite.dev/core';
21
+ import { generateNavLinks, generateAlternatePathMap, getConfig, getSiteUrl, getLocalizedField } from '@shipsite.dev/core';
22
22
  import '../../styles/globals.css';
23
23
  import type { Metadata, Viewport } from 'next';
24
24
 
@@ -50,6 +50,25 @@ export default async function LocaleLayout({ children, params }: LayoutProps) {
50
50
  const navLinks = generateNavLinks(locale);
51
51
  const alternatePathMap = generateAlternatePathMap();
52
52
 
53
+ const t = (v: string | Record<string, string>) =>
54
+ typeof v === 'string' ? v : (v[locale] || v.en || '');
55
+
56
+ const rawNav = config.navigation || { items: [] };
57
+ const navigation = {
58
+ items: rawNav.items.map((i: any) => ({ label: t(i.label), href: i.href })),
59
+ cta: rawNav.cta ? { label: t(rawNav.cta.label), href: rawNav.cta.href } : undefined,
60
+ };
61
+
62
+ const rawFooter = config.footer || {};
63
+ const footer = {
64
+ columns: rawFooter.columns?.map((c: any) => ({
65
+ title: t(c.title),
66
+ links: c.links.map((l: any) => ({ label: t(l.label), href: l.href })),
67
+ })),
68
+ social: rawFooter.social,
69
+ copyright: rawFooter.copyright ? t(rawFooter.copyright) : undefined,
70
+ };
71
+
53
72
  return (
54
73
  <html lang={locale} suppressHydrationWarning>
55
74
  <body>
@@ -65,8 +84,8 @@ export default async function LocaleLayout({ children, params }: LayoutProps) {
65
84
  background: config.colors?.background || '#ffffff',
66
85
  text: config.colors?.text || '#1f2a37',
67
86
  },
68
- navigation: config.navigation || { items: [] },
69
- footer: config.footer || {},
87
+ navigation,
88
+ footer,
70
89
  navLinks,
71
90
  alternatePathMap,
72
91
  locale,
@@ -1 +1 @@
1
- {"version":3,"file":"layout.js","sourceRoot":"","sources":["../../../src/workspace/generators/layout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAGnC,MAAM,UAAU,cAAc,CAAC,GAAqB;IAClD,mCAAmC;IACnC,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC;IACnC,IAAI,UAAU,GAAG,EAAE,CAAC;IACpB,IAAI,OAAO,EAAE,CAAC;QACZ,UAAU,GAAG;;aAEJ,OAAO;;KAEf,CAAC;IACJ,CAAC;IAED,6DAA6D;IAC7D,6DAA6D;IAC7D,aAAa,CACX,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,CAAC,EACjD;;;;;;;;;;;;;;;;;qEAiBiE,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoD9E,CACE,CAAC;IAEF,6EAA6E;IAC7E,mEAAmE;AACrE,CAAC"}
1
+ {"version":3,"file":"layout.js","sourceRoot":"","sources":["../../../src/workspace/generators/layout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAGnC,MAAM,UAAU,cAAc,CAAC,GAAqB;IAClD,mCAAmC;IACnC,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC;IACnC,IAAI,UAAU,GAAG,EAAE,CAAC;IACpB,IAAI,OAAO,EAAE,CAAC;QACZ,UAAU,GAAG;;aAEJ,OAAO;;KAEf,CAAC;IACJ,CAAC;IAED,6DAA6D;IAC7D,6DAA6D;IAC7D,aAAa,CACX,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,CAAC,EACjD;;;;;;;;;;;;;;;;;qEAiBiE,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuE9E,CACE,CAAC;IAEF,6EAA6E;IAC7E,mEAAmE;AACrE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../../../src/workspace/generators/page.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,wBAAgB,YAAY,CAAC,GAAG,EAAE,gBAAgB,GAAG,IAAI,CA6FxD"}
1
+ {"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../../../src/workspace/generators/page.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,wBAAgB,YAAY,CAAC,GAAG,EAAE,gBAAgB,GAAG,IAAI,CA4GxD"}
@@ -17,14 +17,29 @@ import { getConfig, getSiteUrl } from '@shipsite.dev/core/config';
17
17
  import * as Components from '@shipsite.dev/components';
18
18
  ${customComponentsImport}import type { Metadata } from 'next';
19
19
 
20
- // Map shadcn Table components to HTML element names for Markdown tables
20
+ // Map styled components to HTML elements for Markdown rendering
21
21
  const mdxHtmlOverrides = {
22
+ // Tables
22
23
  table: Components.Table,
23
24
  thead: Components.TableHeader,
24
25
  tbody: Components.TableBody,
25
26
  th: Components.TableHead,
26
27
  tr: Components.TableRow,
27
28
  td: Components.TableCell,
29
+ // Prose
30
+ h2: Components.ProseH2,
31
+ h3: Components.ProseH3,
32
+ h4: Components.ProseH4,
33
+ p: Components.ProseP,
34
+ a: Components.ProseA,
35
+ ul: Components.ProseUl,
36
+ ol: Components.ProseOl,
37
+ li: Components.ProseLi,
38
+ blockquote: Components.ProseBlockquote,
39
+ pre: Components.ProsePre,
40
+ code: Components.ProseCode,
41
+ hr: Components.ProseHr,
42
+ img: Components.ProseImg,
28
43
  };
29
44
 
30
45
  ${allComponentsMerge}
@@ -1 +1 @@
1
- {"version":3,"file":"page.js","sourceRoot":"","sources":["../../../src/workspace/generators/page.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAG/C,MAAM,UAAU,YAAY,CAAC,GAAqB;IAChD,MAAM,mBAAmB,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC;IACxE,MAAM,sBAAsB,GAAG,mBAAmB;QAChD,CAAC,CAAC,+DAA+D;QACjE,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,kBAAkB,GAAG,mBAAmB;QAC5C,CAAC,CAAC,sFAAsF;QACxF,CAAC,CAAC,iEAAiE,CAAC;IAEtE,aAAa,CACX,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU,CAAC,EAC9D;;;;;;;EAOF,sBAAsB;;;;;;;;;;;;EAYtB,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6DnB,CACE,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"page.js","sourceRoot":"","sources":["../../../src/workspace/generators/page.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAG/C,MAAM,UAAU,YAAY,CAAC,GAAqB;IAChD,MAAM,mBAAmB,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC;IACxE,MAAM,sBAAsB,GAAG,mBAAmB;QAChD,CAAC,CAAC,+DAA+D;QACjE,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,kBAAkB,GAAG,mBAAmB;QAC5C,CAAC,CAAC,sFAAsF;QACxF,CAAC,CAAC,iEAAiE,CAAC;IAEtE,aAAa,CACX,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU,CAAC,EAC9D;;;;;;;EAOF,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2BtB,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6DnB,CACE,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/workspace/index.ts"],"names":[],"mappings":"AAeA,wBAAgB,iBAAiB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,KAAK,GAAG,OAAO,CAAA;CAAE,GAAG,IAAI,CAkCrG;AAED,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAiB9F"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/workspace/index.ts"],"names":[],"mappings":"AAgBA,wBAAgB,iBAAiB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,KAAK,GAAG,OAAO,CAAA;CAAE,GAAG,IAAI,CAmCrG;AAED,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAiB9F"}
@@ -11,6 +11,7 @@ import { generateLayout } from './generators/layout.js';
11
11
  import { generatePage } from './generators/page.js';
12
12
  import { generateSitemapAndRobots } from './generators/sitemap-robots.js';
13
13
  import { generateProjectFiles } from './generators/project-files.js';
14
+ import { generateAiConfig } from './generators/ai-config.js';
14
15
  export function generateWorkspace({ rootDir, mode }) {
15
16
  const config = JSON.parse(readFileSync(join(rootDir, 'shipsite.json'), 'utf-8'));
16
17
  // Derive i18n config from pages if not explicitly set
@@ -36,6 +37,7 @@ export function generateWorkspace({ rootDir, mode }) {
36
37
  generatePage(ctx);
37
38
  generateSitemapAndRobots(ctx);
38
39
  generateProjectFiles(ctx);
40
+ generateAiConfig(ctx);
39
41
  console.log(' Generated .shipsite workspace');
40
42
  }
41
43
  export async function prepareWorkspace(rootDir, mode) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/workspace/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/workspace/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../src/workspace/styles.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AA2BnD,wBAAgB,cAAc,CAAC,GAAG,EAAE,gBAAgB,GAAG,IAAI,CAgI1D"}
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../src/workspace/styles.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AA2BnD,wBAAgB,cAAc,CAAC,GAAG,EAAE,gBAAgB,GAAG,IAAI,CAuH1D"}
@@ -123,6 +123,12 @@ body {
123
123
  padding-inline: clamp(1rem, 3vw, 3rem);
124
124
  }
125
125
 
126
+ .blog-content > .prose-container {
127
+ max-width: none;
128
+ padding-inline: 0;
129
+ margin-inline: 0;
130
+ }
131
+
126
132
  @layer utilities {
127
133
  @keyframes marquee {
128
134
  from { transform: translateX(0); }
@@ -134,21 +140,6 @@ body {
134
140
  }
135
141
  }
136
142
 
137
- .page-prose > h2, .page-prose > h3, .page-prose > h4,
138
- .page-prose > p, .page-prose > ul, .page-prose > ol,
139
- .page-prose > blockquote {
140
- width: 100%;
141
- max-width: 76rem;
142
- margin-inline: auto;
143
- padding-inline: clamp(1rem, 3vw, 3rem);
144
- }
145
- .page-prose > h2 { margin-top: 2.5rem; margin-bottom: 1rem; font-size: clamp(1.375rem, 1.1rem + 1.2vw, 2.25rem); font-weight: 600; }
146
- .page-prose > h3 { margin-top: 1.5rem; margin-bottom: 0.75rem; font-size: clamp(1.125rem, 1rem + 0.6vw, 1.5rem); font-weight: 600; }
147
- .page-prose > p { font-size: 1rem; line-height: 1.6; margin-top: 0.5rem; margin-bottom: 0.5rem; }
148
- .page-prose > ul { list-style: disc; padding-left: 1.75rem; margin-block: 0.75rem; }
149
- .page-prose > ol { list-style: decimal; padding-left: 1.75rem; margin-block: 0.75rem; }
150
- .page-prose > p a { color: var(--primary); text-decoration: underline; font-weight: 500; }
151
- .page-prose > p a:hover { text-decoration: none; }
152
143
  `);
153
144
  }
154
145
  //# sourceMappingURL=styles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/workspace/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAGhE,SAAS,uBAAuB,CAAC,OAAe,EAAE,MAAc;IAC9D,IAAI,SAAS,GAAG,OAAO,CAAC;IACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,cAAc,EAAE,eAAe,EAAE,YAAY,CAAC,CAAC;QAC9E,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACzC,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC3C,MAAM,SAAS,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC;QAC7G,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,QAAQ,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;YACzC,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC7D,IAAI,cAAc,GAAG,EAAE,CAAC;YACxB,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;YAC3D,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC7B,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACtE,cAAc,GAAG,cAAc,QAAQ,IAAI,CAAC;YAC9C,CAAC;YACD,OAAO,EAAE,eAAe,EAAE,cAAc,GAAG,IAAI,EAAE,cAAc,EAAE,CAAC;QACpE,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;QAClC,IAAI,MAAM,KAAK,SAAS;YAAE,MAAM;QAChC,SAAS,GAAG,MAAM,CAAC;IACrB,CAAC;IACD,OAAO,EAAE,eAAe,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,GAAqB;IAClD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC1C,MAAM,EAAE,eAAe,EAAE,cAAc,EAAE,GAAG,uBAAuB,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACzF,MAAM,YAAY,GAAG,oBAAoB,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;IAEnE,aAAa,CACX,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,EAC3B,yBAAyB,eAAe,GAAG,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqE3D,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkDb,CACE,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/workspace/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAGhE,SAAS,uBAAuB,CAAC,OAAe,EAAE,MAAc;IAC9D,IAAI,SAAS,GAAG,OAAO,CAAC;IACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,cAAc,EAAE,eAAe,EAAE,YAAY,CAAC,CAAC;QAC9E,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACzC,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC3C,MAAM,SAAS,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC;QAC7G,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,QAAQ,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;YACzC,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC7D,IAAI,cAAc,GAAG,EAAE,CAAC;YACxB,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;YAC3D,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC7B,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACtE,cAAc,GAAG,cAAc,QAAQ,IAAI,CAAC;YAC9C,CAAC;YACD,OAAO,EAAE,eAAe,EAAE,cAAc,GAAG,IAAI,EAAE,cAAc,EAAE,CAAC;QACpE,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;QAClC,IAAI,MAAM,KAAK,SAAS;YAAE,MAAM;QAChC,SAAS,GAAG,MAAM,CAAC;IACrB,CAAC;IACD,OAAO,EAAE,eAAe,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,GAAqB;IAClD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC1C,MAAM,EAAE,eAAe,EAAE,cAAc,EAAE,GAAG,uBAAuB,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACzF,MAAM,YAAY,GAAG,oBAAoB,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;IAEnE,aAAa,CACX,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,EAC3B,yBAAyB,eAAe,GAAG,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqE3D,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyCb,CACE,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shipsite.dev/cli",
3
- "version": "0.2.13",
3
+ "version": "0.2.15",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/shipsite/shipsite",