diff --git a/website/src/theme/NotFound/Content/index.js b/website/src/theme/NotFound/Content/index.js
new file mode 100644
index 000000000..6d080f915
--- /dev/null
+++ b/website/src/theme/NotFound/Content/index.js
@@ -0,0 +1,27 @@
+import React from "react";
+import { useLocation } from "@docusaurus/router";
+import useDocusaurusContext from "@docusaurus/useDocusaurusContext";
+import styles from "./styles.module.css";
+
+// according to docusaurus, unwrap NotFoundContent is danger
+// we can undo this after there is no broken link from v1
+export default function ContentWrapper(props) {
+ const location = useLocation();
+ const { siteConfig } = useDocusaurusContext();
+ const oldDocUrl = siteConfig.customFields.oldDocSiteUrl;
+ return (
+
+
Page Not Found
+
Are you trying to visit broken links from old doc website?
+
+
+
+ );
+}
diff --git a/website/src/theme/NotFound/Content/styles.module.css b/website/src/theme/NotFound/Content/styles.module.css
new file mode 100644
index 000000000..7598d083c
--- /dev/null
+++ b/website/src/theme/NotFound/Content/styles.module.css
@@ -0,0 +1,9 @@
+@import '@css/customVariables.css';
+
+.notFoundContainer {
+ width: auto;
+ margin: 0 auto;
+ padding: 1.5em 1em;
+ color: var(--text-secondary) !important;
+ text-align: center;
+}
diff --git a/website/static/js/extra.js b/website/static/js/extra.js
index ce6677e30..44820ef4b 100644
--- a/website/static/js/extra.js
+++ b/website/static/js/extra.js
@@ -2,7 +2,7 @@ window.addEventListener("DOMContentLoaded", function () {
const oldSiteLink = document.createElement("div");
oldSiteLink.innerHTML = `
-
Note we've completely rebuilt Nervos Doc site! For the old doc site, please see docs-old.
+
Note we've completely rebuilt Nervos Doc site! For the old doc site, please see docs-old.
`;
document.querySelector("body").prepend(oldSiteLink);