Skip to content

Conversation

@Rousseau-DeworkHub
Copy link
Collaborator

@Rousseau-DeworkHub Rousseau-DeworkHub commented Nov 21, 2025

[2025.11.19 09:29] I have been modify next.config.js and /src/theme.config.tsx to add i18n languages switch feature. testing in cloud server always downtime, so I use my local pc try again.

[2025.11.19 15:15] in macmini is successfully add i18n. I match the en & zh pages:

  • about
  • developers
  • nodes
  • reference
  • start
  • users

I add the nextra LocaleSwitch to switch languages, now is support en & zh.

in src add the new file middleware.js, will help to match the files path.

every english docs is named xxx.en-US, every chinese docs is named xxx.zh-CN.

but now have three questions in this branch.

  1. the sidebar is not turn with the language switch
  2. when user click someone page, the sidebar is not highlight.
  3. in nextra setting, index.en-US or index.zh-CN will be redirect to the father path, but the true path is the children. such as view http://localhost:3001/zh-CN/developers/evm is 404 not found. I am check the problem, but need some times.

[2025.11.21 10:29] I solve the sidebar highlight issue, add a path compare tool router.ts in src/lib/helpers. the router.pathname is different from page.route, so need a tool to remove the prefix for locale and make a standard router format.

[2025.11.21 12:56] I solve the sidebar en & zh switch, and make sure the folders and files name is true.

Summary by CodeRabbit

Release Notes

  • New Features
    • Added internationalization (i18n) support with English and Simplified Chinese languages
    • Complete Simplified Chinese documentation across all sections: getting started, developers, tutorials, reference, nodes, and users
    • Locale-aware navigation and routing with improved path handling for multi-language support

✏️ Tip: You can customize this high-level summary in your review settings.

@Rousseau-DeworkHub Rousseau-DeworkHub requested review from a team as code owners November 21, 2025 11:02
@vercel
Copy link

vercel bot commented Nov 21, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Preview Updated (UTC)
docs-v2 Error Error Nov 21, 2025 11:02am

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Nov 21, 2025

Caution

Review failed

Failed to post review comments

📝 Walkthrough

Walkthrough

This pull request implements comprehensive internationalization (i18n) support for the ZetaChain documentation site, adding Chinese (zh-CN) language variants across all major documentation sections. The changes include configuration updates, locale-aware utility functions for route handling and title management, component modifications to support locale detection, and extensive Chinese translations of documentation content.

Changes

Cohort / File(s) Summary
Configuration & Middleware
next.config.js, src/middleware.js
Added i18n configuration enabling en-US and zh-CN locales with disabled locale detection. Introduced middleware wrapper delegating to nextraLocales for request handling.
Router & Path Utilities
src/lib/helpers/router.ts
New module providing locale-aware path utilities: normalizePath (trailing slash handling), removeLocalePrefix, isPathMatch (normalized equality check), and isPathStartWith (prefix matching with locale stripping).
Nextra Title Helpers
src/lib/helpers/nextra.ts
Added useGetPageTitle (hook variant) and getPageTitleWithLocale utilities to derive page titles via meta data maps, with fallback to existing logic for non-mapped pages.
Meta Data Management
src/lib/data/meta-data.ts
New module aggregating meta data from _meta.json files across locales and routes, exposing MetaData/MetaDataMap types and getMetaTitle function for route-locale-based title lookup with parent traversal.
Navigation Components
src/components/shared/components/Layout/components/NavigationAccordionLink.tsx, NavigationItem.tsx
Updated to use normalized path comparisons and locale-aware title rendering via getPageTitleWithLocale. NavigationLayout adds deduplication of child routes.
Page Filtering Hook
src/hooks/useSetDirectoriesState.ts
Integrated locale detection via router and added page filtering logic to show only locale-matching pages (via extractLocaleFromPage helper), reducing duplicates for non-default locales.
Chinese Translation Files
src/pages/**/_meta.zh-CN.json
Added locale metadata files across all sections (about, developers, nodes, reference, etc.) defining Chinese UI section titles.
Chinese Content Pages
src/pages/**/*.zh-CN.mdx, src/pages/**/*.zh-CN.md
Comprehensive Chinese translations of documentation pages covering: about & services, developer guides (architecture, chains, standards, protocols, tutorials), reference (CLI, networks, explorers), nodes setup & validation, and home page.

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant Browser
    participant NextMiddleware as Next.js Middleware
    participant App
    participant Router as useRouter()
    participant NavComponent as Navigation<br/>Component
    
    User->>Browser: Navigate to /en-US/developers<br/>or /zh-CN/developers
    Browser->>NextMiddleware: Request with locale prefix
    NextMiddleware->>App: Route request with locale
    App->>Router: useRouter detects locale
    Router->>NavComponent: Provides router.locale
    NavComponent->>NavComponent: Use normalizePath()<br/>and removeLocalePrefix()
    NavComponent->>NavComponent: Determine active route<br/>via isPathMatch()
    NavComponent->>NavComponent: Fetch title via<br/>getPageTitleWithLocale()
    NavComponent->>Browser: Render with correct<br/>title & active state
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20–25 minutes

Areas requiring focused attention:

  • Path normalization logic (src/lib/helpers/router.ts): Verify correctness of locale prefix stripping, trailing slash handling, and edge cases (root path "/", locale-prefixed paths). Ensure no double-normalization or unintended path mutations.
  • Navigation component updates (NavigationAccordionLink.tsx, NavigationItem.tsx): Confirm that normalized path comparisons correctly handle both locale-prefixed and non-prefixed routes, and validate that getPageTitleWithLocale integration does not break fallback title rendering.
  • Page filtering logic (useSetDirectoriesState.ts): Verify that locale detection via page.locale/page.name/page.route works as intended, that recursive folder filtering preserves tree structure, and that default locale behavior (showing non-locale pages) is correct.
  • Meta data aggregation (src/lib/data/meta-data.ts): Validate the meta data map construction across all _meta.json files and confirm parent-route traversal for title lookup functions as documented.
  • i18n configuration (next.config.js): Ensure localeDetection: false does not cause unintended locale bypass and that remotePatterns addition does not affect existing CDN behavior.

Possibly related PRs

Suggested reviewers

  • swift1337
  • kingpinXD

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'Add i18n in Zetachain docs' accurately summarizes the primary objective of this comprehensive pull request, which introduces internationalization (i18n) support with English and Chinese localization across the documentation.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch add-i18n-test

Tip

📝 Customizable high-level summaries are now available in beta!

You can now customize how CodeRabbit generates the high-level summary in your pull requests — including its content, structure, tone, and formatting.

  • Provide your own instructions using the high_level_summary_instructions setting.
  • Format the summary however you like (bullet lists, tables, multi-section layouts, contributor stats, etc.).
  • Use high_level_summary_in_walkthrough to move the summary from the description to the walkthrough section.

Example instruction:

"Divide the high-level summary into five sections:

  1. 📝 Description — Summarize the main change in 50–60 words, explaining what was done.
  2. 📓 References — List relevant issues, discussions, documentation, or related PRs.
  3. 📦 Dependencies & Requirements — Mention any new/updated dependencies, environment variable changes, or configuration updates.
  4. 📊 Contributor Summary — Include a Markdown table showing contributions:
    | Contributor | Lines Added | Lines Removed | Files Changed |
  5. ✔️ Additional Notes — Add any extra reviewer context.
    Keep each section concise (under 200 words) and use bullet or numbered lists for clarity."

Note: This feature is currently in beta for Pro-tier users, and pricing will be announced later.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 40

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
src/pages/about/info/bug-bounty.zh-CN.mdx (1)

25-25: Clarify unexplained trailing marker.

Line 25 ends with *** which appears incomplete or unexplained. Verify if this is a formatting artifact or if content is missing.

src/components/shared/components/Layout/components/NavigationAccordionLink.tsx (1)

30-52: Refactor accordion route matching to handle locale prefixes and query parameters

The review identifies a critical inconsistency: NavigationAccordion performs route matching without accounting for locale prefixes, while NavigationAccordionLink correctly uses isPathMatch to handle locale-aware comparisons.

Confirmed Issues:

  1. Locale prefix mismatch: When router.asPath contains a locale prefix (e.g., /zh-CN/developers/api), the comparison normalizedPathname.startsWith(normalizedPageRoute) fails because page.route is locale-neutral (e.g., /developers/api).

  2. Query parameter retention: router.asPath includes query strings and hashes, which are not stripped before comparison, causing false negatives when navigating to routes with search parameters.

Proposed Solution:

Align NavigationAccordion with the locale-aware behavior already implemented in NavigationAccordionLink by stripping query parameters and removing locale prefixes:

