@netfoundry/docusaurus-theme 0.1.2 → 0.1.4

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 (200) hide show
  1. package/README.md +146 -0
  2. package/css/legacy.css +4 -3
  3. package/dist/src/components/Alert/Alert.d.ts +9 -0
  4. package/dist/src/components/Alert/Alert.d.ts.map +1 -0
  5. package/dist/src/components/Alert/Alert.js +7 -0
  6. package/dist/src/components/Alert/Alert.js.map +1 -0
  7. package/{src/components/Alert/index.ts → dist/src/components/Alert/index.d.ts} +1 -0
  8. package/dist/src/components/Alert/index.d.ts.map +1 -0
  9. package/dist/src/components/Alert/index.js +2 -0
  10. package/dist/src/components/Alert/index.js.map +1 -0
  11. package/dist/src/components/CodeBlock/CodeBlock.d.ts +10 -0
  12. package/dist/src/components/CodeBlock/CodeBlock.d.ts.map +1 -0
  13. package/dist/src/components/CodeBlock/CodeBlock.js +8 -0
  14. package/dist/src/components/CodeBlock/CodeBlock.js.map +1 -0
  15. package/{src/components/CodeBlock/index.ts → dist/src/components/CodeBlock/index.d.ts} +1 -0
  16. package/dist/src/components/CodeBlock/index.d.ts.map +1 -0
  17. package/dist/src/components/CodeBlock/index.js +2 -0
  18. package/dist/src/components/CodeBlock/index.js.map +1 -0
  19. package/dist/src/components/Common/Common.d.ts +24 -0
  20. package/dist/src/components/Common/Common.d.ts.map +1 -0
  21. package/dist/src/components/Common/Common.js +20 -0
  22. package/dist/src/components/Common/Common.js.map +1 -0
  23. package/dist/src/components/Common/index.d.ts +2 -0
  24. package/dist/src/components/Common/index.d.ts.map +1 -0
  25. package/dist/src/components/Common/index.js +2 -0
  26. package/dist/src/components/Common/index.js.map +1 -0
  27. package/dist/src/components/NetFoundry/Divider/Divider.d.ts +3 -0
  28. package/dist/src/components/NetFoundry/Divider/Divider.d.ts.map +1 -0
  29. package/dist/src/components/NetFoundry/Divider/Divider.js +6 -0
  30. package/dist/src/components/NetFoundry/Divider/Divider.js.map +1 -0
  31. package/dist/src/components/NetFoundry/Divider/index.d.ts +2 -0
  32. package/dist/src/components/NetFoundry/Divider/index.d.ts.map +1 -0
  33. package/dist/src/components/NetFoundry/Divider/index.js +2 -0
  34. package/dist/src/components/NetFoundry/Divider/index.js.map +1 -0
  35. package/dist/src/components/NetFoundry/index.d.ts +2 -0
  36. package/dist/src/components/NetFoundry/index.d.ts.map +1 -0
  37. package/dist/src/components/NetFoundry/index.js +2 -0
  38. package/dist/src/components/NetFoundry/index.js.map +1 -0
  39. package/dist/src/components/NetFoundryFooter/NetFoundryFooter.d.ts +23 -0
  40. package/dist/src/components/NetFoundryFooter/NetFoundryFooter.d.ts.map +1 -0
  41. package/dist/src/components/NetFoundryFooter/NetFoundryFooter.js +63 -0
  42. package/dist/src/components/NetFoundryFooter/NetFoundryFooter.js.map +1 -0
  43. package/dist/src/components/NetFoundryFooter/index.d.ts +2 -0
  44. package/dist/src/components/NetFoundryFooter/index.d.ts.map +1 -0
  45. package/{src/components/NetFoundryFooter/index.ts → dist/src/components/NetFoundryFooter/index.js} +2 -1
  46. package/dist/src/components/NetFoundryFooter/index.js.map +1 -0
  47. package/dist/src/components/NetFoundryHighlight/NetFoundryHighlight.d.ts +7 -0
  48. package/dist/src/components/NetFoundryHighlight/NetFoundryHighlight.d.ts.map +1 -0
  49. package/dist/src/components/NetFoundryHighlight/NetFoundryHighlight.js +6 -0
  50. package/dist/src/components/NetFoundryHighlight/NetFoundryHighlight.js.map +1 -0
  51. package/{src/components/NetFoundryHighlight/index.ts → dist/src/components/NetFoundryHighlight/index.d.ts} +3 -2
  52. package/dist/src/components/NetFoundryHighlight/index.d.ts.map +1 -0
  53. package/dist/src/components/NetFoundryHighlight/index.js +2 -0
  54. package/dist/src/components/NetFoundryHighlight/index.js.map +1 -0
  55. package/dist/src/components/NetFoundryHorizontalSection/NetFoundryHorizontalSection.d.ts +9 -0
  56. package/dist/src/components/NetFoundryHorizontalSection/NetFoundryHorizontalSection.d.ts.map +1 -0
  57. package/dist/src/components/NetFoundryHorizontalSection/NetFoundryHorizontalSection.js +8 -0
  58. package/dist/src/components/NetFoundryHorizontalSection/NetFoundryHorizontalSection.js.map +1 -0
  59. package/dist/src/components/NetFoundryHorizontalSection/index.d.ts +3 -0
  60. package/dist/src/components/NetFoundryHorizontalSection/index.d.ts.map +1 -0
  61. package/dist/src/components/NetFoundryHorizontalSection/index.js +2 -0
  62. package/dist/src/components/NetFoundryHorizontalSection/index.js.map +1 -0
  63. package/dist/src/components/NetFoundryLayout/NetFoundryLayout.d.ts +30 -0
  64. package/dist/src/components/NetFoundryLayout/NetFoundryLayout.d.ts.map +1 -0
  65. package/dist/src/components/NetFoundryLayout/NetFoundryLayout.js +35 -0
  66. package/dist/src/components/NetFoundryLayout/NetFoundryLayout.js.map +1 -0
  67. package/dist/src/components/NetFoundryLayout/index.d.ts +2 -0
  68. package/dist/src/components/NetFoundryLayout/index.d.ts.map +1 -0
  69. package/dist/src/components/NetFoundryLayout/index.js +2 -0
  70. package/dist/src/components/NetFoundryLayout/index.js.map +1 -0
  71. package/dist/src/components/NetFoundryNavbarItems/NetFoundryNavbarItems.d.ts +10 -0
  72. package/dist/src/components/NetFoundryNavbarItems/NetFoundryNavbarItems.d.ts.map +1 -0
  73. package/{src/components/NetFoundryNavbarItems/NetFoundryNavbarItems.tsx → dist/src/components/NetFoundryNavbarItems/NetFoundryNavbarItems.js} +14 -22
  74. package/dist/src/components/NetFoundryNavbarItems/NetFoundryNavbarItems.js.map +1 -0
  75. package/dist/src/components/NetFoundryNavbarItems/index.d.ts +3 -0
  76. package/dist/src/components/NetFoundryNavbarItems/index.d.ts.map +1 -0
  77. package/dist/src/components/NetFoundryNavbarItems/index.js +2 -0
  78. package/dist/src/components/NetFoundryNavbarItems/index.js.map +1 -0
  79. package/dist/src/components/OsTabs/OsTabs.d.ts +6 -0
  80. package/dist/src/components/OsTabs/OsTabs.d.ts.map +1 -0
  81. package/dist/src/components/OsTabs/OsTabs.js +18 -0
  82. package/dist/src/components/OsTabs/OsTabs.js.map +1 -0
  83. package/dist/src/components/OsTabs/index.d.ts +3 -0
  84. package/dist/src/components/OsTabs/index.d.ts.map +1 -0
  85. package/dist/src/components/OsTabs/index.js +2 -0
  86. package/dist/src/components/OsTabs/index.js.map +1 -0
  87. package/dist/src/components/StarUs/StarUs.d.ts +7 -0
  88. package/dist/src/components/StarUs/StarUs.d.ts.map +1 -0
  89. package/dist/src/components/StarUs/StarUs.js +7 -0
  90. package/dist/src/components/StarUs/StarUs.js.map +1 -0
  91. package/dist/src/components/StarUs/index.d.ts +3 -0
  92. package/dist/src/components/StarUs/index.d.ts.map +1 -0
  93. package/{src/components/StarUs/index.ts → dist/src/components/StarUs/index.js} +1 -1
  94. package/dist/src/components/StarUs/index.js.map +1 -0
  95. package/dist/src/components/index.d.ts +12 -0
  96. package/dist/src/components/index.d.ts.map +1 -0
  97. package/{src/components/index.ts → dist/src/components/index.js} +3 -2
  98. package/dist/src/components/index.js.map +1 -0
  99. package/dist/src/docusaurus-envhelper.d.ts +16 -0
  100. package/dist/src/docusaurus-envhelper.d.ts.map +1 -0
  101. package/{src/docusaurus-envhelper.ts → dist/src/docusaurus-envhelper.js} +66 -98
  102. package/dist/src/docusaurus-envhelper.js.map +1 -0
  103. package/dist/src/docusaurus-plugins/index.d.ts +8 -0
  104. package/dist/src/docusaurus-plugins/index.d.ts.map +1 -0
  105. package/dist/src/docusaurus-plugins/index.js +8 -0
  106. package/dist/src/docusaurus-plugins/index.js.map +1 -0
  107. package/dist/src/docusaurus-plugins/logger.d.ts +13 -0
  108. package/dist/src/docusaurus-plugins/logger.d.ts.map +1 -0
  109. package/dist/src/docusaurus-plugins/logger.js +41 -0
  110. package/dist/src/docusaurus-plugins/logger.js.map +1 -0
  111. package/dist/src/docusaurus-plugins/remarkCodeSections.d.ts +8 -0
  112. package/dist/src/docusaurus-plugins/remarkCodeSections.d.ts.map +1 -0
  113. package/dist/src/docusaurus-plugins/remarkCodeSections.js +96 -0
  114. package/dist/src/docusaurus-plugins/remarkCodeSections.js.map +1 -0
  115. package/dist/src/docusaurus-plugins/remarkReplaceMetaUrl.d.ts +11 -0
  116. package/dist/src/docusaurus-plugins/remarkReplaceMetaUrl.d.ts.map +1 -0
  117. package/dist/src/docusaurus-plugins/remarkReplaceMetaUrl.js +23 -0
  118. package/dist/src/docusaurus-plugins/remarkReplaceMetaUrl.js.map +1 -0
  119. package/dist/src/docusaurus-plugins/remarkScopedPath.d.ts +13 -0
  120. package/dist/src/docusaurus-plugins/remarkScopedPath.d.ts.map +1 -0
  121. package/dist/src/docusaurus-plugins/remarkScopedPath.js +48 -0
  122. package/dist/src/docusaurus-plugins/remarkScopedPath.js.map +1 -0
  123. package/dist/src/docusaurus-plugins/remarkYamlTable.d.ts +8 -0
  124. package/dist/src/docusaurus-plugins/remarkYamlTable.d.ts.map +1 -0
  125. package/dist/src/docusaurus-plugins/remarkYamlTable.js +50 -0
  126. package/dist/src/docusaurus-plugins/remarkYamlTable.js.map +1 -0
  127. package/dist/src/docusaurus-plugins/remarkYouTube.d.ts +8 -0
  128. package/dist/src/docusaurus-plugins/remarkYouTube.d.ts.map +1 -0
  129. package/dist/src/docusaurus-plugins/remarkYouTube.js +44 -0
  130. package/dist/src/docusaurus-plugins/remarkYouTube.js.map +1 -0
  131. package/dist/src/docusaurus-plugins/timedPlugin.d.ts +6 -0
  132. package/dist/src/docusaurus-plugins/timedPlugin.d.ts.map +1 -0
  133. package/dist/src/docusaurus-plugins/timedPlugin.js +16 -0
  134. package/dist/src/docusaurus-plugins/timedPlugin.js.map +1 -0
  135. package/dist/src/index.d.ts +5 -0
  136. package/dist/src/index.d.ts.map +1 -0
  137. package/dist/src/index.js +32 -0
  138. package/dist/src/index.js.map +1 -0
  139. package/dist/src/node.d.ts +7 -0
  140. package/dist/src/node.d.ts.map +1 -0
  141. package/{src/node.ts → dist/src/node.js} +7 -6
  142. package/dist/src/node.js.map +1 -0
  143. package/{src/options.ts → dist/src/options.d.ts} +90 -95
  144. package/dist/src/options.d.ts.map +1 -0
  145. package/dist/src/options.js +2 -0
  146. package/dist/src/options.js.map +1 -0
  147. package/dist/src/plugins.d.ts +7 -0
  148. package/dist/src/plugins.d.ts.map +1 -0
  149. package/{src/plugins.ts → dist/src/plugins.js} +7 -6
  150. package/dist/src/plugins.js.map +1 -0
  151. package/dist/src/ui.d.ts +8 -0
  152. package/dist/src/ui.d.ts.map +1 -0
  153. package/{src/ui.ts → dist/src/ui.js} +8 -7
  154. package/dist/src/ui.js.map +1 -0
  155. package/dist/src/version.d.ts +2 -0
  156. package/dist/src/version.d.ts.map +1 -0
  157. package/dist/src/version.js +2 -0
  158. package/dist/src/version.js.map +1 -0
  159. package/dist/theme/Layout/index.d.ts +19 -0
  160. package/dist/theme/Layout/index.d.ts.map +1 -0
  161. package/dist/theme/Layout/index.js +39 -0
  162. package/dist/theme/Layout/index.js.map +1 -0
  163. package/package.json +24 -16
  164. package/src/components/Alert/Alert.tsx +0 -24
  165. package/src/components/CodeBlock/CodeBlock.tsx +0 -32
  166. package/src/components/Common/Common.tsx +0 -53
  167. package/src/components/Common/index.ts +0 -1
  168. package/src/components/NetFoundry/Divider/Divider.tsx +0 -20
  169. package/src/components/NetFoundry/Divider/index.ts +0 -1
  170. package/src/components/NetFoundry/index.ts +0 -1
  171. package/src/components/NetFoundryFooter/NetFoundryFooter.tsx +0 -164
  172. package/src/components/NetFoundryHighlight/NetFoundryHighlight.tsx +0 -15
  173. package/src/components/NetFoundryHorizontalSection/NetFoundryHorizontalSection.tsx +0 -23
  174. package/src/components/NetFoundryHorizontalSection/index.ts +0 -2
  175. package/src/components/NetFoundryLayout/NetFoundryLayout.tsx +0 -110
  176. package/src/components/NetFoundryLayout/index.ts +0 -1
  177. package/src/components/NetFoundryNavbarItems/index.ts +0 -2
  178. package/src/components/OsTabs/OsTabs.tsx +0 -30
  179. package/src/components/OsTabs/index.ts +0 -2
  180. package/src/components/StarUs/StarUs.tsx +0 -19
  181. package/src/docusaurus-plugins/index.ts +0 -7
  182. package/src/docusaurus-plugins/logger.ts +0 -38
  183. package/src/docusaurus-plugins/remarkCodeSections.ts +0 -115
  184. package/src/docusaurus-plugins/remarkReplaceMetaUrl.ts +0 -35
  185. package/src/docusaurus-plugins/remarkScopedPath.ts +0 -70
  186. package/src/docusaurus-plugins/remarkYamlTable.ts +0 -83
  187. package/src/docusaurus-plugins/remarkYouTube.ts +0 -56
  188. package/src/docusaurus-plugins/timedPlugin.ts +0 -22
  189. package/src/index.ts +0 -46
  190. package/src/version.ts +0 -1
  191. package/theme/Layout/index.tsx +0 -74
  192. /package/{src → dist/src}/components/Alert/Alert.module.css +0 -0
  193. /package/{src → dist/src}/components/CodeBlock/CodeBlock.module.css +0 -0
  194. /package/{src → dist/src}/components/Common/Common.module.css +0 -0
  195. /package/{src → dist/src}/components/NetFoundry/Divider/Divider.module.css +0 -0
  196. /package/{src → dist/src}/components/NetFoundryFooter/styles.module.css +0 -0
  197. /package/{src → dist/src}/components/NetFoundryHighlight/styles.module.css +0 -0
  198. /package/{src → dist/src}/components/NetFoundryHorizontalSection/styles.module.css +0 -0
  199. /package/{src → dist/src}/components/NetFoundryLayout/NetFoundryLayout.module.css +0 -0
  200. /package/{src → dist/src}/components/StarUs/styles.module.css +0 -0
