Motty
原生桌面 SSH 工作台:终端、SFTP/SCP、端口转发、VNC 与 RDP 远程桌面、AI 助手都在一个窗口里。Go 编写,没有 Electron,空闲时保持安静。免费开源,支持 macOS、Windows 和 Linux。
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
Website for Pelago
翻译准备中
正在加载完整 README。
查看完整 README ↗The site for Pelago: a static site with no dependencies and no framework. Pages are plain HTML in src/pages/, wrapped by src/layout.html and assembled by one Node script into public/.
The documentation site is a separate Fumadocs app in apps/docs; this README is about the marketing site.
A language site is mostly text and code. Plain HTML and CSS load instantly, work without JavaScript (one small script adds copy buttons), need no npm install, and cannot break when a framework changes. Any static host serves the output as is. A heavier generator would add a dependency tree to maintain for a handful of pages. The documentation lives in apps/docs; the install, tour and editors pages here only point to it.
Node 20 or later. In PowerShell or any shell:
node scripts/build.mjs # src/ + content/ -> public/
node scripts/check.mjs # every link, anchor and asset in public/ resolves
node scripts/serve.mjs # preview at http://localhost:3000 (after a build)
npm run build, check and dev do the same.
| Path | What |
|---|---|
src/pages/*.html | One file per page, with a title, description and nav key in a leading comment |
src/layout.html | Head, header, footer |
src/assets/ | CSS, the Outfit font (OFL) and the brand files, copied from assets/brand in the Pelago repository |
content/code/*.pel | Every example on the site. *.html (highlighted) and *.out (program output) next to them are generated and committed |
content/bench.json | The benchmark numbers (method and caveats are on the page) |
Pages pull examples in with {{code:name}} and the table with {{bench}}.
The deploy has no Pelago binary, so the highlighted HTML and the outputs are generated here and committed. After changing a .pel file:
node scripts/highlight.mjs # needs `pelago` on PATH, or set PELAGO to its path
CI builds the compiler, runs pelago check content/code and node scripts/highlight.mjs --check, so an example that stops compiling, or a generated file that is stale, fails the build.
.github/workflows/pages.yml builds this site and the docs app (apps/docs), merges them into one folder and deploys it. The docs app owns the language folders (/en-US/docs/, /es/docs/, ...); this site owns everything else, and its Docs link points into the app. The workflow runs on every push to main and once a day, so the changelog stays current. Set Settings, Pages, Source to GitHub Actions once.
On a project site the address is https://<owner>.github.io/website/, so both builds take the folder from BASE_PATH (the docs app reads it as NEXT_PUBLIC_BASE_PATH); actions/configure-pages supplies it, and it is empty once a custom domain is set. Canonical links, the sitemap and the Open Graph image use SITE_URL when set. To try it locally: BASE_PATH=/website node scripts/build.mjs.
The marketing site alone still deploys anywhere that serves static files; vercel.json is kept for that (leave BASE_PATH unset).
Colours: Pelago Teal #0E7C86, Lagoon #5FD0C8, Deep Sea #0B2239, Foam #F4F6F8. Wordmark outlined in the logo SVGs, text in Outfit. Rules: docs/design/brand.md.
MIT OR Apache-2.0, at your option (LICENSE-MIT, LICENSE-APACHE). Outfit is under the SIL Open Font License (src/assets/fonts/OFL.txt).