-import { isPathMatch, normalizePath } from "~/lib/helpers/router"; //导入工具函数
+import { isPathMatch, normalizePath, removeLocalePrefix } from "~/lib/helpers/router"; // 导入工具函数

 const NavigationAccordion: React.FC<NavigationAccordionLinkProps> = ({ page, children }) => {
   const router = useRouter();
-  const normalizedPathname = normalizePath(router.asPath || router.pathname);
+  const rawPath = (router.asPath || router.pathname).split("#")[0].split("?")[0];
+  const locales = router.locales || ["en-US", "zh-CN"];
+  const normalizedPathname = normalizePath(removeLocalePrefix(rawPath, locales));
   
-  const normalizedPageRoute = normalizePath(page.route);
-  const isRouteInAccordion = normalizedPathname.startsWith(normalizedPageRoute) || normalizedPathname === normalizedPageRoute;
+  const normalizedPageRoute = normalizePath(page.route);
+  const isRouteInAccordion =
+    normalizedPathname === normalizedPageRoute || normalizedPathname.startsWith(`${normalizedPageRoute}/`);

This ensures accordion expansion behaves consistently across all locales and URL patterns.

🧹 Nitpick comments (14)
src/pages/_meta.zh-CN.json (1)

23-24: Remove trailing whitespace after closing brace.

Line 24 contains unnecessary whitespace that can be removed for cleaner formatting.

-  }
-  
+}
src/pages/developers/evm/cctx.zh-CN.mdx (1)

1-99: 跨链交易示例与链路说明准确

入站/出站定义、通过 inboundHashToCctxData 级联查询 CCTX 以及各网络示例链接整体一致且技术逻辑清楚,作为 zh-CN 本地化内容可以直接上线。

src/pages/about/services/goldrush.zh-CN.mdx (2)

13-13: Minor Chinese grammar refinement at line 13.

The phrase "采用一致的请求/响应结构" could be refined for clarity. Consider revising to "采用一致的请求/响应结构" or "一致地采用请求/响应结构" for improved fluency. The static analysis tool flagged this as a potential modifier ordering issue.


152-152: Chinese word order refinement at line 152.

The opening phrase "更多关于 GoldRush API 与 ZetaChain 集成的教程" could be reordered for better native fluency. Consider: "更多关于 GoldRush API 与 ZetaChain 集成的教程,请参阅..." or "若要了解更多关于 GoldRush API 与 ZetaChain 集成的内容,请参阅...". This aligns with native speaker conventions flagged by the static analysis tool.

src/components/shared/components/Layout/components/NavigationLayout.tsx (1)

89-95: Misleading comment and suboptimal deduplication algorithm.

The comment states "使用 Map 去重" (using Map to deduplicate), but the implementation uses array.find() within a reduce, which is O(n²). For better performance and accuracy, consider using an actual Map or Set for O(n) deduplication.

Apply this diff for a more efficient and accurate implementation:

-                                // ✅ 添加去重逻辑:使用 Map 去重,只保留每个 route 的第一个页面
                                 .reduce((acc, page) => {
-                                  if (!acc.find((p) => p.route === page.route)) {
+                                  // Deduplicate by route: keep only the first occurrence
+                                  if (!acc.some((p) => p.route === page.route)) {
                                     acc.push(page);
                                   }
                                   return acc;
                                 }, [] as typeof navSection.children)

Or, for optimal performance with an actual Set:

+                                .reduce((acc, page) => {
+                                  const seen = new Set<string>();
+                                  return navSection.children
+                                    .filter((page) => page.route !== item.url)
+                                    .filter((page) => {
+                                      if (seen.has(page.route)) return false;
+                                      seen.add(page.route);
+                                      return true;
+                                    });
+                                }, [] as typeof navSection.children)

Note: The simpler fix is to replace find with some and correct the comment. The Set-based approach is optimal but requires restructuring.

src/middleware.js (1)

5-6: Fix ESLint and Prettier violations.

The code has style violations flagged by ESLint and Prettier. After removing console statements, ensure the file ends with a newline.

Apply this diff:

 export function middleware(request) {
   return nextraLocales(request);
 }
+
src/components/shared/components/Layout/components/NavigationItem.tsx (1)

25-35: Remove commented-out code.

The old implementation is preserved in comments. Since version control maintains the history, this commented code should be removed to keep the codebase clean.

Apply this diff to remove the commented code:

-  // const isSelected = useMemo(() => {
-  //   if (!url) {
-  //     return false;
-  //   }
-
-  //   if (router.pathname === "/" || url === "/") {
-  //     return url === router.pathname;
-  //   }
-
-  //   return router.pathname.startsWith(url);
-  // }, [url, router.pathname]);
src/pages/developers/protocol/evm.zh-CN.md (1)

6-86: Content looks solid; please re‑check markdownlint MD037 locally

The Chinese reference text and Solidity signatures read correctly and are consistent with the described behavior. Only note: markdownlint reported MD037 (“no-space-in-emphasis”) on this file. I do not see an obvious issue in the current snippet, but it is worth re-running markdownlint locally and trimming any hidden spaces immediately inside *...* if present, to keep CI green.

src/components/shared/components/Layout/components/NavigationAccordionLink.tsx (1)

2-11: Run Prettier/ESLint to normalize import and whitespace formatting

The logic changes are sound, but ESLint/Prettier are flagging a few style issues here:

  • Line 2: inline comment after import has no space after //.
  • Line 10: import { getPageTitle,getPageTitleWithLocale } is missing a space after the comma.
  • Lines around 35–43 and 40–43: extra/incorrect blank-line spacing per Prettier hints.

Please run the project’s formatter (e.g., pnpm lint --fix or pnpm format, depending on your setup) to bring this file back into compliance.

Also applies to: 35-43, 73-107

src/lib/helpers/nextra.ts (1)

4-31: Locale-aware title helpers look correct; just fix minor formatting

useGetPageTitle and getPageTitleWithLocale correctly consult getMetaTitle with the current/explicit locale and gracefully fall back to the legacy page.meta?.title ?? startCase(toLower(page.name)) behavior, so existing consumers remain safe while gaining i18n support.

ESLint/Prettier are only flagging minor whitespace on blank lines (e.g., lines 10, 16, 28). Please run the project formatter over this file to clear those style warnings.

src/pages/nodes/validate/validator.zh-CN.mdx (1)

109-109: Consider adding a measure word for better Chinese style.

Between the number "700" and the currency "ZETA", a measure word would improve readability.

Suggested revision:

-使用以下命令追加委托,调整代币数量以满足最低质押要求。要进入前 100 名验证人(按投票权排序),截至 2025 年一季度大约需要 700 枚 ZETA。
+使用以下命令追加委托,调整代币数量以满足最低质押要求。要进入前 100 名验证人(按投票权排序),截至 2025 年一季度大约需要 700 个 ZETA。
src/pages/developers/chains/bitcoin.zh-CN.mdx (1)

68-68: Consider adding a measure word for better Chinese style.

Between the number "255" and the unit "字节", a measure word would improve readability.

Suggested revision:

-Compact 编码更节省空间,适合优化交易大小。当所有动态字段(载荷与回退地址)都小于 255 字节时可用 `CompactShort`;若任一字段可能超过此阈值,请使用 `CompactLong`。
+Compact 编码更节省空间,适合优化交易大小。当所有动态字段(载荷与回退地址)都小于 255 个字节时可用 `CompactShort`;若任一字段可能超过此阈值,请使用 `CompactLong`。
src/pages/developers/chains/solana.zh-CN.mdx (1)

1-7: Minor zh-CN wording polish for account term

In Line 3, “将 SOL 存入 ZetaChain 的帐号或全链应用”中“帐号”略显口语化/旧式。为与其他技术文档更一致,可考虑改为“账户”或“账号”(例如:“存入 ZetaChain 的账户或全链应用”)。

src/pages/developers/tutorials/messaging.zh-CN.mdx (1)

294-303: Clarify that JSON example values are public on‑chain data (Gitleaks false positive)

The contractAddress, targetContract, targetToken, and transactionHash fields in this JSON example are standard on‑chain addresses/hashes, not secrets. Tools like Gitleaks may still flag them as “generic API keys.” To avoid confusion in future security reviews, consider either documenting that these are public testnet values or adding them to your secret‑scanner allowlist instead of altering the example.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between b2b6791 and 52a1ca4.

📒 Files selected for processing (107)
  • add-i18-test.md (1 hunks)
  • next.config.js (2 hunks)
  • src/components/shared/components/Layout/components/NavigationAccordionLink.tsx (5 hunks)
  • src/components/shared/components/Layout/components/NavigationItem.tsx (2 hunks)
  • src/components/shared/components/Layout/components/NavigationLayout.tsx (1 hunks)
  • src/hooks/useSetDirectoriesState.ts (1 hunks)
  • src/lib/data/meta-data.ts (1 hunks)
  • src/lib/helpers/nextra.ts (1 hunks)
  • src/lib/helpers/router.ts (1 hunks)
  • src/middleware.js (1 hunks)
  • src/pages/_meta.zh-CN.json (1 hunks)
  • src/pages/about/_meta.zh-CN.json (1 hunks)
  • src/pages/about/index.zh-CN.mdx (1 hunks)
  • src/pages/about/info/_meta.zh-CN.json (1 hunks)
  • src/pages/about/info/bug-bounty.zh-CN.mdx (1 hunks)
  • src/pages/about/info/faq.zh-CN.mdx (1 hunks)
  • src/pages/about/info/glossary.zh-CN.mdx (1 hunks)
  • src/pages/about/services/_meta.zh-CN.json (1 hunks)
  • src/pages/about/services/alchemy.zh-CN.mdx (1 hunks)
  • src/pages/about/services/apro.zh-CN.mdx (1 hunks)
  • src/pages/about/services/envio.zh-CN.mdx (1 hunks)
  • src/pages/about/services/goldrush.zh-CN.mdx (1 hunks)
  • src/pages/about/services/goldsky.zh-CN.mdx (1 hunks)
  • src/pages/about/services/index.zh-CN.mdx (1 hunks)
  • src/pages/about/services/onfinality.zh-CN.mdx (1 hunks)
  • src/pages/about/services/particle.zh-CN.mdx (1 hunks)
  • src/pages/about/services/pyth.zh-CN.mdx (1 hunks)
  • src/pages/about/services/space-id.zh-CN.mdx (1 hunks)
  • src/pages/about/services/subquery.zh-CN.mdx (1 hunks)
  • src/pages/about/services/the-graph.zh-CN.mdx (1 hunks)
  • src/pages/about/services/wallets.zh-CN.mdx (1 hunks)
  • src/pages/about/token-utility/_meta.zh-CN.json (1 hunks)
  • src/pages/about/token-utility/distribution.zh-CN.mdx (1 hunks)
  • src/pages/about/token-utility/gas.zh-CN.mdx (1 hunks)
  • src/pages/about/token-utility/liquidity.zh-CN.mdx (1 hunks)
  • src/pages/about/token-utility/overview.zh-CN.mdx (1 hunks)
  • src/pages/about/token-utility/token.zh-CN.mdx (1 hunks)
  • src/pages/about/token-utility/validators.zh-CN.mdx (1 hunks)
  • src/pages/developers/_meta.zh-CN.json (1 hunks)
  • src/pages/developers/architecture/_meta.zh-CN.json (1 hunks)
  • src/pages/developers/architecture/modules.zh-CN.mdx (1 hunks)
  • src/pages/developers/architecture/observers.zh-CN.mdx (1 hunks)
  • src/pages/developers/architecture/overview.zh-CN.mdx (1 hunks)
  • src/pages/developers/architecture/privileged.zh-CN.mdx (1 hunks)
  • src/pages/developers/architecture/rewards.zh-CN.mdx (1 hunks)
  • src/pages/developers/architecture/whitelisting.zh-CN.mdx (1 hunks)
  • src/pages/developers/chains/_meta.zh-CN.json (1 hunks)
  • src/pages/developers/chains/bitcoin.zh-CN.mdx (1 hunks)
  • src/pages/developers/chains/evm.zh-CN.mdx (1 hunks)
  • src/pages/developers/chains/functionality.zh-CN.mdx (1 hunks)
  • src/pages/developers/chains/list.zh-CN.mdx (1 hunks)
  • src/pages/developers/chains/solana.zh-CN.mdx (1 hunks)
  • src/pages/developers/chains/sui.zh-CN.mdx (1 hunks)
  • src/pages/developers/chains/ton.zh-CN.mdx (1 hunks)
  • src/pages/developers/chains/zetachain.zh-CN.mdx (1 hunks)
  • src/pages/developers/evm/_meta.zh-CN.json (1 hunks)
  • src/pages/developers/evm/addresses.zh-CN.mdx (1 hunks)
  • src/pages/developers/evm/cctx.zh-CN.mdx (1 hunks)
  • src/pages/developers/evm/erc20.zh-CN.mdx (1 hunks)
  • src/pages/developers/evm/gas.zh-CN.mdx (1 hunks)
  • src/pages/developers/evm/gateway.zh-CN.mdx (1 hunks)
  • src/pages/developers/evm/index.zh-CN.mdx (1 hunks)
  • src/pages/developers/evm/throughput.zh-CN.mdx (1 hunks)
  • src/pages/developers/evm/zeta.zh-CN.mdx (1 hunks)
  • src/pages/developers/evm/zrc20.zh-CN.mdx (1 hunks)
  • src/pages/developers/index.zh-CN.mdx (1 hunks)
  • src/pages/developers/protocol/_meta.zh-CN.json (1 hunks)
  • src/pages/developers/protocol/evm.zh-CN.md (1 hunks)
  • src/pages/developers/protocol/solana.zh-CN.md (1 hunks)
  • src/pages/developers/protocol/sui.zh-CN.md (1 hunks)
  • src/pages/developers/protocol/ton.zh-CN.md (1 hunks)
  • src/pages/developers/standards/_meta.zh-CN.json (1 hunks)
  • src/pages/developers/standards/nft.zh-CN.mdx (1 hunks)
  • src/pages/developers/standards/overview.zh-CN.mdx (1 hunks)
  • src/pages/developers/standards/token.zh-CN.mdx (1 hunks)
  • src/pages/developers/tutorials/_meta.zh-CN.json (1 hunks)
  • src/pages/developers/tutorials/call.zh-CN.mdx (1 hunks)
  • src/pages/developers/tutorials/frontend.zh-CN.mdx (1 hunks)
  • src/pages/developers/tutorials/hello.zh-CN.mdx (1 hunks)
  • src/pages/developers/tutorials/intro.zh-CN.mdx (1 hunks)
  • src/pages/developers/tutorials/messaging.zh-CN.mdx (1 hunks)
  • src/pages/developers/tutorials/solana.zh-CN.mdx (1 hunks)
  • src/pages/developers/tutorials/staking.zh-CN.mdx (1 hunks)
  • src/pages/developers/tutorials/sui-withdraw-and-call.zh-CN.mdx (1 hunks)
  • src/pages/developers/tutorials/sui.zh-CN.mdx (1 hunks)
  • src/pages/developers/tutorials/swap.zh-CN.mdx (1 hunks)
  • src/pages/index.zh-CN.mdx (1 hunks)
  • src/pages/nodes/_meta.zh-CN.json (1 hunks)
  • src/pages/nodes/index.zh-CN.mdx (1 hunks)
  • src/pages/nodes/start-here/_meta.zh-CN.json (1 hunks)
  • src/pages/nodes/start-here/requirements.zh-CN.mdx (1 hunks)
  • src/pages/nodes/start-here/setup.zh-CN.mdx (1 hunks)
  • src/pages/nodes/start-here/syncing.zh-CN.mdx (1 hunks)
  • src/pages/nodes/validate/_meta.zh-CN.json (1 hunks)
  • src/pages/nodes/validate/validator-gcp.zh-CN.mdx (1 hunks)
  • src/pages/nodes/validate/validator.zh-CN.mdx (1 hunks)
  • src/pages/reference/_meta.zh-CN.json (1 hunks)
  • src/pages/reference/cli.zh-CN.mdx (1 hunks)
  • src/pages/reference/explorers.zh-CN.mdx (1 hunks)
  • src/pages/reference/faucet.zh-CN.mdx (1 hunks)
  • src/pages/reference/index.zh-CN.mdx (1 hunks)
  • src/pages/reference/localnet.zh-CN.mdx (1 hunks)
  • src/pages/reference/mcp.zh-CN.mdx (1 hunks)
  • src/pages/reference/network/_meta.zh-CN.json (1 hunks)
  • src/pages/reference/network/api.zh-CN.mdx (1 hunks)
  • src/pages/reference/network/contracts.zh-CN.mdx (1 hunks)
  • src/pages/reference/network/details.zh-CN.mdx (1 hunks)
⛔ Files not processed due to max files limit (47)
  • src/pages/reference/network/openapi.zh-CN.mdx
  • src/pages/reference/registry.zh-CN.mdx
  • src/pages/reference/toolkit.zh-CN.mdx
  • src/pages/reference/tools/address-converter.zh-CN.mdx
  • src/pages/reference/tools/proposals.zh-CN.mdx
  • src/pages/start/_meta.zh-CN.json
  • src/pages/start/app.zh-CN.mdx
  • src/pages/start/build.zh-CN.mdx
  • src/pages/start/index.zh-CN.mdx
  • src/pages/start/zetachain.zh-CN.mdx
  • src/pages/users/_meta.zh-CN.json
  • src/pages/users/cli/_meta.zh-CN.json
  • src/pages/users/cli/account.zh-CN.mdx
  • src/pages/users/cli/balances.zh-CN.mdx
  • src/pages/users/cli/delegate.zh-CN.mdx
  • src/pages/users/cli/governance/_meta.zh-CN.json
  • src/pages/users/cli/governance/deposit.zh-CN.mdx
  • src/pages/users/cli/governance/index.zh-CN.mdx
  • src/pages/users/cli/governance/parameter.zh-CN.mdx
  • src/pages/users/cli/governance/submit.zh-CN.mdx
  • src/pages/users/cli/governance/text.zh-CN.mdx
  • src/pages/users/cli/governance/upgrade.zh-CN.mdx
  • src/pages/users/cli/governance/voting.zh-CN.mdx
  • src/pages/users/cli/rewards.zh-CN.mdx
  • src/pages/users/cli/setup.zh-CN.mdx
  • src/pages/users/index.zh-CN.mdx
  • src/pages/users/keplr/_meta.zh-CN.json
  • src/pages/users/keplr/setup.zh-CN.mdx
  • src/pages/users/keplr/staking.zh-CN.mdx
  • src/pages/users/keplr/transfer.zh-CN.mdx
  • src/pages/users/keplr/voting.zh-CN.mdx
  • src/pages/users/leap/_meta.zh-CN.json
  • src/pages/users/leap/delegate.zh-CN.mdx
  • src/pages/users/leap/setup.zh-CN.mdx
  • src/pages/users/pingpub/_meta.zh-CN.json
  • src/pages/users/pingpub/delegate.zh-CN.mdx
  • src/pages/users/zetahub/_meta.zh-CN.json
  • src/pages/users/zetahub/connect-wallet.zh-CN.mdx
  • src/pages/users/zetahub/create-wallet.zh-CN.mdx
  • src/pages/users/zetahub/earn-zeta-xp.zh-CN.mdx
  • src/pages/users/zetahub/enroll-zeta-xp.zh-CN.mdx
  • src/pages/users/zetahub/get-zeta.zh-CN.mdx
  • src/pages/users/zetahub/pool.zh-CN.mdx
  • src/pages/users/zetahub/send.zh-CN.mdx
  • src/pages/users/zetahub/stake.zh-CN.mdx
  • src/styles/globals.css
  • src/theme.config.tsx
🧰 Additional context used
🧬 Code graph analysis (5)
src/hooks/useSetDirectoriesState.ts (2)
src/lib/helpers/nextra.ts (1)
  • getDirectories (94-119)
src/lib/app.store.ts (1)
  • useAppDispatch (24-24)
src/components/shared/components/Layout/components/NavigationItem.tsx (1)
src/lib/helpers/router.ts (2)
  • normalizePath (6-9)
  • isPathStartWith (46-53)
src/lib/helpers/nextra.ts (1)
src/lib/data/meta-data.ts (1)
  • getMetaTitle (157-208)
src/components/shared/components/Layout/components/NavigationLayout.tsx (1)
src/components/shared/components/Layout/components/NavigationAccordionLink.tsx (1)
  • NavigationAccordionLink (82-121)
src/components/shared/components/Layout/components/NavigationAccordionLink.tsx (2)
src/lib/helpers/router.ts (2)
  • normalizePath (6-9)
  • isPathMatch (23-41)
src/lib/helpers/nextra.ts (1)
  • getPageTitleWithLocale (22-31)
🪛 ast-grep (0.40.0)
src/lib/helpers/router.ts

[warning] 15-15: Regular expression constructed from variable input detected. This can lead to Regular Expression Denial of Service (ReDoS) attacks if the variable contains malicious patterns. Use libraries like 'recheck' to validate regex safety or use static patterns.
Context: new RegExp(^(${localePattern}))
Note: [CWE-1333] Inefficient Regular Expression Complexity [REFERENCES]
- https://owasp.org/www-community/attacks/Regular_expression_Denial_of_Service_-_ReDoS
- https://cwe.mitre.org/data/definitions/1333.html

(regexp-from-variable)

🪛 ESLint
src/middleware.js

[error] 5-5: Unexpected console statement.

(no-console)


[error] 5-5: Replace '🔵·Middleware·执行:' with "🔵·Middleware·执行:"

(prettier/prettier)


[error] 6-6: Unexpected console statement.

(no-console)


[error] 6-6: Replace '🔵·Cookie:',·request.cookies.get('NEXT_LOCALE' with "🔵·Cookie:",·request.cookies.get("NEXT_LOCALE"

(prettier/prettier)


[error] 8-8: Insert

(prettier/prettier)

src/hooks/useSetDirectoriesState.ts

[error] 31-37: Run autofix to sort these imports!

(simple-import-sort/imports)


[error] 40-40: Delete ·

(prettier/prettier)


[error] 41-41: Delete ··

(prettier/prettier)


[error] 42-42: Delete ··

(prettier/prettier)


[error] 66-66: Replace 'locale' with "locale"

(prettier/prettier)


[error] 71-71: Replace 'name' with "name"

(prettier/prettier)


[error] 103-103: Delete ············

(prettier/prettier)


[error] 106-106: Delete ············

(prettier/prettier)


[error] 127-127: Delete ············

(prettier/prettier)


[error] 145-148: Replace ⏎····()·=>·getDirectories(filteredPages),⏎····[filteredPages]⏎·· with ()·=>·getDirectories(filteredPages),·[filteredPages]

(prettier/prettier)


[error] 164-164: Insert

(prettier/prettier)

src/components/shared/components/Layout/components/NavigationItem.tsx

[error] 40-40: Delete ··

(prettier/prettier)


[error] 42-42: Delete ····

(prettier/prettier)


[error] 46-46: Delete ··

(prettier/prettier)

src/lib/data/meta-data.ts

[error] 3-64: Run autofix to sort these imports!

(simple-import-sort/imports)


[error] 3-3: Replace '../../pages/_meta.en-US.json' with "../../pages/_meta.en-US.json"

(prettier/prettier)


[error] 4-4: Replace '../../pages/_meta.zh-CN.json' with "../../pages/_meta.zh-CN.json"

(prettier/prettier)


[error] 7-7: Replace '../../pages/start/_meta.en-US.json' with "../../pages/start/_meta.en-US.json"

(prettier/prettier)


[error] 8-8: Replace '../../pages/start/_meta.zh-CN.json' with "../../pages/start/_meta.zh-CN.json"

(prettier/prettier)


[error] 11-11: Replace '../../pages/about/_meta.en-US.json' with "../../pages/about/_meta.en-US.json"

(prettier/prettier)


[error] 12-12: Replace '../../pages/about/_meta.zh-CN.json' with "../../pages/about/_meta.zh-CN.json"

(prettier/prettier)


[error] 13-13: Replace '../../pages/about/token-utility/_meta.en-US.json' with "../../pages/about/token-utility/_meta.en-US.json"

(prettier/prettier)


[error] 14-14: Replace '../../pages/about/token-utility/_meta.zh-CN.json' with "../../pages/about/token-utility/_meta.zh-CN.json"

(prettier/prettier)


[error] 15-15: Replace '../../pages/about/services/_meta.en-US.json' with "../../pages/about/services/_meta.en-US.json"

(prettier/prettier)


[error] 16-16: Replace '../../pages/about/services/_meta.zh-CN.json' with "../../pages/about/services/_meta.zh-CN.json"

(prettier/prettier)


[error] 17-17: Replace '../../pages/about/info/_meta.en-US.json' with "../../pages/about/info/_meta.en-US.json"

(prettier/prettier)


[error] 18-18: Replace '../../pages/about/info/_meta.zh-CN.json' with "../../pages/about/info/_meta.zh-CN.json"

(prettier/prettier)


[error] 21-21: Replace '../../pages/developers/_meta.en-US.json' with "../../pages/developers/_meta.en-US.json"

(prettier/prettier)


[error] 22-22: Replace '../../pages/developers/_meta.zh-CN.json' with "../../pages/developers/_meta.zh-CN.json"

(prettier/prettier)


[error] 23-23: Replace '../../pages/developers/architecture/_meta.en-US.json' with "../../pages/developers/architecture/_meta.en-US.json"

(prettier/prettier)


[error] 24-24: Replace '../../pages/developers/architecture/_meta.zh-CN.json' with "../../pages/developers/architecture/_meta.zh-CN.json"

(prettier/prettier)


[error] 25-25: Replace '../../pages/developers/chains/_meta.en-US.json' with "../../pages/developers/chains/_meta.en-US.json"

(prettier/prettier)


[error] 26-26: Replace '../../pages/developers/chains/_meta.zh-CN.json' with "../../pages/developers/chains/_meta.zh-CN.json"

(prettier/prettier)


[error] 27-27: Replace '../../pages/developers/protocol/_meta.en-US.json' with "../../pages/developers/protocol/_meta.en-US.json"

(prettier/prettier)


[error] 28-28: Replace '../../pages/developers/protocol/_meta.zh-CN.json' with "../../pages/developers/protocol/_meta.zh-CN.json"

(prettier/prettier)


[error] 29-29: Replace '../../pages/developers/standards/_meta.en-US.json' with "../../pages/developers/standards/_meta.en-US.json"

(prettier/prettier)


[error] 30-30: Replace '../../pages/developers/standards/_meta.zh-CN.json' with "../../pages/developers/standards/_meta.zh-CN.json"

(prettier/prettier)


[error] 31-31: Replace '../../pages/developers/tutorials/_meta.en-US.json' with "../../pages/developers/tutorials/_meta.en-US.json"

(prettier/prettier)


[error] 32-32: Replace '../../pages/developers/tutorials/_meta.zh-CN.json' with "../../pages/developers/tutorials/_meta.zh-CN.json"

(prettier/prettier)


[error] 33-33: Replace '../../pages/developers/evm/_meta.en-US.json' with "../../pages/developers/evm/_meta.en-US.json"

(prettier/prettier)


[error] 34-34: Replace '../../pages/developers/evm/_meta.zh-CN.json' with "../../pages/developers/evm/_meta.zh-CN.json"

(prettier/prettier)


[error] 37-37: Replace '../../pages/nodes/_meta.en-US.json' with "../../pages/nodes/_meta.en-US.json"

(prettier/prettier)


[error] 38-38: Replace '../../pages/nodes/_meta.zh-CN.json' with "../../pages/nodes/_meta.zh-CN.json"

(prettier/prettier)


[error] 39-39: Replace '../../pages/nodes/start-here/_meta.en-US.json' with "../../pages/nodes/start-here/_meta.en-US.json"

(prettier/prettier)


[error] 40-40: Replace '../../pages/nodes/start-here/_meta.zh-CN.json' with "../../pages/nodes/start-here/_meta.zh-CN.json"

(prettier/prettier)


[error] 41-41: Replace '../../pages/nodes/validate/_meta.en-US.json' with "../../pages/nodes/validate/_meta.en-US.json"

(prettier/prettier)


[error] 42-42: Replace '../../pages/nodes/validate/_meta.zh-CN.json' with "../../pages/nodes/validate/_meta.zh-CN.json"

(prettier/prettier)


[error] 45-45: Replace '../../pages/reference/_meta.en-US.json' with "../../pages/reference/_meta.en-US.json"

(prettier/prettier)


[error] 46-46: Replace '../../pages/reference/_meta.zh-CN.json' with "../../pages/reference/_meta.zh-CN.json"

(prettier/prettier)


[error] 47-47: Replace '../../pages/reference/network/_meta.en-US.json' with "../../pages/reference/network/_meta.en-US.json"

(prettier/prettier)


[error] 48-48: Replace '../../pages/reference/network/_meta.zh-CN.json' with "../../pages/reference/network/_meta.zh-CN.json"

(prettier/prettier)


[error] 51-51: Replace '../../pages/users/_meta.en-US.json' with "../../pages/users/_meta.en-US.json"

(prettier/prettier)


[error] 52-52: Replace '../../pages/users/_meta.zh-CN.json' with "../../pages/users/_meta.zh-CN.json"

(prettier/prettier)


[error] 53-53: Replace '../../pages/users/cli/_meta.en-US.json' with "../../pages/users/cli/_meta.en-US.json"

(prettier/prettier)


[error] 54-54: Replace '../../pages/users/cli/_meta.zh-CN.json' with "../../pages/users/cli/_meta.zh-CN.json"

(prettier/prettier)


[error] 55-55: Replace '../../pages/users/cli/governance/_meta.en-US.json' with "../../pages/users/cli/governance/_meta.en-US.json"

(prettier/prettier)


[error] 56-56: Replace '../../pages/users/cli/governance/_meta.zh-CN.json' with "../../pages/users/cli/governance/_meta.zh-CN.json"

(prettier/prettier)


[error] 57-57: Replace '../../pages/users/keplr/_meta.en-US.json' with "../../pages/users/keplr/_meta.en-US.json"

(prettier/prettier)


[error] 58-58: Replace '../../pages/users/keplr/_meta.zh-CN.json' with "../../pages/users/keplr/_meta.zh-CN.json"

(prettier/prettier)


[error] 59-59: Replace '../../pages/users/leap/_meta.en-US.json' with "../../pages/users/leap/_meta.en-US.json"

(prettier/prettier)


[error] 60-60: Replace '../../pages/users/leap/_meta.zh-CN.json' with "../../pages/users/leap/_meta.zh-CN.json"

(prettier/prettier)


[error] 61-61: Replace '../../pages/users/pingpub/_meta.en-US.json' with "../../pages/users/pingpub/_meta.en-US.json"

(prettier/prettier)


[error] 62-62: Replace '../../pages/users/pingpub/_meta.zh-CN.json' with "../../pages/users/pingpub/_meta.zh-CN.json"

(prettier/prettier)


[error] 63-63: Replace '../../pages/users/zetahub/_meta.en-US.json' with "../../pages/users/zetahub/_meta.en-US.json"

(prettier/prettier)


[error] 64-64: Replace '../../pages/users/zetahub/_meta.zh-CN.json' with "../../pages/users/zetahub/_meta.zh-CN.json"

(prettier/prettier)


[error] 71-71: Replace ····'en-US' with ··"en-US"

(prettier/prettier)


[error] 72-72: Replace ····'/' with "/"

(prettier/prettier)


[error] 73-73: Replace ····'/start' with "/start"

(prettier/prettier)


[error] 74-74: Replace ····'/about' with "/about"

(prettier/prettier)


[error] 75-75: Replace ····'/about/token-utility' with "/about/token-utility"

(prettier/prettier)


[error] 76-76: Replace ········'/about/services' with ····"/about/services"

(prettier/prettier)


[error] 77-77: Replace ········'/about/info' with ····"/about/info"

(prettier/prettier)


[error] 78-78: Replace ····'/developers' with "/developers"

(prettier/prettier)


[error] 79-79: Replace ····'/developers/architecture' with "/developers/architecture"

(prettier/prettier)


[error] 80-80: Replace ····'/developers/chains' with "/developers/chains"

(prettier/prettier)


[error] 81-81: Replace ····'/developers/protocol' with "/developers/protocol"

(prettier/prettier)


[error] 82-82: Replace ····'/developers/standards' with "/developers/standards"

(prettier/prettier)


[error] 83-83: Replace ····'/developers/tutorials' with "/developers/tutorials"

(prettier/prettier)


[error] 84-84: Replace ····'/developers/evm' with "/developers/evm"

(prettier/prettier)


[error] 85-85: Replace ····'/nodes' with "/nodes"

(prettier/prettier)


[error] 86-86: Replace ········'/nodes/start-here' with ····"/nodes/start-here"

(prettier/prettier)


[error] 87-87: Replace ········'/nodes/validate' with ····"/nodes/validate"

(prettier/prettier)


[error] 88-88: Replace ····'/reference' with "/reference"

(prettier/prettier)


[error] 89-89: Replace ····'/reference/network' with "/reference/network"

(prettier/prettier)


[error] 90-90: Replace ····'/users' with "/users"

(prettier/prettier)


[error] 91-91: Replace ····'/users/cli' with "/users/cli"

(prettier/prettier)


[error] 92-92: Replace ····'/users/cli/governance' with "/users/cli/governance"

(prettier/prettier)


[error] 93-93: Replace ····'/users/keplr' with "/users/keplr"

(prettier/prettier)


[error] 94-94: Replace ····'/users/leap' with "/users/leap"

(prettier/prettier)


[error] 95-95: Replace ····'/users/pingpub' with "/users/pingpub"

(prettier/prettier)


[error] 96-96: Replace ····'/users/zetahub' with "/users/zetahub"

(prettier/prettier)


[error] 97-97: Delete ··

(prettier/prettier)


[error] 98-98: Replace ··'zh-CN' with "zh-CN"

(prettier/prettier)


[error] 99-99: Replace ········'/' with ····"/"

(prettier/prettier)


[error] 100-100: Replace ····'/start' with "/start"

(prettier/prettier)


[error] 101-101: Replace ····'/about' with "/about"

(prettier/prettier)


[error] 102-102: Replace ····'/about/token-utility' with "/about/token-utility"

(prettier/prettier)


[error] 103-103: Replace ····'/about/services' with "/about/services"

(prettier/prettier)


[error] 104-104: Replace ········'/about/info' with ····"/about/info"

(prettier/prettier)


[error] 105-105: Replace ····'/developers' with "/developers"

(prettier/prettier)


[error] 106-106: Replace ····'/developers/architecture' with "/developers/architecture"

(prettier/prettier)


[error] 107-107: Replace ····'/developers/chains' with "/developers/chains"

(prettier/prettier)


[error] 108-108: Replace ········'/developers/protocol' with ····"/developers/protocol"

(prettier/prettier)


[error] 109-109: Replace ····'/developers/standards' with "/developers/standards"

(prettier/prettier)


[error] 110-110: Replace ····'/developers/tutorials' with "/developers/tutorials"

(prettier/prettier)


[error] 111-111: Replace ····'/developers/evm' with "/developers/evm"

(prettier/prettier)


[error] 112-112: Replace ····'/nodes' with "/nodes"

(prettier/prettier)


[error] 113-113: Replace ····'/nodes/start-here' with "/nodes/start-here"

(prettier/prettier)


[error] 114-114: Replace ········'/nodes/validate' with ····"/nodes/validate"

(prettier/prettier)


[error] 115-115: Replace ····'/reference' with "/reference"

(prettier/prettier)


[error] 116-116: Replace ····'/reference/network' with "/reference/network"

(prettier/prettier)


[error] 117-117: Replace ····'/users' with "/users"

(prettier/prettier)


[error] 118-118: Replace ····'/users/cli' with "/users/cli"

(prettier/prettier)


[error] 119-119: Replace ····'/users/cli/governance' with "/users/cli/governance"

(prettier/prettier)


[error] 120-120: Replace ····'/users/keplr' with "/users/keplr"

(prettier/prettier)


[error] 121-121: Replace ····'/users/leap' with "/users/leap"

(prettier/prettier)


[error] 122-122: Replace ····'/users/pingpub' with "/users/pingpub"

(prettier/prettier)


[error] 123-123: Replace ····'/users/zetahub' with "/users/zetahub"

(prettier/prettier)


[error] 124-124: Delete ··

(prettier/prettier)


[error] 158-158: Delete ··

(prettier/prettier)


[error] 159-159: Delete ··

(prettier/prettier)


[error] 161-161: Replace ··const·segments·=·route.split('/' with const·segments·=·route.split("/"

(prettier/prettier)


[error] 163-163: Delete ··

(prettier/prettier)


[error] 164-164: Replace ···· with ··

(prettier/prettier)


[error] 165-165: Replace ········ with ····

(prettier/prettier)


[error] 166-166: Delete ··

(prettier/prettier)


[error] 168-168: Delete ··

(prettier/prettier)


[error] 170-170: Delete ··

(prettier/prettier)


[error] 171-171: Delete ··

(prettier/prettier)


[error] 172-172: Delete ··

(prettier/prettier)


[error] 173-173: Replace ····if·(directMeta·&&·typeof·directMeta·===·'object' with ··if·(directMeta·&&·typeof·directMeta·===·"object"

(prettier/prettier)


[error] 174-174: Delete ····

(prettier/prettier)


[error] 175-175: Replace ········ with ····

(prettier/prettier)


[error] 176-176: Replace ············if·(typeof·pageMeta·===·'object'·&&·'title' with ······if·(typeof·pageMeta·===·"object"·&&·"title"

(prettier/prettier)


[error] 177-177: Replace ················ with ········

(prettier/prettier)


[error] 178-178: Replace ············ with ······

(prettier/prettier)


[error] 179-179: Replace ············if·(typeof·pageMeta·===·'string' with ······if·(typeof·pageMeta·===·"string"

(prettier/prettier)


[error] 180-180: Delete ········

(prettier/prettier)


[error] 181-181: Delete ······

(prettier/prettier)


[error] 182-182: Delete ····

(prettier/prettier)


[error] 183-183: Delete ··

(prettier/prettier)


[error] 185-185: Replace ···· with ··

(prettier/prettier)


[error] 186-186: Delete ··

(prettier/prettier)


[error] 187-187: Delete ··

(prettier/prettier)


[error] 188-188: Replace ···· with ··

(prettier/prettier)


[error] 189-189: Replace ····const·parentPath·=·'/'·+·segments.slice(0,·i).join('/' with const·parentPath·=·"/"·+·segments.slice(0,·i).join("/"

(prettier/prettier)


[error] 190-190: Delete ····

(prettier/prettier)


[error] 192-192: Replace ········if·(parentMeta·&&·typeof·parentMeta·===·'object' with ····if·(parentMeta·&&·typeof·parentMeta·===·"object"

(prettier/prettier)


[error] 193-193: Replace ············ with ······

(prettier/prettier)


[error] 194-194: Delete ······

(prettier/prettier)


[error] 195-195: Replace ················ with ········

(prettier/prettier)


[error] 196-196: Replace ················if·(typeof·pageMeta·===·'object'·&&·'title' with ········if·(typeof·pageMeta·===·"object"·&&·"title"

(prettier/prettier)


[error] 197-197: Replace ···················· with ··········

(prettier/prettier)


[error] 198-198: Delete ········

(prettier/prettier)


[error] 199-199: Delete ········

(prettier/prettier)


[error] 200-200: Replace ················if·(typeof·pageMeta·===·'string' with ········if·(typeof·pageMeta·===·"string"

(prettier/prettier)


[error] 201-201: Replace ···················· with ··········

(prettier/prettier)


[error] 202-202: Delete ········

(prettier/prettier)


[error] 203-203: Replace ············ with ······

(prettier/prettier)


[error] 204-204: Replace ········ with ····

(prettier/prettier)


[error] 205-205: Delete ··

(prettier/prettier)


[error] 207-207: Delete ··

(prettier/prettier)


[error] 208-208: Insert

(prettier/prettier)

src/lib/helpers/nextra.ts

[error] 10-10: Delete ··

(prettier/prettier)


[error] 16-16: Delete ··

(prettier/prettier)


[error] 28-28: Delete ··

(prettier/prettier)

src/lib/helpers/router.ts

[error] 15-15: Replace locale with (locale)

(prettier/prettier)


[error] 31-31: Delete ··

(prettier/prettier)


[error] 49-49: Delete ··

(prettier/prettier)


[error] 51-51: Delete ··

(prettier/prettier)


[error] 53-53: Insert

(prettier/prettier)

src/components/shared/components/Layout/components/NavigationAccordionLink.tsx

[error] 10-10: Insert ·

(prettier/prettier)


[error] 40-40: Delete ··

(prettier/prettier)


[error] 42-42: Insert ⏎···

(prettier/prettier)


[error] 43-43: Delete ··

(prettier/prettier)

🪛 Gitleaks (8.29.0)
src/pages/developers/tutorials/messaging.zh-CN.mdx

[high] 298-298: Detected a Generic API Key, potentially exposing access to various services and sensitive operations.

(generic-api-key)

🪛 LanguageTool
src/pages/about/token-utility/overview.zh-CN.mdx

[uncategorized] ~19-~19: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:简洁"地"跨
Context: ...etaChain 解锁了诸如比特币智能合约与可编程性、任意链可访问的应用、更简洁的跨链操作等场景。 ## 主要参与者 生态中主要有四类参与者: - Zeta...

(wb4)

src/pages/about/info/bug-bounty.zh-CN.mdx

[uncategorized] ~1-~1: 数量词修饰并列短语,可能产生歧义
Context: ...用于保障其 Web 应用、智能合约与区块链本身的安全。作为一条连接包括比特币在内多条网络、兼容 EVM 的一层公链,ZetaChain 致力于为跨链互操作应用打造坚固可靠...

(s5)

src/pages/developers/chains/ton.zh-CN.mdx

[uncategorized] ~5-~5: 您的意思是“"账"号”?
Context: ... TON Gateway 支持: - 将 TON 存入 ZetaChain 的帐号或全链应用 - 存入 TON 并调用全链应用 - 从 ZetaChain 提取...

(ZHANG7_ZHANG8)


[uncategorized] ~40-~40: 您不可用“是”来表达个形容词。大部分人都平常用“很”来代替“是”。您是不是想表达"很全"?
Context: ...data-encoding) 格式编码。 evm_recipient 必须是全链应用合约地址。 call_data 单元(cell)包含将传递给全链应用...

(SHI_ADHECTIVE_ERROR)

src/pages/developers/architecture/modules.zh-CN.mdx

[uncategorized] ~81-~81: 数词与名词之间一般应存在量词,可能缺少量词。
Context: ...shold` 时,投票单即视为“已完成”。 将投票单推进到“已完成”状态的最后一票会触发跨链交易执行并支付相关 Gas 成本。 投票单完成后提交的投票会被丢弃。...

(wa5)


[uncategorized] ~89-~89: 数词与名词之间一般应存在量词,可能缺少量词。
Context: ...teInbound` 对入站交易进行投票。 将投票单推进到“已完成”状态的最后一票会触发跨链交易执行。 若目标链是 ZetaChain 且 CCTX 不包含消息...

(wa5)


[uncategorized] ~193-~193: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:高度"地"连接
Context: ...MsgVoteGasPrice VoteGasPrice 提交指定区块高度的连接链 Gas 价格信息。每位验证者提交的价格会单独记录,并更新中位数索引。 ...

(wb4)


[uncategorized] ~210-~210: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:新"地"投票
Context: ...tbound` 为在连接链上已广播并确认的出站交易投票。若这是首个投票,会创建新的投票单;当投票达到阈值时,投票单完成并处理出站交易。 若观测成功,将铸造等量于...

(wb4)


[uncategorized] ~216-~216: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:新"地"回
Context: ...前的状态处理: - 若之前状态为 PendingOutbound,将创建新的回退交易。为支付回退交易费用,会用 CCTX 携带的代币在 ZetaChain ...

(wb4)


[uncategorized] ~258-~258: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:新"地"投票
Context: ...oteInbound` 为在连接链上观察到的入站交易投票。若为首个投票,会创建新的投票单;当投票达到阈值时,投票单完成并创建新的 CCTX。 若接收链为 Zet...

(wb4)


[uncategorized] ~690-~690: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:单"地"创建
Context: ...略参数。 投票单用于为入站与出站交易投票。observer 模块提供投票单的创建、读取、更新、删除(CRUD)能力,并提供辅助函数判断投票单是否完成。投票机...

(wb4)

src/pages/developers/chains/sui.zh-CN.mdx

[uncategorized] ~9-~9: 您的意思是“"账"号”?
Context: ...teway 支持: - 将原生 SUI 及其他代币存入 ZetaChain 的帐号或全链应用 - 存入代币的同时调用全链应用 ## 存入代币 若要将代币存入...

(ZHANG7_ZHANG8)


[uncategorized] ~27-~27: 您不可用“是”来表达个形容词。大部分人都平常用“很”来代替“是”。您是不是想表达"很全"?
Context: ...进制字符串),可对应 ZetaChain 上的外部账户或全链应用地址。即使接收方是全链应用合约,deposit 也不会触发合约调用;如需存入并调用应用,请使用 ...

(SHI_ADHECTIVE_ERROR)

src/pages/about/services/goldrush.zh-CN.mdx

[uncategorized] ~13-~13: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:一致"地"请求
Context: ... 数据索引等待时间长 GoldRush 提供 RESTful API,采用一致的请求/响应结构。仅需替换 URL 中的网络名称,就能查询 200+ 支持网络中任...

(wb4)


[uncategorized] ~152-~152: “关于”组成的介词短语必需位于句首,或请改用"对于"代替。
Context: ...``` 运行 node index.js,可获得与上述类似的结果。 更多关于 GoldRush API 与 ZetaChain 集成的教程,请参阅 [Zet...

(wb2)

src/pages/developers/evm/gateway.zh-CN.mdx

[uncategorized] ~55-~55: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:灵活"地"回
Context: ...chain) 的信息。 ## 回退处理 Gateway 在跨链操作中提供灵活的回退机制。如果目标链上的 Gateway 调用失败,可按配置在源链调用指定合约完...

(wb4)

src/pages/nodes/validate/validator.zh-CN.mdx

[uncategorized] ~109-~109: 数词与名词之间一般应存在量词,可能缺少量词。
Context: ...满足最低质押要求。要进入前 100 名验证人(按投票权排序),截至 2025 年一季度大约需要 700 枚 ZETA。 ```bash zetacored tx s...

(wa5)

src/pages/developers/chains/evm.zh-CN.mdx

[uncategorized] ~5-~5: 您的意思是“"账"号”?
Context: ...teway。 EVM Gateway 支持: - 向 ZetaChain 的帐号或全链应用存入 Gas 代币。 - 存入受支持的 ERC-20 代币(包括 Z...

(ZHANG7_ZHANG8)


[uncategorized] ~47-~47: 您不可用“是”来表达个形容词。大部分人都平常用“很”来代替“是”。您是不是想表达"很全"?
Context: ...将执行目标全链应用合约的 onCall 函数。 receiver 必须是全链应用合约地址。 ```solidity pragma solidity 0....

(SHI_ADHECTIVE_ERROR)

src/pages/developers/evm/cctx.zh-CN.mdx

[uncategorized] ~58-~58: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:新"地"跨
Context: ...TX 哈希继续查询,API 会返回 HTTP 404,说明此 CCTX 未触发新的跨链交易。 ## 入站并终止(Abort) 以下示例展示了从 Ethereu...

(wb4)

add-i18-test.md

[grammar] ~1-~1: Ensure spelling is correct
Context: ## work repoter I am try to reading the nextra/next.js &...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)


[grammar] ~26-~26: Ensure spelling is correct
Context: ...ence - [x] start - [x] users I add the nextra LocaleSwitch to switch languages, now i...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)

src/pages/about/services/envio.zh-CN.mdx

[uncategorized] ~9-~9: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:便捷"地"初始化
Context: ...pt 编写索引器。 Envio 让链上数据索引变得简单快捷,具备高速同步与便捷的初始化流程,同时内置详尽的日志与错误信息,方便排查调试。 <div class...

(wb4)

src/pages/developers/evm/index.zh-CN.mdx

[uncategorized] ~50-~50: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:新"地"跨
Context: ...X)的状态与生命周期,是追踪其进度与状态的核心账本。它在入站事件通过验证后创建新的跨链交易记录,并根据事件(如 PendingInbound、`Pending...

(wb4)

src/pages/about/info/faq.zh-CN.mdx

[uncategorized] ~30-~30: 您不可用“是”来表达个形容词。大部分人都平常用“很”来代替“是”。您是不是想表达"很全"?
Context: ...n 网络手续费、目标链 Gas 等)都会在这笔交易里一次性结算。 ### 什么是全链 dApp? 全链 dApp 是通过 ZetaChain 在不同区块链与扩容...

(SHI_ADHECTIVE_ERROR)

src/pages/developers/chains/solana.zh-CN.mdx

[uncategorized] ~3-~3: 您的意思是“"账"号”?
Context: ...ana Gateway。它支持: - 将 SOL 存入 ZetaChain 的帐号或全链应用 - 存入受支持的 SPL 代币 - 存入 SOL 并调用全链应用 ...

(ZHANG7_ZHANG8)


[uncategorized] ~44-~44: 您不可用“是”来表达个形容词。大部分人都平常用“很”来代替“是”。您是不是想表达"很全"?
Context: ...将执行目标全链应用合约的 onCall 函数。 receiver 必须是全链应用合约地址。 调用全链应用时,message 会传递给 `onCall...

(SHI_ADHECTIVE_ERROR)

src/pages/developers/chains/bitcoin.zh-CN.mdx

[uncategorized] ~68-~68: 数词与名词之间一般应存在量词,可能缺少量词。
Context: ...(载荷与回退地址)都小于 255 字节时可用 CompactShort;若任一字段可能超过此阈值,请使用 CompactLongABI 编码 ...

(wa5)

src/pages/about/info/glossary.zh-CN.mdx

[uncategorized] ~38-~38: 您不可用“是”来表达个形容词。大部分人都平常用“很”来代替“是”。您是不是想表达"很全"?
Context: ...nichain(全链) 好似所有区块链或层都联结成一条链。ZetaChain 是全链解决方案,具备链无关的互操作能力,可连接所有已接入的链。 ## Omnich...

(SHI_ADHECTIVE_ERROR)

src/pages/developers/tutorials/call.zh-CN.mdx

[uncategorized] ~469-~469: 数量词修饰并列短语,可能产生歧义
Context: ... 这一模式是构建真正全链 dApp 的基础:不再局限于单链,而是能够在同一处协调多链逻辑、资产与数据。 接下来你可以: - 接入更多连接链,扩展应用的覆盖面 - 拓展...

(s5)


[uncategorized] ~477-~477: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:真正"地"跨
Context: ...致,使你的应用从第一天起即具备跨链、可拓展的能力。现在就将这个最小示例打造成真正的跨链功能吧!

(wb4)

src/pages/developers/tutorials/messaging.zh-CN.mdx

[uncategorized] ~195-~195: 您的意思是“由"于"”吗?
Context: ...teway.depositAndCall(...)` 发送跨链消息时,具体的路由与执行逻辑由 Universal Router 合约在 ZetaChain...

(YU7_YU8)

src/pages/developers/protocol/sui.zh-CN.md

[uncategorized] ~18-~18: 数词与名词之间一般应存在量词,可能缺少量词。
Context: ...nt:跨链操作时发布的事件,便于链上追踪。 --- ### 常量 定义了若干错误码与限制: - EAlreadyWhitelistedENotWhite...

(wa5)


[uncategorized] ~32-~32: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:新"地"提
Context: ...ithdraw_and_whitelist_cap_impl:管理员重新签发新的提现与白名单 Cap,并更新活跃 ID。 - pause/unpaus...

(wb4)

🪛 markdownlint-cli2 (0.18.1)
src/pages/developers/protocol/evm.zh-CN.md

386-386: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)


389-389: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)


398-398: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: build

@@ -0,0 +1,40 @@
## work repoter
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Fix typo in title.

Line 1 contains a spelling error: "repoter" should be "reporter".

-## work repoter
+## Work Report

Committable suggestion skipped: line range outside the PR's diff.

🧰 Tools
🪛 LanguageTool

[grammar] ~1-~1: Ensure spelling is correct
Context: ## work repoter I am try to reading the nextra/next.js &...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)

🤖 Prompt for AI Agents
In add-i18-test.md around lines 1 to 1, the title contains a typo ("work
repoter"); update the text to "work reporter" by correcting the misspelled word
so the heading reads "## work reporter".

@@ -0,0 +1,40 @@
## work repoter

I am try to reading the nextra/next.js & i18n official docs to add a touch-down button on zetachain docs. Help users can click to switch en & zh, and other languages.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Improve awkward phrasing.

Line 3 contains ungrammatical text. Revise for clarity and correctness.

-I am try to reading the nextra/next.js & i18n official docs to add a touch-down button on zetachain docs. Help users can click to switch en & zh, and other languages.
+I am trying to read the Nextra/Next.js & i18n official documentation to add a language-switch button to the ZetaChain docs, enabling users to switch between English & Chinese, and potentially other languages.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
I am try to reading the nextra/next.js & i18n official docs to add a touch-down button on zetachain docs. Help users can click to switch en & zh, and other languages.
I am trying to read the Nextra/Next.js & i18n official documentation to add a language-switch button to the ZetaChain docs, enabling users to switch between English & Chinese, and potentially other languages.
🤖 Prompt for AI Agents
In add-i18-test.md around line 3, the sentence is ungrammatical and awkward ("I
am try to reading the nextra/next.js & i18n official docs to add a touch-down
button on zetachain docs. Help users can click to switch en & zh, and other
languages."); rewrite it for clarity and correct grammar — e.g. state that you
reviewed Nextra/Next.js and i18n docs and implemented a language toggle on the
ZetaChain docs so users can switch between English, Chinese, and other
languages; keep it concise and use proper verbs and punctuation.

- https://github.com/shuding/nextra/blob/main/packages/nextra-theme-docs/src/components/locale-switch.tsx
- https://nextra-v2-oe0zrpzjp-shud.vercel.app/docs/guide/i18n

denis dev a demo to help me understand how i18n work, I have been read.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Clarify awkward phrasing.

Line 9 would be clearer if revised.

-denis dev a demo to help me understand how i18n work, I have been read.
+Denis created a demo to help me understand how i18n works; I have reviewed it.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
denis dev a demo to help me understand how i18n work, I have been read.
Denis created a demo to help me understand how i18n works; I have reviewed it.
🤖 Prompt for AI Agents
In add-i18-test.md around line 9, the sentence "denis dev a demo to help me
understand how i18n work, I have been read." is awkward and unclear; rewrite it
to use correct grammar and clearer meaning — for example, use proper
capitalization, verbs and plurality ("Denis developed a demo to help me
understand how i18n works; I have read it.") or a similar concise, grammatically
correct sentence that matches the intended message.

- https://docs-v2-git-feat-i18n.zetachain.app/zh-CN/start/app

### developing
[2025.11.19 09:29] I have been modify `next.config.js` and `/src/theme.config.tsx` to add i18n languages switch feature. testing in cloud server always downtime, so I use my local pc try again.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Improve grammar in timestamp entry.

Line 15 contains grammatical issues. Consider revising for clarity.

-[2025.11.19 09:29] I have been modify `next.config.js` and `/src/theme.config.tsx` to add i18n languages switch feature. testing in cloud server always downtime, so I use my local pc try again.
+[2025.11.19 09:29] I modified `next.config.js` and `/src/theme.config.tsx` to add i18n language-switch features. Cloud server testing was consistently unavailable, so I tested locally on my machine instead.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
[2025.11.19 09:29] I have been modify `next.config.js` and `/src/theme.config.tsx` to add i18n languages switch feature. testing in cloud server always downtime, so I use my local pc try again.
[2025.11.19 09:29] I modified `next.config.js` and `/src/theme.config.tsx` to add i18n language-switch features. Cloud server testing was consistently unavailable, so I tested locally on my machine instead.
🤖 Prompt for AI Agents
In add-i18-test.md around line 15, the timestamp entry sentence is grammatically
incorrect; replace "[2025.11.19 09:29] I have been modify `next.config.js` and
`/src/theme.config.tsx` to add i18n languages switch feature. testing in cloud
server always downtime, so I use my local pc try again." with a corrected
version such as "[2025.11.19 09:29] I modified `next.config.js` and
`/src/theme.config.tsx` to add an i18n language switch feature. Testing on the
cloud server caused downtime, so I retried locally on my PC." Ensure
capitalization, verb tense, and article use are fixed.

- [x] start
- [x] users

I add the nextra LocaleSwitch to switch languages, now is support en & zh.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Improve sentence structure and capitalization.

Line 26 would benefit from clearer phrasing and proper capitalization.

-I add the nextra LocaleSwitch to switch languages, now is support en & zh.
+I added the Nextra LocaleSwitch component to enable language switching; English (en-US) and Chinese (zh-CN) are now supported.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
I add the nextra LocaleSwitch to switch languages, now is support en & zh.
I added the Nextra LocaleSwitch component to enable language switching; English (en-US) and Chinese (zh-CN) are now supported.
🧰 Tools
🪛 LanguageTool

[grammar] ~26-~26: Ensure spelling is correct
Context: ...ence - [x] start - [x] users I add the nextra LocaleSwitch to switch languages, now i...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)

🤖 Prompt for AI Agents
In add-i18-test.md around line 26, the sentence is awkward and incorrectly
capitalized; replace it with a clearer, properly capitalized sentence such as:
"I added the Nextra LocaleSwitch to enable language switching; it now supports
English and Chinese." Ensure "Nextra LocaleSwitch" is capitalized and use
"English" and "Chinese" rather than "en" & "zh".

- 用户无需离开主链即可管理委托的应用

质押是保障网络安全并获取奖励的基础能力。接下来可进一步探索预编译提供的高级函数,例如再委托、查询解锁条目、领取奖励等。***

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Remove trailing asterisks.

Similar to other documentation files, this line ends with *** which should be removed for consistency.

Apply this diff:

-质押是保障网络安全并获取奖励的基础能力。接下来可进一步探索预编译提供的高级函数,例如再委托、查询解锁条目、领取奖励等。***
+质押是保障网络安全并获取奖励的基础能力。接下来可进一步探索预编译提供的高级函数,例如再委托、查询解锁条目、领取奖励等。

Committable suggestion skipped: line range outside the PR's diff.

🤖 Prompt for AI Agents
In src/pages/developers/tutorials/staking.zh-CN.mdx around line 146, remove the
trailing asterisks at the end of the line (the `***`) so the line matches other
docs; edit the line to delete those characters and save the file, ensuring no
extra whitespace remains after removal.

2. 同时调用指定 Sui 合约并传入参数

此流程展示了如何将资产提现与合约调用结合,实现 ZetaChain 与 Sui 之间复杂的跨链 DeFi 交互。***

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Remove trailing asterisks.

The trailing *** should be removed for consistency.

Apply this diff:

-此流程展示了如何将资产提现与合约调用结合,实现 ZetaChain 与 Sui 之间复杂的跨链 DeFi 交互。***
+此流程展示了如何将资产提现与合约调用结合,实现 ZetaChain 与 Sui 之间复杂的跨链 DeFi 交互。

Committable suggestion skipped: line range outside the PR's diff.

🤖 Prompt for AI Agents
In src/pages/developers/tutorials/sui-withdraw-and-call.zh-CN.mdx around line
212, remove the trailing asterisks ("***") present at the end of the line so the
text matches the project's formatting consistency; edit that line to delete the
three asterisks and ensure surrounding punctuation/spacing remains correct.

```

至此,你已完成从 Sui 合约到 ZetaChain 的跨链调用,并掌握了定制载荷与事件处理的流程。***

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Remove trailing asterisks.

The trailing *** should be removed for formatting consistency.

Apply this diff:

-至此,你已完成从 Sui 合约到 ZetaChain 的跨链调用,并掌握了定制载荷与事件处理的流程。***
+至此,你已完成从 Sui 合约到 ZetaChain 的跨链调用,并掌握了定制载荷与事件处理的流程。

Committable suggestion skipped: line range outside the PR's diff.

🤖 Prompt for AI Agents
In src/pages/developers/tutorials/sui.zh-CN.mdx around line 276 there are
trailing asterisks ("***") at the end of the line; remove those trailing
asterisks so the line ends with the intended text only and update surrounding
whitespace if needed to preserve formatting/line breaks.

Comment on lines +210 to +217
生产环境建议监控节点资源(CPU、内存、磁盘及 IO),以便及时发现性能下降。

`zetacored` 会生成日志,可用于定位错误并排查问题。若按上述步骤配置为 Systemd 服务,可使用 `journalctl -eu zetacored` 查看日志。

### 指标

Prometheus 默认在 **26660** 端口提供指标,可由 Prometheus Collector 拉取。更多信息请参考 [Cosmos SDK Telemetry 文档](https://docs.cosmos.network/v0.50/learn/advanced/telemetry)。***

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Drop trailing *** in the “指标” section

The last line (…Telemetry 文档](https://docs.cosmos.network/v0.50/learn/advanced/telemetry)。***) ends with *** that does not correspond to any opening emphasis marker.

Please remove the trailing *** (or convert it into proper emphasis around actual text) so the MDX renders cleanly and avoids markdownlint complaints.

🤖 Prompt for AI Agents
src/pages/nodes/start-here/setup.zh-CN.mdx around lines 210 to 217: the "指标"
section ends with an extraneous trailing '***' after the telemetry link which
breaks MDX/Markdown rendering; remove the trailing '***' (or convert it into
valid emphasis if you intended to emphasize surrounding text) so the line ends
cleanly with the punctuation after the link.

Comment on lines +1 to +10
# Model Context Protocol (MCP)

Model Context Protocol(MCP)是一项开放标准,可让 AI 助手通过本地或远程服务器安全地连接外部工具与数据源。

ZetaChain MCP 服务器可扩展你的 AI 编码环境(如 Cursor 或 Claude Code),让其直接访问链上数据并执行 CLI 动作。你可以在编辑器或聊天界面内查询余额、估算跨链费用、执行合约调用、追踪跨链交易等,无需跳出当前工作区。

## 安装 ZetaChain CLI

全局安装最新版本的 ZetaChain CLI:

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Add YAML frontmatter with title metadata.

Unlike other .mdx files in this PR (e.g., faucet.zh-CN.mdx, particle.zh-CN.mdx), this file lacks the YAML frontmatter that provides title and metadata to the Nextra documentation framework. This may cause navigation, breadcrumbs, and sidebar rendering to fail.

Add YAML frontmatter before the first heading:

+---
+title: "Model Context Protocol (MCP)"
+---
+
 # Model Context Protocol (MCP)
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
# Model Context Protocol (MCP)
Model Context Protocol(MCP)是一项开放标准,可让 AI 助手通过本地或远程服务器安全地连接外部工具与数据源。
ZetaChain MCP 服务器可扩展你的 AI 编码环境(如 Cursor 或 Claude Code),让其直接访问链上数据并执行 CLI 动作。你可以在编辑器或聊天界面内查询余额、估算跨链费用、执行合约调用、追踪跨链交易等,无需跳出当前工作区。
## 安装 ZetaChain CLI
全局安装最新版本的 ZetaChain CLI:
---
title: "Model Context Protocol (MCP)"
---
# Model Context Protocol (MCP)
Model Context Protocol(MCP)是一项开放标准,可让 AI 助手通过本地或远程服务器安全地连接外部工具与数据源。
ZetaChain MCP 服务器可扩展你的 AI 编码环境(如 Cursor 或 Claude Code),让其直接访问链上数据并执行 CLI 动作。你可以在编辑器或聊天界面内查询余额、估算跨链费用、执行合约调用、追踪跨链交易等,无需跳出当前工作区。
## 安装 ZetaChain CLI
全局安装最新版本的 ZetaChain CLI:
🤖 Prompt for AI Agents
In src/pages/reference/mcp.zh-CN.mdx around lines 1 to 10, the file is missing
the YAML frontmatter (title/metadata) required by the Nextra docs framework; add
a YAML frontmatter block (--- with at least a title field, e.g. title: "Model
Context Protocol (MCP)" and any other needed metadata like slug or nav order)
placed before the first heading so navigation, breadcrumbs and sidebar render
correctly.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants