mirror of
https://github.com/vector-im/element-web.git
synced 2026-05-04 11:51:36 +02:00
166 lines
6.4 KiB
TypeScript
166 lines
6.4 KiB
TypeScript
import { withMermaid } from "vitepress-plugin-mermaid";
|
|
|
|
function customPathResolver(href: string, currentPath: string) {
|
|
const [link, fragment] = href.split("#", 2);
|
|
if (currentPath === "index.md") {
|
|
if (link.startsWith("./docs/")) {
|
|
return `../docs/${href.slice(7)}`;
|
|
} else if (link.startsWith("docs/")) {
|
|
return `../${href}`;
|
|
}
|
|
}
|
|
|
|
switch (link) {
|
|
case "../packages/shared-components/README.md":
|
|
return `../docs/readme-shared-components.md#${fragment}`;
|
|
case "../apps/web/README.md":
|
|
return `../docs/readme-element-web.md#${fragment}`;
|
|
case "../README.md":
|
|
return `../docs/index.md#${fragment}`;
|
|
|
|
default:
|
|
return `https://github.com/element-hq/element-web/blob/develop/${href.split("/").pop()}`;
|
|
}
|
|
}
|
|
|
|
// https://vitepress.dev/reference/site-config
|
|
export default withMermaid({
|
|
title: "Element Web & Desktop docs",
|
|
description: "Documentation",
|
|
srcExclude: ["changelogs"],
|
|
markdown: {
|
|
config: (md) => {
|
|
// Custom rule to fix links
|
|
const defaultRender =
|
|
md.renderer.rules.link_open ||
|
|
function (tokens, idx, options, env, self) {
|
|
return self.renderToken(tokens, idx, options);
|
|
};
|
|
|
|
md.renderer.rules.link_open = (tokens, idx, options, env, self) => {
|
|
const token = tokens[idx];
|
|
const hrefIndex = token.attrIndex("href");
|
|
|
|
if (hrefIndex >= 0) {
|
|
const href = token.attrs![hrefIndex][1];
|
|
|
|
if (!href.includes("://") && href.split("#", 2)[0].endsWith(".md")) {
|
|
token.attrs![hrefIndex][1] = customPathResolver(href, env.relativePath);
|
|
}
|
|
}
|
|
return defaultRender(tokens, idx, options, env, self);
|
|
};
|
|
},
|
|
},
|
|
themeConfig: {
|
|
nav: [
|
|
{ text: "Home", link: "/" },
|
|
{ text: "Website", link: "https://element.io/en" },
|
|
],
|
|
|
|
search: {
|
|
provider: "local",
|
|
},
|
|
|
|
sidebar: [
|
|
{
|
|
text: "README",
|
|
items: [
|
|
{ text: "Introduction", link: "/index" },
|
|
{ text: "Element Web", link: "/readme-element-web" },
|
|
{ text: "Element Desktop", link: "/readme-element-desktop" },
|
|
{ text: "Shared Components", link: "/readme-shared-components" },
|
|
],
|
|
},
|
|
{
|
|
text: "Usage",
|
|
items: [
|
|
{ text: "Betas", link: "/betas" },
|
|
{ text: "Labs", link: "/labs" },
|
|
],
|
|
},
|
|
{
|
|
text: "Setup",
|
|
items: [
|
|
{ text: "Install", link: "/install" },
|
|
{ text: "Config", link: "/config" },
|
|
{ text: "Custom home page", link: "/custom-home" },
|
|
{ text: "Kubernetes", link: "/kubernetes" },
|
|
{ text: "Jitsi", link: "/jitsi" },
|
|
{ text: "Encryption", link: "/e2ee" },
|
|
],
|
|
},
|
|
{
|
|
text: "Build",
|
|
items: [
|
|
{
|
|
text: "Web",
|
|
items: [
|
|
{ text: "Customisations", link: "/customisations" },
|
|
{ text: "Deprecated Modules", link: "/deprecated-modules" },
|
|
],
|
|
},
|
|
{
|
|
text: "Desktop",
|
|
items: [
|
|
{ text: "Native Node modules", link: "/native-node-modules" },
|
|
{ text: "Windows requirements", link: "/windows-requirements" },
|
|
{ text: "Debugging", link: "/debugging" },
|
|
{ text: "Using gdb", link: "/gdb" },
|
|
],
|
|
},
|
|
],
|
|
},
|
|
{
|
|
text: "Distribution",
|
|
items: [
|
|
{ text: "Updates", link: "/updates" },
|
|
{ text: "Packaging", link: "/packaging" },
|
|
],
|
|
},
|
|
{
|
|
text: "Contribution",
|
|
items: [
|
|
{ text: "Choosing an issue", link: "/choosing-an-issue" },
|
|
{ text: "Translation", link: "/translating" },
|
|
{ text: "Netlify builds", link: "/pr-previews" },
|
|
{ text: "Code review", link: "/review" },
|
|
],
|
|
},
|
|
{
|
|
text: "Development",
|
|
items: [
|
|
{ text: "App load order", link: "/app-load.md" },
|
|
{ text: "Translation", link: "/translating-dev.md" },
|
|
{ text: "Theming", link: "/theming.md" },
|
|
{ text: "Playwright end to end tests", link: "/playwright.md" },
|
|
{ text: "Memory profiling", link: "/memory-profiles-and-leaks.md" },
|
|
{ text: "Jitsi", link: "/jitsi-dev.md" },
|
|
{ text: "Feature flags", link: "/feature-flags.md" },
|
|
{ text: "OIDC and delegated authentication", link: "/oidc.md" },
|
|
{ text: "Release Process", link: "/release.md" },
|
|
{ text: "MVVM", link: "/MVVM.md" },
|
|
{ text: "Settings", link: "/settings.md" },
|
|
],
|
|
},
|
|
{
|
|
text: "Deep dive",
|
|
items: [
|
|
{ text: "Skinning", link: "/skinning" },
|
|
{ text: "Cider editor", link: "/ciderEditor" },
|
|
{ text: "Iconography", link: "/icons" },
|
|
{ text: "Local echo", link: "/local-echo-dev" },
|
|
{ text: "Media", link: "/media-handling" },
|
|
{ text: "Room List Store", link: "/room-list-store" },
|
|
{ text: "Scrolling", link: "/scrolling" },
|
|
{ text: "Usercontent", link: "/usercontent" },
|
|
{ text: "Widget layouts", link: "/widget-layouts" },
|
|
{ text: "Automations", link: "/generated/automations" },
|
|
],
|
|
},
|
|
],
|
|
|
|
socialLinks: [{ icon: "github", link: "https://github.com/element-hq/element-web" }],
|
|
},
|
|
});
|