[BUG] Duplicate routes with embedded sidebar
还没有人认领这个 Issue。
评估
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 新手友好度
- 35/100
- Issue 类型
- 缺陷
- 描述清晰度
- 基本清楚
- 活跃度
- 停滞
- 技术栈
- javascript, typescript
调研方向
使用 Docusaurus 3.x,通过 docusaurus.config.js、sidebar-nil.js 和 nil/reference/test.md 的结构复现路由警告。追踪嵌入式侧边栏和生成的参考路由是如何创建的;完成标准是网站在此配置下渲染时不存在重复路由。
由索引模型根据 Issue 内容生成。
描述
Issue
The normal flow of configuring and using the plugin results in receiving the following error when using Docusaurus 3.x.
[WARNING] Duplicate routes found!
- Attempting to create page at \nil\reference\json-rpc-api, but a page already exists at this route.
This could lead to non-deterministic routing behavior.
As a result of this error, the entire site fails to render.
Steps to reproduce
docusaurus.config.js:
// @ts-check
// `@type` JSDoc annotations allow editor autocompletion and type checking
// (when paired with `@ts-check`).
// There are various equivalent ways to declare your Docusaurus config.
// See: https://docusaurus.io/docs/api/docusaurus-config
import { themes as prismThemes } from 'prism-react-renderer';
import remarkMath from 'remark-math';
import rehypeKatex from 'rehype-katex';
/** @type {import('@docusaurus/types').Config} */
const config = {
title: '=nil; Foundation Documentation Portal',
tagline: '',
favicon: 'img/nil-logo.png',
// Set the production url of your site here
url: 'https://docs.nil.foundation/',
// Set the /<baseUrl>/ pathname under which your site is served
// For GitHub pages deployment, it is often '/<projectName>/'
baseUrl: '/',
// GitHub pages deployment config.
// If you aren't using GitHub pages, you don't need these.
organizationName: '=nil; Foundation', // Usually your GitHub org/user name.
projectName: 'docs.nil.foundation', // Usually your repo name.
onBrokenLinks: 'throw',
onBrokenMarkdownLinks: 'warn',
// Even if you don't use internationalization, you can use this field to set
// useful metadata like html lang. For example, if your site is Chinese, you
// may want to replace "en" with "zh-Hans".
i18n: {
defaultLocale: 'en',
locales: ['en'],
},
presets: [
[
"@metamask/docusaurus-openrpc/dist/preset",
/** @type {import('@metamask/docusaurus-openrpc/dist/preset').Options} */
({
docs: {
path: 'nil',
routeBasePath: 'nil',
sidebarPath: require.resolve("./sidebar-nil.js"),
remarkPlugins: [remarkMath],
rehypePlugins: [rehypeKatex],
openrpc: {
openrpcDocument: "https://metamask.github.io/api-specs/latest/openrpc.json",
path: "reference",
sidebarLabel: "JSON-RPC API",
},
},
theme: {
customCss: require.resolve("./src/css/custom.css"),
},
}),
],
],
markdown: {
mermaid: true,
},
themes: ['@docusaurus/theme-mermaid'],
plugins: [
[
'@docusaurus/plugin-content-docs',
{
id: 'zkllvm',
path: 'zkllvm',
routeBasePath: 'zkllvm',
sidebarPath: './sidebar-zkllvm.js'
}
],
[
'@docusaurus/plugin-content-docs',
{
id: 'proof-market',
path: 'proof-market',
routeBasePath: 'proof-market',
sidebarPath: './sidebar-proof-market.js'
}
],
[
'@docusaurus/plugin-content-docs',
{
id: 'crypto3',
path: 'crypto3',
routeBasePath: 'crypto3',
sidebarPath: './sidebar-crypto-3.js'
}
],
],
stylesheets: [
{
href: 'https://cdn.jsdelivr.net/npm/[email protected]/dist/katex.min.css',
type: 'text/css',
integrity:
'sha384-odtC+0UGzzFL/6PNoE8rX/SPcQDXBJ+uRepguP4QkPCm2LBxH3FA3y+fKSiJ+AmM',
crossorigin: 'anonymous',
},
],
themeConfig:
/** @type {import('@docusaurus/preset-classic').ThemeConfig} */
(
{
algolia: {
appId: 'KDQGY81FVN',
apiKey: '8ad8d801f2775ff3cf8c4433dfe290e4',
indexName: 'nil',
contextualSearch: true,
searchParameters: {},
searchPagePath: 'search',
insights: false,
},
colorMode: {
defaultMode: 'dark',
disableSwitch: true,
},
navbar: {
title: '=nil; Foundation',
logo: {
src: 'img/nil-logo.png',
},
items: [
{
position: 'left',
label: '=nil;',
to: '/nil/intro'
},
{
position: 'left',
label: 'zkLLVM',
to: '/zkllvm/overview/what-is-zkllvm'
},
{
position: 'left',
label: 'Proof Market',
to: '/proof-market/intro'
},
{
position: 'left',
label: 'Crypto3',
to: '/crypto3/intro'
},
],
},
footer: {
links: [
{
title: 'Community',
items: [
{
label: 'Discord',
to: 'https://discord.gg/KmTAEjbmM3'
},
{
label: 'GitHub',
to: 'https://github.com/nilfoundation'
},
{
label: 'Telegram',
to: 'https://t.me/nilfoundation'
}
],
}
],
style: 'dark',
copyright: `Copyright © ${new Date().getFullYear()} =nil; Foundation`,
},
prism: {
defaultLanguage: 'clike',
theme: prismThemes.vsDark,
darkTheme: prismThemes.vsDark,
},
}),
};
export default config;
sidebar-nil.js:
export default {
nil: [
{
type: 'category',
label: 'Introduction',
collapsed: false,
collapsible: true,
items: [
{
type: 'doc',
label: 'Overview',
id: 'intro',
},
{
type: 'doc',
label: 'Thesis',
id: 'thesis'
},
{
type: 'doc',
label: 'Principles',
id: 'principles'
}
]
},
{
type: 'category',
label: 'Core concepts',
collapsed: false,
collapsible: true,
items: [
{
type: 'doc',
label: 'Accounts',
id: 'core-concepts/accounts',
},
{
type: 'doc',
label: 'Transaction lifecycle',
id: 'core-concepts/transaction-lifecycle',
},
{
type: 'doc',
label: 'Shards and parallelized execution',
id: 'core-concepts/shards-parallel-execution',
},
{
type: 'doc',
label: 'Contract co-location',
id: 'core-concepts/contract-co-location',
},
]
},
{
type: 'category',
label: 'Specification',
collapsed: true,
collapsible: true,
items: [
{
type: 'doc',
label: 'Finality',
id: 'specification/finality',
},
{
type: 'doc',
label: 'Data availability',
id: 'specification/data-availability',
},
{
type: 'doc',
label: 'Sequencing',
id: 'specification/sequencing',
},
]
},
{
type: "category",
label: "Reference",
link: { type: "generated-index" },
items: [{ type: "autogenerated", dirName: "reference" }],
},
]
}
File structure:
root
-- nil
-- reference
-- test.md
Expected behaviour
The flow for configuring and using the plugin does not cause route duplication.
- 主要语言
- TypeScript
- 星标
- 13
- 派生
- 7
- PR 合并指标
- 30 天内没有已合并 PR
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 有 Pull Request 模板
- 没有贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
MetaMask/docusaurus-openrpc 的其他 Issue
-
team-wallet-api-platform
难度 3/5 1-2 天 新手友好度 42/100
MetaMask/docusaurus-openrpc#71 · 1 条评论 ·
-
team-wallet-api-platform
难度 3/5 1-2 天 新手友好度 42/100
-
难度 3/5 1-2 天 新手友好度 35/100
-
难度 4/5 3-5 天 新手友好度 35/100
-
team-wallet-api-platform
难度 5/5 一周以上 新手友好度 25/100
MetaMask/docusaurus-openrpc#45 · 1 条评论 ·
查看 MetaMask/docusaurus-openrpc 的全部 Issue
相似的 Issue
-
area:plugins area:security area:skills bug has repro
难度 2/5 1-3 小时 新手友好度 76/100
anthropics/claude-code#105911 ·
维护者通常 1 天内回复
-
openspec-apply-change skill: when blocked, may select a ready artifact unrelated to missingArtifacts未关闭
难度 2/5 1-3 小时 新手友好度 72/100
Fission-AI/OpenSpec#2165 ·
维护者通常 1 天内回复
-
🐞 bug 🧐 unconfirmed
难度 2/5 1-3 小时 新手友好度 66/100
Tencent/tdesign-vue-next#7032 · 1 条评论 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 78/100
gnosis/gnosis_vpn#661 ·
维护者通常 1 天内回复
-
content-freshness: staleOwnedContent doc comments still say 'complete receipt' (follow-up to #7912)未关闭triage:bug-verified
难度 1/5 1 小时以内 新手友好度 92/100
维护者通常 1 天内回复