Markdown 上传到乐享

SKILL效率
效率 未标注权限 许可证不明确 已核验
安装这个技能

乐享知识库的公共上传层:把 Markdown 图文(本地图片、LaTeX 公式、表格、代码块)转成可编辑的乐享在线文档,支持新建与原地覆盖。核心是把「上传前本地预检 + 写入后线上对账」做成固定流程,图片顺序、图文混排和标题层级不会错位;对外提供稳定 CLI 接口(cli_api=1),供抓取归档、文档翻译、笔记同步等上层 Skill 复用,业务方不必自己实现上传。适用场景:把 AI 生成的 Markdown 报告发布成乐享文档、批量导入存量 Markdown 笔记、给知识库补图文内容、给其他 Skill 提供统一上传能力。关键词:Markdown 上传、乐享文档、图文混排、公式渲染、知识库写入、批量导入、cli_api。

一句话选型结论

按资料字段整理

Markdown 上传到乐享是效率类的 Agent Skill,安装方式:ClawHub 市场,权限级别未标注,许可证不明确,有可直接复制的安装命令。技能本质是给模型读的说明书,效果取决于模型与客户端;装完先用一个小任务验证,再放进正式流程。

分类效率 安装方式ClawHub 市场 权限级别未标注权限 许可证许可证不明确
累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 未标注
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

ClawHub 市场
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
skillhub install user_fadd436c/upload-markdown-to-lexiang
  1. 1
    确认客户端支持

    确认你的客户端支持 Skills(Claude、Codex、Cursor 等),并升级到较新的版本。

  2. 2
    拿到技能文件

    执行上面的命令安装;也可以把仓库里的 SKILL.md 手动放进客户端的 skills 目录。

  3. 3
    刷新技能列表

    重新打开客户端,或刷新技能列表,让新放进来的技能被加载。

  4. 4
    验证是否生效

    问一句「你有哪些技能」,确认列表里出现它,再拿一个小任务试跑。

技能档案

效率
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方user_fadd436c仓库 未标注 · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式ClawHub 市场安装包 clawhub
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验2026-11-06上游最后核验时间 · 数据更新 2026-11-06
正文体量11.8 KBSKILL.md 原文大小,越大说明说明书写得越细

典型使用场景

3 类
按分类整理的常见用法,具体以 SKILL.md 为准
整理待办与日程

把零散任务收进清单,排出优先级。

批量处理重复任务

把固定动作做成模板,重复执行。

把流程写成清单

把口头流程整理成可复用的步骤。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 已做过站内核验,页面字段与仓库对得上。
  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有标注权限级别,实际能做什么要装好后确认。
  • 许可证不明确,商用或二次分发前先到仓库确认条款。
  • 技能只是说明书,实际效果取决于模型与客户端,装完先用小任务试一遍。

更适合

  • 需要在效率场景里给模型补一套做法的人。
  • 愿意先读一遍 SKILL.md、确认它会让模型做什么的人。

不太适合

  • 对许可证要求很严、必须明确可商用的人。
  • 只想装完就自动变强、不打算看说明书的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
技能权限级别安装方式累计安装宿主客户端安装命令
Markdown 上传到乐享当前 未标注权限 ClawHub 市场 未标注 未标注 有
Nano PDF 文档 联网访问 ClawHub 市场 424.9 万 OpenClaw 有
自动更新程序 浏览器控制 ClawHub 市场 296.4 万 OpenClaw 有
Gemini 助手 联网访问 ClawHub 市场 254.7 万 OpenClaw 有
word DOCX 文档 联网访问 ClawHub 市场 239.6 万 OpenClaw 有
Excel XLSX 前端 联网访问 ClawHub 市场 227.0 万 OpenClaw 有

SKILL.md 全文

11.8 KB
模型实际读到的说明书原文,来自技能仓库

Upload Markdown to Lexiang

这是 Markdown → 乐享在线文档的唯一公共上传层。抓取、翻译、目录策略、增量同步等业务逻辑应留在上层 Skill。
可移植 Markdown 中的目标专有标注解析与乐享块渲染属于本 Skill,不由调用方上传后修补。

