doccupine 0.0.89 → 0.0.91

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 (106) hide show
  1. package/README.md +29 -0
  2. package/dist/index.js +127 -1
  3. package/dist/templates/components/layout/Button.d.ts +1 -1
  4. package/dist/templates/components/layout/Button.js +9 -0
  5. package/dist/templates/components/layout/Footer.d.ts +1 -1
  6. package/dist/templates/components/layout/Footer.js +1 -1
  7. package/dist/templates/llms/llmsFull.d.ts +12 -0
  8. package/dist/templates/llms/llmsFull.js +59 -0
  9. package/dist/templates/llms/llmsIndex.d.ts +9 -0
  10. package/dist/templates/llms/llmsIndex.js +105 -0
  11. package/dist/templates/llms/llmsPage.d.ts +2 -0
  12. package/dist/templates/llms/llmsPage.js +20 -0
  13. package/dist/templates/mdx/accordion.mdx.d.ts +1 -1
  14. package/dist/templates/mdx/accordion.mdx.js +21 -16
  15. package/dist/templates/mdx/ai-assistant.mdx.d.ts +1 -1
  16. package/dist/templates/mdx/ai-assistant.mdx.js +22 -5
  17. package/dist/templates/mdx/analytics.mdx.d.ts +1 -1
  18. package/dist/templates/mdx/analytics.mdx.js +15 -4
  19. package/dist/templates/mdx/buttons.mdx.d.ts +1 -1
  20. package/dist/templates/mdx/buttons.mdx.js +10 -2
  21. package/dist/templates/mdx/callouts.mdx.d.ts +1 -1
  22. package/dist/templates/mdx/callouts.mdx.js +10 -17
  23. package/dist/templates/mdx/cards.mdx.d.ts +1 -1
  24. package/dist/templates/mdx/cards.mdx.js +10 -5
  25. package/dist/templates/mdx/code.mdx.d.ts +1 -1
  26. package/dist/templates/mdx/code.mdx.js +7 -3
  27. package/dist/templates/mdx/color-swatches.mdx.d.ts +1 -1
  28. package/dist/templates/mdx/color-swatches.mdx.js +7 -4
  29. package/dist/templates/mdx/columns.mdx.d.ts +1 -1
  30. package/dist/templates/mdx/columns.mdx.js +3 -0
  31. package/dist/templates/mdx/commands.mdx.d.ts +1 -1
  32. package/dist/templates/mdx/commands.mdx.js +7 -4
  33. package/dist/templates/mdx/components.mdx.d.ts +1 -1
  34. package/dist/templates/mdx/components.mdx.js +1 -0
  35. package/dist/templates/mdx/deployment-and-hosting.mdx.d.ts +1 -1
  36. package/dist/templates/mdx/deployment-and-hosting.mdx.js +6 -0
  37. package/dist/templates/mdx/fields.mdx.d.ts +1 -1
  38. package/dist/templates/mdx/fields.mdx.js +3 -0
  39. package/dist/templates/mdx/fonts.mdx.d.ts +1 -1
  40. package/dist/templates/mdx/fonts.mdx.js +13 -2
  41. package/dist/templates/mdx/footer-links.mdx.d.ts +1 -1
  42. package/dist/templates/mdx/footer-links.mdx.js +5 -0
  43. package/dist/templates/mdx/globals.mdx.d.ts +1 -1
  44. package/dist/templates/mdx/globals.mdx.js +16 -13
  45. package/dist/templates/mdx/headers-and-text.mdx.d.ts +1 -1
  46. package/dist/templates/mdx/headers-and-text.mdx.js +22 -2
  47. package/dist/templates/mdx/icons.mdx.d.ts +1 -1
  48. package/dist/templates/mdx/icons.mdx.js +3 -0
  49. package/dist/templates/mdx/image-and-embeds.mdx.d.ts +1 -1
  50. package/dist/templates/mdx/image-and-embeds.mdx.js +19 -10
  51. package/dist/templates/mdx/index.mdx.d.ts +1 -1
  52. package/dist/templates/mdx/index.mdx.js +2 -2
  53. package/dist/templates/mdx/lists-and-tables.mdx.d.ts +1 -1
  54. package/dist/templates/mdx/lists-and-tables.mdx.js +8 -2
  55. package/dist/templates/mdx/media-and-assets.mdx.d.ts +1 -1
  56. package/dist/templates/mdx/media-and-assets.mdx.js +14 -5
  57. package/dist/templates/mdx/model-context-protocol.mdx.d.ts +1 -1
  58. package/dist/templates/mdx/model-context-protocol.mdx.js +31 -15
  59. package/dist/templates/mdx/navigation.mdx.d.ts +1 -1
  60. package/dist/templates/mdx/navigation.mdx.js +9 -0
  61. package/dist/templates/mdx/platform/ai-assistant.mdx.d.ts +1 -1
  62. package/dist/templates/mdx/platform/ai-assistant.mdx.js +7 -0
  63. package/dist/templates/mdx/platform/analytics.mdx.d.ts +1 -1
  64. package/dist/templates/mdx/platform/analytics.mdx.js +7 -0
  65. package/dist/templates/mdx/platform/billing.mdx.d.ts +1 -1
  66. package/dist/templates/mdx/platform/billing.mdx.js +8 -0
  67. package/dist/templates/mdx/platform/build-and-deploy.mdx.d.ts +1 -1
  68. package/dist/templates/mdx/platform/build-and-deploy.mdx.js +6 -0
  69. package/dist/templates/mdx/platform/creating-a-project.mdx.d.ts +1 -1
  70. package/dist/templates/mdx/platform/creating-a-project.mdx.js +7 -0
  71. package/dist/templates/mdx/platform/custom-domains.mdx.d.ts +1 -1
  72. package/dist/templates/mdx/platform/custom-domains.mdx.js +5 -0
  73. package/dist/templates/mdx/platform/external-links.mdx.d.ts +1 -1
  74. package/dist/templates/mdx/platform/external-links.mdx.js +5 -0
  75. package/dist/templates/mdx/platform/file-editor.mdx.d.ts +1 -1
  76. package/dist/templates/mdx/platform/file-editor.mdx.js +7 -0
  77. package/dist/templates/mdx/platform/fonts-settings.mdx.d.ts +1 -1
  78. package/dist/templates/mdx/platform/fonts-settings.mdx.js +5 -0
  79. package/dist/templates/mdx/platform/index.mdx.d.ts +1 -1
  80. package/dist/templates/mdx/platform/index.mdx.js +5 -0
  81. package/dist/templates/mdx/platform/navigation-settings.mdx.d.ts +1 -1
  82. package/dist/templates/mdx/platform/navigation-settings.mdx.js +20 -4
  83. package/dist/templates/mdx/platform/project-settings.mdx.d.ts +1 -1
  84. package/dist/templates/mdx/platform/project-settings.mdx.js +4 -0
  85. package/dist/templates/mdx/platform/publishing.mdx.d.ts +1 -1
  86. package/dist/templates/mdx/platform/publishing.mdx.js +6 -0
  87. package/dist/templates/mdx/platform/site-settings.mdx.d.ts +1 -1
  88. package/dist/templates/mdx/platform/site-settings.mdx.js +8 -0
  89. package/dist/templates/mdx/platform/team-members.mdx.d.ts +1 -1
  90. package/dist/templates/mdx/platform/team-members.mdx.js +8 -0
  91. package/dist/templates/mdx/platform/theme-settings.mdx.d.ts +1 -1
  92. package/dist/templates/mdx/platform/theme-settings.mdx.js +7 -0
  93. package/dist/templates/mdx/sections.mdx.d.ts +1 -1
  94. package/dist/templates/mdx/sections.mdx.js +22 -1
  95. package/dist/templates/mdx/steps.mdx.d.ts +1 -1
  96. package/dist/templates/mdx/steps.mdx.js +7 -5
  97. package/dist/templates/mdx/tabs.mdx.d.ts +1 -1
  98. package/dist/templates/mdx/tabs.mdx.js +7 -2
  99. package/dist/templates/mdx/theme.mdx.d.ts +1 -1
  100. package/dist/templates/mdx/theme.mdx.js +10 -0
  101. package/dist/templates/mdx/update.mdx.d.ts +1 -1
  102. package/dist/templates/mdx/update.mdx.js +17 -12
  103. package/dist/templates/package.js +14 -14
  104. package/dist/templates/pnpmWorkspace.d.ts +1 -0
  105. package/dist/templates/pnpmWorkspace.js +7 -0
  106. package/package.json +6 -7
@@ -6,7 +6,9 @@ category: "Configuration"
6
6
  categoryOrder: 3
7
7
  order: 11
8
8
  ---
9
+
9
10
  # Deployment & Hosting
