Bili Sunflower Publish

Polar Sponsor
爱发电 赞助
.NET 9.0

将 HTML 或 Markdown 内容发布至 Bilibili — 支持 专栏(article)和 小站(tribee)两种目标类型。自动处理登录状态检查、标题输入,以及通过 ed… 注入内容。

bili- sunflower-publish. 统一发布 bilibili 的管道: HTML/Markdown 文件 – 编辑器 – 发布.. . 直接使用

功能概述

bili- sunflower-publish. 统一发布 bilibili 的管道: HTML/Markdown 文件 – 编辑器 – 发布.. . 直接使用是一项面向实际任务的技能,主要用于支持两个目标 : (A)。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。

核心要点

  • 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
  • 该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。
  • 从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。

使用与执行

实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。

结果检查与注意事项

执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。

bili-sunflower-publish

面向哔哩哔哩的统一发布流程:HTML/Markdown 文件 → 编辑器 → 发布。直接调用 window.editor API,不依赖系统剪贴板。

支持两类发布目标:

  • 专栏(Article):发布于 member.bilibili.com 的长文形式文章
  • 小站(Tribee):发布于 bilibili.com/bubble 的社区帖文

前置条件

  • 浏览器工具,需配置 openclaw profile(由 Playwright 管理的浏览器实例)

输入

  • 内容文件路径(正文)—— 支持 .html 与 .md / .markdown 文件
  • 目标类型:article(专栏)或 tribee(小站)—— 根据用户意图推断
  • 标题(可选 — 见第二阶段)
  • 若为目标为小站:需提供 小站名称或 ID(必填)
  • 若为目标为小站:可选提供 分区(分类,用户可在发布时指定或手动选择)

第一阶段:导航与登录检查

专栏模式

跳转至 https://member.bilibili.com/york/read-editor 并截取快照。

  • 已登录:编辑器加载完成,标题输入框显示提示文字 "请输入标题(建议30字以内)"
  • 未登录:跳转至登录页

小站模式

发布页面 URL:https://www.bilibili.com/bubble/publish?tribee_id={id}&tribee_name={name}

发布 URL 中 tribee_id 与 tribee_name 均为必需参数。缺失参数时按如下方式解析:

用户提供 解析方式
id + name 直接构造发布 URL
仅 id 跳转至 https://www.bilibili.com/bubble/home/{id},从页面中提取小站名称,再构造发布 URL
仅 name 访问搜索页 https://search.bilibili.com/all?keyword={name},查找指向 bilibili.com/bubble/home/{id} 的卡片,提取 {id},再构造发布 URL

成功跳转至发布 URL 后:

  • 已登录且为该小站成员:编辑器加载完成,显示标题与正文编辑区域
  • 未登录:跳转至登录页
  • 非该小站成员:可能显示加入提示 —— 需明确告知用户先加入小站

若未登录,立即中止并提示用户在 openclaw 浏览器 profile 中手动完成登录,之后重试。

第二阶段:预处理与标题处理

根据输入文件类型执行对应预处理脚本。脚本负责 H1 标题提取、标题层级提升、图片内联(inline),以及(对 HTML)空白字符清理。

2a. 对 .html 文件

python3 {SKILL_DIR}/scripts/preprocess_html.py  [output-dir]

输出(标准输出,共 3 行):

title=<提取出的标题>
path=<处理后 HTML 文件路径>
bytes=

从输出中解析 title 与 path。位于 path 的已处理 HTML 文件即可用于第三阶段注入。

2b. 对 .md / .markdown 文件

python3 {SKILL_DIR}/scripts/preprocess_md.py  [output-dir]

输出(标准输出,共 3 行):

title=<提取出的标题>
path=<处理后 Markdown 文件路径>
bytes=

从输出中解析 title 与 path。位于 path 的已处理 Markdown 文件即可用于第三阶段注入。

2c. 标题校验

若用户显式提供了标题,则优先采用该标题,而非脚本提取结果。

