Remove the sparkapi /docs CTA from the landing page and block docs/openapi/swagger/architecture paths on the website Nginx vhost. Co-authored-by: Cursor <cursoragent@cursor.com>
107 lines
4.4 KiB
HTML
107 lines
4.4 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="zh-CN">
|
|
<head>
|
|
<meta charset="utf-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
<title>Spark Messenger — 即时沟通,火花相连</title>
|
|
<meta name="description" content="Spark Messenger 是面向好友、群聊与朋友圈的即时通讯应用。安全、简洁、跨端同步。" />
|
|
<link rel="canonical" href="https://sparkmessenger.wyrs365.com/" />
|
|
<link rel="icon" href="/assets/favicon.svg" type="image/svg+xml" />
|
|
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
|
<link href="https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,500;12..96,700;12..96,800&family=Source+Serif+4:opsz,wght@8..60,400;8..60,600&display=swap" rel="stylesheet" />
|
|
<link rel="stylesheet" href="/assets/styles.css" />
|
|
</head>
|
|
<body>
|
|
<div class="grain" aria-hidden="true"></div>
|
|
|
|
<header class="top">
|
|
<a class="mark" href="/">
|
|
<svg class="mark-icon" viewBox="0 0 32 32" aria-hidden="true">
|
|
<path d="M16 2.5 19.8 12.2 30 14.5 21.8 20.8 24.5 30 16 24.6 7.5 30 10.2 20.8 2 14.5 12.2 12.2Z" />
|
|
</svg>
|
|
<span>Spark Messenger</span>
|
|
</a>
|
|
<nav class="top-nav" aria-label="主导航">
|
|
<a href="#features">能力</a>
|
|
<a href="#download">下载</a>
|
|
</nav>
|
|
</header>
|
|
|
|
<main>
|
|
<section class="hero" aria-labelledby="brand">
|
|
<div class="hero-copy">
|
|
<p class="eyebrow">即时通讯</p>
|
|
<h1 id="brand">Spark Messenger</h1>
|
|
<p class="lede">把对话、群聊与朋友圈收进同一束火花——安静、可靠、随处可达。</p>
|
|
<div class="cta">
|
|
<a class="btn btn-primary" href="#download">获取应用</a>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="hero-stage" aria-hidden="true">
|
|
<div class="orb orb-a"></div>
|
|
<div class="orb orb-b"></div>
|
|
<div class="device">
|
|
<div class="device-bezel">
|
|
<div class="chat">
|
|
<div class="bubble in rise" style="--d:0.1s">今晚一起走?</div>
|
|
<div class="bubble out rise" style="--d:0.35s">好,我这就出发。</div>
|
|
<div class="bubble in rise" style="--d:0.6s">路上见。</div>
|
|
<div class="typing rise" style="--d:0.9s"><span></span><span></span><span></span></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<section id="features" class="features" aria-labelledby="features-title">
|
|
<div class="features-intro">
|
|
<h2 id="features-title">为真实对话而造</h2>
|
|
<p>少一层噪音,多一点连接。消息直达,媒体直传,跨设备保持同一条时间线。</p>
|
|
</div>
|
|
<ul class="feature-rail">
|
|
<li>
|
|
<h3>一对一与群聊</h3>
|
|
<p>长连接实时推送,撤回与删除按会话清晰落地。</p>
|
|
</li>
|
|
<li>
|
|
<h3>朋友圈</h3>
|
|
<p>图片与短文按可见范围发布,不挤占会话列表。</p>
|
|
</li>
|
|
<li>
|
|
<h3>媒体直传</h3>
|
|
<p>对象存储签名上传,聊天里只留引用,加载更快。</p>
|
|
</li>
|
|
</ul>
|
|
</section>
|
|
|
|
<section id="download" class="download" aria-labelledby="download-title">
|
|
<h2 id="download-title">准备好了就装上</h2>
|
|
<p>Android 与 iOS 客户端陆续开放。留下邮箱,我们会在上架时通知你。</p>
|
|
<form class="notify" action="#" method="get" onsubmit="return false;">
|
|
<label class="sr-only" for="email">邮箱</label>
|
|
<input id="email" name="email" type="email" placeholder="you@example.com" autocomplete="email" required />
|
|
<button type="submit" class="btn btn-primary">提醒我</button>
|
|
</form>
|
|
<p class="notify-note" id="notify-note" hidden>已记下。上架时会联系你。</p>
|
|
<div class="store-row" aria-label="应用商店">
|
|
<span class="store-chip">App Store · 即将推出</span>
|
|
<span class="store-chip">Google Play · 即将推出</span>
|
|
</div>
|
|
</section>
|
|
</main>
|
|
|
|
<footer class="foot">
|
|
<p><strong>Spark Messenger</strong> · wyrs365</p>
|
|
<p class="foot-links">
|
|
<a href="https://sparkmessenger.wyrs365.com/">sparkmessenger.wyrs365.com</a>
|
|
<span aria-hidden="true">·</span>
|
|
<a href="https://sparkmsg.wyrs365.com/">sparkmsg.wyrs365.com</a>
|
|
</p>
|
|
</footer>
|
|
|
|
<script src="/assets/app.js" defer></script>
|
|
</body>
|
|
</html>
|