跳转到主要内容
Pro 和 Enterprise 方案 包含针对 GitHub 仓库的 CI 检查。
使用 CI 检查对文档进行 lint,捕获错误,并在部署前提供 Warning。Mintlify 的 CI 检查会在针对已配置的部署用分支的拉取请求(PR)上运行。

安装

首先,请按照 GitHub 页面上的步骤进行操作。
只需访问存放文档内容的存储库,因此强烈建议仅授予该存储库的访问权限。

配置

前往控制台的 附加组件 页面,配置在部署中启用的 CI 检查。开启你希望运行的检查。 启用检查时,你可以选择以 WarningBlocking 级别运行。
  • Warning 级别的检查即使出现错误或提出建议,也不会标记为失败。
  • Blocking 级别的检查如果出现错误或提出建议,则会标记为失败。

可用的 CI 检测

与本地的命令行界面(CLI)链接检查器工作方式类似, 失效链接的 CI 检查会自动在你的文档内容中查找失效的内部链接。 要查看此检查的结果,请前往 GitHub 上该特定提交的检查结果页面。

Vale

Vale 是一款开源的规则驱动型文本风格检查器,支持包括 Markdown 和 MDX 在内的多种文档类型。 Mintlify 支持在 CI 检查中自动运行 Vale,并将结果显示为检查状态。

配置

如果在你的部署的根 content 目录下有 .vale.ini 文件,Vale CI 检查将使用该配置文件,以及你在 stylesPath 中指定的任何其他配置文件。 如果没有 Vale 配置文件,则会自动加载默认配置。
Default vale.ini configuration
# 顶层样式
StylesPath = /app/styles
MinAlertLevel = suggestion
IgnoredScopes = code, tt, img, url, a
SkippedScopes = script, style, pre, figure, code

# 词汇表
Vocab = Mintlify

# 由于 Vale 官方不支持 MDX,此配置为必填项
[formats]
mdx = md

# MDX 支持
[*.mdx]
BasedOnStyles = Vale
Vale.Terms = NO # 强制执行严格的大写规则,建议保持关闭

# `import ...`, `export ...`
# `<Component ... />`
# `<Component>...</Component>`
# `{ ... }`
TokenIgnores = (?sm)((?:import|export) .+?$), \
(?<!`)(<\w+ ?.+ ?\/>)(?!`), \
(<[A-Z]\w+>.+?<\/[A-Z]\w+>)

# 排除:
# `<Component \n ... />`
BlockIgnores = (?sm)^(<\w+\n .*\s\/>)$, \
(?sm)^({.+.*})

CommentDelimiters = {/*, */}
Default Vale vocabulary
Mintlify
mintlify
VSCode
openapi
OpenAPI
Github
APIs

repo
npm
dev

Lorem
ipsum
impsum
amet

const
myName
myObject
bearerAuth
favicon
topbar
url
borderRadius
args
modeToggle
ModeToggle
isHidden
autoplay

_italic_
Strikethrough
Blockquotes
Blockquote
Singleline
Multiline

onboarding

async
await
boolean
enum
func
impl
init
instanceof
typeof
params
stdin
stdout
stderr
stdout
stdin
var
const
let
null
undefined
struct
bool

cors
csrf
env
xhr
xhr2
jwt
oauth
websocket
localhost
middleware
runtime
webhook
stdin
stdout

json
yaml
yml
md
txt
tsx
jsx
css
scss
html
png
jpg
svg

cdn
cli
css
dom
dto
env
git
gui
http
https
ide
jvm
mvc
orm
rpc
sdk
sql
ssh
ssl
tcp
tls
uri
url
ux
ui

nodejs
npm
yarn
pnpm
eslint
pytest
golang
rustc
kubectl
mongo
postgres
redis

JavaScript
TypeScript
Python
Ruby
Rust
Go
Golang
Java
Kotlin
Swift
Node.js
NodeJS
Deno

React
Vue
Angular
Next.js
Nuxt
Express
Django
Flask
Spring
Laravel
Redux
Vuex
TensorFlow
PostgreSQL
MongoDB
Redis
PNPM

Docker
Kubernetes
AWS
Azure
GCP
Terraform
Jenkins
CircleCI
GitLab
Heroku

Git
git
GitHub
GitLab
Bitbucket
VSCode
Visual Studio Code
IntelliJ
WebStorm
ESLint
eslint
Prettier
prettier
Webpack
webpack
Vite
vite
Babel
babel
Jest
jest
Mocha
Cypress
Postman

HTTP
HTTPS
OAuth
JWT
GraphQL
REST
WebSocket
TCP/IP

NPM
Yarn
PNPM
Pip
PIP
Cargo
RubyGems

Swagger
OpenAPI
Markdown
MDX
Storybook
TypeDoc
JSDoc

MySQL
PostgreSQL
MongoDB
Redis
Elasticsearch
DynamoDB

Linux
Unix
macOS
iOS

Firefox
Chromium
WebKit

config
ctx
desc
dir
elem
err
len
msg
num
obj
prev
proc
ptr
req
res
str
tmp
val
vars

todo
href
lang
nav
prev
next
toc
Example Vale file structure
  - docs.json
  - .vale.ini
  - styles/...
  - text.md
Example monorepo Vale file structure
  - main.ts
  - docs/
    - docs.json
    - .vale.ini
    - styles/...
    - text.md
  - test/
请注意,出于安全原因,不支持绝对路径的 stylesPath,或包含 ..stylesPath。请使用相对路径,并将该 stylesPath 提交到你的存储库中。

Vale 支持一系列,可用于检查拼写和写作风格错误。 任何你在存储库中按正确的 stylesPath 添加的包,都会在你的 Vale 配置中自动安装并使用。 对于未包含在存储库中的包,你可以从 Vale package registry 指定任意包,它们会自动下载并在你的 Vale 配置中使用。
请注意,出于安全考虑,不支持自动下载不来自 Vale package registry 的包。

MDX 中使用 Vale

Vale 并不原生支持 MDX,但其作者提供了一个自定义扩展以实现支持。 如果你不想使用该扩展,可以在已配置的 .vale.ini 文件中添加以下内容:
[formats]
mdx = md

[*.mdx]
CommentDelimiters = {/*, */}

TokenIgnores = (?sm)((?:import|export) .+?$), \
(?<!`)(<\w+ ?.+ ?\/>)(?!`), \
(<[A-Z]\w+>.+?<\/[A-Z]\w+>)

BlockIgnores = (?sm)^(<\w+\n .*\s\/>)$, \
(?sm)^({.+.*})
要在文档中使用 Vale 的文内注释,请采用 MDX 风格的注释 {/* ... */}。如果你在配置中启用 CommentDelimiters = {/*, */} 设置,Vale 会在检查时自动识别这些注释。这样你就可以轻松使用 Vale 的内置功能,例如跳过指定的行或段落。
{/* vale off */}

此文本会被 Vale 忽略

{/* vale on */}
如果你不使用 CommentDelimiters,但仍要使用 Vale 的注释,则必须将所有 Vale 注释包裹在 MDX 注释 {/* ... */} 中。例如:
{/* <!-- vale off --> */}

此文本将被 Vale 忽略

{/* <!-- vale on --> */}
这些注释标签在 Mintlify 组件内不受支持,但在文档的顶层任意位置都能正常工作。