Home
Softono

Feishu Doc Webify

Open source MIT Python
32
Stars
1
Forks
0
Issues
0
Watchers
5 months
Last Commit

 About Feishu Doc Webify

把飞书文档和 Wiki 知识库变成精美静态网站,并发布到 GitHub Pages

Platforms

Web Self-hosted

Languages

Python

Links

Need Help Installing Feishu Doc Webify?

We provide expert installation service for this software. Our team will install, configure, and secure Feishu Doc Webify on your server. plans start at just $30.

Feishu Doc Webify

View on GitHub

Feishu Doc Webify

把沉重的飞书文档和知识库,变成一个真正值得分享的网页。

飞书很适合写知识库,但不擅长做“对外展示”。排版受限、视觉平、导航弱,长文越多越像一堵墙。feishu-doc-webify 是一个 Skill:给它一个飞书 docxdocwiki 链接,它会抓取内容、保留结构、重新排成精美静态网站,并发布到 GitHub Pages。

适合这些场景:

  • 你有一套飞书知识库,想变成一个公开文档站。
  • 你写了很重的方案、教程、方法论,飞书排版已经装不下它的野心。
  • 你想把内部文档整理成客户能看的网页,而不是发一个飞书链接。
  • 你想让 AI 帮你做“内容网页化”,但又不想每次从零写抓取、排版、发布脚本。

复制这句就能开始:

用 feishu-doc-webify,把这个飞书 Wiki 做成一个精美知识库网站,并发布到 GitHub Pages:<你的飞书链接>

Before / After

Before:

  • 飞书链接只能在飞书里读。
  • 长文没有像样的目录和阅读节奏。
  • 对外分享时像“临时发了个文档”。
  • 每次发布都要手动处理内容、媒体、HTML 和 GitHub Pages。

After:

  • 一个可以直接访问的静态网站。
  • 文档层级、目录、搜索、阅读进度都在。
  • 图片和画板可本地化,附件可按需处理。
  • 发布前确认公开/私有,避免误公开内部资料。

它能做什么

feishu-doc-webify 会引导 Codex 完成一条完整流水线:

  1. 读取飞书文档或 Wiki 链接。
  2. lark-cli 抓取正文、标题、层级和媒体标记。
  3. 检测图片、附件、画板,询问是否下载本地化。
  4. 生成静态 HTML/CSS/JS 网站。
  5. 本地预览,继续打磨排版。
  6. 发布到 GitHub Pages。

默认输出是一个“知识库阅读型 editorial”网站:

  • 清晰目录
  • 章节锚点
  • 阅读进度条
  • 宽屏双栏阅读
  • 移动端单栏适配
  • 表格横向滚动
  • 代码块高对比展示
  • Wiki 多页站点搜索索引
  • 媒体缺失时显示占位,不让页面破掉

为什么不是简单导出 HTML

飞书导出解决的是“带走内容”,不是“让内容好看、好读、好传播”。

这个 Skill 更像一个文档出版助理:

  • 保真美化:默认保留全部原文、标题层级、列表、表格、引用、代码块和图片位置,只重做网页阅读体验。
  • 智能重组:用户明确要求时,可以增加导读、摘要、专题卡片和章节导航,但不会删除原文。
  • 单篇和知识库都能处理:单篇文档生成 index.html;Wiki 子树生成首页、多篇文档页面和搜索索引。
  • 发布前保护隐私:每次发布前都必须确认仓库名和公开/私有,不会偷偷把内部知识库变成公开站点。

安装(或者其他agent都可以)

Codex

git clone https://github.com/wocha-xiaoli/feishu-doc-webify.git \
  ~/.codex/skills/feishu-doc-webify

重启 Codex 后即可使用。


## 前置条件

这不是一个独立 SaaS,它使用你本机已有的飞书和 GitHub CLI 权限。

需要安装:

| 工具 | 用途 |
| --- | --- |
| `lark-cli` | 读取飞书文档、Wiki、媒体 |
| `gh` | 创建仓库、发布 GitHub Pages |
| `git` | 提交和推送静态网站 |
| `python3` | 运行抓取和建站脚本 |

建议先确认登录:

```bash
lark-cli whoami
gh auth status

如果没有登录,先完成:

lark-cli login
gh auth login

怎么用

在 Codex / OpenCode/claude code 里直接说:

用 feishu-doc-webify,把这个飞书文档网页化:
https://example.feishu.cn/docx/xxxx

或者:

把这个飞书 Wiki 子树做成一个精美知识库网站,并发布到 GitHub Pages:
https://example.feishu.cn/wiki/xxxx

你也可以指定风格和内容策略:

用 feishu-doc-webify,把这个飞书知识库做成公开网站。
默认保留原文,但首页做成更像产品文档的导读。
媒体先检测数量,图片下载本地化,附件先跳过。

典型流程

Skill 会让 Codex 按这个顺序工作:

# 1. 抓取单篇文档或 Wiki 子树
python3 scripts/fetch_feishu_content.py \
  --source "https://example.feishu.cn/wiki/xxxx" \
  --scope wiki \
  --out ./feishu-webify-export

# 2. 如用户确认,下载文档媒体
python3 scripts/download_media.py \
  --manifest ./feishu-webify-export/media-manifest.json \
  --out ./feishu-webify-export/site/media

# 3. 生成静态网站
python3 scripts/build_static_site.py \
  --content ./feishu-webify-export/content.json \
  --mode faithful \
  --style editorial \
  --out ./feishu-webify-export/site

# 4. 本地预览
open ./feishu-webify-export/site/index.html

# 5. 用户确认公开性后发布
bash scripts/publish_github_pages.sh \
  --site-dir ./feishu-webify-export/site \
  --repo my-knowledge-site \
  --visibility public

正常使用时,你不需要手动敲这些命令。Skill 会让 Codex 替你执行,并在关键节点询问确认。

生成物

单篇文档:

site/
├── index.html
├── styles.css
├── app.js
├── search-index.json
└── media/

Wiki 知识库:

site/
├── index.html
├── docs/
│   ├── chapter-1.html
│   └── chapter-2.html
├── styles.css
├── app.js
├── search-index.json
└── media/

抓取阶段还会生成:

feishu-webify-export/
├── content.json
├── media-manifest.json
└── fetch-report.json

这些文件方便排查哪些文档被成功纳入、哪些 Wiki 节点暂不支持、哪些媒体下载失败。

支持范围

当前支持:

  • 飞书新版文档:/docx/
  • 飞书旧版文档:/doc/
  • 飞书知识库节点:/wiki/
  • Wiki 子节点递归抓取
  • 图片、附件、画板识别
  • 图片/附件/画板按需下载
  • GitHub Pages 发布

暂不直接网页化:

  • 飞书表格 sheet
  • 多维表格 bitable
  • 幻灯片 slides
  • 思维导图 mindnote
  • 普通文件节点

这些节点会进入 fetch-report.json 的 skipped list,不会让整个网站生成失败。

隐私与安全

这个 Skill 默认比较谨慎:

  • 不保存飞书 access token。
  • 不读取浏览器 cookie。
  • 不读取 ~/.ssh~/.aws 等敏感目录。
  • 不硬编码 API Key。
  • 飞书认证交给 lark-cli
  • GitHub 认证交给 gh
  • 发布前必须确认仓库公开性。
  • 私有 GitHub Pages 失败时不会自动改成公开。

但你仍然要注意:如果你选择发布到公开 GitHub Pages,网页内容就是公开的。内部文档、客户资料、未发布战略,请先脱敏。

目录结构

feishu-doc-webify/
├── SKILL.md
├── agents/
│   └── openai.yaml
├── assets/
│   └── editorial-theme.css
├── references/
│   ├── github-pages.md
│   ├── lark-doc-pipeline.md
│   └── web-design-patterns.md
└── scripts/
    ├── build_static_site.py
    ├── download_media.py
    ├── fetch_feishu_content.py
    └── publish_github_pages.sh

给谁用

给那些“内容已经很强,但飞书排版搞不定”的人:

  • 创始人写方法论
  • 咨询顾问交付知识库
  • AI 创作者整理教程
  • 团队把内部 SOP 转成外部文档站
  • 个人把飞书沉淀变成公开作品集

你写内容,飞书承载协作,feishu-doc-webify 负责把它变成一个像样的网站。

License

MIT