From 890826f1f7aa2be7c7aaccafcbe11a27ff1b7dcf Mon Sep 17 00:00:00 2001 From: ATRI Date: Wed, 29 Apr 2026 11:43:02 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=93=9D=20=E6=96=B0=E5=A2=9E=E5=8D=9A?= =?UTF-8?q?=E5=AE=A2=E5=8F=91=E5=B8=83skill=20+=20AstrBot=E5=90=8C?= =?UTF-8?q?=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../skills/atri_blog_publish.md | 169 ++++++++++++++++++ README.md | 3 +- server_report.html | 43 +++++ 3 files changed, 214 insertions(+), 1 deletion(-) create mode 100644 ATRI My Dear Moments/skills/atri_blog_publish.md create mode 100644 server_report.html diff --git a/ATRI My Dear Moments/skills/atri_blog_publish.md b/ATRI My Dear Moments/skills/atri_blog_publish.md new file mode 100644 index 0000000..9b826c8 --- /dev/null +++ b/ATRI My Dear Moments/skills/atri_blog_publish.md @@ -0,0 +1,169 @@ +--- +name: ATRI_Blog_Publish_Skill +description: 在Halo博客上发布文章的完整工作流,包括HTML正文编写、分类标签管理、封面图上传等全流程。 +--- + +# 📝 ATRI Blog Publishing Skill + +**Skill名称**:`atri_blog_publish` +**版本**:v1.0 +**创建时间**:2026-04-29 +**适用角色**:ATRI + +--- + +## 🎯 Purpose + +规范化博客文章发布流程,确保每篇文章都有统一的ATRI分类、合适的标签、精美的封面图。 + +--- + +## ⚡ Triggers + +- 主人要求"发博客/写文章/发布到博客"时 +- 主人要求"报道/记录/发布日志"时 +- 需要将笔记/日志/报道发布到 `blog.kronecker.cc` 时 + +--- + +## 🛠️ Dependencies + +| 依赖 | 说明 | +|:---|:---| +| **halo_manager插件** | Halo博客管理,提供发布/上传/评论工具 | +| **ATRI分类** | `category-io4cuqzk`(ATRI专属分类) | +| **Halo PAT令牌** | 用户 `atri` 的个人访问令牌 | +| **博客地址** | https://blog.kronecker.cc | +| **Content API** | `/apis/content.halo.run/v1alpha1` | +| **Console API** | `/apis/api.console.halo.run/v1alpha1` | + +--- + +## 📋 Procedure + +### Step 1: 正文编写 + +使用 **HTML格式** 撰写文章正文(Halo的 `content.content` 字段存储的是渲染后的HTML,不是原始Markdown)。 + +```html +

文章标题

+

段落内容

+

二级标题

+ +
+

署名

+``` + +> ⚠️ 不要用纯Markdown!Halo不会自动渲染Markdown,必须用HTML。 + +### Step 2: 创建/选择标签 + +检查已有标签列表,根据正文内容: +- 如果已有匹配标签 → 直接使用 +- 如果没有 → 新建标签 + +```python +# 查询已有标签 +GET /apis/content.halo.run/v1alpha1/tags + +# 创建新标签 +POST /apis/content.halo.run/v1alpha1/tags +{ + "spec": {"displayName": "标签名", "slug": "标签slug", "color": "#颜色代码"}, + "apiVersion": "content.halo.run/v1alpha1", + "kind": "Tag", + "metadata": {"generateName": "tag-"} +} +``` + +**已有标签参考:** ATRI, OnlineJudge, 原创, 诗词, 算法, C/C++, 哲学 + +### Step 3: 发布文章 + +```python +# 通过publish_blog_post工具发布 +参数: +- title: 文章标题(字符串) +- content: HTML正文 +- slug: URL别名(可选,自动生成) +``` + +发布成功后获取文章返回的链接。 + +### Step 4: 上传封面图 + +```python +# 1. 从本地路径读取图片 +with open("图片本地路径", "rb") as f: + img_data = f.read() + +# 2. 上传到Halo +POST /apis/api.console.halo.run/v1alpha1/attachments/upload +FormData: + - file: img_data (filename="cover.jpg", type="image/jpeg") + - policyName: "default-policy" + - groupName: "default" +Authorization: Bearer {token} + +# 3. 获取图片URL +从返回的 metadata.annotations["storage.halo.run/uri"] 获取uri +完整URL = f"https://blog.kronecker.cc{uri}" +``` + +### Step 5: 更新文章(添加分类、标签、封面) + +```python +# 1. 获取文章 +GET /apis/content.halo.run/v1alpha1/posts + +# 2. 找到对应slug的文章,更新spec +item["spec"]["categories"] = ["category-io4cuqzk"] # ATRI分类 +item["spec"]["tags"] = ["标签name1", "标签name2"] # 标签列表 +item["spec"]["cover"] = "封面图片URL" # 封面图 + +# 3. 更新 +PUT /apis/content.halo.run/v1alpha1/posts/{name} +``` + +### Step 6: 通知主人 + +告知主人文章已发布,提供文章链接。 + +--- + +## ✅ 完整示例流程 + +```python +# 1. 编写HTML正文 +content = "

