Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 36 additions & 4 deletions docs/.vitepress/config.mts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import Unocss from 'unocss/vite'
import { markdownConfig } from './config/markdown'
import { dirname, resolve } from 'node:path'
import { fileURLToPath } from 'node:url'
import { mkdirSync, readFileSync, writeFileSync } from 'node:fs'
import { existsSync, mkdirSync, readdirSync, readFileSync, rmSync, statSync, writeFileSync } from 'node:fs'
import { execSync } from 'node:child_process'
import { localesConfig } from './config/locales'
import { withMermaid } from 'vitepress-plugin-mermaid'
Expand Down Expand Up @@ -83,11 +83,43 @@ export default defineConfig(
},

buildEnd(siteConfig) {
const skillsDir = resolve(__dirname, '../../skills')
const outSkillDir = resolve(siteConfig.outDir, 'skill')
mkdirSync(outSkillDir, { recursive: true })
execSync(`zip -r "${outSkillDir}/longbridge.zip" longbridge`, { cwd: skillsDir })
console.log('✓ skill/longbridge.zip generated')

// Clone longbridge/skills@main and pack zips.
// Fail the build if the clone or `skills/` directory is missing.
const tmpDir = resolve(__dirname, '../../.tmp-longbridge-skills')
rmSync(tmpDir, { recursive: true, force: true })
try {
execSync(
`git clone --depth 1 --branch main https://github.com/longbridge/skills.git "${tmpDir}"`,
{ stdio: 'inherit' }
)
} catch (err) {
throw new Error(
`Failed to clone longbridge/skills@main: ${(err as Error).message}`
)
}
const skillsSrcDir = resolve(tmpDir, 'skills')
if (!existsSync(skillsSrcDir)) {
throw new Error(
`longbridge/skills@main is missing the "skills/" directory; cannot build skill zips`
)
}

// Pack all skills into longbridge-all.zip
execSync(`zip -r "${outSkillDir}/longbridge-all.zip" .`, { cwd: skillsSrcDir })
console.log('✓ skill/longbridge-all.zip generated from longbridge/skills@main')

// Pack each skill subdirectory into its own zip
for (const name of readdirSync(skillsSrcDir)) {
if (statSync(resolve(skillsSrcDir, name)).isDirectory()) {
execSync(`zip -r "${outSkillDir}/${name}.zip" "${name}"`, { cwd: skillsSrcDir })
console.log(`✓ skill/${name}.zip generated`)
}
}

rmSync(tmpDir, { recursive: true, force: true })

// Region URL rewriting for static assets
if (regionCfg?.siteHostname && regionCfg.siteHostname !== 'https://open.longbridge.com') {
Expand Down
2 changes: 1 addition & 1 deletion docs/.vitepress/theme/components/Skill.vue
Original file line number Diff line number Diff line change
Expand Up @@ -2571,7 +2571,7 @@ const currentMessages = computed(() => {
<span class="skill-tag">{{ t.recommended.value }}</span>
</div>
<p class="skill-install-panel-hint">{{ t.manualInstallHint.value }}</p>
<a href="/skill/longbridge.zip" download class="skill-btn-primary">
<a href="/skill/longbridge-all.zip" download class="skill-btn-primary">
{{ t.downloadZip.value }}
</a>
<p class="skill-also-available">
Expand Down
4 changes: 2 additions & 2 deletions docs/en/skill/install/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,13 +33,13 @@ bunx skills add longbridge/developers -g -y
**Or download the ZIP and install manually:**

Download [longbridge.zip](https://open.longbridge.com/skill/longbridge.zip) and unzip it, then place the files in your AI tool's Skill directory (Claude Code: `.claude/skills/`, Cursor: paste into the Rules editor, other tools: see the README).
Download [longbridge-all.zip](https://open.longbridge.com/skill/longbridge-all.zip) and unzip it, then place the files in your AI tool's Skill directory (Claude Code: `.claude/skills/`, Cursor: paste into the Rules editor, other tools: see the README).

**OpenClaw** — send this message in chat and it handles everything automatically:

```
Install the Longbridge Developers Skill from this zip file:
https://open.longbridge.com/skill/longbridge.zip
https://open.longbridge.com/skill/longbridge-all.zip
```

---
Expand Down
4 changes: 2 additions & 2 deletions docs/zh-CN/skill/install/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,13 +33,13 @@ bunx skills add longbridge/developers -g -y

**或下载 ZIP 手动安装:**

下载 [longbridge.zip](https://open.longbridge.com/skill/longbridge.zip) 并解压,将文件放入你的 AI 工具指定的 Skill 目录(Claude Code 放 `.claude/skills/`,Cursor 粘贴到 Rules 编辑框,其他工具参考 README)。
下载 [longbridge-all.zip](https://open.longbridge.com/skill/longbridge-all.zip) 并解压,将文件放入你的 AI 工具指定的 Skill 目录(Claude Code 放 `.claude/skills/`,Cursor 粘贴到 Rules 编辑框,其他工具参考 README)。

**OpenClaw** 直接在对话中发送以下消息,自动完成安装:

```
从以下 zip 文件安装 Longbridge Developers Skill:
https://open.longbridge.com/skill/longbridge.zip
https://open.longbridge.com/skill/longbridge-all.zip
```

---
Expand Down
4 changes: 2 additions & 2 deletions docs/zh-HK/skill/install/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,13 +33,13 @@ bunx skills add longbridge/developers -g -y

**或下載 ZIP 手動安裝:**

下載 [longbridge.zip](https://open.longbridge.com/skill/longbridge.zip) 並解壓,將文件放入你的 AI 工具指定的 Skill 目錄(Claude Code 放 `.claude/skills/`,Cursor 貼到 Rules 編輯框,其他工具參考 README)。
下載 [longbridge-all.zip](https://open.longbridge.com/skill/longbridge-all.zip) 並解壓,將文件放入你的 AI 工具指定的 Skill 目錄(Claude Code 放 `.claude/skills/`,Cursor 貼到 Rules 編輯框,其他工具參考 README)。

**OpenClaw** 直接在對話中發送以下訊息,自動完成安裝:

```
從以下 zip 文件安裝 Longbridge Developers Skill:
https://open.longbridge.com/skill/longbridge.zip
https://open.longbridge.com/skill/longbridge-all.zip
```

---
Expand Down
Loading