@@ -1,83 +0,0 @@
1
- import { Plugin } from 'unified'
2
- import { visit } from 'unist-util-visit'
3
- import yaml from 'js-yaml'
4
- import { Parent } from 'unist'
5
- import { Literal } from 'unist'
6
- import {Logger, LogLevel, resolveLogLevel} from './logger'
7
-
8
- console.log("🦖 remarkYamlTable plugin module loaded")
9
-
10
- interface Code extends Literal {
11
- type: 'code'
12
- lang?: string
13
- value: string
14
- }
15
-
16
- interface TableCell {
17
- type: 'tableCell'
18
- children: { type: 'text'; value: string }[]
19
- }
20
-
21
- interface TableRow {
22
- type: 'tableRow'
23
- children: TableCell[]
24
- }
25
-
26
- interface Table {
27
- type: 'table'
28
- align: (null | 'left' | 'right' | 'center')[]
29
- children: TableRow[]
30
- }
31
-
32
- interface Options {
33
- logLevel?: LogLevel
34
- }
35
-
36
- export const remarkYamlTable: Plugin<[Options]> = (options?: Options) => {
37
- const { logLevel = LogLevel.Silent } = options ?? {}
38
- const logger = new Logger(resolveLogLevel(options?.logLevel), 'remarkYamlTable')
39
-
40
- logger.log('initialized')
41
-
42
- return (tree) => {
43
- visit(tree, 'code', (node: Code, index: number | undefined, parent: Parent | undefined) => {
44
- if (!parent || index === undefined) return
45
- if (node.lang === 'yaml-table') {
46
- try {
47
- const data = yaml.load(node.value)
48
- if (Array.isArray(data) && data.length > 0 && typeof data[0] === 'object') {
49
- const headers = Object.keys(data[0] as Record<string, unknown>)
50
-
51
- const tableRows: TableRow[] = (data as Record<string, unknown>[]).map((row) => ({
52
- type: 'tableRow',
53
- children: headers.map<TableCell>((header) => ({
54
- type: 'tableCell',
55
- children: [{ type: 'text', value: String(row[header] ?? '') }],
56
- })),
57
- }))
58
-
59
- const tableNode: Table = {
60
- type: 'table',
61
- align: headers.map(() => null),
62
- children: [
63
- {
64
- type: 'tableRow',
65
- children: headers.map<TableCell>((header) => ({
66
- type: 'tableCell',
67
- children: [{ type: 'text', value: header }],
68
- })),
69
- },
70
- ...tableRows,
71
- ],
72
- }
73
-
74
- parent.children[index] = tableNode
75
- logger.log(`generated table with ${headers.length} columns and ${data.length} rows`, LogLevel.Info)
76
- }
77
- } catch (error) {
78
- logger.log(`YAML parsing error: ${(error as Error).message}`, LogLevel.Info)
79
- }
80
- }
81
- })
82
- }
83
- }
@@ -1,56 +0,0 @@
1
- import type { Plugin } from 'unified'
2
- import { visit } from 'unist-util-visit'
3
- import type { Node } from 'unist'
4
- import {Logger, LogLevel, resolveLogLevel} from './logger'
5
-
6
- console.log("🦖 remarkYouTube plugin module loaded")
7
-
8
- interface YouTubeOptions {
9
- logLevel?: LogLevel
10
- }
11
-
12
- export const remarkYouTube: Plugin<[YouTubeOptions]> = (options?: YouTubeOptions) => {
13
- const { logLevel = LogLevel.Silent } = options ?? {}
14
- const logger = new Logger(resolveLogLevel(options?.logLevel), 'remarkYouTube')
15
-
16
- logger.log('initialized')
17
-
18
- return (tree: Node) => {
19
- visit(tree, ['link', 'text'], (node: any, index: number | undefined, parent: any) => {
20
- if (!parent || typeof index !== 'number') return
21
- let raw = node.url || node.value || ''
22
- let ytUrl = raw.trim()
23
-
24
- const hashnodeMatch = ytUrl.match(/^%\[(.+)\]$/)
25
- if (hashnodeMatch) {
26
- ytUrl = hashnodeMatch[1]
27
- logger.log(`hashnode-style embed detected: ${ytUrl}`, LogLevel.Info)
28
- }
29
-
30
- const m =
31
- ytUrl.match(/youtube\.com\/watch\?v=([A-Za-z0-9_-]+)/) ||
32
- ytUrl.match(/youtu\.be\/([A-Za-z0-9_-]+)/) ||
33
- ytUrl.match(/youtube-nocookie\.com\/watch\?v=([A-Za-z0-9_-]+)/)
34
-
35
- if (m) {
36
- logger.log(`rewriting YouTube URL: ${ytUrl} → videoId=${m[1]}`, LogLevel.Debug)
37
- parent.children.splice(index, 1, {
38
- type: 'mdxJsxFlowElement',
39
- name: 'LiteYouTubeEmbed',
40
- attributes: [
41
- { type: 'mdxJsxAttribute', name: 'id', value: m[1] },
42
- { type: 'mdxJsxAttribute', name: 'title', value: 'YouTube video' },
43
- ],
44
- })
45
- }
46
- })
47
-
48
- visit(tree, 'text', (node: any, index: number | undefined, parent: any) => {
49
- if (!parent || typeof index !== 'number') return
50
- if (node.value.trim() === '%[' || node.value.trim() === ']') {
51
- logger.log(`stripping hashnode bracket artifact: ${node.value}`, LogLevel.Debug)
52
- parent.children.splice(index, 1)
53
- }
54
- })
55
- }
56
- }
@@ -1,22 +0,0 @@
1
- import { Plugin } from "unified"
2
- import {Logger, LogLevel, resolveLogLevel} from './logger'
3
-
4
- export function timedPlugin<T extends Plugin>(
5
- name: string,
6
- plugin: T,
7
- opts: { logLevel?: LogLevel } = {}
8
- ): T {
9
- const { logLevel = LogLevel.Info } = opts
10
- const logger = new Logger(resolveLogLevel(opts?.logLevel), name)
11
-
12
- return ((...args: any[]) => {
13
- const instance = (plugin as any)(...args)
14
- return (tree: any, file: any) => {
15
- const start = Date.now()
16
- const res = instance(tree, file)
17
- const dur = Date.now() - start
18
- logger.log(`⏱ finished in ${dur}ms`)
19
- return res
20
- }
21
- }) as any
22
- }
package/src/index.ts DELETED
@@ -1,46 +0,0 @@
1
- import type { LoadContext, Plugin } from '@docusaurus/types';
2
- import type { NetFoundryThemeOptions } from './options';
3
- import path from 'path';
4
-
5
- export default function themeNetFoundry(
6
- context: LoadContext,
7
- options: NetFoundryThemeOptions = {}
8
- ): Plugin {
9
- return {
10
- name: '@netfoundry/docusaurus-theme',
11
-
12
- // Register theme component overrides
13
- getThemePath() {
14
- return path.resolve(__dirname, '../theme');
15
- },
16
-
17
- // For TypeScript development
18
- getTypeScriptThemePath() {
19
- return path.resolve(__dirname, '../theme');
20
- },
21
-
22
- // Automatically inject CSS
23
- getClientModules() {
24
- const modules: string[] = [
25
- require.resolve('../css/theme.css'),
26
- ];
27
-
28
- // Add custom CSS if specified in options
29
- if (options.customCss) {
30
- const customCssArray = Array.isArray(options.customCss)
31
- ? options.customCss
32
- : [options.customCss];
33
- modules.push(...customCssArray);
34
- }
35
-
36
- return modules;
37
- },
38
- };
39
- }
40
-
41
- // Re-export types for consumers (types are safe to export at config time)
42
- export type { NetFoundryThemeOptions, NetFoundryThemeConfig } from './options';
43
-
44
- // NOTE: UI components (defaultNetFoundryFooterProps, defaultSocialProps, etc.)
45
- // should be imported directly from '@netfoundry/docusaurus-shared/ui' in client code,
46
- // not from this theme entry point, as this file runs at Node.js config time.
package/src/version.ts DELETED
@@ -1 +0,0 @@
1
- export const version = '0.1.1';
@@ -1,74 +0,0 @@
1
- import React, { type ReactNode } from 'react';
2
- import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
3
- import {
4
- NetFoundryLayout,
5
- defaultNetFoundryFooterProps,
6
- defaultSocialProps,
7
- } from '../../src/ui';
8
- import type { ThemeConfigWithNetFoundry } from '../../src/options';
9
-
10
- export interface LayoutProps {
11
- children: ReactNode;
12
- noFooter?: boolean;
13
- wrapperClassName?: string;
14
- title?: string;
15
- description?: string;
16
- }
17
-
18
- /**
19
- * NetFoundry theme Layout component.
20
- *
21
- * This component wraps NetFoundryLayout and reads configuration from
22
- * themeConfig.netfoundry in docusaurus.config.ts.
23
- *
24
- * To customize further, swizzle this component:
25
- * npx docusaurus swizzle @netfoundry/docusaurus-theme Layout --wrap
26
- */
27
- export default function Layout({
28
- children,
29
- noFooter,
30
- wrapperClassName,
31
- title,
32
- description,
33
- }: LayoutProps): ReactNode {
34
- const { siteConfig } = useDocusaurusContext();
35
- const themeConfig = siteConfig.themeConfig as ThemeConfigWithNetFoundry;
36
- const nfConfig = themeConfig.netfoundry ?? {};
37
-
38
- // Build footer props from config, falling back to defaults
39
- const footerProps = noFooter
40
- ? undefined
41
- : {
42
- ...defaultNetFoundryFooterProps(),
43
- ...nfConfig.footer,
44
- socialProps: {
45
- ...defaultSocialProps,
46
- ...nfConfig.footer?.socialProps,
47
- },
48
- };
49
-
50
- // Build star props if enabled
51
- const starProps =
52
- nfConfig.showStarBanner && nfConfig.starBanner
53
- ? {
54
- repoUrl: nfConfig.starBanner.repoUrl,
55
- label: nfConfig.starBanner.label,
56
- }
57
- : undefined;
58
-
59
- return (
60
- <NetFoundryLayout
61
- title={title}
62
- description={description}
63
- className={wrapperClassName}
64
- noFooter={noFooter}
65
- footerProps={footerProps}
66
- starProps={starProps}
67
- meta={{
68
- siteName: siteConfig.title,
69
- }}
70
- >
71
- {children}
72
- </NetFoundryLayout>
73
- );
74
- }