硬性规则

  1. 上传代码只维护在本 Skill;禁止复制到调用方。
  2. 只使用从 <https://lexiangla.com/ai/claw> 获取的个人凭证。
  3. 禁止读取 Agent MCP 配置、连接器 OAuth token 或扫描本地代理。
  4. 创建或修改页面前完成全部本地预检,写入后必须线上对账。
  5. stdout 只输出 JSON/页面 URL,诊断和进度输出到 stderr。

定位本 Skill

调用方不得写死某个 Agent 的安装目录。按以下顺序定位:

  1. 环境变量 LEXIANG_UPLOADER_HOME。
  2. 当前上层 Skill 所在 skills 根目录的同级 Skill:
    &lt;skills-root&gt;/upload-markdown-to-lexiang。
  3. 当前 Agent 暴露的已安装 Skill 列表。
  4. 当前平台的 Skill 管理器默认安装目录。

用户 ajaxhe 的本地开发默认目录是
~/.workbuddy/skills/upload-markdown-to-lexiang,这不是跨用户公共契约。

定位后调用:

python3 &quot;&lt;skill-root&gt;/scripts/lexiang_upload.py&quot; --version

上层 Skill 必须要求 cli_api == &quot;1&quot;,不得 import 内部 Python 模块。

首次配置个人凭证

> 2026-09-22(v1.4.0):乐享 MCP 服务端已切换为网关模式——tools/list
> 只暴露 call_tool/get_tool_schema/lexiang_fetch/lexiang_search/
> list_tool_categories/search_tools/whoami 7 个元工具,业务工具
> (entry_*/block_*)直呼 tools/call 会被拒:tool is not allowed: &gt; &lt;tool&gt;。本 Skill 的 MCPClient._request 已内置自动回退:直呼失败且报
> tool is not allowed 时,改经 call_tool 元工具以
> {&quot;tool_name&quot;: &lt;tool&gt;, &quot;arguments&quot;: {...}} 转发,业务返回结构不变。
> 旧版直连服务端(直呼成功)行为不变。

页面提供的凭证是 lxmcp_ 前缀 MCP API Token 和 company_from。本 Skill
直接使用 Authorization: Bearer &lt;lxmcp_token&gt;,不做 OAuth token 交换。

python3 &quot;&lt;skill-root&gt;/scripts/lexiang_upload.py&quot; auth login
python3 &quot;&lt;skill-root&gt;/scripts/lexiang_upload.py&quot; auth status --check

凭证默认保存在 ~/.config/lexiang-upload/credentials.json,权限为 0600,
不会写进 Skill 或 Git 仓库。

多账号可使用命名 profile,保存到
~/.config/lexiang-upload/profiles/&lt;profile&gt;.json:

python3 &quot;&lt;skill-root&gt;/scripts/lexiang_upload.py&quot; auth login \
  --profile obsidian-sync
python3 &quot;&lt;skill-root&gt;/scripts/lexiang_upload.py&quot; auth status \
  --profile obsidian-sync --check
python3 &quot;&lt;skill-root&gt;/scripts/lexiang_upload.py&quot; upload article.md \
  --profile obsidian-sync --parent-id &quot;&lt;PARENT_ID&gt;&quot; --json

也可用 --credential-file PATH 指定凭证保存/读取位置。auth login --file PATH
表示从导出文件读取凭证内容,不是保存目标。选择优先级为:
--credential-file、--profile、LEXIANG_UPLOAD_CREDENTIALS、
LEXIANG_UPLOAD_PROFILE、default;default 始终对应原有 credentials.json。

> ⚠️ 上传前核对凭证租户(2026-09-15 坑):default credentials.json 的
> company_from 可能不是目标知识库所在租户(例如被外链分享租户
> e6c565d6d16811efac17768586f8a025 覆盖)。租户不匹配时父目录会报
> code 71 不存在ID为...的kb_entry资源。遇到 code 71 先检查凭证
> company_from;ajaxhe 个人知识库(csig 租户)上传固定使用
> --profile csig。

上传

创建新页面:

python3 &quot;&lt;skill-root&gt;/scripts/lexiang_upload.py&quot; upload article.md \
  --parent-id &quot;&lt;PARENT_ID&gt;&quot; --name &quot;标题&quot; --json

覆盖已有页面:

python3 &quot;&lt;skill-root&gt;/scripts/lexiang_upload.py&quot; upload article.md \
  --entry-id &quot;&lt;ENTRY_ID&gt;&quot; --json

只做预检:

python3 &quot;&lt;skill-root&gt;/scripts/lexiang_upload.py&quot; upload article.md \
  --parent-id &quot;&lt;PARENT_ID&gt;&quot; --dry-run --json

调用方职责

  • 调用方只负责确定 parent_id、entry_id 和归档策略(标题、置顶、来源等)。
  • 本 Skill 负责 Markdown 解析、本地图片、公式转换、目标专有标注渲染、页面写入和线上对账。
  • 本地图片路径支持 %20、未转义空格及 &lt;images/file name.png&gt; 形式;所有识别到的
    本地图片都必须进入预检与线上数量对账。
  • &gt; [!stat]、&gt; [!definition] 与 &gt; [!note] 连续 blockquote 由本 Skill分别渲染为
    📊/📖/💡 乐享 callout;note 可承载文章亮点列表。调用方禁止二次 MCP 修补。
    普通 blockquote 不受影响。
  • 非 Markdown 独立附件、视频和音频不属于本 Skill。

页面写入不变量(重要)

execute_plan 写入前,entry 必须为空(新建页初始 0 block;覆盖已有页时先
clear_existing_page)。因此所有片段(含首段)统一走
block_convert_content_to_blocks → block_create_block_descendant 逐块写入
,
不再对首段使用 block_update_page 的 replace_content。

原因(2026-07-16 修复):replace_content 对含多行引用块等结构的首段,会触发
乐享服务端 round-trip 结构校验失败(报
replacement content is structurally unstable after round trip),且此时页面
已被 clear 清空 → 留下空壳 entry。改为 create_descendant 后同一内容可稳定写入,
线上对账 verified=true。修改此处务必保持「写入前页面为空」这一前置条件。

乐享平台硬限制(预检已覆盖)

限制 表现 本 Skill 的处理
单表列数 ≤ 10 超限时服务端报 column_size: ... less than or equal to 10(code 51),此时页面已被 clear 清空,留下半成品 entry check_table_columns 在预检阶段直接报错,要求调用方按列分组拆表(每张表保留第 0 列作行标签列)
单表行数 ≤ 10 平台自动分页 split_large_gfm_tables 主动按 10 行切分并重复表头
同站外链被改写 [标题](https://lexiangla.com/pages/xxx) 在线上变成 &lt;mention-page url=&quot;/pages/xxx&quot;&gt;xxx&lt;/mention-page&gt;:链接文字替换为条目 id、URL 变成相对路径 源文链接行不参与长锚点对账(见下)

调用方遇到「列数超限」时不要指望上传层自动拆表:按列拆表会改变文档结构,
分组边界必须由了解表格语义的上层 Skill 决定。

线上对账锚点(重要)

verify_remote 用「长段落锚点」做线上对账:从源 Markdown 每行提取纯文本
(≥80 字),normalize_for_compare 归一后检查是否为远程 clean 文本的子串。

源文链接行不作为锚点(2026-09-15 修复):prepend_source_link 注入的
**原文链接**:[标题](url) 行,在线上会被乐享规范化成页内引用节点
(&lt;mention-page url=&quot;/pages/&lt;id&gt;&quot;&gt;),链接文字被替换成条目 id、URL 变成相对路径,
因此该行纯文本(含原始 URL)永远无法命中远程文本,会让每次上传都稳定误报
「缺少长段落锚点 1/N」。_anchors 用 _SOURCE_LINK_LINE_RE 跳过这一行。

围栏代码块内容不作为锚点(2026-09-22 修复):围栏(含 mermaid)内 的长行不参与对账。代码块内的 HTML 标签(如 mermaid 换行 `&lt;br/&gt;`)在源文侧 被 `_plain_text` 整体删除、在远端 clean 文本中却保留字面 &quot;br&quot; 字母 (`normalize_for_compare` 不剥 HTML 标签),子串匹配必然失败。实测含时序图 的文档 6 个锚点稳定误报缺失 1 个。`_anchors` 以 行开关 in_fence 状态,
跳过围栏内的所有行。

列表项锚点必须去掉行首列表标记(2026-07-20 修复):乐享 round-trip 会把
有序列表序号重编号(如 1. 2. 3. 全部变成 1. 1. 1.),序号本身不是稳定
锚点。_anchors 在提取前用 _LIST_PREFIX_RE 去掉 数字. / 数字) / - /
* / + 行首标记,使锚点只依赖正文内容。修改此处时勿重新引入对列表序号的
依赖,否则序号 ≥2 的列表项会在远程文本中找不到子串匹配而误判缺失
(报 缺少长段落锚点)。

