@lukoweb/apitogo 0.1.67 → 0.1.68

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 (55) hide show
  1. package/dist/cli/cli.js +529 -379
  2. package/docs/components/playground.mdx +6 -8
  3. package/docs/components/slot.mdx +2 -2
  4. package/docs/concepts/auth-provider-api-identities.md +8 -12
  5. package/docs/configuration/ai-assistants.md +3 -3
  6. package/docs/configuration/api-catalog.md +4 -4
  7. package/docs/configuration/api-reference.md +11 -11
  8. package/docs/configuration/authentication-auth0.md +8 -1
  9. package/docs/configuration/authentication-azure-ad.md +8 -1
  10. package/docs/configuration/authentication-clerk.md +8 -1
  11. package/docs/configuration/authentication-firebase.md +8 -1
  12. package/docs/configuration/authentication-pingfederate.md +8 -1
  13. package/docs/configuration/authentication-supabase.md +10 -3
  14. package/docs/configuration/authentication.md +96 -195
  15. package/docs/configuration/build-configuration.mdx +2 -2
  16. package/docs/configuration/docs.md +10 -10
  17. package/docs/configuration/footer.mdx +84 -180
  18. package/docs/configuration/llms.md +1 -1
  19. package/docs/configuration/make-config.mdx +12 -5
  20. package/docs/configuration/manifest.md +4 -14
  21. package/docs/configuration/navigation.mdx +2 -2
  22. package/docs/configuration/overview.md +95 -310
  23. package/docs/configuration/protected-routes.md +3 -3
  24. package/docs/configuration/search.md +4 -3
  25. package/docs/configuration/site.md +5 -5
  26. package/docs/configuration/slots.mdx +1 -1
  27. package/docs/custom-plugins.md +1 -1
  28. package/docs/customization/colors-theme.mdx +8 -8
  29. package/docs/customization/fonts.md +4 -4
  30. package/docs/deploy/apitogo.md +18 -12
  31. package/docs/deploy/cloudflare-pages.md +0 -1
  32. package/docs/deploy/direct-upload.md +0 -1
  33. package/docs/deploy/github-pages.md +1 -2
  34. package/docs/deploy/vercel.md +2 -3
  35. package/docs/deployment.md +11 -10
  36. package/docs/extending/events.md +1 -1
  37. package/docs/guides/custom-pages.md +4 -8
  38. package/docs/guides/environment-variables.md +41 -49
  39. package/docs/guides/managing-api-keys-and-identities.md +40 -115
  40. package/docs/guides/navigation-rules.mdx +1 -1
  41. package/docs/guides/processors.mdx +2 -2
  42. package/docs/guides/transforming-examples.md +1 -1
  43. package/docs/markdown/code-blocks.md +2 -2
  44. package/docs/markdown/mdx.md +1 -1
  45. package/docs/mcp/go-live.md +100 -0
  46. package/docs/mcp/overview.md +76 -0
  47. package/docs/mcp/setup.md +173 -0
  48. package/docs/mcp/shape.md +76 -0
  49. package/docs/mcp/tools.md +102 -0
  50. package/docs/plugins.md +20 -1
  51. package/docs/quickstart.md +49 -54
  52. package/docs/writing.mdx +1 -1
  53. package/package.json +1 -1
  54. package/src/vite/plugin-config.ts +3 -0
  55. package/docs/guides/navigation-migration.md +0 -87
@@ -2,213 +2,117 @@
2
2
  sidebar_label: Footer
3
3
  sidebar_icon: panel-bottom-dashed
4
4
  description:
5
- Learn how to configure the footer in APIToGo, including columns, social links, copyright notice,
6
- and logo. Customize the footer's position and content with slots.
5
+ Configure the site footer via modules.landing.content.footer in apitogo.config.json, or site.footer
6
+ for advanced layouts.
7
7
  ---
8
8
 
9
9
  # Footer Configuration
10
10
 
