diff --git a/app/components/SiteMenu.tsx b/app/components/SiteMenu.tsx
index 138b523..1e29fd0 100644
--- a/app/components/SiteMenu.tsx
+++ b/app/components/SiteMenu.tsx
@@ -85,6 +85,7 @@ export default memo(function SiteMenu({
{
titleKey: "other",
items: [
+ { labelKey: "digitalNomadGuide", href: "https://digital.hackrobot.cn/", icon: "📖" },
{ labelKey: "remoteJobs", href: "#", icon: "💼" },
{ labelKey: "coworking", href: "#", icon: "🏢" },
],
@@ -134,17 +135,42 @@ export default memo(function SiteMenu({
{t(section.titleKey)}
- {section.items.map((item) => (
+ {section.items.map((item) => {
+ const isExternal = item.href.startsWith("http");
+ const linkClass = `flex items-center gap-2 px-3 py-2 rounded-lg text-sm transition-colors ${
+ item.href !== "#" && !isExternal && (pathname === item.href || (item.href !== "/" && pathname.startsWith(item.href)))
+ ? "bg-[#ff4d4f]/10 text-[#ff4d4f]"
+ : "text-gray-700 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-800"
+ }`;
+ return (
-
-
+ {isExternal ? (
+
+ {item.icon}
+ {t(item.labelKey)}
+ {item.new && (
+
+ NEW
+
+ )}
+ {item.ad && (
+
+ Ad
+
+ )}
+
+ ) : (
+
{item.icon}
{t(item.labelKey)}
{item.new && (
@@ -158,8 +184,10 @@ export default memo(function SiteMenu({
)}
+ )}
- ))}
+ );
+ })}
))}
diff --git a/config/footer.config.ts b/config/footer.config.ts
index e940f6d..ba99780 100644
--- a/config/footer.config.ts
+++ b/config/footer.config.ts
@@ -17,7 +17,7 @@ export const FOOTER_SECTIONS: FooterSection[] = [
titleKey: "about",
links: [
{ href: "/about", labelKey: "aboutUs" },
- { href: "/blog", labelKey: "blog" },
+ { href: "https://digital.hackrobot.cn/", labelKey: "digitalNomadGuide" },
{ href: "/careers", labelKey: "careers" },
{ href: "/press", labelKey: "press" },
],
diff --git a/messages/en.json b/messages/en.json
index c310140..0d2e9af 100644
--- a/messages/en.json
+++ b/messages/en.json
@@ -47,7 +47,8 @@
"terms": "TOS & Privacy",
"changelog": "Changelog",
"remoteJobs": "Remote Jobs",
- "coworking": "Coworking"
+ "coworking": "Coworking",
+ "digitalNomadGuide": "Digital Nomad Guide"
},
"nav": {
"cities": "Cities",
@@ -193,7 +194,7 @@
"report": "Nomad Report",
"faq": "FAQ",
"aboutUs": "About Us",
- "blog": "Blog",
+ "digitalNomadGuide": "Digital Nomad Guide",
"careers": "Careers",
"press": "Press",
"support": "Support",
diff --git a/messages/zh.json b/messages/zh.json
index d34913a..7181c0b 100644
--- a/messages/zh.json
+++ b/messages/zh.json
@@ -47,7 +47,8 @@
"terms": "条款与隐私",
"changelog": "更新日志",
"remoteJobs": "远程工作",
- "coworking": "共享办公"
+ "coworking": "共享办公",
+ "digitalNomadGuide": "数字游民指南"
},
"nav": {
"cities": "城市",
@@ -193,7 +194,7 @@
"report": "Nomad 年报",
"faq": "常见问题",
"aboutUs": "关于我们",
- "blog": "博客",
+ "digitalNomadGuide": "数字游民指南",
"careers": "加入我们",
"press": "媒体报道",
"support": "支持",
diff --git a/next.config.ts b/next.config.ts
index e9ffa30..aecebbc 100644
--- a/next.config.ts
+++ b/next.config.ts
@@ -1,7 +1,20 @@
import type { NextConfig } from "next";
const nextConfig: NextConfig = {
- /* config options here */
+ allowedDevOrigins: [
+ "localhost",
+ "localhost:3000",
+ "127.0.0.1",
+ "127.0.0.1:3000",
+ "172.27.128.1",
+ "172.27.128.1:3000",
+ "192.168.41.222",
+ "192.168.41.222:3000",
+ "http://localhost:3000",
+ "http://127.0.0.1:3000",
+ "http://172.27.128.1:3000",
+ "http://192.168.41.222:3000",
+ ],
};
export default nextConfig;
diff --git a/package.json b/package.json
index db1ee41..14f069d 100644
--- a/package.json
+++ b/package.json
@@ -3,7 +3,7 @@
"version": "0.1.0",
"private": true,
"scripts": {
- "dev": "next dev",
+ "dev": "next dev -H 0.0.0.0",
"build": "next build",
"start": "next start",
"lint": "eslint"