Convert Markdown to Feishu/Lark documents
Project description
markdown2feishu
Convert Markdown to Feishu/Lark documents.
Features
- 文档推送: 将 Markdown 转换为飞书云文档
- 群消息: 通过 Webhook 发送消息到飞书群聊
- 丰富语法: 支持标题、列表、表格、代码块、公式等
Installation
pip install markdown2feishu
# With CLI support
pip install markdown2feishu[cli]
Quick Start
Python API
import asyncio
from markdown2feishu import FeishuClient
async def main():
async with FeishuClient() as client:
# 推送 Markdown 到飞书文档
doc = await client.push_markdown(
content="# Hello World\n\nThis is **bold** text.",
title="My Document"
)
print(f"Document URL: {doc.url}")
asyncio.run(main())
CLI
# 设置凭据
export FEISHU_APP_ID="your_app_id"
export FEISHU_APP_SECRET="your_app_secret"
# 推送文件到飞书文档
feishu-md push README.md
# 推送到指定文件夹
feishu-md push README.md --folder <folder_token>
# 发送到群聊 (需配置 webhook_url)
feishu-md push README.md --webhook
Configuration
凭据可通过以下方式提供 (优先级从高到低):
- 代码参数: 直接传入
FeishuClient(app_id=..., app_secret=...) - 环境变量:
FEISHU_APP_ID,FEISHU_APP_SECRET,FEISHU_WEBHOOK_URL,FEISHU_FOLDER_TOKEN - 配置文件:
.feishu.toml(当前目录) 或~/.feishu.toml
配置文件示例
[feishu]
app_id = "cli_xxxxx"
app_secret = "xxxxx"
# 可选: 默认文档保存文件夹
folder_token = "xxxxx"
# 可选: 群机器人 Webhook URL
webhook_url = "https://open.feishu.cn/open-apis/bot/v2/hook/xxxxx"
获取凭据
- App ID / Secret: 飞书开放平台 → 创建应用 → 凭证与基础信息
- Folder Token: 打开飞书云文档文件夹,URL 中
/folder/后的字符串 - Webhook URL: 飞书群 → 设置 → 群机器人 → 添加自定义机器人
Supported Markdown Syntax
基础格式
| 语法 | 示例 | 说明 |
|---|---|---|
| 标题 | # H1 ## H2 ... |
支持 1-9 级 |
| 粗体 | **text** |
|
| 斜体 | *text* 或 _text_ |
|
| 删除线 | ~~text~~ |
|
| 行内代码 | `code` |
|
| 链接 | [text](url) |
块级元素
| 语法 | 说明 |
|---|---|
| 代码块 | ```python 支持语法高亮 (75种语言) |
| 引用 | > quote |
| 无序列表 | - item |
| 有序列表 | 1. item |
| 表格 | 标准 Markdown 表格 |
| 分割线 | --- |
数学公式
支持 LaTeX 语法:
行内公式: $E = mc^2$
块级公式:
$$
\frac{-b \pm \sqrt{b^2 - 4ac}}{2a}
$$
嵌套格式注意事项
当粗体内嵌套斜体时,建议使用不同标记符:
# 推荐写法
**粗体 _斜体_ 粗体**
# 避免 (可能解析错误)
**粗体 *斜体* 粗体**
Webhook vs Document
| 功能 | 文档推送 | Webhook 群消息 |
|---|---|---|
| 用途 | 创建可编辑的云文档 | 发送群聊通知 |
| 凭据 | app_id + app_secret | webhook_url |
| 格式支持 | 完整 Markdown + 公式 | 部分 Markdown (见下表) |
| 输出 | 文档 URL | 卡片消息 |
Webhook 支持的格式
飞书卡片消息仅支持部分 Markdown 语法:
| 语法 | 支持 |
|---|---|
**粗体** |
✅ |
*斜体* |
✅ |
[链接](url) |
✅ |
~~删除线~~ |
✅ |
换行 \n |
✅ |
`行内代码` |
❌ |
# 标题 |
❌ |
| 代码块 | ❌ |
| 表格 | ❌ |
| 公式 | ❌ |
如需完整格式支持,请使用文档推送功能。
Webhook 使用示例
async with FeishuClient() as client:
await client.send_webhook(
content="**部署成功** \n\n环境: production",
title="CI/CD 通知"
)
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
markdown2feishu-0.1.0.tar.gz
(26.7 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file markdown2feishu-0.1.0.tar.gz.
File metadata
- Download URL: markdown2feishu-0.1.0.tar.gz
- Upload date:
- Size: 26.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2b6d4f653f22dc8c3d18f9b0423e0a926dfa60e013de2da2906242ea69a132d3
|
|
| MD5 |
b8c328ce92086f27a4d524e97722c04e
|
|
| BLAKE2b-256 |
55965701a6dde5bc831ee2425b37f109a4d8146fa00ddb6f1d07649e79e10ea5
|
File details
Details for the file markdown2feishu-0.1.0-py3-none-any.whl.
File metadata
- Download URL: markdown2feishu-0.1.0-py3-none-any.whl
- Upload date:
- Size: 14.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f172680f9f885d4ff4772776eb9722814dea2b9fe3ed29ce324d0ba506607cee
|
|
| MD5 |
5a3cb65be9bc3c4e8f1f671a71888167
|
|
| BLAKE2b-256 |
4614967d025d0ffa5cd7e28d77e0eaee5c9210401f60c58a22aa8ae262096273
|