Skip to content

Commit 6492ead

Browse files
committed
feat: integrate eslint-plugin-mdx with remark-lint
1 parent a236686 commit 6492ead

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+1917
-879
lines changed

.changeset/silly-llamas-argue.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@alauda/doom": minor
3+
---
4+
5+
feat: integrate `eslint-plugin-mdx` with `remark-lint`

.nvmrc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
v20.19.2
1+
v24.3.0

docs/en/start.mdx

Lines changed: 26 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
sourceSHA: ae0b93052a9ac54c78d33e4bd8516f66409fb0355f52e0ce069d53cf0138a992
2+
sourceSHA: e22f8a9da520d8a45867b9da3ba498f4884f9c4cc937fa5b9fc54a80a1bc391a
33
---
44

55
# Getting Started \{#start}
@@ -12,19 +12,19 @@ First, you can create a new directory with the following command:
1212
mkdir my-docs && cd my-docs
1313
```
1414

15-
Run `npm init -y` to initialize a project. You can use npm, yarn, or pnpm to install doom:
15+
Run `npm init -y` to initialize a project. You can install doom using npm, yarn, or pnpm:
1616

1717
<PackageManagerTabs command="install -D @alauda/doom typescript" />
1818

1919
Then create files with the following commands:
2020

2121
```bash
22-
# Create docs directories, default supports bilingual Chinese and English
22+
# Create docs directories, with default support for bilingual Chinese and English
2323
mkdir docs/en && echo '# Hello World' > docs/en/index.md
2424
mkdir docs/zh && echo '# 你好世界' > docs/zh/index.md
2525
```
2626

27-
Add the following scripts to `package.json`:
27+
Add the following scripts to your `package.json`:
2828

2929
```json
3030
{
@@ -45,7 +45,7 @@ Then initialize a configuration file `doom.config.yml`:
4545
title: My Docs
4646
```
4747
48-
Also create `tsconfig.json` with the following content:
48+
Also create a `tsconfig.json` file with the following content:
4949

5050
```jsonc
5151
{
@@ -72,7 +72,7 @@ Finally, create a `global.d.ts` file with the following content:
7272
/// <reference types="@alauda/doom/runtime" />
7373
```
7474

75-
This allows you to safely use the global components provided by doom in `.mdx` files with type safety.
75+
This allows you to safely use the global components provided by doom with type safety in `.mdx` files.
7676

7777
## CLI Tool \{#cli}
7878

@@ -121,7 +121,7 @@ For more configuration, please refer to [Configuration](./usage/configuration)
121121
122122
### Starting the Development Server \{#dev}
123123
124-
Run `yarn dev` to start the development server; the browser will automatically open the documentation homepage.
124+
Run `yarn dev` to start the development server, the browser will automatically open the documentation homepage.
125125

126126
```sh
127127
doom dev -h
@@ -152,7 +152,7 @@ Run `yarn serve` to preview the built static files. Note that if you used `-b` o
152152

153153
### Using Scaffolding Templates \{#new}
154154

155-
Run `yarn new` to generate projects, modules, or documentation using scaffolding templates.
155+
Run `yarn new` to generate projects, modules, or documentation from scaffolding templates.
156156

157157
### Translating Documentation \{#translate}
158158

@@ -170,29 +170,29 @@ Arguments:
170170
Options:
171171
-s, --source <language> Document source language, one of en, zh, ru (default: "en")
172172
-t, --target <language> Document target language, one of en, zh, ru (default: "zh")
173-
-g, --glob <path...> Glob patterns for source dirs/files
173+
-g, --glob <path...> Glob patterns of source dirs/files to translate
174174
-C, --copy [boolean] Whether to copy relative assets to the target directory instead of following links (default: false)
175175
-h, --help display help for command
176176
```
177177

178-
- The `-g, --glob` parameter is required. You can specify the directories or paths of files to translate, supporting `glob` syntax. Note that the parameter value must be quoted to avoid unexpected behavior from the command line parser. Examples:
178+
- The `-g, --glob` parameter is required and can specify the directories or files to translate, supporting `glob` syntax. Note that the parameter value must be quoted to avoid unexpected behavior caused by command line parsing. Examples:
179179
1. `yarn translate -g abc xyz` will translate all documents under `<root>/<source>/abc` and `<root>/<source>/xyz` to `<root>/<target>/abc` and `<root>/<target>/xyz` respectively.
180180
2. `yarn translate -g '*'` will translate all document files under `<root>/<source>`.
181-
- The `-C, --copy` parameter is optional. It controls whether to copy local asset files to the target directory when the target file does not exist. The default is `false`, which means changing the asset reference paths to the source paths. Examples:
181+
- The `-C, --copy` parameter is optional and controls whether to copy local asset files to the target directory when the target file does not exist. The default is `false`, which means changing the asset reference path to the source path. Examples:
182182
- When this parameter is enabled:
183-
1. When translating `/<source>/abc.jpg`, it will copy `<root>/public/<source>/abc.jpg` to `<root>/public/<target>/abc.jpg` and modify the reference path in the document to `/<target>/abc.jpg`.
184-
2. In `<root>/<source>/abc.mdx`, when translating `./assets/xyz.jpg`, it will copy `<root>/<source>/assets/xyz.jpg` to `<root>/<target>/assets/xyz.jpg`, and the image reference path remains unchanged.
185-
3. In `<root>/<source>/abc.mdx`, when translating `./assets/<source>/xyz.jpg`, it will copy `<root>/<source>/assets/<source>/xyz.jpg` to `<root>/<target>/assets/<target>/xyz.jpg` and modify the reference path in the document to `./assets/<target>/xyz.jpg`.
183+
1. When translating `/<source>/abc.jpg`, `<root>/public/<source>/abc.jpg` will be copied to `<root>/public/<target>/abc.jpg`, and the reference path in the document will be changed to `/<target>/abc.jpg`.
184+
2. For `./assets/xyz.jpg` in `<root>/<source>/abc.mdx`, the file `<root>/<source>/assets/xyz.jpg` will be copied to `<root>/<target>/assets/xyz.jpg`, and the image reference path remains unchanged.
185+
3. For `./assets/<source>/xyz.jpg` in `<root>/<source>/abc.mdx`, the file `<root>/<source>/assets/<source>/xyz.jpg` will be copied to `<root>/<target>/assets/<target>/xyz.jpg`, and the reference path in the document will be changed to `./assets/<target>/xyz.jpg`.
186186
- When this parameter is not enabled:
187187
1. When translating `/<source>/abc.jpg`, if `<root>/public/<target>/abc.jpg` exists, the reference path in the document will be changed to `/<target>/abc.jpg`; otherwise, the image reference path remains unchanged.
188-
2. In `<root>/<source>/abc.mdx`, when translating `./assets/<source>/xyz.jpg`, if `<root>/<target>/assets/<target>/xyz.jpg` exists, the reference path will be changed to `./assets/<target>/xyz.jpg`; otherwise, it will be changed to `../<source>/assets/<target>/xyz.jpg`.
188+
2. For `./assets/<source>/xyz.jpg` in `<root>/<source>/abc.mdx`, if `<root>/<target>/assets/<target>/xyz.jpg` exists, the reference path in the document will be changed to `./assets/<target>/xyz.jpg`; otherwise, it will be changed to `../<source>/assets/<target>/xyz.jpg`.
189189

190190
:::warning
191-
Specifically, if you use `-g '*'` for full translation, the file lists of `source` and `target` directories will be compared, and unmatched `target` files except for `internalRoutes` will be automatically deleted.
191+
Specifically, if you use `-g '*'` for full translation, the file lists of the `source` and `target` directories will be compared, and unmatched `target` files except for `internalRoutes` will be automatically deleted.
192192
:::
193193

194194
:::tip
195-
The translation feature requires the local environment variable `AZURE_OPENAI_API_KEY` to be configured. Please contact your team Leader to obtain it.
195+
The translation feature requires the local environment variable `AZURE_OPENAI_API_KEY` to be configured. Please contact your team leader to obtain it.
196196
:::
197197

198198
You can control translation behavior in the document metadata:
@@ -211,7 +211,7 @@ For more configuration, please refer to [Translation Configuration](./usage/conf
211211
### Exporting PDF \{#export}
212212
213213
:::warning
214-
Please run `yarn build` to build the project before exporting.
214+
Please run the `yarn build` command before exporting.
215215
:::
216216

217217
```sh
@@ -231,15 +231,15 @@ Options:
231231
-h, --help display help for command
232232
```
233233

234-
Run `yarn export` to export the documentation as PDF files. Note that if you used `-b` or `-p` parameters during build, you need to use the same `-b` and `-p` parameters during export.
234+
Run `yarn export` to export the documentation as a PDF file. Note that if you used `-b` or `-p` parameters during build, you need to use the same `-b` and `-p` parameters during export.
235235

236236
The export feature depends on [`playwright`](https://playwright.dev). For CI pipelines, please use `build-harbor.alauda.cn/frontend/playwright-runner:doom` as the base image for dependency installation and documentation building. Locally, you can set the following environment variable to speed up downloads:
237237

238238
```dotenv title=".env.yarn"
239239
PLAYWRIGHT_DOWNLOAD_HOST="https://cdn.npmmirror.com/binaries/playwright"
240240
```
241241

242-
Besides exporting a unified full-site PDF, `doom` also supports exporting a single PDF file for a specified entry. For more configuration, please refer to [Documentation Export Configuration](./usage/configuration#export)
242+
In addition to exporting a complete PDF document for the entire site, `doom` also supports exporting a single PDF file for a specified entry. For more configuration, please refer to [Documentation Export Configuration](./usage/configuration#export)
243243

244244
### Documentation Linting \{#lint}
245245

@@ -252,10 +252,12 @@ Usage: doom lint [options] [root]
252252
Lint the documentation
253253

254254
Arguments:
255-
root Root directory of the documentation
255+
root Root directory of the documentation
256256

257257
Options:
258-
-h, --help display help for command
258+
-g, --glob <path...> Glob patterns of source dirs/files to lint (default: "**/*.{js,jsx,ts,tsx,md,mdx}")
259+
--no-cspell Disable cspell linting
260+
-h, --help display help for command
259261
```
260262

261263
`doom lint` is based on [`ESLint`](https://eslint.org/) and [`cspell`](https://cspell.org/). For a better experience in your editor, you can install the corresponding plugins [ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) / [CSpell](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker), then create the corresponding configuration files:
@@ -274,11 +276,11 @@ Options:
274276
export { default } from '@alauda/doom/cspell'
275277
```
276278
277-
We also conventionally use the `.cspell` folder under the current working directory (`CWD`) to store CSpell dictionary files. For example, you can create `.cspell/k8s.txt`:
279+
We also agree that the `.cspell` folder under the current working directory (`CWD`) is used to store CSpell dictionary files. For example, you can create `.cspell/k8s.txt`:
278280
279281
```txt
280282
k8s
281283
kubernetes
282284
```
283285
284-
For more configuration, please refer to [Documentation Linting Configuration](./usage/configuration#lint)
286+
For more configuration, please refer to [Lint Configuration](./usage/configuration#lint)

0 commit comments

Comments
 (0)