create-specra 0.1.7 → 0.2.1

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.
Files changed (135) hide show
  1. package/LICENSE.MD +16 -4
  2. package/README.md +53 -17
  3. package/dist/chunk-3DKWECRK.js +45 -0
  4. package/dist/chunk-3DKWECRK.js.map +1 -0
  5. package/dist/chunk-MA7QG54W.js +74 -0
  6. package/dist/chunk-MA7QG54W.js.map +1 -0
  7. package/dist/cli.d.ts +2 -0
  8. package/dist/cli.js +33 -0
  9. package/dist/cli.js.map +1 -0
  10. package/dist/deploy-SCEMUQNS.js +141 -0
  11. package/dist/deploy-SCEMUQNS.js.map +1 -0
  12. package/dist/index.js +11 -11
  13. package/dist/index.js.map +1 -1
  14. package/dist/login-NKDRQXRE.js +71 -0
  15. package/dist/login-NKDRQXRE.js.map +1 -0
  16. package/dist/logout-H543QEKU.js +20 -0
  17. package/dist/logout-H543QEKU.js.map +1 -0
  18. package/dist/logs-YDAUCMAV.js +71 -0
  19. package/dist/logs-YDAUCMAV.js.map +1 -0
  20. package/dist/projects-3TAY7EDJ.js +42 -0
  21. package/dist/projects-3TAY7EDJ.js.map +1 -0
  22. package/package.json +9 -4
  23. package/templates/book-docs/docs/v1.0.0/concepts.mdx +89 -0
  24. package/templates/book-docs/docs/v1.0.0/content/_category_.json +7 -0
  25. package/templates/book-docs/docs/v1.0.0/content/formatting.mdx +128 -0
  26. package/templates/book-docs/docs/v1.0.0/content/reusable-content.mdx +116 -0
  27. package/templates/book-docs/docs/v1.0.0/content/structure.mdx +92 -0
  28. package/templates/book-docs/docs/v1.0.0/customization/_category_.json +7 -0
  29. package/templates/book-docs/docs/v1.0.0/customization/branding.mdx +115 -0
  30. package/templates/book-docs/docs/v1.0.0/customization/themes.mdx +81 -0
  31. package/templates/book-docs/docs/v1.0.0/introduction.mdx +38 -0
  32. package/templates/book-docs/docs/v1.0.0/quickstart.mdx +112 -0
  33. package/templates/book-docs/docs/v2.0.0/concepts.mdx +89 -0
  34. package/templates/book-docs/docs/v2.0.0/content/_category_.json +7 -0
  35. package/templates/book-docs/docs/v2.0.0/content/formatting.mdx +128 -0
  36. package/templates/book-docs/docs/v2.0.0/content/reusable-content.mdx +116 -0
  37. package/templates/book-docs/docs/v2.0.0/content/structure.mdx +92 -0
  38. package/templates/book-docs/docs/v2.0.0/customization/_category_.json +7 -0
  39. package/templates/book-docs/docs/v2.0.0/customization/branding.mdx +115 -0
  40. package/templates/book-docs/docs/v2.0.0/customization/themes.mdx +81 -0
  41. package/templates/book-docs/docs/v2.0.0/introduction.mdx +39 -0
  42. package/templates/book-docs/docs/v2.0.0/quickstart.mdx +112 -0
  43. package/templates/book-docs/gitignore +7 -0
  44. package/templates/book-docs/package.json +28 -0
  45. package/templates/book-docs/postcss.config.mjs +8 -0
  46. package/templates/book-docs/public/api-specs/openapi-example.json +259 -0
  47. package/templates/book-docs/public/api-specs/postman-example.json +205 -0
  48. package/templates/book-docs/public/api-specs/test-api.json +256 -0
  49. package/templates/book-docs/public/api-specs/users-api.json +264 -0
  50. package/templates/book-docs/specra.config.json +77 -0
  51. package/templates/{minimal/app/globals.css → book-docs/src/app.css} +3 -4
  52. package/templates/book-docs/src/app.html +17 -0
  53. package/templates/book-docs/src/routes/+layout.server.ts +11 -0
  54. package/templates/book-docs/src/routes/+layout.svelte +21 -0
  55. package/templates/book-docs/src/routes/+page.server.ts +9 -0
  56. package/templates/book-docs/src/routes/docs/[version]/[...slug]/+page.server.ts +119 -0
  57. package/templates/book-docs/src/routes/docs/[version]/[...slug]/+page.svelte +129 -0
  58. package/templates/book-docs/svelte.config.js +8 -0
  59. package/templates/book-docs/tsconfig.json +12 -0
  60. package/templates/book-docs/vite.config.ts +6 -0
  61. package/templates/jbrains-docs/docs/v1.0.0/advanced/_category_.json +8 -0
  62. package/templates/jbrains-docs/docs/v1.0.0/advanced/async.mdx +95 -0
  63. package/templates/jbrains-docs/docs/v1.0.0/advanced/generics.mdx +126 -0
  64. package/templates/jbrains-docs/docs/v1.0.0/basics/_category_.json +8 -0
  65. package/templates/jbrains-docs/docs/v1.0.0/basics/control-flow.mdx +106 -0
  66. package/templates/jbrains-docs/docs/v1.0.0/basics/syntax.mdx +129 -0
  67. package/templates/jbrains-docs/docs/v1.0.0/basics/types.mdx +135 -0
  68. package/templates/jbrains-docs/docs/v1.0.0/getting-started.mdx +111 -0
  69. package/templates/jbrains-docs/docs/v1.0.0/home.mdx +37 -0
  70. package/templates/jbrains-docs/docs/v1.0.0/tools/_category_.json +8 -0
  71. package/templates/jbrains-docs/docs/v1.0.0/tools/build-tools.mdx +165 -0
  72. package/templates/jbrains-docs/docs/v1.0.0/tools/testing.mdx +112 -0
  73. package/templates/jbrains-docs/docs/v2.0.0/advanced/_category_.json +8 -0
  74. package/templates/jbrains-docs/docs/v2.0.0/advanced/async.mdx +95 -0
  75. package/templates/jbrains-docs/docs/v2.0.0/advanced/generics.mdx +126 -0
  76. package/templates/jbrains-docs/docs/v2.0.0/basics/_category_.json +8 -0
  77. package/templates/jbrains-docs/docs/v2.0.0/basics/control-flow.mdx +106 -0
  78. package/templates/jbrains-docs/docs/v2.0.0/basics/syntax.mdx +129 -0
  79. package/templates/jbrains-docs/docs/v2.0.0/basics/types.mdx +135 -0
  80. package/templates/jbrains-docs/docs/v2.0.0/getting-started.mdx +111 -0
  81. package/templates/jbrains-docs/docs/v2.0.0/home.mdx +37 -0
  82. package/templates/jbrains-docs/docs/v2.0.0/tools/_category_.json +8 -0
  83. package/templates/jbrains-docs/docs/v2.0.0/tools/build-tools.mdx +165 -0
  84. package/templates/jbrains-docs/docs/v2.0.0/tools/testing.mdx +112 -0
  85. package/templates/jbrains-docs/gitignore +7 -0
  86. package/templates/jbrains-docs/package.json +28 -0
  87. package/templates/jbrains-docs/postcss.config.mjs +8 -0
  88. package/templates/jbrains-docs/public/api-specs/openapi-example.json +259 -0
  89. package/templates/jbrains-docs/public/api-specs/postman-example.json +205 -0
  90. package/templates/jbrains-docs/public/api-specs/test-api.json +256 -0
  91. package/templates/jbrains-docs/public/api-specs/users-api.json +264 -0
  92. package/templates/jbrains-docs/specra.config.json +80 -0
  93. package/templates/jbrains-docs/src/app.css +8 -0
  94. package/templates/jbrains-docs/src/app.html +17 -0
  95. package/templates/jbrains-docs/src/routes/+layout.server.ts +11 -0
  96. package/templates/jbrains-docs/src/routes/+layout.svelte +21 -0
  97. package/templates/jbrains-docs/src/routes/+page.server.ts +9 -0
  98. package/templates/jbrains-docs/src/routes/docs/[version]/[...slug]/+page.server.ts +119 -0
  99. package/templates/jbrains-docs/src/routes/docs/[version]/[...slug]/+page.svelte +129 -0
  100. package/templates/jbrains-docs/svelte.config.js +8 -0
  101. package/templates/jbrains-docs/tsconfig.json +12 -0
  102. package/templates/jbrains-docs/vite.config.ts +6 -0
  103. package/templates/minimal/docs/v1.0.0/about.mdx +3 -3
  104. package/templates/minimal/docs/v2.0.0/about.mdx +3 -3
  105. package/templates/minimal/gitignore +7 -0
  106. package/templates/minimal/package.json +18 -24
  107. package/templates/minimal/specra.config.json +12 -63
  108. package/templates/minimal/src/app.css +8 -0
  109. package/templates/minimal/src/app.html +17 -0
  110. package/templates/minimal/src/routes/+layout.server.ts +11 -0
  111. package/templates/minimal/src/routes/+layout.svelte +21 -0
  112. package/templates/minimal/src/routes/+page.server.ts +9 -0
  113. package/templates/minimal/src/routes/docs/[version]/[...slug]/+page.server.ts +119 -0
  114. package/templates/minimal/src/routes/docs/[version]/[...slug]/+page.svelte +129 -0
  115. package/templates/minimal/svelte.config.js +8 -0
  116. package/templates/minimal/tsconfig.json +7 -36
  117. package/templates/minimal/vite.config.ts +6 -0
  118. package/templates/minimal/README.md +0 -132
  119. package/templates/minimal/app/api/mdx-watch/route.ts +0 -6
  120. package/templates/minimal/app/api/search/route.ts +0 -75
  121. package/templates/minimal/app/docs/[version]/[...slug]/loading.tsx +0 -7
  122. package/templates/minimal/app/docs/[version]/[...slug]/page.tsx +0 -205
  123. package/templates/minimal/app/docs/[version]/[...slug]/page.tsx.bak +0 -203
  124. package/templates/minimal/app/docs/[version]/not-found.tsx +0 -10
  125. package/templates/minimal/app/docs/[version]/page.tsx +0 -27
  126. package/templates/minimal/app/layout.tsx +0 -62
  127. package/templates/minimal/app/not-found.tsx +0 -10
  128. package/templates/minimal/app/page.tsx +0 -179
  129. package/templates/minimal/next.config.mjs +0 -1
  130. package/templates/minimal/package-lock.json +0 -7881
  131. package/templates/minimal/proxy_.ts +0 -22
  132. package/templates/minimal/scripts/generate-redirects.mjs +0 -128
  133. package/templates/minimal/scripts/generate-static-redirects.mjs +0 -115
  134. package/templates/minimal/scripts/index-search.ts +0 -182
  135. package/templates/minimal/scripts/test-search.ts +0 -83
