diff --git a/development.mdx b/development.mdx index 856629aaf..a1cf9a43f 100644 --- a/development.mdx +++ b/development.mdx @@ -1,18 +1,21 @@ --- title: 'Local Development' -description: 'Preview changes locally to update your docs' +description: 'Set up your docs locally to preview changes before updating your site' --- + **Before you start**: Make sure you have Node.js version 19 or higher installed. You can download it from the [Node.js website](https://nodejs.org). + -**Prerequisite**: Please install Node.js (version 19 or higher) before proceeding. +## Setting Up Local Development - +Get your documentation running locally in three simple steps: -**Step 1**: Install Mintlify: +### Step 1: Install the Mintlify CLI - +The Mintlify CLI (Command Line Interface) helps you run and test your documentation locally. Install it using one of these commands: + ```bash npm npm i -g mintlify ``` @@ -24,16 +27,9 @@ description: 'Preview changes locally to update your docs' ```bash pnpm pnpm add -g mintlify ``` - -**Step 2**: Navigate to the docs directory (where the `mint.json` file is located) and execute the following command: - -```bash -mintlify dev -``` - -Alternatively, if you do not want to install Mintlify globally you can use a run script available: +Don't want to install globally? You can run it directly: ```bash npm @@ -41,41 +37,55 @@ Alternatively, if you do not want to install Mintlify globally you can use a run ``` ```bash yarn - yarn dlx mintlify dev + yarn dlx mintlify dev # Requires yarn >2 ``` ```bash pnpm pnpm dlx mintlify dev ``` - - - Yarn's "dlx" run script requires yarn version >2. See [here](https://yarnpkg.com/cli/dlx) for more information. - +### Step 2: Go to Your Docs Folder + +Navigate to the folder containing your docs (where your `mint.json` file is located). + +### Step 3: Start the Development Server + +Run this command to start your local docs: + +```bash +mintlify dev +``` -A local preview of your documentation will be available at `http://localhost:3000`. +Once started, you can view your documentation at `http://localhost:3000`. The preview updates automatically when you save changes to your files. -### Custom Ports +## Common Tasks -By default, Mintlify uses port 3000. You can customize the port Mintlify runs on by using the `--port` flag. To run Mintlify on port 3333, for instance, use this command: +### Using a Different Port + +By default, Mintlify runs on port 3000. To use a different port, add the `--port` flag: ```bash mintlify dev --port 3333 ``` -If you attempt to run Mintlify on a port that's already in use, it will use the next available port: +If the port you specify is already in use, Mintlify will automatically try the next available port. + +### Checking for Broken Links -```md -Port 3000 is already in use. Trying 3001 instead. +Keep your documentation reliable by checking for broken links: + +```bash +mintlify broken-links ``` -## Mintlify Versions +This command scans your docs and reports any broken internal links. -Please note that each CLI release is associated with a specific version of Mintlify. If your local website doesn't align with the production version, please update the CLI: +### Updating Mintlify - +If your local preview looks different from your deployed site, you might need to update Mintlify. Use one of these commands: + ```bash npm npm i -g mintlify@latest ``` @@ -87,45 +97,44 @@ Please note that each CLI release is associated with a specific version of Mintl ```bash pnpm pnpm up --global mintlify ``` - -## Validating Links - -The CLI can assist with validating reference links made in your documentation. To identify any broken links, use the following command: +## Editor Setup -```bash -mintlify broken-links -``` +To make editing documentation easier, we recommend installing: -## Deployment - -If the deployment is successful, you should see the following: - - - - - -## Code Formatting - -We suggest using extensions on your IDE to recognize and format MDX. If you're a VSCode user, consider the [MDX VSCode extension](https://marketplace.visualstudio.com/items?itemName=unifiedjs.vscode-mdx) for syntax highlighting, and [Prettier](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode) for code formatting. +1. [MDX VS Code Extension](https://marketplace.visualstudio.com/items?itemName=unifiedjs.vscode-mdx) - Adds syntax highlighting for MDX files +2. [Prettier](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode) - Helps format your code consistently ## Troubleshooting - - +Here are solutions to common issues you might encounter: - This may be due to an outdated version of node. Try the following: - 1. Remove the currently-installed version of mintlify: `npm remove -g mintlify` - 2. Upgrade to Node v19 or higher. + + + If you see an error about the "sharp" module not loading for darwin-arm64, follow these steps: + 1. Remove mintlify: `npm remove -g mintlify` + 2. Update Node.js to version 19 or higher 3. Reinstall mintlify: `npm install -g mintlify` - - - Solution: Go to the root of your device and delete the \~/.mintlify folder. Afterwards, run `mintlify dev` again. + + If you encounter any unexpected errors: + 1. Go to your root directory + 2. Delete the hidden ~/.mintlify folder + 3. Run `mintlify dev` again + + + + If your changes aren't appearing in the preview: + 1. Check that you're in the correct directory (where mint.json is located) + 2. Make sure you've saved your files + 3. Try refreshing your browser + 4. Restart the development server + + + Need more help? Join our [community](https://mintlify.com/community) or contact + [support@mintlify.com](mailto:support@mintlify.com) + \ No newline at end of file diff --git a/mint.json b/mint.json index 65c9d33d9..08506b09d 100644 --- a/mint.json +++ b/mint.json @@ -70,7 +70,8 @@ }, "settings/global", "settings/navigation", - "migration" + "migration", + "snippets/developer-guide" ] }, { diff --git a/quickstart.mdx b/quickstart.mdx index fd4ba0858..0db15e8d0 100644 --- a/quickstart.mdx +++ b/quickstart.mdx @@ -15,172 +15,128 @@ icon: "rocket" /> -## Getting Started +## Welcome to Mintlify! πŸ‘‹ -Welcome! Follow the instructions below to learn how to deploy, update and -supercharge your documentation with Mintlify. +Let's get you set up with beautiful documentation in three simple steps. -### Creating the Repository +### Step 1: Set Up Your Repository -Mintlify docs are rendered from MDX files and configurations defined in our -[starter kit](https://github.com/mintlify/starter). We use GitHub to integrate -your docs with your code, and make source control effortless. Onboard through the [dashboard](https://dashboard.mintlify.com) or clone our [starter kit](https://github.com/mintlify/starter) to get started. - - - - - - Install our GitHub app to ensure that your updates are automatically deployed when you push changes. You can find the installation link in the [dashboard](https://dashboard.mintlify.com/settings), on the Settings page. Upon successful installation, a check mark will appear next to the commit hash of the repository. + + + Choose one of two ways to get started: + 1. Use our [dashboard](https://dashboard.mintlify.com) for the fastest setup + 2. Clone our [starter template](https://github.com/mintlify/starter) manually + + + This lets us automatically update your docs whenever you make changes. - ![GitHub Bot Verification](https://mintlify.s3-us-west-1.amazonaws.com/mintlify/images/github-bot-verification.png) + GitHub Bot Verification - - - - If you want your docs to live alongside your code as a monorepo setup, you - can: 1. Move your docs content to your monorepo. 2. Specify the path to your - `mint.json` in the - [dashboard](https://dashboard.mintlify.com/settings/deployment/git-settings) - - Monorepo setup - Monorepo setup - - - - - -### Updating the Content - -Mintlify enables you to easily customize the style, structure, and content of -your docs. + Find the installation link in your [dashboard settings](https://dashboard.mintlify.com/settings). + + + + + Want your docs to live with your code? You can set up a monorepo! Just put your docs in your code repository and set the path in your [dashboard settings](https://dashboard.mintlify.com/settings/deployment/git-settings). + + +### Step 2: Update Your Content + +Choose your preferred way to edit: + + + + 1. Install our CLI: `npm i -g mintlify` + 2. Clone your docs: `git clone ` + 3. Preview changes: `mintlify dev` + + [See local development guide β†’](/development) + + + Use our web editor for a simple, visual editing experience. + + No coding required! + + [Try the web editor β†’](/web-editor) + + + +### Step 3: Make It Yours - - - 1. Install [git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git). - 2. Once git is installed, clone your docs repository using `git clone `. If you haven't set it up yet, now would be a good time to do so with these [SSH keys](https://docs.github.com/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent). - 3. Use your favorite IDE to open the repository. - 4. Install our Mintlify CLI to preview changes with `npm i -g mintlify`. - - Learn more about this in our [local development guide](/development). - - - - - - Learn more about how to use the web editor on our [guide](/web-editor). - - - - - - Easily customize colors, logos and buttons among other configurations in our `mint.json` file. Start with these basic configurations: + + Add your brand colors and logo in `mint.json`: ```json - "name": "Your Company" - "logo": { - "light": "/logo/light.svg", - "dark": "/logo/dark.svg", - "href": "https://yourcompany.com" - }, - "favicon": "/favicon.svg", - "colors": { - "primary": "#2AB673", - "light": "#55D799", - "dark": "#117866", - }, + { + "name": "Your Company", + "logo": { + "light": "/logo/light.svg", + "dark": "/logo/dark.svg" + }, + "favicon": "/favicon.svg", + "colors": { + "primary": "#2AB673", + "light": "#55D799", + "dark": "#117866" + } + } ``` - A full list of supported configurations can be found at [global settings](/settings/global). - + [See all styling options β†’](/settings/global) - + + Create new pages using simple MDX files: - Add content with simple MDX files. Initiate your pages with this template: - - ```md + ```mdx --- - title: "Page Title" - sidebarTitle: "Sidebar title (optional - if different from page title)" - description: "Subtitle (optional)" + title: "My New Page" + description: "A quick description" --- - ``` - Learn more about adding images, tables, lists, and more using the [MDX syntax](/text). We also offer a [wide array of components](/content/components). - - - - - - Once ready, commit and push your changes to update your docs site. Here is a [guide](https://docs.github.com/en/get-started/using-git/pushing-commits-to-a-remote-repository#about-git-push) on how to do that. If the GitHub app is unable to successfully deploy your changes, you can manually update your docs through our [dashboard](https://dashboard.mintlify.com). - - - ![Manual - Update](https://mintlify.s3-us-west-1.amazonaws.com/mintlify/images/manual-update.png) - + Hello world! + ``` + [Learn MDX basics β†’](/text) + [See available components β†’](/content/components) - - - You can easily set up your API references using an OpenAPI document. - - 1. Add your `openapi.yaml` or `openapi.json` file into your docs repository or define the `openapi` field in `mint.json` with a URL. + + Have an OpenAPI/Swagger file? We'll help you turn it into beautiful API docs: ```json - "openapi": "link-to-your-openapi-file" + // In mint.json + { + "openapi": "path/to/openapi.yaml" + } ``` - 2. Use our [scraper](/api-playground/openapi/setup#autogenerate-files-recommended) to autogenerate your OpenAPI endpoints files as: - - ```bash - npx @mintlify/scraping@latest openapi-file - ``` - - 3. Finally, include the generated endpoint MDX files to your `mint.json` under `navigation`. - - For a complete guide on using Mintlify with OpenAPI, check out [this guide](/api-playground/openapi/setup). [This guide](/api-playground/openapi/writing-openapi) explains how to configure your API authentication methods. For manual API references definition, explore [our syntax](/api-playground/overview). - + [Set up API docs β†’](/api-playground/openapi/setup) - - - Our in-house analytics give you insights into page views, search analytics, session recordings and more. Access these on your [dashboard](https://dashboard.mintlify.com/analytics). - - We also support integrations with a range of analytics providers. You can find the list of providers [here](/integrations/analytics/overview). + + Track how users interact with your docs: + 1. Use our built-in analytics on the [dashboard](https://dashboard.mintlify.com/analytics) + 2. Or connect your favorite tool like [Google Analytics](/integrations/analytics/google-analytics) - - We provide a white-glove migration service as part of our Enterprise plan. - Interested? You can request it by [contacting us](mailto:sales@mintlify.com). - - -### Publishing - - +## Publishing Your Docs -Integrate your docs into your website by hosting them on a custom domain. This is included in the free plan. +Host your docs on your own domain! Go to your [dashboard settings](https://www.dashboard.mintlify.com/settings) to add a custom domain. -Navigate to your [dashboard settings](https://www.dashboard.mintlify.com/settings) to add a custom domain. + + ![Custom Domain](/images/custom-domain.png) + -![Custom Domain](/images/custom-domain.png) +## Need Help? - +We're here to help you build amazing documentation! -Congrats! You've set up your Mintlify Docs and it's looking amazing! Need -support or want to give some feedback? You can join our -[community](https://mintlify.com/community) or drop us an email at -[support@mintlify.com](mailto:support@mintlify.com). +- Join our [community](https://mintlify.com/community) +- Email us at [support@mintlify.com](mailto:support@mintlify.com) +- Check out our [Enterprise plan](mailto:sales@mintlify.com) for white-glove migration service \ No newline at end of file diff --git a/settings/global.mdx b/settings/global.mdx index 350cb3c18..1e86ed1cc 100644 --- a/settings/global.mdx +++ b/settings/global.mdx @@ -1,808 +1,286 @@ ---- -title: "Global Settings" -description: "Customize your documentation using the mint.json file" -icon: "wrench" ---- +# Global Settings -Every Mintlify site needs a `mint.json` file with the core configuration -settings. Learn more about the [properties](#properties) or from an -[example](#example-mint-json) +Your Mintlify site is configured through the `mint.json` file. Think of this as your site's control panel - it's where you customize everything from the look and feel to navigation and integrations. -## Properties +Let's break down each section so you can easily configure your docs: -### Styling +## Basics - - Name of your company or project. Used for the global title. - +The bare minimum you need in your `mint.json`: - - Path to logo image or object with path to "light" and "dark" mode logo images, - and where the logo links to. SVG format is recommended. It does not pixelate - and the file size is generally smaller. +```json Basic Configuration +{ + "name": "Your Company", + "logo": { + "light": "/logo/light.svg", + "dark": "/logo/dark.svg" + } +} +``` - - - Path to the logo in light mode. For example: `/path/to/logo.svg` - +## Make It Your Own - - Path to the logo in dark mode. For example: `/path/to/logo.svg` - +### Colors and Branding 🎨 - - Where clicking on the logo links you to - + + Your company/project name that shows up in browser tabs and search results. + - + + Add your logo! Best to use SVG files - they stay sharp at any size. You can either: + - Use one logo for all modes: `"logo": "/logo.svg"` + - Have different logos for light/dark mode: + ```json + "logo": { + "light": "/logo-light.svg", + "dark": "/logo-dark.svg", + "href": "https://yoursite.com" // Optional - where the logo links to + } + ``` - Path to the favicon image. For example: `/path/to/favicon.svg` + The small icon that shows up in browser tabs. Example: `"favicon": "/favicon.svg"` - - Hex color codes for your global theme - - - - The primary color. Used most often for highlighted content, section - headers, accents, in light mode - - - - The primary color for dark mode. Used most often for highlighted content, - section headers, accents, in dark mode - +### Theme Colors 🌈 - - The primary color for important buttons - +Customize your site's color scheme: - - The color of the background in both light and dark mode - - - - The hex color code of the background in light mode - - - - The hex color code of the background in dark mode - - - - - - - - - A preset theme configuration that changes the look and feel of the project. A - theme is a set of default styling configurations. Examples: - [Venus](https://starter-venus.mintlify.app), - [Quill](https://starter-quill.mintlify.app), - [Prism](https://starter-prism.mintlify.app) - - - - The global layout style of the documentation. - +```json Theme Example +{ + "colors": { + "primary": "#0D9373", + "light": "#07C983", // Used in dark mode + "dark": "#0A7355", // Used for buttons + "background": { + "light": "#ffffff", // Light mode background + "dark": "#000000" // Dark mode background + } + } +} +``` - - Set a decorative background. +### Fonts πŸ“ - - - The style of the decorative background. - - - +Use custom fonts from Google Fonts or your own hosted fonts: - - Set a custom background image to be displayed behind every page. - - - - Custom fonts. Apply globally or set different fonts for headings and the body - text. -Example: +// OR use different fonts for headings and body text +{ + "font": { + "headings": { + "family": "Roboto", + "weight": 600 + }, + "body": { + "family": "Open Sans" + } + } +} +``` +For custom fonts (not from Google): ```json -"font": { - "headings": { - "family": "Roboto" - }, - "body": { - "family": "Oswald" +{ + "font": { + "headings": { + "family": "CustomFont", + "url": "https://yourdomain.com/fonts/CustomFont.woff2", + "format": "woff2" + } } } ``` - - - The font family name. Custom fonts and all [Google - Fonts](https://fonts.google.com/) are supported. e.g. "Open Sans", - "Playfair Display" - - - - The font weight. Precise values such as `560` are also supported for - variable fonts. Check under the Styles section for your Google Font for - the available weights. - - - - The URL to the font file. Can be used to specify a font that is not from - Google Fonts. - - - - The font format. Required if using a custom font source (`url`). - - - - - - - Customize the dark mode toggle. +## Navigation - - - Set if you always want to show light or dark mode for new users. When not - set, we default to the same mode as the user's operating system. - +### Sidebar Pages πŸ“š - - Set to true to hide the dark/light mode toggle. You can combine `isHidden` with `default` to force your docs to only use light or dark mode. For example: +Group your documentation pages into sections: - - ```json Only Dark Mode - "modeToggle": { - "default": "dark", - "isHidden": true - } - ``` - - ```json Only Light Mode - "modeToggle": { - "default": "light", - "isHidden": true +```json Navigation Example +{ + "navigation": [ + { + "group": "Getting Started", + "pages": ["quickstart", "installation", "features"] + }, + { + "group": "Advanced Guides", + "pages": [ + "advanced/configuration", + { + "group": "Deployment", + "pages": ["advanced/deploy/hosting", "advanced/deploy/docker"] } - ``` - - - - - - - - Customize the styling of components within the sidebar. - - - - The styling of the navigation item. - - - - - - Styling configurations for the topbar. - - - - The styling of the navigation item. - - - - - - The location options for the search bar. - - - - The location of the search bar. - - - - - - The style of the rounded edges. - - - - The style of the code block. - - - - `auto` will automatically switch between light and dark mode based on the - user's system preferences. - - - - -### Structure - - - An array of groups with all the pages within that group - - - - The name of the group. - - - - The relative paths to the markdown files that will serve as pages. Note: groups are recursive, so to add a sub-folder add another group object in the page array. - - - - The [Fontawesome](https://fontawesome.com/icons) icon for the group. Note: this only applies to sub-folders. - - - - The type of [Fontawesome](https://fontawesome.com/icons) icon. Must be one of: brands, duotone, light, sharp-solid, solid, thin - - - - - - - Array of names and urls of links you want to include in the topbar - - - - The name of the button. - - - - The url once you click on the button. Example: `https://mintlify.com/contact` - - - - - - - - - Link shows a button. GitHub shows the repo information at the url provided - including the number of GitHub stars. - - - - If type is a link: What the button links to. If type is a github: Link to - the repository to load GitHub information from. - - - - Text inside the button. Only required if type is a link. - - - - The style of the button. - - - - Whether to display the arrow - - - - - - - Array of version names. Only use this if you want to show different versions - of docs with a dropdown in the navigation bar. - -Versions can be leveraged for localization. You can store translated content -under a version, and once you specify the `locale` any fixed text in Mintlify, -such as 'Was this page helpful?', will automatically be translated based on the -locale. We currently support localization in English, Chinese, Spanish, French, -Japanese, and Portuguese. - - - Localization auto-translates the UI and fixed assets in the docs, such as "Was - this page helpful?". You must translate the content of the pages yourself. - - -For more information, please refer to our -[versioning & localization documentation](/settings/versioning). - -Example: - - - ```json Default - "versions": ["v1.0", "v1.1"] - ``` - - ```json Localization - "versions": [ - { - "name": "English", - "locale": "en", - }, - { - "name": "EspaΓ±ol", - "locale": "es" - } - ] - ``` - - - - - - The version name. - - - - The locale of the version. Supported locales are `en`, `cn`, `es`, `fr`, `jp`, `pt`, `pt-BR`, `de`. - - - - Whether the version is the default version. Handy for when you have a "latest" and "stable" version and you want to default to the stable version. - - - - - - - An array of the anchors, includes the icon, color, and url. - -{" "} - - - -{" "} - - - - - - The name of the anchor label. - - Example: `Community` - - - - The [Font Awesome](https://fontawesome.com/search?q=heart) icon used to feature the anchor. - - Example: `comments` - - - - The start of the URL that marks what pages go in the anchor. Generally, this is the name of the folder you put your pages in. - - - - The hex color of the anchor icon background. Can also be a gradient if you pass an object with the properties `from` and `to` that are each a hex color. - - - - Used if you want to hide an anchor until the correct docs version is selected. - - - - Pass `true` if you want to hide the anchor until you directly link someone to docs inside it. - - - - One of: "brands", "duotone", "light", "sharp-solid", "solid", or "thin" - - - - - - - Override the default configurations for the top-most anchor. Note: if you have - tabs configured, this does not apply. - - - - The name of the top-most anchor - - - - Font Awesome icon. - - - - One of: "brands", "duotone", "light", "sharp-solid", "solid", or "thin" - - - - + ] + } + ] +} +``` - - An array of navigational tabs. +### Top Navigation Bar πŸ” -Example: +Add links and a call-to-action button to your top bar: -```json -"tabs": [ - { - "name": "Writing Content", - "url": "content" - }, - { - "name": "API References", - "url": "api-playground" +```json Top Bar Example +{ + "topbarLinks": [ + { + "name": "Documentation", + "url": "https://docs.yoursite.com" + } + ], + "topbarCtaButton": { + "name": "Get Started", + "url": "https://yoursite.com/start" } -] +} ``` - - - The name of the tab label. - - - - The start of the URL that marks what pages go in the tab. Generally, this - is the name of the folder you put your pages in. - +### Anchors and Tabs βš“οΈ - - Pass `true` if you want to hide the tab until you directly link someone to docs inside it. - - - - - - - An object to configure the footer with socials and links. - Example: +Use anchors for major sections and tabs for different content types: ```json -"footer": { - "socials": { "x": "https://x.com/mintlify", "website": "https://mintlify.com" }, - "links": [ +{ + "anchors": [ { - "title": "Column 1", - "links": [ - { "label": "Column 1 Link 1", "url": "https://mintlify.com" }, - { "label": "Column 1 Link 2", "url": "https://mintlify.com" } - ] + "name": "API Reference", + "icon": "code", + "url": "api" + } + ], + "tabs": [ + { + "name": "Guides", + "url": "guides" }, { - "title": "Column 2", - "links": [ - { "label": "Column 2 Link 1", "url": "https://mintlify.com" }, - { "label": "Column 2 Link 2", "url": "https://mintlify.com" } - ] + "name": "API", + "url": "api" } ] } ``` - - - One of the following values `website`, `facebook`, `x`, `youtube`, `discord`, `slack`, `github`, `linkedin`, `instagram`, `hacker-news`, `medium`, `telegram`, `twitter` - - Example: `x` - - - - The URL to the social platform. - - Example: `https://x.com/mintlify` - - - - - - - Title of the column - - - - The link items in the column. External urls that starts with `https://` or `http://` will be opened in new tab. - - - - - - - Configurations to enable feedback buttons - - - - Enables a rating system for users to indicate whether the page has been helpful - - - - Enables a button to allow users to suggest edits via pull requests for public repositories. - - - If your docs repo is private, `suggestEdit` will not work. - - - - - Enables a button to allow users to raise an issue about the documentation - - - - - - - Configurations to change the search prompt - - - - Set the prompt for the search bar. Default is `Search...` - - - - -### API Configurations - - - Configuration for API settings. Learn more about API pages at [API Components](/api-playground). - - - - The base url for all API endpoints. If `baseUrl` is an array, it will enable for multiple base url - options that the user can toggle. - - - - - - The authentication strategy used for all API endpoints. - - - - The name of the authentication parameter used in the API playground. - - If method is `basic`, the format should be `[usernameName]:[passwordName]` - - - - The default value that's designed to be a prefix for the authentication input field. - - E.g. If an `inputPrefix` of `AuthKey` would inherit the default input result of the authentication field as `AuthKey`. - - - - - - Configurations for the API playground - - - - Whether the playground is showing, hidden, or only displaying the endpoint with no added user interactivity `simple` - - Learn more at the [playground guides](/api-playground) - - - - By default, API playground requests are proxied by Mintlify. This setting can be used to disable this behavior. - - Required for select request types, such as file uploads. - - - - - - Configurations for API requests - - - - Configurations for the auto-generated API request examples - - - - An array of strings that determine the order of the languages of the auto-generated request examples. You can either define custom languages utilizing [x-codeSamples](/api-playground/openapi/advanced-features#x-codesamples) or use our default languages which include `bash`, `python`, `javascript`, `php`, `go`, `java` - - - - - - - - Configurations for the param fields in the API Playground - - - - The default expanded state of expandable options in the API playground. - - `"all"` - every expandable component is expanded - - `"topLevel"` - every top-level expandable component is expanded - - `"topLevelOneOfs"` - every top-level `oneOf` type is expanded +## Integrations - `"none"` - every expandable component is closed (default behavior) - - - +### Analytics πŸ“Š - - - - - A string or an array of strings of URL(s) or relative path(s) pointing to your - OpenAPI file. - -Examples: - - - ```json Absolute - "openapi": "https://example.com/openapi.json" - ``` - - ```json Relative - "openapi": "/openapi.json" - ``` - - ```json Multiple - "openapi": ["https://example.com/openapi1.json", "/openapi2.json", "/openapi3.json"] - ``` - - - - -### Integrations - - - Configurations to add third-party integrations (excluding analytics integrations) - - - - Enables Intercom widget on docs site. The value should be your Intercom App ID. - - - - Enables Frontchat widget on docs site. The value should be your Frontchat App ID. - - - - +Add analytics tools with a few lines: - - Configurations to add third-party analytics integrations. See full list of - supported analytics [here](/integrations/analytics/overview). - - -### Redirects - - - An array of paths you want to configure to permanently redirect to another path - -Example: - -```json -"redirects": [ - { - "source": "/source/path", - "destination": "/destination/path" +```json Analytics Example +{ + "analytics": { + "ga4": { + "measurementId": "G-XXXXXXXX" + }, + "hotjar": { + "hjid": "xxxxx" + } } -] +} ``` - - - The path that you want to redirect from. - - Example: `/source` - - - - The path that you want to redirect to. + + See our [analytics guide](/integrations/analytics/overview) for all supported platforms. + - Example: `/destination` - +### API Documentation πŸ”Œ - - +If you're documenting an API, configure it like this: -### Search Engine Optimization +```json API Configuration +{ + "api": { + "baseUrl": "https://api.yoursite.com", + "auth": { + "method": "bearer" + } + } +} +``` - - Settings for Search Engine Optimization. +### User Feedback πŸ’¬ -Example: +Enable user feedback features: ```json -"seo": { - "indexHiddenPages": true +{ + "feedback": { + "thumbsRating": true, // Shows πŸ‘πŸ‘Ž rating + "suggestEdit": true, // Shows "Edit this page" button + "raiseIssue": true // Shows "Report an issue" button + } } ``` - - - Enables indexing pages not included in `navigation`. - - - - -## Example `mint.json` +## Example Configuration -Click on the following dropdown to view a sample configuration file +Here's a complete example bringing it all together: - - ```json - { - "name": "Mintlify", - "logo": { - "light": "/logo/light.svg", - "dark": "/logo/dark.svg" - }, - "favicon": "/favicon.svg", - "colors": { - "primary": "#16A34A", - "light": "#4ADE80", - "dark": "#166534" - }, - "topbarLinks": [ - { - "name": "Contact Us", - "url": "mailto:support@mintlify.com" - } - ], - "topbarCtaButton": { - "name": "Get Started", - "url": "https://mintlify.com/start" - }, - "anchors": [ - { - "name": "API Components", - "icon": "rectangle-terminal", - "color": "#f59f0b", - "url": "api-components" - }, - { - "name": "Community", - "icon": "comments", - "color": "#2564eb", - "url": "https://mintlify.com/community" - } - ], - "navigation": [ - { - "group": "Getting Started", - "pages": ["introduction", "quickstart"] - }, - { - "group": "API Components", - "pages": ["api-playground/overview", "api-playground/configuration"] - }, - { - "group": "Settings", - "pages": ["settings/global", "settings/page"] - }, - { - "group": "Analytics", - "pages": ["analytics/posthog"] - } - ], - "footerSocials": { - "github": "https://github.com/mintlify", - "slack": "https://mintlify.com/community", - "x": "https://x.com/mintlify" - }, - "integrations": { - "intercom": "APP_ID", - "frontchat": "CHAT_ID" + +```json +{ + "name": "Your Company", + "logo": { + "light": "/logo/light.svg", + "dark": "/logo/dark.svg" + }, + "favicon": "/favicon.svg", + "colors": { + "primary": "#0D9373", + "light": "#07C983", + "dark": "#0A7355" + }, + "topbarLinks": [ + { + "name": "Documentation", + "url": "/docs" + } + ], + "topbarCtaButton": { + "name": "Get Started", + "url": "/start" + }, + "anchors": [ + { + "name": "API Reference", + "icon": "code", + "url": "api" + } + ], + "navigation": [ + { + "group": "Getting Started", + "pages": ["quickstart", "installation"] + } + ], + "feedback": { + "thumbsRating": true, + "suggestEdit": true + }, + "analytics": { + "ga4": { + "measurementId": "G-XXXXXXXX" } } - ``` +} +``` -## More Customization + + Start small! You don't need to configure everything at once. Begin with the basics (name and logo) and add more features as you need them. + + +## Need More Help? -Learn more about how to further customize your docs with custom CSS and JS in -[Custom Scripts](https://mintlify.com/docs/advanced/custom/). + + Connect with the Mintlify team and other developers. We're here to help! + \ No newline at end of file diff --git a/settings/navigation.mdx b/settings/navigation.mdx index ec1ab6e76..aaa6b116e 100644 --- a/settings/navigation.mdx +++ b/settings/navigation.mdx @@ -1,238 +1,198 @@ --- title: "Navigation" -description: "Organize your docs directory to guide your users to the information they need " +description: "Learn how to organize your documentation into an easy-to-navigate structure" icon: "map" --- -## Tabs +## Navigation Basics -Tabs help distinguish between different topics or sections of your -documentation. They show up above the main sidebar. +Your documentation's navigation structure is defined in the `mint.json` file. We'll walk through each element of navigation, from top to bottom: + + + + 1. Make sure you have a `mint.json` file in your docs folder + 2. Prepare your content files (`.mdx` files) that you want to include in the navigation + 3. Think about how you want to organize your content into sections + + + + To add pages to your navigation, update the `navigation` property in your `mint.json` file: + + ```json + "navigation": [ + { + "group": "Getting Started", + "pages": ["quickstart", "development"] + } + ] + ``` + + + You don't need to include the `.mdx` extension when listing pages. + + + + +## Navigation Components + +Your docs can use three main navigation components: + +### 1. Tabs + +Tabs appear at the very top of your docs and help separate major sections. - -Configure tabs with the `tabs` field of the `mint.json` file. The `url` field of -the tab object should map to a folder of content added to your sidebar, or an -external link. - ```json "tabs": [ { - "name": "API References", - "url": "api-references" - }, - { - "name": "Content", - "url": "content" + "name": "Guides", + "url": "guides" }, { - "name": "Blog", - "url": "https://your-website.com/blog" + "name": "API Reference", + "url": "api" } ] ``` -To configure the default `Documentation` primary tab, add the `primaryTab` field -to your `mint.json` file with your desired name. Any files in your navigation -not in a folder reserved by another tab will show up in the primary tab. - -```json -"primaryTab": { - "name": "Home" -} -``` + + Tabs work best for separating different types of content, like guides vs API reference. + -## Anchors +### 2. Anchors -Anchors provide another way to direct users to sections of your documentation, -or link out to external URLs. +Anchors appear below tabs and can link to internal sections or external resources. - -Configure anchors with the `anchors` field of the `mint.json` file. The `url` -field of the tab object should map an external link, or a folder of content -added to your sidebar. More fields for anchors can be found -[here](/settings/global). - ```json "anchors": [ { - "name": "API References", + "name": "API Reference", "icon": "code", - "url": "api-references" - }, - { - "name": "Content", - "icon": "pencil", - "url": "content" + "url": "api-reference" }, { - "name": "Contact us", - "icon": "envelope", - "url": "https://mintlify.com/contact-us" + "name": "Community", + "icon": "people-group", + "url": "https://mintlify.com/community" } ] ``` -To configure the default `Documentation` top anchor, add the `topAnchor` field -to your `mint.json`. +### 3. Sidebar Navigation + +The sidebar displays your main content structure. Here are different ways to organize it: + + + + Basic grouping of pages under a section: + + ```json + "navigation": [ + { + "group": "Getting Started", + "pages": ["quickstart", "installation"] + } + ] + ``` + + + + Groups within groups for more complex hierarchies: + + ```json + "navigation": [ + { + "group": "Getting Started", + "pages": [ + "quickstart", + { + "group": "Advanced Setup", + "pages": ["configuration", "customization"] + } + ] + } + ] + ``` + + + + For organizing files in subdirectories: + + ```json + "navigation": [ + { + "group": "Guides", + "pages": ["guides/getting-started", "guides/advanced"] + } + ] + ``` + + + The folder name `api` is reserved. Use `api-reference` instead for API documentation. + + + + +## Top Navigation Bar + +The top navigation bar can include links and a call-to-action button. + +### Adding Links + +Add links to the top bar using `topbarLinks`: ```json -"topAnchor": { - "name": "Home", - "icon": "building" -} -``` - -## Sidebar - -Organize your navigation by defining the `navigation` property in your -mint.json, You don't need to include `.mdx` in page names. For sidebar styling options, see the [global settings page](/settings/global#param-sidebar) - - - Once you add a page to your docs directory, you'll need to add the path to - `mint.json` to add it to the sidebar. Pages do not show up automatically. - - -```json Regular Navigation -"navigation": [ - { - "group": "Getting Started", - "pages": ["quickstart"] - } -] -``` - -### Groups - -Create groups by recursively nesting a group within a group. - -```json Nested Navigation -"navigation": [ - { - "group": "Getting Started", - "pages": [ - "quickstart", - { - "group": "Nested Reference Pages", - "pages": ["nested-reference-page"] - } - ] - } -] -``` - -### Folders - -Simply put your MDX files in folders and update the paths in `mint.json`. - -For example, to have a page at `https://yoursite.com/your-folder/your-page` you -would make a folder called `your-folder` containing an MDX file called -`your-page.mdx`. - - - You cannot use `api` for the name of a folder unless you nest it inside - another folder. Mintlify uses Next.js which reserves the top-level `api` - folder for internal server calls. We recommend using the folder name - `api-reference` instead. - - - - ```json Navigation With Folder - "navigation": [ - { - "group": "Group Name", - "pages": ["your-folder/your-page"] - } - ] - ``` - -```json Nested Navigation -"navigation": [ +"topbarLinks": [ { - "group": "Getting Started", - "pages": [ - "quickstart", - { - "group": "Nested Reference Pages", - "pages": ["nested-reference-page"] - } - ] + "name": "Documentation", + "url": "https://mintlify.com/docs" } ] ``` - - -### Hidden Pages - -MDX files not included in `mint.json` will not show up in the sidebar but are -accessible by linking directly to them. - -Hidden pages are not indexed for search within your docs by default. If you -would like to override this behavior, you can set the -[`seo.indexHiddenPages`](/settings/global#search-engine-optimization) attribute -in your `mint.json` to `true`. +### Adding a CTA Button -## Topbar - -### Links - -Add links to the topbar with the `topbarLinks` field in the `mint.json` file. - - - - - -The `topbarLinks` field supports the following fields: `name`, `url`. +Add a prominent button using `topbarCtaButton`: ```json - "topbarLinks": [ - { - "name": "Community", - "url": "https://mintlify.com/community" - } - ] +"topbarCtaButton": { + "name": "Get Started", + "url": "https://mintlify.com/start" +} ``` -### CTA Button - -Customize the call-to-action (CTA) button in the topbar using the `topbarCtaButton` -field. + + You can also link to your GitHub repository by setting `"type": "github"`: - - - - -The `topbarCtaButton` field supports the following fields: `name`, `url`, `type`, `style`, and `arrow`. For more information on the options for these fields, see the [mint.json schema](/settings/global#structure). - -```json + ```json "topbarCtaButton": { - "name": "Get Started", - "url": "https://mintlify.com/get-started" + "type": "github", + "url": "https://github.com/mintlify/docs" } -``` + ``` + -#### GitHub +## Hidden Pages -You can also configure the CTA button to link directly to your GitHub -repository. Use the `topbarCtaButton` field with the `type` set to `github`. +If you don't add a page to your navigation in `mint.json`, it becomes a hidden page. Hidden pages: - - - +- Won't appear in the sidebar +- Are still accessible via direct links +- Aren't included in search results by default + +To include hidden pages in search, add this to your `mint.json`: ```json - "topbarCtaButton": { - "type": "github", - "url": "https://github.com/mintlify/docs" - } +"seo": { + "indexHiddenPages": true +} ``` diff --git a/snippets/developer-guide.mdx b/snippets/developer-guide.mdx new file mode 100644 index 000000000..251edeb85 --- /dev/null +++ b/snippets/developer-guide.mdx @@ -0,0 +1,111 @@ +# Developer Guide + +This guide explains key concepts you'll encounter while using Mintlify. You can import this guide into any page where technical concepts need explanation. + +## Key Concepts + +### What is MDX? + +MDX is like Markdown with superpowers. If you're familiar with writing in Markdown (using `#` for headings, `*` for bullet points), MDX lets you do all that plus: + +- Use React components right in your documentation +- Import and reuse content across pages +- Add interactive elements like tabs and accordions + +```md Example MDX +# My Page Title + +This is regular markdown text. + + + This is a Mintlify component inside markdown! + +``` + +### Components + +Components are pre-built elements you can use to make your docs more interactive and visually appealing. Think of them like building blocks - you just need to add them to your page and customize the content. + + +```md Component Example + + Start building your docs site with Mintlify. + +``` + +```md Result + + Start building your docs site with Mintlify. + +``` + + +### File Structure + +Your documentation is organized into: + +- **Pages**: Individual `.mdx` files that contain your content +- **Navigation**: Defined in `mint.json` to organize your pages into a sidebar +- **Snippets**: Reusable content pieces stored in the `snippets/` folder + +``` +your-docs/ +β”œβ”€β”€ mint.json # Main configuration file +β”œβ”€β”€ introduction.mdx +β”œβ”€β”€ quickstart.mdx +└── snippets/ # Folder for reusable content + └── example.mdx +``` + +### Configuration Basics + +The `mint.json` file is your control center. Here's a minimal example: + +```json +{ + "name": "Your Project", + "logo": { + "light": "/logo/light.svg", + "dark": "/logo/dark.svg" + }, + "navigation": [ + { + "group": "Getting Started", + "pages": ["introduction", "quickstart"] + } + ] +} +``` + +### Common Terms + + + The information between `---` at the start of each page that defines properties like title and description. + +```yaml +--- +title: "My Page" +description: "A great page about my product" +--- +``` + + + + Ready-to-use elements like ``, ``, or `` that add functionality to your docs. + + + + Content you can import and reuse across multiple pages, stored in the `snippets/` folder. + + +### Getting Help + +If you run into issues: + +1. Check the [troubleshooting guide](/development#troubleshooting) +2. Join our [community](https://mintlify.com/community) +3. Contact [support@mintlify.com](mailto:support@mintlify.com) + + + Remember: You don't need to be a developer to create great documentation! Mintlify's components and MDX make it easy to create professional-looking docs without coding experience. + \ No newline at end of file