11
+
10
12
  The fastest way to deploy your documentation is with the [Doccupine Platform](https://www.doccupine.com). If you prefer to manage your own infrastructure, you can self-host the generated Next.js app on any platform.
11
13
 
12
14
  ## Doccupine Platform
@@ -18,6 +20,7 @@ Sign up at [doccupine.com](https://www.doccupine.com) and connect your repositor
18
20
  </Callout>
19
21
 
20
22
  ### What you get
23
+
21
24
  - **Automatic deployments** on every push to your repository
22
25
  - **Site customization** through a visual dashboard - no code changes needed
23
26
  - **Team collaboration** so your whole team can manage docs together
@@ -26,6 +29,7 @@ Sign up at [doccupine.com](https://www.doccupine.com) and connect your repositor
26
29
  - **Zero maintenance** - no servers, no build pipelines, no dependency updates
27
30
 
28
31
  ### Getting started
32
+
29
33
  1. Create an account at [doccupine.com](https://www.doccupine.com).
30
34
  2. Connect your GitHub repository.
31
35
  3. Your site is deployed automatically.
@@ -56,6 +60,7 @@ Doccupine generates a standard Next.js app, so you can deploy it anywhere that s
56
60
  - **Node.js server** - run \`next build && next start\` on any server or VPS with Node.js installed.
57
61
 
58
62
  ### Sitemap and robots.txt
63
+
59
64
  Doccupine generates \`sitemap.xml\` and \`robots.txt\` automatically when you set a site URL. This is required for search engine indexing and is strongly recommended for any public deployment.
60
65
 
61
66
  Set the URL in \`config.json\`:
@@ -75,6 +80,7 @@ NEXT_PUBLIC_SITE_URL=https://staging.example.com
75
80
  The generated sitemap includes every page from every [section](/sections), with \`lastModified\` derived from each page's frontmatter \`date\` or the file's modification time. When no URL is configured, the sitemap is skipped and \`robots.txt\` is emitted without a sitemap reference.
76
81
 
77
82
  ### Troubleshooting
83
+
78
84
  - **Build failed** - check build logs. Ensure your lockfile and correct Node.js version are present.
79
85
  - **Missing content** - verify your MDX files and assets are in the repository.
80
86
  - **SSR issues on edge platforms** - some features (like the AI chat API routes) require a Node.js runtime. Check your platform's documentation for SSR/API route support.`;
@@ -1 +1 @@
1
- export declare const fieldsMdxTemplate = "---\ntitle: \"Fields\"\ndescription: \"Configure parameters for your API or SDK documentation.\"\ndate: \"2026-02-19\"\ncategory: \"Components\"\ncategoryOrder: 1\norder: 11\n---\n# Fields\nConfigure parameters for your API or SDK documentation.\n\nFields allow you to describe both the **inputs** (parameters) and **outputs** (responses) of your API. The main field component is available: `Field` for parameters and for responses.\n\n## Fields Usage\nUse the `<Field>` component to declare API or SDK parameters, or define the return values of an API.\n\n<Field value=\"param\" type=\"string\" required>\n Example definition of a parameter field.\n</Field>\n\n```mdx\n<Field value=\"param\" type=\"string\" required>\n Example definition of a parameter field.\n</Field>\n```\n\n## Properties\n\n<Field value=\"value\" type=\"string\" required>\n The name of the field.\n</Field>\n\n<Field value=\"type\" type=\"string\" required>\n The type of the field.\n</Field>\n\n<Field value=\"required\" type=\"boolean\">\n Whether the field is required.\n</Field>";
1
+ export declare const fieldsMdxTemplate = "---\ntitle: \"Fields\"\ndescription: \"Configure parameters for your API or SDK documentation.\"\ndate: \"2026-02-19\"\ncategory: \"Components\"\ncategoryOrder: 1\norder: 11\n---\n\n# Fields\n\nConfigure parameters for your API or SDK documentation.\n\nFields allow you to describe both the **inputs** (parameters) and **outputs** (responses) of your API. The main field component is available: `Field` for parameters and for responses.\n\n## Fields Usage\n\nUse the `<Field>` component to declare API or SDK parameters, or define the return values of an API.\n\n<Field value=\"param\" type=\"string\" required>\n Example definition of a parameter field.\n</Field>\n\n```mdx\n<Field value=\"param\" type=\"string\" required>\n Example definition of a parameter field.\n</Field>\n```\n\n## Properties\n\n<Field value=\"value\" type=\"string\" required>\n The name of the field.\n</Field>\n\n<Field value=\"type\" type=\"string\" required>\n The type of the field.\n</Field>\n\n<Field value=\"required\" type=\"boolean\">\n Whether the field is required.\n</Field>";
@@ -6,12 +6,15 @@ category: "Components"
6
6
  categoryOrder: 1
7
7
  order: 11
8
8
  ---
9
+
9
10
  # Fields
11
+
10
12
  Configure parameters for your API or SDK documentation.
11
13
 
12
14
  Fields allow you to describe both the **inputs** (parameters) and **outputs** (responses) of your API. The main field component is available: \`Field\` for parameters and for responses.
13
15
 
14
16
  ## Fields Usage
17
+
15
18
  Use the \`<Field>\` component to declare API or SDK parameters, or define the return values of an API.
16
19
 
17
20
  <Field value="param" type="string" required>
@@ -1 +1 @@
1
- export declare const fontsMdxTemplate = "---\ntitle: \"Fonts\"\ndescription: \"Customize the documentation typography with a fonts.json file (Google Fonts or local custom fonts).\"\ndate: \"2026-02-19\"\ncategory: \"Configuration\"\ncategoryOrder: 3\norder: 7\n---\n# Fonts\nDefine your site\u2019s typography with a `fonts.json` file. You can load fonts from Google Fonts or from local font files bundled with your project.\n\n## fonts.json\nPlace a `fonts.json` at your project root (the same folder where you execute `npx doccupine`). Choose one of the following configurations depending on the source of your fonts.\n\n## Google Fonts\nUse this when your font is hosted by Google Fonts.\n\n```json\n{\n \"googleFont\": {\n \"fontName\": \"Work_Sans\",\n \"subsets\": [\"latin\"],\n \"weight\": \"400\"\n }\n}\n```\n\n### Rules\n- **fontName**: Capitalize each word. If the name contains spaces, replace them with `_`.\n - Example: \"Work Sans\" \u2192 `Work_Sans`\n- **subsets**: Pick the subsets you need (for example, `latin`).\n- **weight**: The font weight to load - a single string (for example, `\"400\"`) or an array of strings (for example, `[\"400\", \"500\", \"700\"]`).\n\n<Callout type=\"warning\">\n The `fontName` must match the Google Fonts name exactly - capitalize each word and replace spaces with underscores.\n</Callout>\n\n### Tips\n- **One primary family**: Start with a single family and weight, then add more if needed.\n- **Readability**: Choose readable body fonts; reserve display fonts for headings.\n\n## Local custom fonts\nUse this when you want to ship your own font files. Upload your font files to the Next.js `public` directory, then reference them with relative paths.\n\n```json\n{\n \"localFonts\": {\n \"src\": [\n {\n \"path\": \"../public/font.woff\",\n \"weight\": \"400\",\n \"style\": \"normal\"\n },\n {\n \"path\": \"../public/font.woff\",\n \"weight\": \"400\",\n \"style\": \"italic\"\n },\n {\n \"path\": \"../public/font.woff\",\n \"weight\": \"700\",\n \"style\": \"normal\"\n },\n {\n \"path\": \"../public/font.woff\",\n \"weight\": \"700\",\n \"style\": \"italic\"\n }\n ]\n }\n}\n```\n\n### Single file shorthand\nIf you have only one file, you can use:\n\n```json\n{\n \"localFonts\": \"../public/font.woff\"\n}\n```\n\n### Rules\n- **Upload files**: Place `font.woff` (and any additional weights/styles) in your Next.js `public` directory.\n- **path**: Use a relative path to the file from where it is consumed by your build tooling; the example above uses `../public/font.woff`.\n- **weight**: String value of the font weight (for example, `\"400\"`, `\"700\"`).\n- **style**: `\"normal\"` or `\"italic\"`.\n\n### Tips\n- **Provide only what you need**: Include the minimal set of weights/styles to keep bundle size small.\n- **File formats**: `.woff` is broadly supported and recommended for the web.\n\n## Behavior\n- **Placement**: Put `fonts.json` in the project root alongside `config.json` and (optionally) `theme.json`.\n- **Validation**: Follow the naming rule for `googleFont.fontName` (capitalize, replace spaces with `_`).\n\n<Callout type=\"note\">\n When using local fonts, ensure the referenced files exist under the Next.js `public` directory. The paths in `fonts.json` are relative to where they are consumed by the build tooling.\n</Callout>\n\n## Examples\n- **Google Fonts (single weight)**\n\n```json\n{\n \"googleFont\": {\n \"fontName\": \"Work_Sans\",\n \"subsets\": [\"latin\"],\n \"weight\": \"400\"\n }\n}\n```\n\n- **Google Fonts (multiple weights)**\n\n```json\n{\n \"googleFont\": {\n \"fontName\": \"Work_Sans\",\n \"subsets\": [\"latin\"],\n \"weight\": [\"400\", \"500\", \"600\", \"700\"]\n }\n}\n```\n\n- **Local fonts (multiple weights/styles)**\n\n```json\n{\n \"localFonts\": {\n \"src\": [\n { \"path\": \"../public/font.woff\", \"weight\": \"400\", \"style\": \"normal\" },\n { \"path\": \"../public/font.woff\", \"weight\": \"400\", \"style\": \"italic\" },\n { \"path\": \"../public/font.woff\", \"weight\": \"700\", \"style\": \"normal\" },\n { \"path\": \"../public/font.woff\", \"weight\": \"700\", \"style\": \"italic\" }\n ]\n }\n}\n```\n";
1
+ export declare const fontsMdxTemplate = "---\ntitle: \"Fonts\"\ndescription: \"Customize the documentation typography with a fonts.json file (Google Fonts or local custom fonts).\"\ndate: \"2026-02-19\"\ncategory: \"Configuration\"\ncategoryOrder: 3\norder: 7\n---\n\n# Fonts\n\nDefine your site\u2019s typography with a `fonts.json` file. You can load fonts from Google Fonts or from local font files bundled with your project.\n\n## fonts.json\n\nPlace a `fonts.json` at your project root (the same folder where you execute `npx doccupine`). Choose one of the following configurations depending on the source of your fonts.\n\n## Google Fonts\n\nUse this when your font is hosted by Google Fonts.\n\n```json\n{\n \"googleFont\": {\n \"fontName\": \"Work_Sans\",\n \"subsets\": [\"latin\"],\n \"weight\": \"400\"\n }\n}\n```\n\n### Rules\n\n- **fontName**: Capitalize each word. If the name contains spaces, replace them with `_`.\n - Example: \"Work Sans\" \u2192 `Work_Sans`\n- **subsets**: Pick the subsets you need (for example, `latin`).\n- **weight**: The font weight to load - a single string (for example, `\"400\"`) or an array of strings (for example, `[\"400\", \"500\", \"700\"]`).\n\n<Callout type=\"warning\">\n The `fontName` must match the Google Fonts name exactly - capitalize each word and replace spaces with underscores.\n</Callout>\n\n### Tips\n\n- **One primary family**: Start with a single family and weight, then add more if needed.\n- **Readability**: Choose readable body fonts; reserve display fonts for headings.\n\n## Local custom fonts\n\nUse this when you want to ship your own font files. Upload your font files to the Next.js `public` directory, then reference them with relative paths.\n\n```json\n{\n \"localFonts\": {\n \"src\": [\n {\n \"path\": \"../public/font.woff\",\n \"weight\": \"400\",\n \"style\": \"normal\"\n },\n {\n \"path\": \"../public/font.woff\",\n \"weight\": \"400\",\n \"style\": \"italic\"\n },\n {\n \"path\": \"../public/font.woff\",\n \"weight\": \"700\",\n \"style\": \"normal\"\n },\n {\n \"path\": \"../public/font.woff\",\n \"weight\": \"700\",\n \"style\": \"italic\"\n }\n ]\n }\n}\n```\n\n### Single file shorthand\n\nIf you have only one file, you can use:\n\n```json\n{\n \"localFonts\": \"../public/font.woff\"\n}\n```\n\n### Rules\n\n- **Upload files**: Place `font.woff` (and any additional weights/styles) in your Next.js `public` directory.\n- **path**: Use a relative path to the file from where it is consumed by your build tooling; the example above uses `../public/font.woff`.\n- **weight**: String value of the font weight (for example, `\"400\"`, `\"700\"`).\n- **style**: `\"normal\"` or `\"italic\"`.\n\n### Tips\n\n- **Provide only what you need**: Include the minimal set of weights/styles to keep bundle size small.\n- **File formats**: `.woff` is broadly supported and recommended for the web.\n\n## Behavior\n\n- **Placement**: Put `fonts.json` in the project root alongside `config.json` and (optionally) `theme.json`.\n- **Validation**: Follow the naming rule for `googleFont.fontName` (capitalize, replace spaces with `_`).\n\n<Callout type=\"note\">\n When using local fonts, ensure the referenced files exist under the Next.js `public` directory. The paths in `fonts.json` are relative to where they are consumed by the build tooling.\n</Callout>\n\n## Examples\n\n- **Google Fonts (single weight)**\n\n```json\n{\n \"googleFont\": {\n \"fontName\": \"Work_Sans\",\n \"subsets\": [\"latin\"],\n \"weight\": \"400\"\n }\n}\n```\n\n- **Google Fonts (multiple weights)**\n\n```json\n{\n \"googleFont\": {\n \"fontName\": \"Work_Sans\",\n \"subsets\": [\"latin\"],\n \"weight\": [\"400\", \"500\", \"600\", \"700\"]\n }\n}\n```\n\n- **Local fonts (multiple weights/styles)**\n\n```json\n{\n \"localFonts\": {\n \"src\": [\n { \"path\": \"../public/font.woff\", \"weight\": \"400\", \"style\": \"normal\" },\n { \"path\": \"../public/font.woff\", \"weight\": \"400\", \"style\": \"italic\" },\n { \"path\": \"../public/font.woff\", \"weight\": \"700\", \"style\": \"normal\" },\n { \"path\": \"../public/font.woff\", \"weight\": \"700\", \"style\": \"italic\" }\n ]\n }\n}\n```";
@@ -6,13 +6,17 @@ category: "Configuration"
6
6
  categoryOrder: 3
7
7
  order: 7
8
8
  ---
9
+
9
10
  # Fonts
11
+
10
12
  Define your site’s typography with a \`fonts.json\` file. You can load fonts from Google Fonts or from local font files bundled with your project.
11
13
 
12
14
  ## fonts.json
15
+
13
16
  Place a \`fonts.json\` at your project root (the same folder where you execute \`npx doccupine\`). Choose one of the following configurations depending on the source of your fonts.
14
17
 
15
18
  ## Google Fonts
19
+
16
20
  Use this when your font is hosted by Google Fonts.
17
21
 
18
22
  \`\`\`json
@@ -26,6 +30,7 @@ Use this when your font is hosted by Google Fonts.
26
30
  \`\`\`
27
31
 
28
32
  ### Rules
33
+
29
34
  - **fontName**: Capitalize each word. If the name contains spaces, replace them with \`_\`.
30
35
  - Example: "Work Sans" → \`Work_Sans\`
31
36
  - **subsets**: Pick the subsets you need (for example, \`latin\`).
@@ -36,10 +41,12 @@ Use this when your font is hosted by Google Fonts.
36
41
  </Callout>
37
42
 
38
43
  ### Tips
44
+
39
45
  - **One primary family**: Start with a single family and weight, then add more if needed.
40
46
  - **Readability**: Choose readable body fonts; reserve display fonts for headings.
41
47
 
42
48
  ## Local custom fonts
49
+
43
50
  Use this when you want to ship your own font files. Upload your font files to the Next.js \`public\` directory, then reference them with relative paths.
44
51
 
45
52
  \`\`\`json
@@ -72,6 +79,7 @@ Use this when you want to ship your own font files. Upload your font files to th
72
79
  \`\`\`
73
80
 
74
81
  ### Single file shorthand
82
+
75
83
  If you have only one file, you can use:
76
84
 
77
85
  \`\`\`json
@@ -81,16 +89,19 @@ If you have only one file, you can use:
81
89
  \`\`\`
82
90
 
83
91
  ### Rules
92
+
84
93
  - **Upload files**: Place \`font.woff\` (and any additional weights/styles) in your Next.js \`public\` directory.
85
94
  - **path**: Use a relative path to the file from where it is consumed by your build tooling; the example above uses \`../public/font.woff\`.
86
95
  - **weight**: String value of the font weight (for example, \`"400"\`, \`"700"\`).
87
96
  - **style**: \`"normal"\` or \`"italic"\`.
88
97
 
89
98
  ### Tips
99
+
90
100
  - **Provide only what you need**: Include the minimal set of weights/styles to keep bundle size small.
91
101
  - **File formats**: \`.woff\` is broadly supported and recommended for the web.
92
102
 
93
103
  ## Behavior
104
+
94
105
  - **Placement**: Put \`fonts.json\` in the project root alongside \`config.json\` and (optionally) \`theme.json\`.
95
106
  - **Validation**: Follow the naming rule for \`googleFont.fontName\` (capitalize, replace spaces with \`_\`).
96
107
 
@@ -99,6 +110,7 @@ If you have only one file, you can use:
99
110
  </Callout>
100
111
 
101
112
  ## Examples
113
+
102
114
  - **Google Fonts (single weight)**
103
115
 
104
116
  \`\`\`json
@@ -136,5 +148,4 @@ If you have only one file, you can use:
136
148
  ]
137
149
  }
138
150
  }
139
- \`\`\`
140
- `;
151
+ \`\`\``;
@@ -1 +1 @@
1
- export declare const footerLinksMdxTemplate = "---\ntitle: \"Footer Links\"\ndescription: \"Add static links at the bottom of the documentation pages.\"\ndate: \"2026-02-19\"\ncategory: \"Configuration\"\ncategoryOrder: 3\norder: 4\n---\n# Footer Links\nAdd a row of static links at the bottom of your documentation pages, just above the footer. Links open in a new tab and are useful for pointing users to related resources, repositories, or external docs.\n\n## links.json\nPlace a `links.json` at your project root (the same folder where you execute `npx doccupine`). When present, Doccupine displays the links at the bottom of each page. You can add as many links as you need.\n\n### Example links.json\n\n```json\n[\n {\n \"title\": \"Back to Home\",\n \"url\": \"https://doccupine.com\",\n \"icon\": \"arrow-left\"\n },\n {\n \"title\": \"GitHub\",\n \"url\": \"https://github.com/doccupine\",\n \"icon\": \"git-branch\"\n },\n {\n \"title\": \"Discord\",\n \"url\": \"https://discord.gg/E9BufYGPhG\",\n \"icon\": \"message-circle\"\n }\n]\n```\n\n### Fields\n- **title**: The label shown for the link.\n- **url**: The destination URL. Links open in a new tab with `target=\"_blank\"` and `rel=\"noopener noreferrer\"`.\n- **icon**: The icon to display next to the label. Icons are from [Lucide](https://lucide.dev/).\n\n## Behavior\n- **Empty or missing file**: If `links.json` is empty or not present, the footer links are hidden.\n- **Order**: Links appear in the same order as in the array.\n- **No limit**: Add as many links as you want; they wrap automatically on smaller screens.";
1
+ export declare const footerLinksMdxTemplate = "---\ntitle: \"Footer Links\"\ndescription: \"Add static links at the bottom of the documentation pages.\"\ndate: \"2026-02-19\"\ncategory: \"Configuration\"\ncategoryOrder: 3\norder: 4\n---\n\n# Footer Links\n\nAdd a row of static links at the bottom of your documentation pages, just above the footer. Links open in a new tab and are useful for pointing users to related resources, repositories, or external docs.\n\n## links.json\n\nPlace a `links.json` at your project root (the same folder where you execute `npx doccupine`). When present, Doccupine displays the links at the bottom of each page. You can add as many links as you need.\n\n### Example links.json\n\n```json\n[\n {\n \"title\": \"Back to Home\",\n \"url\": \"https://doccupine.com\",\n \"icon\": \"arrow-left\"\n },\n {\n \"title\": \"GitHub\",\n \"url\": \"https://github.com/doccupine\",\n \"icon\": \"git-branch\"\n },\n {\n \"title\": \"Discord\",\n \"url\": \"https://discord.gg/E9BufYGPhG\",\n \"icon\": \"message-circle\"\n }\n]\n```\n\n### Fields\n\n- **title**: The label shown for the link.\n- **url**: The destination URL. Links open in a new tab with `target=\"_blank\"` and `rel=\"noopener noreferrer\"`.\n- **icon**: The icon to display next to the label. Icons are from [Lucide](https://lucide.dev/).\n\n## Behavior\n\n- **Empty or missing file**: If `links.json` is empty or not present, the footer links are hidden.\n- **Order**: Links appear in the same order as in the array.\n- **No limit**: Add as many links as you want; they wrap automatically on smaller screens.";
@@ -6,10 +6,13 @@ category: "Configuration"
6
6
  categoryOrder: 3
7
7
  order: 4
8
8
  ---
9
+
9
10
  # Footer Links
11
+
10
12
  Add a row of static links at the bottom of your documentation pages, just above the footer. Links open in a new tab and are useful for pointing users to related resources, repositories, or external docs.
11
13
 
12
14
  ## links.json
15
+
13
16
  Place a \`links.json\` at your project root (the same folder where you execute \`npx doccupine\`). When present, Doccupine displays the links at the bottom of each page. You can add as many links as you need.
14
17
 
15
18
  ### Example links.json
@@ -35,11 +38,13 @@ Place a \`links.json\` at your project root (the same folder where you execute \
35
38
  \`\`\`
36
39
 
37
40
  ### Fields
41
+
38
42
  - **title**: The label shown for the link.
39
43
  - **url**: The destination URL. Links open in a new tab with \`target="_blank"\` and \`rel="noopener noreferrer"\`.
40
44
  - **icon**: The icon to display next to the label. Icons are from [Lucide](https://lucide.dev/).
41
45
 
42
46
  ## Behavior
47
+
43
48
  - **Empty or missing file**: If \`links.json\` is empty or not present, the footer links are hidden.
44
49
  - **Order**: Links appear in the same order as in the array.
45
50
  - **No limit**: Add as many links as you want; they wrap automatically on smaller screens.`;
@@ -1 +1 @@
1
- export declare const globalsMdxTemplate = "---\ntitle: \"Globals\"\ndescription: \"Configure global settings for your documentation.\"\ndate: \"2026-02-19\"\ncategory: \"Configuration\"\ncategoryOrder: 3\norder: 1\n---\n# Global Configuration\nUse a `config.json` file to define project\u2011wide metadata for your documentation site. These values are applied to every generated page unless a page overrides them in its own frontmatter.\n\n## config.json\nPlace a `config.json` at your project root (the same folder where you execute `npx doccupine`) to define global metadata for your documentation site.\n\n```json\n{\n \"name\": \"Doccupine\",\n \"description\": \"Doccupine is a free and open-source documentation platform. Write MDX, get a production-ready site with AI chat, built-in components, and an MCP server - in one command.\",\n \"icon\": \"https://docs.doccupine.com/favicon.ico\",\n \"image\": \"https://docs.doccupine.com/preview.png\",\n \"url\": \"https://docs.example.com\"\n}\n```\n\n## Fields\nAll fields are optional. Doccupine uses sensible defaults when a field is not set.\n\n- **name**: The primary name of your documentation website. Displayed in the site title and used in various UI elements.\n- **description**: A concise summary of your project, used in site metadata (e.g., HTML meta description) and social previews when not overridden.\n- **icon**: The favicon for your site. You can provide a full URL or a relative path to an asset in your project.\n- **image**: The Open Graph image used when links to your docs are shared on social platforms. Accepts a full URL or a relative path.\n- **url**: The public URL of your deployed site. Used as the base URL for `sitemap.xml` and `robots.txt`. When omitted, no sitemap is generated. Can be overridden at deploy time with the `NEXT_PUBLIC_SITE_URL` environment variable.\n\n## Per-page overrides\nAny page can override global values by defining the matching key in its frontmatter. When present, the page's value takes precedence over `config.json` for that page only.\n\n| Frontmatter field | Overrides | Effect |\n|---|---|---|\n| **title** | - | Page title in metadata and Open Graph |\n| **description** | `description` | Meta description and Open Graph description |\n| **name** | `name` | Site name shown in the title suffix (e.g. \"Page - My Docs\") |\n| **icon** | `icon` | Favicon for this page |\n| **image** | `image` | Open Graph preview image |\n| **section** | - | Assigns the page to a [section](/sections) |\n| **sectionOrder** | - | Controls section position in the tab bar |\n| **sectionLabel** | - | Renames the default \"Docs\" tab (use on `index.mdx`) |\n\n<Callout type=\"note\">\n If a key is not specified in a page's frontmatter, Doccupine falls back to the corresponding value in `config.json`.\n</Callout>\n\nExample frontmatter in an `.mdx` file:\n\n```text\n---\ntitle: \"My Feature\"\ndescription: \"A focused description just for this page.\"\nname: \"My Product Docs\"\nicon: \"/custom-favicon.ico\"\nimage: \"/custom-preview.png\"\ndate: \"2026-02-19\"\ncategory: \"Guides\"\n---\n```\n\n";
1
+ export declare const globalsMdxTemplate = "---\ntitle: \"Globals\"\ndescription: \"Configure global settings for your documentation.\"\ndate: \"2026-02-19\"\ncategory: \"Configuration\"\ncategoryOrder: 3\norder: 1\n---\n\n# Global Configuration\n\nUse a `config.json` file to define project\u2011wide metadata for your documentation site. These values are applied to every generated page unless a page overrides them in its own frontmatter.\n\n## config.json\n\nPlace a `config.json` at your project root (the same folder where you execute `npx doccupine`) to define global metadata for your documentation site.\n\n```json\n{\n \"name\": \"Doccupine\",\n \"description\": \"Doccupine is a free and open-source documentation platform. Write MDX, get a production-ready site with AI chat, built-in components, and an MCP server - in one command.\",\n \"icon\": \"https://docs.doccupine.com/favicon.ico\",\n \"image\": \"https://docs.doccupine.com/preview.png\",\n \"url\": \"https://docs.example.com\"\n}\n```\n\n## Fields\n\nAll fields are optional. Doccupine uses sensible defaults when a field is not set.\n\n- **name**: The primary name of your documentation website. Displayed in the site title and used in various UI elements.\n- **description**: A concise summary of your project, used in site metadata (e.g., HTML meta description) and social previews when not overridden.\n- **icon**: The favicon for your site. You can provide a full URL or a relative path to an asset in your project.\n- **image**: The Open Graph image used when links to your docs are shared on social platforms. Accepts a full URL or a relative path.\n- **url**: The public URL of your deployed site. Used as the base URL for `sitemap.xml` and `robots.txt`. When omitted, no sitemap is generated. Can be overridden at deploy time with the `NEXT_PUBLIC_SITE_URL` environment variable.\n\n## Per-page overrides\n\nAny page can override global values by defining the matching key in its frontmatter. When present, the page's value takes precedence over `config.json` for that page only.\n\n| Frontmatter field | Overrides | Effect |\n| ----------------- | ------------- | ----------------------------------------------------------- |\n| **title** | - | Page title in metadata and Open Graph |\n| **description** | `description` | Meta description and Open Graph description |\n| **name** | `name` | Site name shown in the title suffix (e.g. \"Page - My Docs\") |\n| **icon** | `icon` | Favicon for this page |\n| **image** | `image` | Open Graph preview image |\n| **section** | - | Assigns the page to a [section](/sections) |\n| **sectionOrder** | - | Controls section position in the tab bar |\n| **sectionLabel** | - | Renames the default \"Docs\" tab (use on `index.mdx`) |\n\n<Callout type=\"note\">\n If a key is not specified in a page's frontmatter, Doccupine falls back to the corresponding value in `config.json`.\n</Callout>\n\nExample frontmatter in an `.mdx` file:\n\n```text\n---\ntitle: \"My Feature\"\ndescription: \"A focused description just for this page.\"\nname: \"My Product Docs\"\nicon: \"/custom-favicon.ico\"\nimage: \"/custom-preview.png\"\ndate: \"2026-02-19\"\ncategory: \"Guides\"\n---\n```";
@@ -7,10 +7,13 @@ category: "Configuration"
7
7
  categoryOrder: 3
8
8
  order: 1
9
9
  ---
10
+
10
11
  # Global Configuration
12
+
11
13
  Use a \`config.json\` file to define project‑wide metadata for your documentation site. These values are applied to every generated page unless a page overrides them in its own frontmatter.
12
14
 
13
15
  ## config.json
16
+
14
17
  Place a \`config.json\` at your project root (the same folder where you execute \`npx doccupine\`) to define global metadata for your documentation site.
15
18
 
16
19
  \`\`\`json
@@ -24,6 +27,7 @@ Place a \`config.json\` at your project root (the same folder where you execute
24
27
  \`\`\`
25
28
 
26
29
  ## Fields
30
+
27
31
  All fields are optional. Doccupine uses sensible defaults when a field is not set.
28
32
 
29
33
  - **name**: The primary name of your documentation website. Displayed in the site title and used in various UI elements.
@@ -33,18 +37,19 @@ All fields are optional. Doccupine uses sensible defaults when a field is not se
33
37
  - **url**: The public URL of your deployed site. Used as the base URL for \`sitemap.xml\` and \`robots.txt\`. When omitted, no sitemap is generated. Can be overridden at deploy time with the \`NEXT_PUBLIC_SITE_URL\` environment variable.
34
38
 
35
39
  ## Per-page overrides
40
+
36
41
  Any page can override global values by defining the matching key in its frontmatter. When present, the page's value takes precedence over \`config.json\` for that page only.
37
42
 
38
- | Frontmatter field | Overrides | Effect |
39
- |---|---|---|
40
- | **title** | - | Page title in metadata and Open Graph |
41
- | **description** | \`description\` | Meta description and Open Graph description |
42
- | **name** | \`name\` | Site name shown in the title suffix (e.g. "Page - My Docs") |
43
- | **icon** | \`icon\` | Favicon for this page |
44
- | **image** | \`image\` | Open Graph preview image |
45
- | **section** | - | Assigns the page to a [section](/sections) |
46
- | **sectionOrder** | - | Controls section position in the tab bar |
47
- | **sectionLabel** | - | Renames the default "Docs" tab (use on \`index.mdx\`) |
43
+ | Frontmatter field | Overrides | Effect |
44
+ | ----------------- | ------------- | ----------------------------------------------------------- |
45
+ | **title** | - | Page title in metadata and Open Graph |
46
+ | **description** | \`description\` | Meta description and Open Graph description |
47
+ | **name** | \`name\` | Site name shown in the title suffix (e.g. "Page - My Docs") |
48
+ | **icon** | \`icon\` | Favicon for this page |
49
+ | **image** | \`image\` | Open Graph preview image |
50
+ | **section** | - | Assigns the page to a [section](/sections) |
51
+ | **sectionOrder** | - | Controls section position in the tab bar |
52
+ | **sectionLabel** | - | Renames the default "Docs" tab (use on \`index.mdx\`) |
48
53
 
49
54
  <Callout type="note">
50
55
  If a key is not specified in a page's frontmatter, Doccupine falls back to the corresponding value in \`config.json\`.
@@ -62,6 +67,4 @@ image: "/custom-preview.png"
62
67
  date: "2026-02-19"
63
68
  category: "Guides"
64
69
  ---
65
- \`\`\`
66
-
67
- `;
70
+ \`\`\``;
@@ -1 +1 @@
1
- export declare const headersAndTextMdxTemplate = "---\ntitle: \"Headers and Text\"\ndescription: \"Learn how to structure and style your content with headers, formatting, and links.\"\ndate: \"2026-02-19\"\ncategory: \"Components\"\ncategoryOrder: 1\norder: 1\n---\n# Headers and Text\nLearn how to structure and style your content with headers, formatting, and links.\n\n## Headers\nHeaders define the hierarchy of your content and automatically generate navigation anchors. They also appear in the table of contents, helping readers quickly scan through documentation.\n\n### Creating headers\nAdd `#` symbols before text to create headers at various levels:\n\n```text\n## Main section header\n### Subsection header\n#### Nested subsection header\n```\n\n## Text Formatting\nMarkdown text styling is supported for emphasis, highlighting, and readability.\n\n### Basic formatting\nUse these common syntax options:\n\n- Bold: `**bold text**` \u2192 **bold text**\n- Italic: `*italic text*` \u2192 *italic text*\n- Strikethrough: `~~strikethrough~~` \u2192 ~~strikethrough~~\n\n### Combining formats\nYou can mix multiple styles at once for clarity:\n\n```text\n**_bold and italic_**\n**~~bold and strikethrough~~**\n*~~italic and strikethrough~~**\n```\n\n## Superscript and subscript\nFor formulas, notes, or variables, use HTML tags:\n\n- Superscript `X<sup>2</sup>` \u2192 X<sup>2</sup>\n- Subscript `H<sub>2</sub>O` \u2192 H<sub>2</sub>O\n\n## Links\nLinks connect users to internal pages or external resources. Always use descriptive link text for better accessibility.\n\n### Internal links\nReference other docs with root-relative paths:\n\n```text\n[Getting Started](/)\n[Commands](/commands)\n```\n\n- [Getting Started](/)\n- [Commands](/commands)\n\n### External links\nPoint to external pages by including full URLs:\n\n```text\n[Markdown Guide](https://www.markdownguide.org/)\n```\n\n[Markdown Guide](https://www.markdownguide.org/)\n\n## Blockquotes\nBlockquotes are used to visually highlight key information, quotations, or examples.\n\n### Single line blockquotes\nPrefix text with `>` for a single-line blockquote:\n\n```text\n> Highlighted message or quote\n```\n\n> Highlighted message or quote\n\n### Multi-line blockquotes\nFor larger quotes spanning more than one paragraph:\n\n```text\n> This is a blockquote that spans multiple lines.\n> It can include several paragraphs of text.\n> Each new line starts with a `>` symbol.\n```\n\n> This is a blockquote that spans multiple lines.\n> It can include several paragraphs of text.\n> Each new line starts with a `>` symbol.\n\n## Line Breaks and Spacing\nControl spacing to improve readability and layout.\n\n### Paragraph breaks\nSeparate paragraphs with blank lines:\n\n```text\nFirst paragraph.\n\nSecond paragraph.\n```\n\nFirst paragraph.\n\nSecond paragraph.\n\n## Manual line breaks\nFor shorter breaks inside the same paragraph, use `<br />`:\n\n```text\nThis is one line.<br />\nThis is the next line.\n```\n\nThis is one line.<br />\nThis is the next line.\n\n# Best Practices\n\n## Organizing content\n- Use headers to establish hierarchy\n- Maintain logical order (avoid skipping levels, e.g., H2 \u2192 H4)\n- Always write meaningful, descriptive headers\n\n## Formatting text\n- Use **bold** for key emphasis only\n- Use *italics* for emphasis or technical terms\n- Limit formatting combinations to maintain readability\n\n## Links usage\n- Avoid vague text like \u201Cclick here\u201D\n- Prefer root-relative paths for internal links\n- Regularly validate links to ensure they are not broken";
1
+ export declare const headersAndTextMdxTemplate = "---\ntitle: \"Headers and Text\"\ndescription: \"Learn how to structure and style your content with headers, formatting, and links.\"\ndate: \"2026-02-19\"\ncategory: \"Components\"\ncategoryOrder: 1\norder: 1\n---\n\n# Headers and Text\n\nLearn how to structure and style your content with headers, formatting, and links.\n\n## Headers\n\nHeaders define the hierarchy of your content and automatically generate navigation anchors. They also appear in the table of contents, helping readers quickly scan through documentation.\n\n### Creating headers\n\nAdd `#` symbols before text to create headers at various levels:\n\n```text\n## Main section header\n### Subsection header\n#### Nested subsection header\n```\n\n## Text Formatting\n\nMarkdown text styling is supported for emphasis, highlighting, and readability.\n\n### Basic formatting\n\nUse these common syntax options:\n\n- Bold: `**bold text**` \u2192 **bold text**\n- Italic: `*italic text*` \u2192 _italic text_\n- Strikethrough: `~~strikethrough~~` \u2192 ~~strikethrough~~\n\n### Combining formats\n\nYou can mix multiple styles at once for clarity:\n\n```text\n**_bold and italic_**\n**~~bold and strikethrough~~**\n*~~italic and strikethrough~~**\n```\n\n## Superscript and subscript\n\nFor formulas, notes, or variables, use HTML tags:\n\n- Superscript `X<sup>2</sup>` \u2192 X<sup>2</sup>\n- Subscript `H<sub>2</sub>O` \u2192 H<sub>2</sub>O\n\n## Links\n\nLinks connect users to internal pages or external resources. Always use descriptive link text for better accessibility.\n\n### Internal links\n\nReference other docs with root-relative paths:\n\n```text\n[Getting Started](/)\n[Commands](/commands)\n```\n\n- [Getting Started](/)\n- [Commands](/commands)\n\n### External links\n\nPoint to external pages by including full URLs:\n\n```text\n[Markdown Guide](https://www.markdownguide.org/)\n```\n\n[Markdown Guide](https://www.markdownguide.org/)\n\n## Blockquotes\n\nBlockquotes are used to visually highlight key information, quotations, or examples.\n\n### Single line blockquotes\n\nPrefix text with `>` for a single-line blockquote:\n\n```text\n> Highlighted message or quote\n```\n\n> Highlighted message or quote\n\n### Multi-line blockquotes\n\nFor larger quotes spanning more than one paragraph:\n\n```text\n> This is a blockquote that spans multiple lines.\n> It can include several paragraphs of text.\n> Each new line starts with a `>` symbol.\n```\n\n> This is a blockquote that spans multiple lines.\n> It can include several paragraphs of text.\n> Each new line starts with a `>` symbol.\n\n## Line Breaks and Spacing\n\nControl spacing to improve readability and layout.\n\n### Paragraph breaks\n\nSeparate paragraphs with blank lines:\n\n```text\nFirst paragraph.\n\nSecond paragraph.\n```\n\nFirst paragraph.\n\nSecond paragraph.\n\n## Manual line breaks\n\nFor shorter breaks inside the same paragraph, use `<br />`:\n\n```text\nThis is one line.<br />\nThis is the next line.\n```\n\nThis is one line.<br />\nThis is the next line.\n\n# Best Practices\n\n## Organizing content\n\n- Use headers to establish hierarchy\n- Maintain logical order (avoid skipping levels, e.g., H2 \u2192 H4)\n- Always write meaningful, descriptive headers\n\n## Formatting text\n\n- Use **bold** for key emphasis only\n- Use _italics_ for emphasis or technical terms\n- Limit formatting combinations to maintain readability\n\n## Links usage\n\n- Avoid vague text like \u201Cclick here\u201D\n- Prefer root-relative paths for internal links\n- Regularly validate links to ensure they are not broken";
@@ -6,13 +6,17 @@ category: "Components"
6
6
  categoryOrder: 1
7
7
  order: 1
8
8
  ---
9
+
9
10
  # Headers and Text
11
+
10
12
  Learn how to structure and style your content with headers, formatting, and links.
11
13
 
12
14
  ## Headers
15
+
13
16
  Headers define the hierarchy of your content and automatically generate navigation anchors. They also appear in the table of contents, helping readers quickly scan through documentation.
14
17
 
15
18
  ### Creating headers
19
+
16
20
  Add \`#\` symbols before text to create headers at various levels:
17
21
 
18
22
  \`\`\`text
@@ -22,16 +26,19 @@ Add \`#\` symbols before text to create headers at various levels:
22
26
  \`\`\`
23
27
 
24
28
  ## Text Formatting
29
+
25
30
  Markdown text styling is supported for emphasis, highlighting, and readability.
26
31
 
27
32
  ### Basic formatting
33
+
28
34
  Use these common syntax options:
29
35
 
30
36
  - Bold: \`**bold text**\` → **bold text**
31
- - Italic: \`*italic text*\` → *italic text*
37
+ - Italic: \`*italic text*\` → _italic text_
32
38
  - Strikethrough: \`~~strikethrough~~\` → ~~strikethrough~~
33
39
 
34
40
  ### Combining formats
41
+
35
42
  You can mix multiple styles at once for clarity:
36
43
 
37
44
  \`\`\`text
@@ -41,15 +48,18 @@ You can mix multiple styles at once for clarity:
41
48
  \`\`\`
42
49
 
43
50
  ## Superscript and subscript
51
+
44
52
  For formulas, notes, or variables, use HTML tags:
45
53
 
46
54
  - Superscript \`X<sup>2</sup>\` → X<sup>2</sup>
47
55
  - Subscript \`H<sub>2</sub>O\` → H<sub>2</sub>O
48
56
 
49
57
  ## Links
58
+
50
59
  Links connect users to internal pages or external resources. Always use descriptive link text for better accessibility.
51
60
 
52
61
  ### Internal links
62
+
53
63
  Reference other docs with root-relative paths:
54
64
 
55
65
  \`\`\`text
@@ -61,6 +71,7 @@ Reference other docs with root-relative paths:
61
71
  - [Commands](/commands)
62
72
 
63
73
  ### External links
74
+
64
75
  Point to external pages by including full URLs:
65
76
 
66
77
  \`\`\`text
@@ -70,9 +81,11 @@ Point to external pages by including full URLs:
70
81
  [Markdown Guide](https://www.markdownguide.org/)
71
82
 
72
83
  ## Blockquotes
84
+
73
85
  Blockquotes are used to visually highlight key information, quotations, or examples.
74
86
 
75
87
  ### Single line blockquotes
88
+
76
89
  Prefix text with \`>\` for a single-line blockquote:
77
90
 
78
91
  \`\`\`text
@@ -82,6 +95,7 @@ Prefix text with \`>\` for a single-line blockquote:
82
95
  > Highlighted message or quote
83
96
 
84
97
  ### Multi-line blockquotes
98
+
85
99
  For larger quotes spanning more than one paragraph:
86
100
 
87
101
  \`\`\`text
@@ -95,9 +109,11 @@ For larger quotes spanning more than one paragraph:
95
109
  > Each new line starts with a \`>\` symbol.
96
110
 
97
111
  ## Line Breaks and Spacing
112
+
98
113
  Control spacing to improve readability and layout.
99
114
 
100
115
  ### Paragraph breaks
116
+
101
117
  Separate paragraphs with blank lines:
102
118
 
103
119
  \`\`\`text
@@ -111,6 +127,7 @@ First paragraph.
111
127
  Second paragraph.
112
128
 
113
129
  ## Manual line breaks
130
+
114
131
  For shorter breaks inside the same paragraph, use \`<br />\`:
115
132
 
116
133
  \`\`\`text
@@ -124,16 +141,19 @@ This is the next line.
124
141
  # Best Practices
125
142
 
126
143
  ## Organizing content
144
+
127
145
  - Use headers to establish hierarchy
128
146
  - Maintain logical order (avoid skipping levels, e.g., H2 → H4)
129
147
  - Always write meaningful, descriptive headers
130
148
 
131
149
  ## Formatting text
150
+
132
151
  - Use **bold** for key emphasis only
133
- - Use *italics* for emphasis or technical terms
152
+ - Use _italics_ for emphasis or technical terms
134
153
  - Limit formatting combinations to maintain readability
135
154
 
136
155
  ## Links usage
156
+
137
157
  - Avoid vague text like “click here”
138
158
  - Prefer root-relative paths for internal links
139
159
  - Regularly validate links to ensure they are not broken`;
@@ -1 +1 @@
1
- export declare const iconsMdxTemplate = "---\ntitle: \"Icons\"\ndescription: \"Integrate visual icons from well-known libraries to enrich your documentation.\"\ndate: \"2026-02-19\"\ncategory: \"Components\"\ncategoryOrder: 1\norder: 10\n---\n# Icons\nIntegrate visual icons from well-known libraries to enrich your documentation.\n\nIcons can be sourced from Lucide, SVG elements, external URLs, or local files within your project directory.\n\n<Icon name=\"flag\" size={32} />\n\n```mdx\n<Icon name=\"flag\" size={32} />\n```\n\n## Inline icons\nYou can use icons directly within text to highlight information or add visual context.\n\n<Icon name=\"flag\" size={16} /> Build your documentation seamlessly.\n\n```mdx\n<Icon name=\"flag\" size={16} /> Build your documentation seamlessly.\n```\n\n## Properties\n\n<Field value=\"name\" type=\"string\" required>\n The icon to display.\n</Field>\n\n- [**Lucide icon**](https://lucide.dev/icons) name\n\n<Field value=\"size\" type=\"number\">\n The size of the icon in pixels.\n</Field>\n\n<Field value=\"color\" type=\"string\">\n The color of the icon as a hex code (for example, `#FF5733`).\n</Field>";
1
+ export declare const iconsMdxTemplate = "---\ntitle: \"Icons\"\ndescription: \"Integrate visual icons from well-known libraries to enrich your documentation.\"\ndate: \"2026-02-19\"\ncategory: \"Components\"\ncategoryOrder: 1\norder: 10\n---\n\n# Icons\n\nIntegrate visual icons from well-known libraries to enrich your documentation.\n\nIcons can be sourced from Lucide, SVG elements, external URLs, or local files within your project directory.\n\n<Icon name=\"flag\" size={32} />\n\n```mdx\n<Icon name=\"flag\" size={32} />\n```\n\n## Inline icons\n\nYou can use icons directly within text to highlight information or add visual context.\n\n<Icon name=\"flag\" size={16} /> Build your documentation seamlessly.\n\n```mdx\n<Icon name=\"flag\" size={16} /> Build your documentation seamlessly.\n```\n\n## Properties\n\n<Field value=\"name\" type=\"string\" required>\n The icon to display.\n</Field>\n\n- [**Lucide icon**](https://lucide.dev/icons) name\n\n<Field value=\"size\" type=\"number\">\n The size of the icon in pixels.\n</Field>\n\n<Field value=\"color\" type=\"string\">\n The color of the icon as a hex code (for example, `#FF5733`).\n</Field>";
@@ -6,7 +6,9 @@ category: "Components"
6
6
  categoryOrder: 1
7
7
  order: 10
8
8
  ---
9
+
9
10
  # Icons
11
+
10
12
  Integrate visual icons from well-known libraries to enrich your documentation.
11
13
 
12
14
  Icons can be sourced from Lucide, SVG elements, external URLs, or local files within your project directory.
@@ -18,6 +20,7 @@ Icons can be sourced from Lucide, SVG elements, external URLs, or local files wi
18
20
  \`\`\`
19
21
 
20
22
  ## Inline icons
23
+
21
24
  You can use icons directly within text to highlight information or add visual context.
22
25
 
23
26
  <Icon name="flag" size={16} /> Build your documentation seamlessly.
@@ -1 +1 @@
1
- export declare const imageAndEmbedsMdxTemplate = "---\ntitle: \"Images and embeds\"\ndescription: \"Enrich your documentation with visuals, videos, and interactive embeds.\"\ndate: \"2026-02-19\"\ncategory: \"Components\"\ncategoryOrder: 1\norder: 9\n---\n# Images and embeds\nEnrich your documentation with visuals, videos, and interactive embeds.\n\nDisplay images, embed video content, or add interactive frames via iframes to supplement your docs.\n\n![Demo Image](https://docs.doccupine.com/demo.png)\n\n## Images\nImages enhance documentation with context, illustration, or decorative visual cues.\n\n### Basic Image Syntax\nInclude an image in Markdown using the syntax below:\n\n```md\n![Alt text](https://docs.doccupine.com/demo.png)\n```\n\n<Callout type=\"note\">\n Use clear, descriptive alt text for accessibility and better SEO. Alt text should describe the image\u2019s appearance or content.\n</Callout>\n\n### HTML image embeds\nEmbed images in your Markdown content using HTML syntax.\n\n```md\n<img src=\"https://docs.doccupine.com/demo.png\" alt=\"Alt text\">\n```\n\n### Theme-aware images\nShow different images depending on whether the user is in light or dark mode. Add the `light-only` or `dark-only` className to display an image exclusively in that theme.\n\n```md\n<img className=\"light-only\" src=\"/images/diagram-light.png\" alt=\"Diagram\">\n<img className=\"dark-only\" src=\"/images/diagram-dark.png\" alt=\"Diagram\">\n```\n\n<img className=\"light-only\" src=\"https://docs.doccupine.com/demo.png\" alt=\"This image is only visible in light mode\" />\n<img className=\"dark-only\" src=\"https://docs.doccupine.com/demo.png\" alt=\"This image is only visible in dark mode\" style={{ filter: \"invert(1)\" }} />\n\n<Callout type=\"note\">\n The `light-only` and `dark-only` classes work on any element, not just images. You can use them on videos, iframes, or wrapper divs too.\n</Callout>\n\n## Videos\nVideos add a dynamic element to your documentation, engaging your audience and providing a more immersive experience.\n\n### YouTube Embed\nTo embed a YouTube video, use the following syntax:\n\n```html\n<iframe\n className=\"aspect-video\"\n src=\"https://www.youtube.com/embed/ResP_eVPYQo\"\n title=\"YouTube video player\"\n frameBorder=\"0\"\n allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\"\n allowFullScreen\n></iframe>\n```\n\n<iframe\n className=\"aspect-video\"\n src=\"https://www.youtube.com/embed/ResP_eVPYQo\"\n title=\"YouTube video player\"\n frameBorder=\"0\"\n allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\"\n allowFullScreen\n></iframe>\n\n### Self-hosted videos\nServe up your own video content using the `<video>` tag:\n\n```html\n<video\n controls\n className=\"aspect-video\"\n src=\"https://samplelib.com/lib/preview/mp4/sample-20s.mp4\"\n></video>\n```\n\n<video\n controls\n className=\"aspect-video\"\n src=\"https://samplelib.com/lib/preview/mp4/sample-20s.mp4\"\n></video>\n\n\n#### Autoplay and Looping\nFor demonstration videos that loop or start automatically, add attributes as shown:\n\n```html\n<video\n controls\n className=\"aspect-video\"\n src=\"https://samplelib.com/lib/preview/mp4/sample-20s.mp4\"\n autoPlay\n muted\n loop\n playsInline\n></video>\n```\n";
1
+ export declare const imageAndEmbedsMdxTemplate = "---\ntitle: \"Images and embeds\"\ndescription: \"Enrich your documentation with visuals, videos, and interactive embeds.\"\ndate: \"2026-02-19\"\ncategory: \"Components\"\ncategoryOrder: 1\norder: 9\n---\n\n# Images and embeds\n\nEnrich your documentation with visuals, videos, and interactive embeds.\n\nDisplay images, embed video content, or add interactive frames via iframes to supplement your docs.\n\n![Demo Image](https://docs.doccupine.com/demo.png)\n\n## Images\n\nImages enhance documentation with context, illustration, or decorative visual cues.\n\n### Basic Image Syntax\n\nInclude an image in Markdown using the syntax below:\n\n```md\n![Alt text](https://docs.doccupine.com/demo.png)\n```\n\n<Callout type=\"note\">\n Use clear, descriptive alt text for accessibility and better SEO. Alt text should describe the image\u2019s appearance or content.\n</Callout>\n\n### HTML image embeds\n\nEmbed images in your Markdown content using HTML syntax.\n\n```md\n<img src=\"https://docs.doccupine.com/demo.png\" alt=\"Alt text\">\n```\n\n### Theme-aware images\n\nShow different images depending on whether the user is in light or dark mode. Add the `light-only` or `dark-only` className to display an image exclusively in that theme.\n\n```md\n<img className=\"light-only\" src=\"/images/diagram-light.png\" alt=\"Diagram\">\n<img className=\"dark-only\" src=\"/images/diagram-dark.png\" alt=\"Diagram\">\n```\n\n<img className=\"light-only\" src=\"https://docs.doccupine.com/demo.png\" alt=\"This image is only visible in light mode\" />\n<img className=\"dark-only\" src=\"https://docs.doccupine.com/demo.png\" alt=\"This image is only visible in dark mode\" style={{ filter: \"invert(1)\" }} />\n\n<Callout type=\"note\">\n The `light-only` and `dark-only` classes work on any element, not just images. You can use them on videos, iframes, or wrapper divs too.\n</Callout>\n\n## Videos\n\nVideos add a dynamic element to your documentation, engaging your audience and providing a more immersive experience.\n\n### YouTube Embed\n\nTo embed a YouTube video, use the following syntax:\n\n```html\n<iframe\n className=\"aspect-video\"\n src=\"https://www.youtube.com/embed/ResP_eVPYQo\"\n title=\"YouTube video player\"\n frameborder=\"0\"\n allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\"\n allowfullscreen\n></iframe>\n```\n\n<iframe\n className=\"aspect-video\"\n src=\"https://www.youtube.com/embed/ResP_eVPYQo\"\n title=\"YouTube video player\"\n frameBorder=\"0\"\n allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\"\n allowFullScreen\n></iframe>\n\n### Self-hosted videos\n\nServe up your own video content using the `<video>` tag:\n\n```html\n<video\n controls\n className=\"aspect-video\"\n src=\"https://samplelib.com/lib/preview/mp4/sample-20s.mp4\"\n></video>\n```\n\n<video\ncontrols\nclassName=\"aspect-video\"\nsrc=\"https://samplelib.com/lib/preview/mp4/sample-20s.mp4\"\n\n> </video>\n\n#### Autoplay and Looping\n\nFor demonstration videos that loop or start automatically, add attributes as shown:\n\n```html\n<video\n controls\n className=\"aspect-video\"\n src=\"https://samplelib.com/lib/preview/mp4/sample-20s.mp4\"\n autoplay\n muted\n loop\n playsinline\n></video>\n```";
@@ -6,7 +6,9 @@ category: "Components"
6
6
  categoryOrder: 1
7
7
  order: 9
8
8
  ---
9
+
9
10
  # Images and embeds
11
+
10
12
  Enrich your documentation with visuals, videos, and interactive embeds.
11
13
 
12
14
  Display images, embed video content, or add interactive frames via iframes to supplement your docs.
@@ -14,9 +16,11 @@ Display images, embed video content, or add interactive frames via iframes to su
14
16
  ![Demo Image](https://docs.doccupine.com/demo.png)
15
17
 
16
18
  ## Images
19
+
17
20
  Images enhance documentation with context, illustration, or decorative visual cues.
18
21
 
19
22
  ### Basic Image Syntax
23
+
20
24
  Include an image in Markdown using the syntax below:
21
25
 
22
26
  \`\`\`md
@@ -28,6 +32,7 @@ Include an image in Markdown using the syntax below:
28
32
  </Callout>
29
33
 
30
34
  ### HTML image embeds
35
+
31
36
  Embed images in your Markdown content using HTML syntax.
32
37
 
33
38
  \`\`\`md
@@ -35,6 +40,7 @@ Embed images in your Markdown content using HTML syntax.
35
40
  \`\`\`
36
41
 
37
42
  ### Theme-aware images
43
+
38
44
  Show different images depending on whether the user is in light or dark mode. Add the \`light-only\` or \`dark-only\` className to display an image exclusively in that theme.
39
45
 
40
46
  \`\`\`md
@@ -50,9 +56,11 @@ Show different images depending on whether the user is in light or dark mode. Ad
50
56
  </Callout>
51
57
 
52
58
  ## Videos
59
+
53
60
  Videos add a dynamic element to your documentation, engaging your audience and providing a more immersive experience.
54
61
 
55
62
  ### YouTube Embed
63
+
56
64
  To embed a YouTube video, use the following syntax:
57
65
 
58
66
  \`\`\`html
@@ -60,9 +68,9 @@ To embed a YouTube video, use the following syntax:
60
68
  className="aspect-video"
61
69
  src="https://www.youtube.com/embed/ResP_eVPYQo"
62
70
  title="YouTube video player"
63
- frameBorder="0"
71
+ frameborder="0"
64
72
  allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
65
- allowFullScreen
73
+ allowfullscreen
66
74
  ></iframe>
67
75
  \`\`\`
68
76
 
@@ -76,6 +84,7 @@ To embed a YouTube video, use the following syntax:
76
84
  ></iframe>
77
85
 
78
86
  ### Self-hosted videos
87
+
79
88
  Serve up your own video content using the \`<video>\` tag:
80
89
 
81
90
  \`\`\`html
@@ -87,13 +96,14 @@ Serve up your own video content using the \`<video>\` tag:
87
96
  \`\`\`
88
97
 
89
98
  <video
90
- controls
91
- className="aspect-video"
92
- src="https://samplelib.com/lib/preview/mp4/sample-20s.mp4"
93
- ></video>
99
+ controls
100
+ className="aspect-video"
101
+ src="https://samplelib.com/lib/preview/mp4/sample-20s.mp4"
94
102
 
103
+ > </video>
95
104
 
96
105
  #### Autoplay and Looping
106
+
97
107
  For demonstration videos that loop or start automatically, add attributes as shown:
98
108
 
99
109
  \`\`\`html
@@ -101,10 +111,9 @@ For demonstration videos that loop or start automatically, add attributes as sho
101
111
  controls
102
112
  className="aspect-video"
103
113
  src="https://samplelib.com/lib/preview/mp4/sample-20s.mp4"
104
- autoPlay
114
+ autoplay
105
115
  muted
106
116
  loop
107
- playsInline
117
+ playsinline
108
118
  ></video>
109
- \`\`\`
110
- `;
119
+ \`\`\``;
@@ -1 +1 @@
1
- export declare const indexMdxTemplate = "---\ntitle: \"Introduction\"\ndescription: \"Doccupine is a free and open-source documentation platform. Write MDX, get a production-ready site with AI chat, built-in components, and an MCP server - in one command.\"\ndate: \"2026-02-19\"\ncategory: \"Getting Started\"\ncategoryOrder: 0\norder: 0\n---\n# Welcome to Doccupine\n\nDoccupine turns a folder of MDX files into a beautiful, production-ready documentation website. Write in standard Markdown, use any of the built-in components, and get a fully themed site with AI-powered search and automatic navigation - all from one command.\n\n```bash\nnpx doccupine\n```\n\nThat's it. Doccupine prompts you for a source directory, generates your site, and starts a dev server at `http://localhost:3000`. Every edit rebuilds instantly.\n\n<Callout type=\"info\">\n Want a managed experience instead? The [Doccupine Platform](/platform) gives you a browser-based editor, one-click publishing, custom domains, and team collaboration - no local setup needed.\n</Callout>\n\n## How it works\n\nYou write `.mdx` files using Markdown and built-in components like this one. Doccupine watches your files, generates pages, builds the sidebar from your frontmatter, and handles theming, AI chat, and deployment config for you.\n\nEverything on this page - the callout above, the cards below, the code block - is a live example of what your docs can look like out of the box.\n\n<Columns cols={2}>\n <Card title=\"Start writing\" icon=\"pencil\" href=\"/components\">\n Rich docs from day one. 14+ components work out of the box - no imports needed.\n </Card>\n <Card title=\"Ship it\" icon=\"rocket\" href=\"/deployment-and-hosting\">\n Deploy to the Doccupine Platform or self-host on any platform that supports Next.js.\n </Card>\n</Columns>\n\n## Configure your site\n\nDoccupine works with no configuration, but when you're ready to customize, everything is controlled through simple JSON files in your project root.\n\n- [Global settings](/globals) - Site name, description, favicon, and preview image via `config.json`\n- [Navigation](/navigation) - Override the auto-generated sidebar with `navigation.json`\n- [Theme](/theme) - Colors, logos, and dark mode palette via `theme.json`\n- [Fonts](/fonts) - Google Fonts or local font files via `fonts.json`\n- [AI Assistant](/ai-assistant) - Enable the built-in chat with your own API key\n- [MCP Server](/model-context-protocol) - Let AI tools search your docs through `/api/mcp`\n";
1
+ export declare const indexMdxTemplate = "---\ntitle: \"Introduction\"\ndescription: \"Doccupine is a free and open-source documentation platform. Write MDX, get a production-ready site with AI chat, built-in components, and an MCP server - in one command.\"\ndate: \"2026-02-19\"\ncategory: \"Getting Started\"\ncategoryOrder: 0\norder: 0\n---\n\n# Welcome to Doccupine\n\nDoccupine turns a folder of MDX files into a beautiful, production-ready documentation website. Write in standard Markdown, use any of the built-in components, and get a fully themed site with AI-powered search and automatic navigation - all from one command.\n\n```bash\nnpx doccupine\n```\n\nThat's it. Doccupine prompts you for a source directory, generates your site, and starts a dev server at `http://localhost:3000`. Every edit rebuilds instantly.\n\n<Callout type=\"info\">\n Want a managed experience instead? The [Doccupine Platform](/platform) gives you a browser-based editor, one-click publishing, custom domains, and team collaboration - no local setup needed.\n</Callout>\n\n## How it works\n\nYou write `.mdx` files using Markdown and built-in components like this one. Doccupine watches your files, generates pages, builds the sidebar from your frontmatter, and handles theming, AI chat, and deployment config for you.\n\nEverything on this page - the callout above, the cards below, the code block - is a live example of what your docs can look like out of the box.\n\n<Columns cols={2}>\n <Card title=\"Start writing\" icon=\"pencil\" href=\"/components\">\n Rich docs from day one. 14+ components work out of the box - no imports needed.\n </Card>\n <Card title=\"Ship it\" icon=\"rocket\" href=\"/deployment-and-hosting\">\n Deploy to the Doccupine Platform or self-host on any platform that supports Next.js.\n </Card>\n</Columns>\n\n## Configure your site\n\nDoccupine works with no configuration, but when you're ready to customize, everything is controlled through simple JSON files in your project root.\n\n- [Global settings](/globals) - Site name, description, favicon, and preview image via `config.json`\n- [Navigation](/navigation) - Override the auto-generated sidebar with `navigation.json`\n- [Theme](/theme) - Colors, logos, and dark mode palette via `theme.json`\n- [Fonts](/fonts) - Google Fonts or local font files via `fonts.json`\n- [AI Assistant](/ai-assistant) - Enable the built-in chat with your own API key\n- [MCP Server](/model-context-protocol) - Let AI tools search your docs through `/api/mcp`";
@@ -7,6 +7,7 @@ category: "Getting Started"
7
7
  categoryOrder: 0
8
8
  order: 0
9
9
  ---
10
+
10
11
  # Welcome to Doccupine
11
12
 
12
13
  Doccupine turns a folder of MDX files into a beautiful, production-ready documentation website. Write in standard Markdown, use any of the built-in components, and get a fully themed site with AI-powered search and automatic navigation - all from one command.
@@ -45,5 +46,4 @@ Doccupine works with no configuration, but when you're ready to customize, every
45
46
  - [Theme](/theme) - Colors, logos, and dark mode palette via \`theme.json\`
46
47
  - [Fonts](/fonts) - Google Fonts or local font files via \`fonts.json\`
47
48
  - [AI Assistant](/ai-assistant) - Enable the built-in chat with your own API key
48
- - [MCP Server](/model-context-protocol) - Let AI tools search your docs through \`/api/mcp\`
49
- `;
49
+ - [MCP Server](/model-context-protocol) - Let AI tools search your docs through \`/api/mcp\``;
@@ -1 +1 @@
1
- export declare const listsAndTablesMdxTemplate = "---\ntitle: \"Lists and tables\"\ndescription: \"Present structured information using lists or tables.\"\ndate: \"2026-02-19\"\ncategory: \"Components\"\ncategoryOrder: 1\norder: 2\n---\n# Lists and Tables\nPresent structured information using lists or tables.\n\n## Lists\nMarkdown supports both *ordered* and *unordered* lists, as well as nested list structures.\n\n### Ordered List\nStart each item with a number followed by a period to create an ordered list.\n\n```md\n1. First item\n2. Second item\n3. Third item\n4. Fourth item\n```\n\n1. First item\n2. Second item\n3. Third item\n4. Fourth item\n\n\n### Unordered List\nUse dashes (`-`), asterisks (`*`), or plus signs (`+`) before each item for unordered lists.\n\n```md\n- First item\n- Second item\n- Third item\n- Fourth item\n```\n\n- First item\n- Second item\n- Third item\n- Fourth item\n\n### Nested List\nIndent items under another to create nested lists.\n\n```md\n- First item\n- Second item\n - Additional item\n - Additional item\n- Third item\n```\n\n- First item\n- Second item\n - Additional item\n - Additional item\n- Third item\n\n## Tables\nMarkdown tables use pipes (`|`) to separate columns and hyphens (`---`) to define the header row. Place a pipe at the start and end of each row for better compatibility.\n\n```md\n| Property | Description |\n| -------- | -------------------------------------- |\n| Name | Full name of the user |\n| Age | Age in years |\n| Joined | Indicates if user joined the community |\n```\n\n| Property | Description |\n| -------- | -------------------------------------- |\n| Name | Full name of the user |\n| Age | Age in years |\n| Joined | Indicates if user joined the community |";
1
+ export declare const listsAndTablesMdxTemplate = "---\ntitle: \"Lists and tables\"\ndescription: \"Present structured information using lists or tables.\"\ndate: \"2026-02-19\"\ncategory: \"Components\"\ncategoryOrder: 1\norder: 2\n---\n\n# Lists and Tables\n\nPresent structured information using lists or tables.\n\n## Lists\n\nMarkdown supports both _ordered_ and _unordered_ lists, as well as nested list structures.\n\n### Ordered List\n\nStart each item with a number followed by a period to create an ordered list.\n\n```md\n1. First item\n2. Second item\n3. Third item\n4. Fourth item\n```\n\n1. First item\n2. Second item\n3. Third item\n4. Fourth item\n\n### Unordered List\n\nUse dashes (`-`), asterisks (`*`), or plus signs (`+`) before each item for unordered lists.\n\n```md\n- First item\n- Second item\n- Third item\n- Fourth item\n```\n\n- First item\n- Second item\n- Third item\n- Fourth item\n\n### Nested List\n\nIndent items under another to create nested lists.\n\n```md\n- First item\n- Second item\n - Additional item\n - Additional item\n- Third item\n```\n\n- First item\n- Second item\n - Additional item\n - Additional item\n- Third item\n\n## Tables\n\nMarkdown tables use pipes (`|`) to separate columns and hyphens (`---`) to define the header row. Place a pipe at the start and end of each row for better compatibility.\n\n```md\n| Property | Description |\n| -------- | -------------------------------------- |\n| Name | Full name of the user |\n| Age | Age in years |\n| Joined | Indicates if user joined the community |\n```\n\n| Property | Description |\n| -------- | -------------------------------------- |\n| Name | Full name of the user |\n| Age | Age in years |\n| Joined | Indicates if user joined the community |";