11
- The footer is a customizable component that appears at the bottom of every page in your APIToGo
12
- site. You can configure various aspects of the footer including its position, columns, social links,
13
- copyright notice, and logo.
14
-
15
- ## Basic Configuration
16
-
17
- The footer is configured in your `apitogo.config.tsx` file under the `page.footer` property:
18
-
19
- ```tsx
20
- const config: ApitogoConfig = {
21
- site: {
22
- footer: {
23
- // Footer configuration goes here
24
- position: "center",
25
- copyright: `© ${new Date().getFullYear()} YourCompany LLC. All rights reserved.`,
26
- // Other options...
27
- },
28
- },
29
- // Other configuration...
30
- };
31
- ```
32
-
33
- ## Position
34
-
35
- You can control the horizontal alignment of the footer content using the `position` property:
36
-
37
- ```tsx
38
- footer: {
39
- position: "center"; // default
40
- // or
41
- position: "start";
42
- // or
43
- position: "end";
11
+ Portal sites (MCP / create-apitogo scaffolds) render a global footer from
12
+ **`apitogo.config.json`** → `modules.landing.content.footer`. That footer appears on home, docs, API
13
+ reference, pricing, and auth pages, and replaces the default “Built with APIToGo” line.
14
+
15
+ ## Recommended: landing content footer (JSON)
16
+
17
+ Ask for real link columns, social URLs, copyright, and optional brand/tagline before inventing
18
+ copy. Example:
19
+
20
+ ```json title=config.json
21
+ {
22
+ "modules": {
23
+ "landing": {
24
+ "enabled": true,
25
+ "path": "/",
26
+ "layout": "landing",
27
+ "content": {
28
+ "footer": {
29
+ "columns": [
30
+ {
31
+ "title": "Product",
32
+ "links": [
33
+ { "label": "Features", "href": "/features" },
34
+ { "label": "Pricing", "href": "/pricing" },
35
+ { "label": "Documentation", "href": "/docs" }
36
+ ]
37
+ },
38
+ {
39
+ "title": "Company",
40
+ "links": [
41
+ { "label": "About", "href": "/about" },
42
+ { "label": "Contact", "href": "/contact" }
43
+ ]
44
+ }
45
+ ],
46
+ "social": [
47
+ { "icon": "github", "href": "https://github.com/your-org" },
48
+ { "icon": "linkedin", "href": "https://www.linkedin.com/company/apitogo" }
49
+ ],
50
+ "copyright": "© 2026 Your Company. All rights reserved."
51
+ }
52
+ }
53
+ }
54
+ }
44
55
  }
