Files
terminalX/vendor/libghostty-spm/docs/build.html
kid aa92d0e676 初始提交:terminalX 可运行态(M0/M1/M1.5 已真机验证)
- M0: libghostty SSH 终端(渲染/输入/连接)+ 白屏修复(OutputGate) + 会话状态机/自动重连
- M1: tsnet 用户态组网 + SSH-over-tsnet(fd 桥),shell 级真机验证;R5(Go+gvisor+C+++Swift 同进程) retire
- M1.5: tmux -CC 原生 tab(MVP)
- 结构: packages/(TXCore·TXTransport), apps/TerminalX, vendor/(libghostty-spm/libssh2/mbedtls/tsnet-bridge), artifacts/
- 文档: CLAUDE.md + docs/HANDOFF.md(新会话入口)
- 环境: 认证代理→依赖 vendor 本地化;Go 在 ~/.local/go;仅模拟器/未签名
- 待续: M2 mosh, tmux 多 pane, M4 安全(host key/SE)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-24 10:20:46 +08:00

85 lines
3.5 KiB
HTML

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="color-scheme" content="light dark">
<title>GhosttyKit · Build</title>
<link rel="stylesheet" href="styles.css">
<link rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.10.0/styles/github.min.css"
integrity="sha384-eFTL69TLRZTkNfYZOLM+G04821K1qZao/4QLJbet1pP4tcF+fdXq/9CdqAbWRl/L"
crossorigin="anonymous"
media="(prefers-color-scheme: light)">
<link rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.10.0/styles/github-dark.min.css"
integrity="sha384-wH75j6z1lH97ZOpMOInqhgKzFkAInZPPSPlZpYKYTOqsaizPvhQZmAtLcPKXpLyH"
crossorigin="anonymous"
media="(prefers-color-scheme: dark)">
</head>
<body>
<nav class="topbar" aria-label="Primary">
<a class="home" href="index.html">GhosttyKit</a>
<a href="index.html">Overview</a>
<a href="guide/index.html">Guide</a>
<a href="api/index.html">API</a>
<a href="architecture.html">Architecture</a>
<a href="build.html" aria-current="page">Build</a>
</nav>
<main>
<h1>Build</h1>
<p class="lede">Local package checks, binary rebuild flow, theme generation, and GitHub Pages publishing setup.</p>
<h2 id="package">Package checks</h2>
<pre><code class="language-bash">swift build
swift test
./Script/test.sh
</code></pre>
<p><code>./Script/test.sh</code> verifies the package across macOS, iOS, iOS Simulator, and Mac Catalyst destinations.</p>
<h2 id="xcframework">Rebuild libghostty</h2>
<pre><code class="language-bash">./Script/build.sh
./Script/build.sh \
--platforms macos,ios \
--source /path/to/ghostty \
--skip-tests
</code></pre>
<p>The build scripts apply patches from <code>Patches/ghostty</code>, build target libraries with Zig, merge them into <code>GhosttyKit.xcframework</code>, and update release artifacts.</p>
<h2 id="manifest">Release manifest</h2>
<pre><code class="language-bash">./Script/build-manifest.sh
</code></pre>
<p>When products, targets, or binary metadata change, keep <code>Package.swift</code>, <code>Package.local.swift</code>, and <code>Package.swift.template</code> aligned.</p>
<h2 id="themes">Theme generation</h2>
<pre><code class="language-bash">./Script/generate-themes.sh
</code></pre>
<p>This regenerates <code>Sources/GhosttyTheme/Themes</code> from iTerm2-Color-Schemes.</p>
<h2 id="pages">GitHub Pages</h2>
<p>The documentation site is a static site under <code>docs/</code>, matching the SSHKit Pages layout. <code>.github/workflows/pages.yml</code> publishes it with GitHub Actions on every <code>main</code> push that changes docs. <code>docs/.nojekyll</code> keeps GitHub Pages serving files exactly as written.</p>
<h2 id="local">Local preview</h2>
<pre><code class="language-bash">cd docs
python3 -m http.server 8000
</code></pre>
<footer>
GhosttyKit · <a href="https://github.com/Lakr233/libghostty-spm">github.com/Lakr233/libghostty-spm</a>
</footer>
</main>
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.10.0/highlight.min.js"
integrity="sha384-GdEWAbCjn+ghjX0gLx7/N1hyTVmPAjdC2OvoAA0RyNcAOhqwtT8qnbCxWle2+uJX"
crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.10.0/languages/bash.min.js"
integrity="sha384-83HvQQdGTWqnRLmgm19NjCb1+/awKJGytUX9sm3HJb2ddZ9Fs1Bst2bZogFjt9rr"
crossorigin="anonymous"></script>
<script>hljs.highlightAll();</script>
</body>
</html>