SuperAPI AI 工具集

telegraph-publisher

写作与研究

查看项目

更新于 10-16 08:28

技能介绍

telegraph-publisher 是一个通过 Telegraph API 发布和管理页面的技能工具,适合发布文章、研究报告、文档和图文内容。

用途

该工具用于将内容发布到 Telegraph,支持媒体嵌入、页面浏览统计以及长文章自动拆分。它面向需要发布文章、研究报告、文档或图文内容的场景。

主要能力

  • 通过 API 发布内容到 Telegraph,支持媒体。
  • 支持页面编辑、页面列表查询和账户信息读取。
  • 提供页面浏览量统计,可按全部时间或指定年、月、日、小时查询。
  • 长文章自动拆分:内容超过 60KB 时自动拆分为多个页面,并生成索引页链接各部分。
  • 媒体支持:图片、YouTube 嵌入、图表(PlantUML/Mermaid)和表格。
  • 表格处理:将 HTML 表格转换为等宽 pre 块,因为 Telegraph 不支持原生 HTML 表格节点。
  • 可选集成 fal-ai-image 生成插图(需单独安装该技能)。

使用方式

使用前必须阅读 SKILL.md。不要直接传入原始 markdown,需先转换为 HTML 片段。不要传入超过 64KB 的内容而不使用自动拆分。不要硬编码访问令牌,应使用 config/.env。发布、编辑、列出页面或读取账户详情前需完成账户设置;页面浏览量查询是公开的。

快速开始:

  • 无令牌:sh scripts/create_account.sh --name "Name"
  • 有令牌:保存到 config/.env
  • 发布页面:sh scripts/create_page.sh --title "Title" --html "<p>Content</p>"
  • 编辑页面:sh scripts/edit_page.sh --path "Path-03-09" --title "Title" --html "<p>New</p>"
  • 列出页面:sh scripts/list_pages.sh
  • 页面浏览量:sh scripts/page_views.sh --path "Page-Title-03-09"
  • 账户信息:sh scripts/account_info.sh
  • 永久媒体:sh scripts/github_upload.sh --file hero.webp --page-path page-path

账户与所有权:Telegraph 账户仅通过 API 使用(无密码/邮箱)。create_account.sh 生成 access_token 和一次性 auth_url;在浏览器中打开 auth_url 将 API 账户绑定到浏览器会话;页面属于使用其令牌创建页面的账户;浏览器绑定后,页面可在 telegra.ph 查看,并可通过浏览器和 API 编辑;如令牌泄露,可使用 --revoke 轮换令牌。

兼容性:脚本兼容 POSIX sh,可在云沙箱(/bin/sh)和本地运行。Python 脚本仅使用标准库(html.parser、json、sys)。

配置:create_page.sh、edit_page.sh、list_pages.sh 和 account_info.sh 需要在 config/.env 或环境中设置 TELEGRAPH_ACCESS_TOKEN。创建账户和读取公开页面浏览量统计不需要现有 Telegraph 令牌。可选的 TELEGRAPH_AUTHOR_NAME 和 TELEGRAPH_AUTHOR_URL 提供作者默认值。显式标志会覆盖每个字段,包括空字符串。

内容格式:Telegraph API 接受 Node 对象数组。该技能自动将 HTML 片段转换为 Node JSON。支持的 HTML 标签(Telegraph API 白名单):a、aside、b、blockquote、br、code、em、figcaption、figure、h3、h4、hr、i、iframe、img、li、ol、p、pre、s、strong、u、ul、video。仅保留 href 和 src 属性。不支持的标签会被剥离(保留子元素)。特殊处理:输入 HTML 表格(table、thead、tr、th、td)会转换为等宽 pre 块。

脚本:

  • create_account.sh:创建账户或轮换令牌。
  • account_info.sh:读取账户信息,可选包含 auth_url。
  • create_page.sh:从 HTML 字符串、HTML 文件或预构建 Node JSON 创建页面,支持作者信息,自动拆分超过 60KB 的内容。
  • edit_page.sh:编辑页面,需要路径、标题和新内容。
  • list_pages.sh:列出页面,支持 offset 和 limit。
  • page_views.sh:获取任何公开 Telegraph 页面的总浏览量或指定日历周期的总量,无需访问令牌。周期过滤器为层级关系:月需要年,日需要月,小时需要日。返回所选周期的一个浏览量计数,而非时间序列。Telegraph 未记录日和小时过滤器使用的时区。小时使用 0-23;实时 API 拒绝 24。
  • github_upload.sh:上传本地媒体到 GitHub 资产仓库并更新页面清单,输出固定提交的 jsDelivr URL。
  • github_delete_page_assets.sh:使用页面清单删除该页面的所有 GitHub 支持资产。
  • upload.sh:本地图片/视频上传到 Telegraph 的旧版回退方案,使用非官方 telegra.ph/upload 端点,仅尽力而为。
  • render_diagram.sh:通过公共服务器渲染 PlantUML/Mermaid 图表,可上传到 GitHub 或 Telegraph。
  • content_converter.py(内部):HTML 转 Node JSON、检查序列化大小、拆分大内容。

媒体支持:

  • 图片:首选工作流是上传本地文件到专用公共 GitHub 资产仓库,并通过 jsDelivr 提供服务。回退工作流是使用 upload.sh。
  • YouTube 嵌入:YouTube URL 自动规范化为嵌入格式。
  • 图表:首选渲染 PlantUML/Mermaid,存储图像到 GitHub 资产,然后发布 jsDelivr URL。旧版回退是渲染并上传。
  • 表格:Telegraph 不支持真正的 HTML 表格作为原生节点,该技能将输入 HTML 表格转换为可读的等宽 pre 块。移动优先规则:不要对具有 3 个以上密集列或长标签的宽表格使用 pre 表格。

可选:使用 fal-ai-image 生成插图。如果安装了 fal-ai-image 技能,可以在发布前生成插图。需先阅读 fal-ai-image SKILL.md,生成前与用户确认预算(从 $0.15/图像起),生成图像并保存 URL,将 URL 包含在 HTML 中,通过 create_page.sh 发布。telegraph-publisher 在没有 fal-ai-image 的情况下也能完全工作。

适用场景

适合发布文章、研究报告、文档和图文内容。需要媒体嵌入、页面浏览统计或长文章自动拆分的场景。

限制

  • 输入仅支持 HTML 片段(无 markdown 转换)。
  • 不缓存 API 响应。
  • 自动拆分边界:如果单个 HTML 元素超过 60KB,需要手动拆分。
  • upload.sh 使用非官方 Telegraph 端点,应仅视为旧版回退。
  • 图表渲染会将源发送到公共服务器(隐私考虑)。
  • Telegraph 不支持原生 HTML 表格节点。
  • 页面浏览量查询不返回时间序列,仅返回所选周期的一个计数。
  • 日和小时过滤器的时区未记录。