45
56
  ```
46
57
 
47
- This affects how the content in the footer's main row is positioned horizontally.
58
+ With MCP connected, prefer asking the user for footer content, then editing JSON (there is no
59
+ dedicated footer MCP tool). See [MCP overview](../mcp/overview.md).
48
60
 
49
- ## Columns
61
+ ## Advanced: `site.footer` (engine)
50
62
 
51
- The footer can include multiple columns of links, each with its own title:
63
+ For custom layouts you can still configure `site.footer` (often from TSX when you need dynamic
64
+ values):
52
65
 
53
- ```tsx
54
- footer: {
55
- columns: [
56
- {
57
- title: "Product",
58
- position: "center", // position in grid, optional: start, center, end
59
- links: [
60
- { label: "Features", href: "/features" },
61
- { label: "Pricing", href: "/pricing" },
62
- { label: "Documentation", href: "/docs" },
63
- { label: "GitHub", href: "https://github.com/org/repo" }, // Auto-detected as external
66
+ ```tsx title=config
67
+ export default {
68
+ site: {
69
+ footer: {
70
+ position: "center", // "start" | "center" | "end"
71
+ copyright: `© ${new Date().getFullYear()} YourCompany LLC. All rights reserved.`,
72
+ columns: [
73
+ {
74
+ title: "Product",
75
+ links: [
76
+ { label: "Features", href: "/features" },
77
+ { label: "Pricing", href: "/pricing" },
78
+ ],
79
+ },
64
80
  ],
65
- },
66
- {
67
- title: "Company",
68
- links: [
69
- { label: "About", href: "/about" },
70
- { label: "Blog", href: "/blog" },
71
- { label: "Contact", href: "/contact" },
81
+ social: [
82
+ { icon: "github", href: "https://github.com/yourusername" },
83
+ { icon: "x", href: "https://x.com/yourhandle", label: "Follow us" },
72
84
  ],
85
+ logo: {
86
+ src: { light: "/logo-light.svg", dark: "/logo-dark.svg" },
87
+ alt: "Company Logo",
88
+ width: "100px",
89
+ },
73
90
  },
74
- ];
75
- }
76
- ```
77
-
78
- Each column can have its own positioning with the `position` property, which can be `"start"`,
79
- `"center"`, or `"end"`. This controls how the column is positioned within the footer grid.
80
-
81
- ## Social Media Links
82
-
83
- You can add social media links to your footer:
84
-
85
- ```tsx
86
- footer: {
87
- social: [
88
- {
89
- icon: "github",
90
- href: "https://github.com/yourusername",
91
- },
92
- {
93
- icon: "twitter",
94
- href: "https://twitter.com/yourhandle",
95
- label: "Follow us", // optional label text
96
- },
97
- ];
98
- }
99
- ```
100
-
101
- The `icon` property currently can be one of the following values:
102
-
103
- <div className="[&_ul]:grid [&_ul]:grid-cols-[repeat(3,auto)]">
104
-
105
- - `"reddit"`
106
- - `"discord"`
107
- - `"github"`
108
- - `"x"` (Twitter)
109
- - `"linkedin"`
110
- - `"facebook"`
111
- - `"instagram"`
112
- - `"youtube"`
113
- - `"tiktok"`
114
- - `"twitch"`
115
- - `"pinterest"`
116
- - `"snapchat"`
117
- - `"whatsapp"`
118
- - `"telegram"`
119
-
120
- </div>
121
-
122
- Or you can provide a custom React component.
123
-
124
- ## Copyright Notice
125
-
126
- Add a copyright notice with the `copyright` property:
127
-
128
- ```tsx
129
- footer: {
130
- copyright: `© ${new Date().getFullYear()} YourCompany LLC. All rights reserved.`;
131
- }
91
+ },
92
+ };
132
93
  ```
133
94
 
134
- ## Logo
135
-
136
- You can add a logo to your footer:
95
+ ### Social icons
137
96
 
138
- ```tsx
139
- footer: {
140
- logo: {
141
- src: {
142
- light: "/path/to/light-logo.png",
143
- dark: "/path/to/dark-logo.png"
144
- },
145
- alt: "Company Logo",
146
- width: "120px" // optional width
147
- }
148
- }
149
- ```
97
+ Supported `icon` values include: `reddit`, `discord`, `github`, `x`, `linkedin`, `facebook`,
98
+ `instagram`, `youtube`, `tiktok`, `twitch`, `pinterest`, `snapchat`, `whatsapp`, `telegram` — or a
99
+ custom React component.
150
100
 
151
- ## Customizing with Slot
101
+ ## Slots
152
102
 
153
- APIToGo provides `footer-before` and `footer-after` slots that allow you to insert custom content
154
- before or after the main footer columns:
103
+ Insert content around the footer with `footer-before` and `footer-after` in site config `slots`:
155
104
 
156
105
  ```tsx
157
- // In your apitogo.config.tsx
158
106
  slots: {
159
107
  "footer-before": () => (
160
108
  <div>
161
109
  <h3>Custom pre-footer content</h3>
162
- <p>This appears before the columns</p>
163
110
  </div>
164
111
  ),
165
- "footer-after": () => (
166
- <div>
167
- <p>Additional footer content</p>
168
- </div>
169
- )
170
112
  }
171
113
  ```
172
114
 
173
- ## Complete Example
174
-
175
- Here's a complete example showing all footer options:
115
+ ## Related
176
116
 
177
- ```tsx
178
- footer: {
179
- position: "center",
180
- columns: [
181
- {
182
- title: "Product",
183
- position: "start",
184
- links: [
185
- { label: "Features", href: "/features" },
186
- { label: "Pricing", href: "/pricing" },
187
- { label: "Documentation", href: "/docs" }
188
- ]
189
- },
190
- {
191
- title: "Resources",
192
- position: "center",
193
- links: [
194
- { label: "Blog", href: "/blog" },
195
- { label: "Support", href: "/support" },
196
- { label: "GitHub", href: "https://github.com/yourusername" } // Auto-detected as external
197
- ]
198
- }
199
- ],
200
- social: [
201
- { icon: "github", href: "https://github.com/yourusername" },
202
- { icon: "linkedin", href: "https://linkedin.com/company/yourcompany", label: "LinkedIn" }
203
- ],
204
- copyright: `© ${new Date().getFullYear()} YourCompany LLC. All rights reserved.`,
205
- logo: {
206
- src: {
207
- light: "/images/logo-light.svg",
208
- dark: "/images/logo-dark.svg"
209
- },
210
- alt: "Company Logo",
211
- width: "100px"
212
- }
213
- }
214
- ```
117
+ - [Manifest](./manifest.md)
118
+ - [Site](./site.md)
@@ -19,7 +19,7 @@ All options are disabled by default.
19
19
 
20
20
  LLM features are configured through the `docs` section in your config:
21
21
 
22
- ```tsx title="apitogo.config.tsx"
22
+ ```tsx title="config"
23
23
  export default {
24
24
  docs: {
25
25
  files: "pages/**/*.{md,mdx}", // Your markdown files
@@ -13,6 +13,14 @@ when it finds an OpenAPI spec and your config has none yet, and **regenerate `na
13
13
  `redirects`** from your `pages/` tree. Other existing settings (such as **`site`** or **`theme`**)
14
14
  stay as you left them unless you are creating files for the first time.
15
15
 
16
+ :::note{title="Portal sites need apitogo.config.json"}
17
+
18
+ For portal / MCP products you need **`apitogo.config.json`** for site, modules, plans, and auth —
19
+ see [Manifest](./manifest.md) or scaffold with `npm create @lukoweb/apitogo@latest` /
20
+ [MCP](../mcp/overview.md).
21
+
22
+ :::
23
+
16
24
  ## What it does
17
25
 
18
26
  1. **Ensures you can run npm scripts** — If there is no **`package.json`**, it creates one with
@@ -24,11 +32,10 @@ stay as you left them unless you are creating files for the first time.
24
32
  **`apis/openapi.json`** or **`openapi.json`** at the project root) and your config has no
25
33
  **`apis`** entry yet, it adds an **`apis`** block pointing at that file. Existing **`apis`**
26
34
  settings are not overwritten.
27
- 3. **Finds or creates a config file** — It looks for an existing `apitogo.config.*` or
28
- `apitogo.config.*` file in the project root. If **none** exists, it creates
29
- **`apitogo.config.tsx`** with **`docs.files`** for your pages glob, optional **`apis`** when a
30
- spec was found, plus empty **`navigation`** and **`redirects`**, then fills nav and redirects
31
- from disk.
35
+ 3. **Finds or creates a config file** — It looks for an existing `apitogo.config.*` file in the
36
+ project root. If **none** exists, it creates one with **`docs.files`** for your pages glob,
37
+ optional **`apis`** when a spec was found, plus empty **`navigation`** and **`redirects`**, then
38
+ fills nav and redirects from disk.
32
39
  4. **Rebuilds `navigation`** — Builds a tree from `.md` / `.mdx` files under your pages directory,
33
40
  including nested folders as categories, and adds the usual Documentation category plus API link
34
41
  block used by the generator.
@@ -1,14 +1,13 @@
1
1
  # Site configuration (apitogo.config.json)
2
2
 
3
- Dev portal sites use a single JSON file for site settings, plans, authentication, and backend
4
- metadata. Code-only pieces (plugins, custom components) stay in `apitogo.config.tsx`.
3
+ Dev portal sites use `apitogo.config.json` for site settings, plans, authentication, and backend
4
+ metadata, with optional `.env` overrides for secrets and local tweaks.
5
5
 
6
6
  ## Files
7
7
 
8
8
  | File | Purpose |
9
9
  | --------------------- | ----------------------------------------------------------- |
10
10
  | `apitogo.config.json` | Committed defaults: site, modules, authentication, backend |
11
- | `apitogo.config.tsx` | Plugins and other non-JSON configuration |
12
11
  | `.env` | Public client vars + publish secrets via `APITOGO_CONFIG_*` |
13
12
 
14
13
  ## Canonical shape
@@ -89,18 +88,9 @@ APITOGO_CONFIG_AUTHENTICATION__STRIPE__SECRET_KEY=sk_test_...
89
88
  APITOGO_CONFIG_AUTHENTICATION__STRIPE__WEBHOOK_SECRET=whsec_...
90
89
  ```
91
90
 
92
- ## Thin `apitogo.config.tsx`
93
-
94
- ```tsx
95
- import { buildApitogoConfig } from "@lukoweb/apitogo";
96
- import { devPortalBillingPlugin } from "@lukoweb/apitogo-plugin-dev-portal-billing";
97
-
98
- export default buildApitogoConfig({
99
- plugins: [devPortalBillingPlugin()],
100
- });
101
- ```
102
-
103
91
  ## Related
104
92
 
105
93
  - [Authentication](./authentication.md)
106
94
  - [Overview](./overview.md)
95
+ - [MCP overview](../mcp/overview.md)
96
+ - [Environment variables](../guides/environment-variables.md)
@@ -18,7 +18,7 @@ entries can be links, document references, categories or custom pages.
18
18
  The navigation is defined using the `navigation` array in the APIToGo config file. Each item can be
19
19
  one of several types. At the simplest level you may only have links and categories.
20
20
 
21
- ```tsx title="apitogo.config.tsx"
21
+ ```tsx title="config"
22
22
  {
23
23
  "navigation": [
24
24
  {
@@ -60,7 +60,7 @@ one of several types. At the simplest level you may only have links and categori
60
60
 
61
61
  Use the CLI command **`apitogo make-config`** to rebuild **`navigation`** and **`redirects`** from
62
62
  your Markdown files. See **[Make config (CLI)](./make-config.md)** for full usage, options, and
63
- behavior (including creating `apitogo.config.tsx` when no config exists, and which settings are left
63
+ behavior (including creating `apitogo.config.json` when no config exists, and which settings are left
64
64
  untouched).
65
65
 
66
66
  ::::caution