第 2 集 - 创建并验证 CLI 工作区
这一集创建一个本地 Silan Viking 工作区,并验证 CLI 能读取、校验和索引内容源。这个流程不要求你已经克隆 Silan Viking 源码仓库,也不要求安装桌面端开发环境。

前置条件
请使用 macOS 或 Linux shell,并确认:
- 可以联网下载安装程序;
- 可以写入
~/.local/bin; git在PATH中可用;- 安装后可以重新打开一个终端会话。
安装程序会提供三个等价命令:silan、svk 和 silan-viking。本文示例使用 silan。
一、安装命令
| curl -fsSL https://raw.githubusercontent.com/Qingbolan/Silan-Personal-Website/main/engine/install.sh | sh |
silan --version
安装脚本会根据当前平台选择发布版二进制,并写入 ~/.local/bin。如果安装后找不到 silan,请打开一个新终端,让更新后的 PATH 生效。
安全提示:如果不希望把远程脚本直接交给 shell 执行,请先在仓库中打开 engine/install.sh 检查内容,再在本地运行同一个脚本。
二、创建工作区
mkdir my-research-site
cd my-research-site
silan init
silan init 会创建:
content/,规范内容源;content/SCHEMA.md,本地 schema 说明;silan-viking.toml,工作区配置;- 示例 resume、blog 和 project 内容;
- 用于内容源的 Git 仓库。
你的写作内容保存在普通文件中。SQLite 数据库是从这些文件派生出来的,可以重新生成。
三、验证工作区
silan content lint
silan index sync
silan guide
三个命令责任不同:
content lint检查内容树中的 schema 和引用问题;index sync从content/重建派生数据库;guide读取当前项目状态,并打印下一项有用动作。
新工作区可能出现非致命提示,例如缺少翻译或简历缺少邮箱。只要汇总以 0 fatal 结束,这个工作区就可以继续使用。
预期结果
本集结束后,工作区应该已经初始化并完成同步。你应该能运行:
silan config
silan content tree
silan guide
如果任何命令失败,请先修复工作区,再创建内容。只有在 silan index sync 成功后,才进入第 3 集。
四、用桌面端管理内容
桌面端应用叫 Silan Context System。当你在完整 Silan Viking 源码仓库中工作,并希望用一个本地工作台来审阅、编辑、查看发布状态、流量证据和 Git 变更时,使用它。

受支持的启动路径是 CLI,而不是直接打开 Vite URL:
cd /path/to/Silan-Personal-Website
silan desktop
这个命令会先刷新本地 SQLite 投影,然后用三个注入路径启动 Tauri 桌面会话:
SILAN_DESKTOP_CONTENT,规范content/内容树;SILAN_DESKTOP_DB,派生的_deploy/api/portfolio.db读模型;SILAN_VIKING_BIN,执行发布动作时使用的同一个已审阅 CLI 二进制。
桌面端适合处理这些具体管理任务:
- 打开 dashboard,检查本地流量、crawler 和 delivery 状态;
- 在同一个工作台中审阅 Blog、Projects、Moments、Resume 和 Episodes;
- 编辑 Markdown-backed 正文,并通过 Rust engine 保存;
- 外部文件编辑后刷新工作区;
- 提交或部署前检查 Git 变更。
不要把桌面端当作新建外部工作区的安装器。silan init 创建的是内容工作区;它不会复制 desktop/、安装 Tauri 依赖,也不会打包原生应用。对于一个新建外部工作区,继续使用 CLI,并用任意编辑器修改 Markdown 文件。以后可以再引入桌面端,而不需要改变内容模型。
启动前建议先检查:
test -f desktop/package.json
lsof -nP -iTCP:5184 -sTCP:LISTEN
true
silan index sync
silan desktop
当前桌面端 dev server 使用 5184 端口。启动脚本会复用同一个项目中已经运行的 Silan Context System Vite 服务。如果是其他进程占用了这个端口,请先停止它,或换一个干净会话重试。直接打开 http://127.0.0.1:5184 只适合做浏览器 smoke test:那里没有 Tauri IPC,所以即使界面能渲染,调用 invoke 的管理动作仍可能失败。
还没有评论