确定最终标题后,进行如下校验:

  • 标题长度超过 50 字符:生成 2–3 个精简版备选标题,供用户选择
  • 标题明显无意义(例如 output、untitled、temp,或明显与正文内容无关):读取正文前几百字符,生成 2–3 个标题建议,供用户选择

严禁静默采用低质量标题。必须等待用户选定后方可继续后续流程。

输入标题:点击标题输入框并键入。

第三阶段:插入文章正文

两种编辑器共享同一富文本编辑组件(window.editor)。

使用第二阶段产出的预处理内容注入编辑器。

重要 — JS 字符串转义要求:

内容(HTML 或 Markdown)常含破坏 JS 语法的字符(反引号、引号、换行符、反斜杠等)。你 必须 使用下方方法安全构造 JS 执行代码。禁止 将原始内容直接拼入 JS 变量赋值语句中。

如何构造 evaluate JS 代码

请严格按以下步骤操作,适用于 HTML 与 Markdown 注入:

  1. 从第二阶段输出中获取已处理文件路径(path=...)
  2. 运行以下命令,生成 JSON 转义后的文件内容字符串:
python3 -c "import json,sys; print(json.dumps(open(sys.argv[1]).read()))" 

该命令输出一个双引号包裹的 JSON 字符串,其中所有特殊字符(换行、引号、反斜杠等)均已转义,例如:"line1nline2"quoted""。

  1. 将上述 stdout 输出捕获为 ESCAPED_JSON_STRING
  2. 将 ESCAPED_JSON_STRING 嵌入下述模板(见 3a-HTML / 3a-MD)构建完整 JS 代码。注意:该字符串本身已含双引号,因此应直接置于 JSON.parse( 后,无需额外添加引号。

3a-HTML:已处理 HTML → ClipboardEvent 派发

(function () {
  const html = JSON.parse(ESCAPED_JSON_STRING);
  const clipboardData = new DataTransfer();
  clipboardData.setData('text/html', html);
  clipboardData.setData('text/plain', '');

  const pasteEvent = new ClipboardEvent('paste', {
    bubbles: true,
    cancelable: true,
    clipboardData,
  });

  window.editor.view.dom.dispatchEvent(pasteEvent);
})();

注意: 若 HTML 内容较大(>50KB),需分块依次粘贴。

3a-MD:已处理 Markdown → editor importMarkdown 命令

(function () {
  const markdown = JSON.parse(ESCAPED_JSON_STRING);
  window.editor.commands.importMarkdown({
    content: markdown,
    replaceContent: true,
  });
})();

3b. 内容校验

执行 JS 以确认内容已正确插入:

(function () {
  const e = window.editor.view.dom;
  return { chars: e.textContent.length, first80: e.textContent.substring(0, 80) };
})();

预期结果:chars > 100,且 first80 与文章开头一致。

第四阶段:发布

专栏模式

编辑器底部存在“发布设置”面板(通常默认可见),其默认配置可直接使用:

  • 可见范围:所有人可见(默认)
  • 封面:从正文自动提取(默认)
  • 评论:开启(默认)

若用户有特定发布偏好,应在发布前调整:

设置 操作 说明
可见范围 单选:“所有人可见” / “仅自己可见” “仅自己可见”不支持分享与商业推广
自定义封面 勾选复选框 → 上传图片 不设置则自动截取正文开头文字
评论开关 勾选/取消复选框 关闭后无法评论
精选评论 勾选复选框 开启后需手动筛选评论才展示
定时发布 勾选复选框 → 选择时间 时间范围:当前时间 +2 小时 至 7 天内(北京时间)
创作声明-原创 勾选复选框 声明原创,禁止转载
创作声明-AI 勾选复选框 标识使用 AI 合成技术
话题 点击“添加话题”按钮 可选
文集 点击“选择文集”按钮 可选

操作步骤:

  1. 滚动至底部,确认“发布设置”面板可见;若已折叠,点击“发布设置”按钮展开
  2. 应用上表中用户指定的各项设置
  3. 点击右下角 “发布” 按钮(位于“保存为草稿”旁)
  4. 若弹出确认对话框,确认操作
  5. 验证发布是否成功(URL 变化或出现成功提示)

小站模式

正文输入完成后,底部栏自动出现,默认配置可直接使用:

  • 分区:未选择(部分小站可能强制要求)
  • 同步至动态:开启(默认)

若用户有特定偏好,应在发布前调整:

设置 操作 说明
分区 点击“选择分区”下拉菜单 → 选择分区 部分小站可能必选
同步至动态 取消勾选复选框 默认开启,取消后不同步到动态

分区自动选择(仅小站)

当用户 未指定 分区时:

  1. 点击“选择分区”下拉菜单,展开可用选项列表
  2. 从下拉菜单中读取所有分区名称(通过快照)
  3. 基于 文章标题 + 正文前约 200 字符,选择最相关的分区:
    • 依据关键词/主题相似性匹配(例如教程类内容 → “经验分享”,提问类 → “提问求助”)
    • 若无明显匹配项,则选择最通用/兜底的分区
    • 若小站仅有 1–2 个泛用选项,直接选取最优者,无需过度纠结
  4. 点击所选分区
  5. 无需 向用户确认 —— 直接选定并继续(用户可随时重新发布更正)

若用户 已指定 分区,则直接采用(跳过自动选择)。

操作步骤:

  1. 处理分区(按用户指定或上述自动逻辑)
  2. 应用其他用户指定的设置
  3. 点击右下角 “发布” 按钮(蓝色,右下角)
  4. 验证发布是否成功

执行方式

默认行为:在主会话中顺序执行第一至第四阶段(支持用户交互,如登录、标题选择等)。

仅当用户明确要求时,才交由子 agent 执行。

相关专题

更多
Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

2026.10.22

0

11

Gradle Wrapper配置教程
Gradle Wrapper配置教程

本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。

2026.10.22

0

10

Golangci-lint检查器使用教程
Golangci-lint检查器使用教程

本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。

2026.10.22

0

15

Gradle怎么构建Java项目
Gradle怎么构建Java项目

本专题介绍Gradle Java项目构建方法,涵盖Java插件配置、依赖声明、源码编译、测试执行和打包检查,帮助你理解各阶段的任务关系,逐步完成项目构建。

2026.10.22

0

10

PHP时间戳漏洞修复教程
PHP时间戳漏洞修复教程

本专题汇总PHP常见时间戳漏洞,包括2038年溢出、时区漂移、时间戳伪造、重放攻击、时间盲注与日志审计失效等,并给出升级64位环境、使用 DateTimeImmutable、统一UTC、严格超时校验、预处理绑定、hash_equals 比对等修复方案,帮助开发者快速排查和加固时间相关代码。

2026.10.22

0

25

Golangci-lint配置文件与规则设置
Golangci-lint配置文件与规则设置

本专题聚焦Golangci-lint YAML配置文件,讲清运行参数、规则启停、目录排除、问题过滤及严重级别设置,便于团队统一检查标准。

2026.10.22

0

15

Golangci-lint安装与入门教程
Golangci-lint安装与入门教程

本专题讲解Golangci-lint的安装、初始化、基础命令和首次代码检查,覆盖本地环境、Docker及多平台用法,帮助Go开发者快速上手。

2026.10.22

0

15

PHP2Shell高危漏洞修复教程
PHP2Shell高危漏洞修复教程

PHP2Shell漏洞是什么,哪些PHP版本和运行环境会受到影响,服务器应该如何检测与修复?本专题提供版本自查脚本、Linux与Docker升级命令、PHP-FPM和Apache排查步骤,以及修复验证、临时缓解和应急响应方案。

2026.10.22

0

12

剧云人物设定与关系管理教程
剧云人物设定与关系管理教程

本专题介绍剧云人物设定与关系管理,讲解角色小传、性格职业、人物目标、背景资料和关系网络的创建及维护方法。

2026.10.22

0

16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.7万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 134万人学习