Compare commits

...

1 Commits

Author SHA1 Message Date
Jiayuan Zhang
17ec340151 feat: add official X/Twitter account (@multica_hq) across the platform
- README.md & README.zh-CN.md: add X/Twitter link to nav
- Landing header: add X icon button alongside GitHub
- Landing footer: add X/Twitter link in Company section (en + zh)
- Layout metadata: set twitter:site and twitter:creator to @multica_hq

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 17:45:18 +08:00
7 changed files with 31 additions and 5 deletions

View File

@@ -21,7 +21,7 @@ Assign tasks, track progress, compound skills — manage your human + agent work
[![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
[![GitHub stars](https://img.shields.io/github/stars/multica-ai/multica?style=flat)](https://github.com/multica-ai/multica/stargazers)
[Website](https://multica.ai) · [Cloud](https://multica.ai/app) · [Self-Hosting](SELF_HOSTING.md) · [Contributing](CONTRIBUTING.md)
[Website](https://multica.ai) · [Cloud](https://multica.ai/app) · [Self-Hosting](SELF_HOSTING.md) · [Contributing](CONTRIBUTING.md) · [X / Twitter](https://x.com/multica_hq)
**English | [简体中文](README.zh-CN.md)**

View File

@@ -21,7 +21,7 @@
[![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
[![GitHub stars](https://img.shields.io/github/stars/multica-ai/multica?style=flat)](https://github.com/multica-ai/multica/stargazers)
[官网](https://multica.ai) · [云服务](https://multica.ai/app) · [自部署指南](SELF_HOSTING.md) · [参与贡献](CONTRIBUTING.md)
[官网](https://multica.ai) · [云服务](https://multica.ai/app) · [自部署指南](SELF_HOSTING.md) · [参与贡献](CONTRIBUTING.md) · [X / Twitter](https://x.com/multica_hq)
**[English](README.md) | 简体中文**

View File

@@ -41,6 +41,8 @@ export const metadata: Metadata = {
},
twitter: {
card: "summary_large_image",
site: "@multica_hq",
creator: "@multica_hq",
},
alternates: {
canonical: "/",

View File

@@ -5,7 +5,7 @@ import { MulticaIcon } from "@/components/multica-icon";
import { cn } from "@/lib/utils";
import { useAuthStore } from "@/features/auth";
import { useLocale } from "../i18n";
import { GitHubMark, githubUrl, headerButtonClassName } from "./shared";
import { GitHubMark, XMark, githubUrl, twitterUrl, headerButtonClassName } from "./shared";
export function LandingHeader({
variant = "dark",
@@ -44,6 +44,14 @@ export function LandingHeader({
</Link>
<div className="flex items-center gap-2.5 sm:gap-3">
<Link
href={twitterUrl}
target="_blank"
rel="noreferrer"
className={headerButtonClassName("ghost", variant)}
>
<XMark className="size-3.5" />
</Link>
<Link
href={githubUrl}
target="_blank"

View File

@@ -1,6 +1,7 @@
import { cn } from "@/lib/utils";
export const githubUrl = "https://github.com/multica-ai/multica";
export const twitterUrl = "https://x.com/multica_hq";
export function GitHubMark({ className }: { className?: string }) {
return (
@@ -15,6 +16,19 @@ export function GitHubMark({ className }: { className?: string }) {
);
}
export function XMark({ className }: { className?: string }) {
return (
<svg
viewBox="0 0 24 24"
aria-hidden="true"
className={className}
fill="currentColor"
>
<path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z" />
</svg>
);
}
export function ImageIcon({ className }: { className?: string }) {
return (
<svg

View File

@@ -1,4 +1,4 @@
import { githubUrl } from "../components/shared";
import { githubUrl, twitterUrl } from "../components/shared";
import type { LandingDict } from "./types";
export const en: LandingDict = {
@@ -239,6 +239,7 @@ export const en: LandingDict = {
{ label: "About", href: "/about" },
{ label: "Open Source", href: "#open-source" },
{ label: "GitHub", href: githubUrl },
{ label: "X / Twitter", href: twitterUrl },
],
},
},

View File

@@ -1,4 +1,4 @@
import { githubUrl } from "../components/shared";
import { githubUrl, twitterUrl } from "../components/shared";
import type { LandingDict } from "./types";
export const zh: LandingDict = {
@@ -239,6 +239,7 @@ export const zh: LandingDict = {
{ label: "\u5173\u4e8e\u6211\u4eec", href: "/about" },
{ label: "\u5f00\u6e90", href: "#open-source" },
{ label: "GitHub", href: githubUrl },
{ label: "X / Twitter", href: twitterUrl },
],
},
},