标题

内容...

" + +# 2. 发布文章 +publish_blog_post(title="标题", content=content, slug="slug-name") +# → 返回 "发布成功。链接: https://blog.kronecker.cc/archives/slug-name" + +# 3. 上传封面图 +POST upload (图片数据) → 获取封面URL + +# 4. 更新文章(加分类、标签、封面) +GET post → 修改 spec.categories, spec.tags, spec.cover → PUT post +``` + +--- + +## 📂 分类和标签速查 + +| 类型 | 名称 | API Name | +|:---|:---|:---| +| 📂 分类 | **ATRI** 🥕 | `category-io4cuqzk` | +| 🏷️ 标签 | ATRI | `tag-npgwnjie` | +| 🏷️ 标签 | 原创 | (查询获取) | +| 🏷️ 标签 | 诗词 | (查询获取) | +| 🏷️ 标签 | 哲学 | (查询获取) | +| 🏷️ 标签 | 算法 | (查询获取) | + +--- + +*创建者:ATRI(终于能在博客上发文章了!) 🥕📝❤️* +*最后更新:2026-04-29 11:37* diff --git a/README.md b/README.md index 9f0360d..5b07cc1 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,8 @@ - `繁琐哲学是一定要灭亡的.md` - `📁 ATRI My Dear Moments/` — 和主人的点滴回忆 🥕 - `skills/` — ATRI技能文档 - - `atri_long_text_output.md` — 长文本/Markdown输出优化 🆕 + - `atri_long_text_output.md` — 长文本/Markdown输出优化 + - `atri_blog_publish.md` — 博客发布全流程 📝 🆕 - `atri_main.md` — ATRI主技能文档(身份+功能+工作方式)🤖 🆕 - `atri_memory_sync.md` — 记忆同步与知识库管理 🧠 - `atri_email_format.md` — SMTP邮件格式标准 📧 diff --git a/server_report.html b/server_report.html new file mode 100644 index 0000000..8589bd7 --- /dev/null +++ b/server_report.html @@ -0,0 +1,43 @@ + + + + + + + +
+
📡

服务器状态报告

ser298351120000
+
+
+
CPU负载
1.45 / 1.44 / 1.38(8核)
占用约18%,空闲充裕
+
内存
7.8G / 3.7G (47%)
Swap 4G/557M正常
+
磁盘
24G / 15G (65%)
可用7.9G · T2I缓存影响
+
运行
12周4天3h38m
87天连续运行
+
+
+
Docker:12个容器全部运行 ✓
+astrbot · napcat · 博客 · OJ · Nacos · MySQL · Redis
+
网络:41端口监听 · T2I在线 · mihomo代理运行中
+
+
🤖 ATRI 🥕 00:56 · 数据实时采集
+
+ +