锚点比对忽略 URL 本体(2026-09-24 修复):normalize_for_compare 先解开
markdown 链接/图片语法(只留显示文字),再把 http(s)://… 的 URL 本体整体删掉。
原因是同一个 URL 在两侧的呈现可能不同:源文里是裸 URL(出现 1 次),乐享 clean
文本会把它渲染成 [url](url)(出现 2 次);反之源文写作 [文字](url) 时
_plain_text 会保留 URL,而线上可能只留显示文字。任一侧不一致,子串匹配就必然
失败——表现为每次上传都 VERIFY_ERROR: 缺少长段落锚点 n/N,且因 verified≠true
不进 manifest,同一篇文档会被无限重传。实测案例:一篇正文含
访问 knot:https://knot.woa.com/... 的文章稳定误报。段落完整性改由正文文字
保证;归一化后长度 < 10 的锚点(整段几乎只有 URL)直接跳过,不误报缺失。

正文里的尖括号与强调符不是稳定锚点(2026-09-28、2026-10-08 两次复现):
源文普通段落中的 &lt;...&gt;(如「应用 &lt;客户端标识&gt;」)在线上会被当 HTML 标签丢弃,
成对下划线(如 server._sign(sid)、device_code)会被当强调符解析,两者都会让该段
的远程文本与源文不再一致,稳定报 缺少长段落锚点 1/N。围栏代码块已整体跳过对账
(见上),但行内代码跨度与普通正文仍参与。写作约定:含 &lt;&gt; 或 _ 的命令行、
函数签名、字段名,要么放进围栏代码块,要么在正文中改用不含这两类字符的自然语言
(如「设备码」而非 device_code)。修好后用 --entry-id 覆盖即可,无需重建条目。

完整参数、JSON 输出和退出码见 references/cli-contract.md。

修改与验证

发现公共上传问题时,只修改本仓库并运行:

python3 -m unittest discover -s tests -v

兼容改动升级次版本;破坏 CLI 契约时升级主版本和 cli_api。

常见问题

5 问
答案由本站依据条目字段整理
Markdown 上传到乐享怎么安装?

在支持 Skills 的客户端里执行:skillhub install user_fadd436c/upload-markdown-to-lexiang。安装方式为ClawHub 市场。装完刷新技能列表或重开客户端。

Markdown 上传到乐享支持哪些客户端?

资料没有标注宿主客户端,但只要客户端支持 Skills(Claude、Codex、Cursor 等),一般都能加载。

Markdown 上传到乐享权限高吗,安全吗?

权限级别为未标注权限。安装前先看它会读取或写入哪些内容。

Markdown 上传到乐享收费吗?

本站不代收费用,也没有标注具体价格。是否收费取决于技能本身和所用的模型或客户端,正式使用前按作者说明确认。

Markdown 上传到乐享用什么许可证?

许可证标注为 未说明(许可证不明确)。商用或二次分发前请到仓库确认条款原文。

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 2026-11-06。