@@ -1,62 +0,0 @@
1
- import type { Metadata } from "next"
2
- import { Geist, Geist_Mono } from "next/font/google"
3
- import { getConfig, getAssetPath, SpecraConfig, initConfig } from "specra/lib"
4
- import { ConfigProvider, TabProvider } from "specra/components"
5
- import specraConfig from "../specra.config.json"
6
- import "./globals.css"
7
-
8
- const _geist = Geist({ subsets: ["latin"] })
9
- const _geistMono = Geist_Mono({ subsets: ["latin"] })
10
-
11
- // Initialize Specra config
12
- initConfig(specraConfig as unknown as Partial<SpecraConfig>)
13
-
14
- export async function generateMetadata(): Promise<Metadata> {
15
- const config = getConfig()
16
-
17
- return {
18
- title: {
19
- default: config.site.title,
20
- template: `%s | ${config.site.title}`,
21
- },
22
- description: config.site.description || "Modern documentation platform",
23
- metadataBase: config.site.url ? new URL(config.site.url) : undefined,
24
- icons: {
25
- icon: config.site.favicon ? [{ url: getAssetPath(config.site.favicon) }] : [],
26
- apple: getAssetPath("/apple-icon.png"),
27
- },
28
- openGraph: {
29
- title: config.site.title,
30
- description: config.site.description,
31
- url: config.site.url,
32
- siteName: config.site.title,
33
- locale: config.site.language || "en",
34
- type: "website",
35
- },
36
- twitter: {
37
- card: "summary_large_image",
38
- title: config.site.title,
39
- description: config.site.description,
40
- },
41
- }
42
- }
43
-
44
- export default function RootLayout({ children }: { children: React.ReactNode }) {
45
- const config = getConfig()
46
- const defaultTab = config.navigation?.tabGroups?.[0]?.id ?? ""
47
-
48
- return (
49
- <html lang={config.site.language || "en"}>
50
- <body
51
- // className={`${geist.className} ${geist.style.fontFamily} font-sans antialiased`}
52
- className={`font-sans antialiased`}
53
- >
54
- <ConfigProvider config={config}>
55
- <TabProvider defaultTab={defaultTab}>
56
- {children}
57
- </TabProvider>
58
- </ConfigProvider>
59
- </body>
60
- </html>
61
- )
62
- }
@@ -1,10 +0,0 @@
1
-
2
- import { VersionNotFound } from "specra/components"
3
-
4
- export default function NotFound() {
5
- return (
6
- <>
7
- <VersionNotFound />
8
- </>
9
- )
10
- }
@@ -1,179 +0,0 @@
1
- import Link from "next/link"
2
- import { ArrowRight, BookOpen, Zap, Code, Github, Twitter, Linkedin } from "lucide-react"
3
- import { getConfig } from "specra/lib"
4
- import { Button, SiteBanner, Logo } from "specra/components"
5
-
6
- export default function HomePage() {
7
- // Server component - can use getConfig directly
8
- const config = getConfig()
9
-
10
- const activeVersion = config.site.activeVersion || "v4.0.0"
11
- const docsUrl = `/docs/${activeVersion}/about`
12
-
13
- return (
14
- <div className="min-h-screen bg-background">
15
- <SiteBanner config={config} />
16
- <header className="border-b border-border">
17
- <div className="container flex h-16 items-center justify-between px-6 mx-auto">
18
- <Link href="/" className="flex items-center gap-2">
19
- <Logo logo={config.site.logo} alt={config.site.title} className="w-18 object-contain" />
20
- <span className="font-semibold text-lg text-foreground">Specra</span>
21
- </Link>
22
- <div className="flex items-center gap-6">
23
- <Link href={docsUrl} className="text-sm text-muted-foreground hover:text-foreground transition-colors">
24
- Documentation
25
- </Link>
26
- {
27
- config?.social?.github ? (
28
- <Link href={config.social.github} target="_blank" rel="noopener noreferrer" className="text-muted-foreground hover:text-foreground transition-colors">
29
- <Github className="h-5 w-5" />
30
- </Link>
31
- ) : null
32
- }
33
- <Button asChild>
34
- <Link href={docsUrl}>Get Started</Link>
35
- </Button>
36
- </div>
37
- </div>
38
- </header>
39
-
40
- <main className="container px-6 mx-auto">
41
- {/* Hero Section */}
42
- <div className="mx-auto text-center space-y-6 py-20 max-w-4xl">
43
- <h1 className="text-5xl md:text-6xl font-bold tracking-tight text-foreground">
44
- Beautiful documentation made <span className="text-primary">simple</span>
45
- </h1>
46
- <p className="text-xl md:text-2xl text-muted-foreground leading-relaxed max-w-3xl mx-auto">
47
- The modern documentation framework that grows with your project
48
- </p>
49
- <p className="text-base md:text-lg text-muted-foreground leading-relaxed max-w-2xl mx-auto">
50
- Built for developers who want powerful, flexible documentation without the complexity.
51
- Write in MDX, configure with ease, and ship beautiful docs in minutes.
52
- </p>
53
- <div className="flex items-center justify-center gap-4 pt-4">
54
- <Button asChild size="lg">
55
- <Link href={docsUrl}>
56
- Get Started
57
- <ArrowRight className="ml-2 h-4 w-4" />
58
- </Link>
59
- </Button>
60
- {
61
- config?.social?.github ? (
62
- <Button asChild size="lg" variant="outline">
63
- <Link href={config.social.github} target="_blank" rel="noopener noreferrer">
64
- <Github className="mr-2 h-4 w-4" />
65
- View on GitHub
66
- </Link>
67
- </Button>
68
- ) : null
69
- }
70
- </div>
71
- </div>
72
-
73
- {/* Key Features */}
74
- <div className="grid md:grid-cols-3 gap-6 py-16 max-w-6xl mx-auto">
75
- <div className="p-6 rounded-lg border border-border bg-card hover:shadow-md transition-shadow">
76
- <div className="h-12 w-12 rounded-lg bg-primary/10 flex items-center justify-center mb-4">
77
- <BookOpen className="h-6 w-6 text-primary" />
78
- </div>
79
- <h3 className="text-lg font-semibold text-foreground mb-2">MDX-Powered</h3>
80
- <p className="text-sm text-muted-foreground leading-relaxed">
81
- Write your docs in MDX with support for custom components, code blocks with syntax highlighting, and rich interactive content.
82
- </p>
83
- </div>
84
-
85
- <div className="p-6 rounded-lg border border-border bg-card hover:shadow-md transition-shadow">
86
- <div className="h-12 w-12 rounded-lg bg-primary/10 flex items-center justify-center mb-4">
87
- <Zap className="h-6 w-6 text-primary" />
88
- </div>
89
- <h3 className="text-lg font-semibold text-foreground mb-2">Lightning Fast</h3>
90
- <p className="text-sm text-muted-foreground leading-relaxed">
91
- Built on Next.js for optimal performance. Static generation, instant page loads, and seamless navigation out of the box.
92
- </p>
93
- </div>
94
-
95
- <div className="p-6 rounded-lg border border-border bg-card hover:shadow-md transition-shadow">
96
- <div className="h-12 w-12 rounded-lg bg-primary/10 flex items-center justify-center mb-4">
97
- <Code className="h-6 w-6 text-primary" />
98
- </div>
99
- <h3 className="text-lg font-semibold text-foreground mb-2">Developer First</h3>
100
- <p className="text-sm text-muted-foreground leading-relaxed">
101
- Version control friendly, Git-based workflow, and full TypeScript support. Your docs live alongside your code.
102
- </p>
103
- </div>
104
- </div>
105
-
106
- {/* CTA Section */}
107
- <div className="py-16 max-w-4xl mx-auto">
108
- <div className="rounded-xl border border-border bg-card p-8 md:p-12 text-center space-y-6">
109
- <h2 className="text-3xl md:text-4xl font-bold text-foreground">Ready to Get Started?</h2>
110
- <p className="text-muted-foreground max-w-2xl mx-auto">
111
- Create beautiful, versioned documentation for your project in minutes. <br />
112
- Specra gives you everything you need to write, organize, and publish great docs.
113
- </p>
114
- <div className="flex flex-col sm:flex-row items-center justify-center gap-4 pt-2">
115
- <Button asChild size="lg" variant="default">
116
- <Link href={docsUrl}>
117
- Read the Docs
118
- <ArrowRight className="ml-2 h-4 w-4" />
119
- </Link>
120
- </Button>
121
- {
122
- config?.social?.github ? (
123
- <Button asChild size="lg" variant="outline">
124
- <Link href={config.social.github} target="_blank" rel="noopener noreferrer">
125
- <Github className="mr-2 h-4 w-4" />
126
- Star on GitHub
127
- </Link>
128
- </Button>
129
- ) : null
130
- }
131
- </div>
132
- </div>
133
- </div>
134
-
135
- {/* Community Section */}
136
- <div className="py-16 max-w-3xl mx-auto text-center space-y-6">
137
- <h2 className="text-2xl md:text-3xl font-bold text-foreground">Join the Community</h2>
138
- <p className="text-muted-foreground">
139
- Specra is open source and community-driven. Connect with developers and stay updated.
140
- </p>
141
- <div className="flex items-center justify-center gap-4 pt-4">
142
- {
143
- config?.social?.github ? (
144
- <Button asChild variant="outline" size="lg">
145
- <Link href={config.social.github} target="_blank" rel="noopener noreferrer">
146
- <Github className="mr-2 h-5 w-5" />
147
- GitHub
148
- </Link>
149
- </Button>
150
- ) : null
151
- }
152
- {
153
- config?.social?.twitter ? (
154
- <Button asChild variant="outline" size="lg">
155
- <Link href={config.social.twitter} target="_blank" rel="noopener noreferrer">
156
- <Twitter className="mr-2 h-5 w-5" />
157
- Twitter
158
- </Link>
159
- </Button>
160
- ) : null
161
- }
162
- {
163
- config?.social?.linkedin ? (
164
- <Button asChild variant="outline" size="lg">
165
- <Link href={config.social.linkedin} target="_blank" rel="noopener noreferrer">
166
- <Linkedin className="mr-2 h-5 w-5" />
167
- LinkedIn
168
- </Link>
169
- </Button>
170
- ) : null
171
- }
172
- </div>
173
- </div>
174
- </main>
175
-
176
- {/* <Footer /> */}
177
- </div>
178
- )
179
- }
@@ -1 +0,0 @@
1
- export { default } from "specra/next-config"