Feishu文書をMarkdown/WeChat向けHTMLに変換するツール (feishu2mp)

Tool

概要

feishu2mpは、Feishu(飛書)ドキュメントをMarkdownおよび微信公众号(WeChat公式アカウント)の編集画面に貼れるHTMLへ変換するツールセットです。リポジトリは主に2つのサブプロジェクトで構成され、1つはGoで実装されたコマンドラインツール兼Web API(feishu2md-main)、もう1つはPlasmoベースのブラウザ拡張(feishu2mp-plasmo)です。後者はFeishuのドキュメントページに統合してワンクリックで変換を実行し、生成したMarkdownやHTMLをコピー/ダウンロードできます。テーマによるスタイル調整やローカルサービスとの連携もサポートし、日常的なコンテンツ流通を効率化します。

GitHub

リポジトリの統計情報

  • スター数: 12
  • フォーク数: 2
  • ウォッチャー数: 12
  • コミット数: 3
  • ファイル数: 7
  • メインの言語: Go

主な特徴

  • Feishuドキュメント(docx/wiki/docs)をMarkdownおよびWeChat向けHTMLに変換
  • Go製のCLIとWebサービスでバッチ処理やAPI経由の変換が可能
  • Plasmo製ブラウザ拡張でFeishuページ上からワンクリック変換&コピー/ダウンロード
  • 基本的なスタイルテーマ(theme.reddit.json等)による見た目のカスタマイズに対応

技術的なポイント

feishu2mpのコアは、Feishuのドキュメント構造を取得して、ブロック単位でMarkdownやHTMLに逐次変換するパイプラインです。Go側(feishu2md-main)はApp ID/Secretを用いた認証設定(configコマンド)を持ち、FeishuのAPIから指定ドキュメントをダウンロードして内部表現にパースします。パース処理は見出し・段落・リスト・表・画像・コードブロックなどのブロックタイプを判別し、それぞれをMarkdownシンタックスまたは微信公众号編集に適したHTMLへマッピングします。HTML出力はWeChatの編集器の制約を意識してシンプルでインラインスタイルや限定タグに変換する工夫がなされていると推測されます。

Webサービス(feishu2md4web)としてAPIを提供することで、ブラウザ拡張や外部ツールがHTTP経由で変換処理を呼び出せます。feishu2mp-plasmo側はPlasmoフレームワークを使った拡張で、Feishuドキュメントのフロントエンドと連携して選択中のドキュメントURLを取得し、ローカルのGoサーバーにリクエストして結果を受け取る流れです。拡張は生成物のコピー・ダウンロードUIや、ローカルサービスアドレス設定などを備え、ユーザー操作を簡便にします。

実装面ではGoの利点(単一バイナリ、並列処理、高速なHTTPクライアント/サーバ)が活かされ、ローカルで軽量に動く点がメリットです。一方でFeishu APIの仕様変更やドキュメント中の複雑なカスタムブロック(埋め込みコンポーネントや複雑な表組み)には限定的な対応に留まる可能性があり、画像や添付ファイルの扱い(外部公開用にクラウドへアップロードするか、base64埋め込みするか)やスタイル互換性は運用時に注意が必要です。テーマファイル(theme.reddit.jsonなど)で出力スタイルを調整できる点は、特定フォーマットに合わせたカスタマイズを容易にします。

プロジェクトの構成

主要なファイルとディレクトリ:

  • .gitignore: file
  • README.md: file
  • feishu2md-main: dir
    • Go製のコマンドラインツールとWebサービス本体(設定・ダウンロード・変換ロジックを含む)
  • feishu2mp-plasmo: dir
    • Plasmoベースのブラウザ拡張(FeishuページのUI連携、変換API呼び出し、コピー/ダウンロード機能)
  • theme.reddit.json: file
    • 出力HTML/Markdown向けのスタイルテーマ定義

…他 2 ファイル

まとめ

Feishuで書いたコンテンツを手早くMarkdownやWeChat向けHTMLに変換できる実用的なツールセットです。

リポジトリ情報:

READMEの抜粋:

飞书文档转 Markdown / 微信公众号 HTML(feishu2mp)

本仓库包含两个子模块:

  • feishu2md-main:Go 实现的命令行工具与后端 Web 服务,用于拉取与解析飞书文档,输出 Markdown 与微信公众号兼容的 HTML。
  • feishu2mp-plasmo:基于 Plasmo 的浏览器扩展,在飞书文档页面侧边栏一键转换并复制/下载 Markdown 或公众号 HTML,可连接本地后端服务。

适用场景:在飞书文档(docx/wiki/docs)中撰写内容后,快速生成 Markdown 或适配微信公众号编辑器的 HTML,并支持基础样式主题定制。