Документация для моего веб-сайта создана с помощью Docusaurus , и в настоящее время я использую последнюю версию 2.0.0-alpha.61.
Скомпилированная документация сохраняется в /docs
каталог моего веб-сайта, в то время как большая часть остальной части моего сайта построена с помощью Gatsby JS. Итак ... если вы нажмете /docs/something
, вы попадете на страницу, созданную Docusaurus, но если вы нажмете /contact
или /about-us
или что-то еще, вы попадете на страницу, созданную с использованием Gatsby JS.
Мой docusaurus.config.js
содержит:
baseUrl: "/docs/",
...
presets: [
[
"@docusaurus/preset-classic",
{
docs: {
sidebarPath: require.resolve("./sidebars/index.js"),
showLastUpdateTime: true,
routeBasePath: "",
},
...
, так что Docusaurus знает, что он живет в /docs.
Вот моя проблема: в нижнем колонтитуле страниц, созданных в Docusaurus, я хотел бы ссылка на / contact или / about-us, et c., на главной странице.
Нижний колонтитул docusaurus.config.js
позволяет вам иметь такие ссылки:
{
label: "Github",
href: "https://github.com/my-org/my-repo",
},
или так:
{
label: "Contributing",
to: "/docs/contributing",
}
Однако, если вы сделаете что-то вроде этого:
{
label: "About Us",
href: "/about-us",
},
, вы получите сообщение об ошибке, указывающее, что /about-us
не является допустимым URL-адресом. В сообщении об ошибке указано ValidationError: "footer.links[0].items[0].href" must be a valid uri
. Предположительно это потому, что /about-us
не добавляется к https://
. Я бы хотел избежать определения абсолютных URL-адресов, так как я хочу иметь возможность исключить среды qa, staging и prod для веб-сайта и документации.
Если вместо этого вы сделаете что-то вроде этого:
{
label: "About Us",
to: "/about-us",
},
Затем он компилируется, но маршрутизатор React Docusaurus перехватывает ссылку при нажатии, направляет вас на https://my-site.com/about-us, но показывает страницу Docusaurus 404 «не найден», поскольку маршрутизатор реакции Docusaurus не является знает о странице / о нас. Если вы обновите sh страницу, вы увидите соответствующую страницу «о нас» от Gatsby JS, поскольку маршрутизатор React Docusaurus не будет мешать, если вы попадете на страницу напрямую.
Что бы быть лучшим способом ссылки на мои страницы, созданные Gatsby JS, из нижнего колонтитула Docusaurus? Я " поменял " нижний колонтитул, и прямо сейчас у меня есть хак, где у моих ссылок docusaurus.config.js
есть дополнительное свойство:
{
label: "About Us",
to: "/about-us",
localLink: true,
},
и у меня есть предложение if
в моем swizzled компонент, который создает тег <a>
, если localLink
истинно, и создает обычный компонент ссылки React в противном случае, но я не большой поклонник swizzling компонентов с альфа-версией Docusaurus.
Есть ли лучший способ сделать ссылку на мою главную страницу из нижнего колонтитула?
Большое спасибо!