基于.NetCore开发 StarBlog 番外篇 (3) StarBlog Publisher,跨平台一键发布,DeepSeek加持的文章创作神器

前言

我一直在优化发布文章的工作流

之前的 StarBlog 已经支持文章打包上传(将 Markdown 和图片文件一并打包为 ZIP 格式上传),但还是有不少步骤,重复的次数多了,还是感觉麻烦。

为此我爆肝了几天,开发了这款 StarBlog Publisher,这个工具更进一步简化了发表文章流程,实现了真正的一站式发布体验,大幅提升了内容创作者的工作效率。

简介

StarBlog Publisher 是一款专为 StarBlog 博客系统 设计的专业文章发布工具,提供比传统打包上传更便捷的文章发布方式。

它支持 Markdown 格式文章的预览和发布,提供直观的用户界面,让您能够轻松管理和发布博客内容。

基于 C#和.NET 8.0 构建,充分利用 Microsoft.Extensions.AI 框架,集成了多种领先的 AI 大模型(包括 OpenAI 的 ChatGPT、Anthropic 的 Claude 和 DeepSeek 等),为内容创作提供智能辅助功能。

跨平台设计让您可以在 Windows、macOS 和 Linux 上享受一致的体验,展现了.NET 生态系统对现代 AI 应用开发的强大支持。

界面截图

主界面(浅色模式)

主界面(深色模式)

设置界面

解决 Markdown 写作的痛点

在使用 Markdown 进行博客写作时,我们经常会遇到以下痛点:

  • 图片处理繁琐:使用 Typora 等编辑器写作时,本地图片的管理和上传是一个常见的痛点。每次发布文章都需要单独处理图片资源
  • 发布流程复杂:传统的博客发布方式通常需要多个步骤,包括导出文章、处理图片、登录后台、填写信息等
  • 多平台适配困难:将同一篇文章发布到不同平台(如个人博客、知乎、公众号等)时,需要重复进行格式调整
  • 版本管理不便:文章的多次修改和更新难以追踪和管理

StarBlog Publisher 的优势

相比于传统的文章发布方式,StarBlog Publisher 提供了以下优势:

  • 一键发布:直接从本地 Markdown 文件发布到博客系统,无需手动打包上传
  • 自动图片处理:自动识别并处理 Markdown 中的本地图片,上传至服务器并更新链接
  • 实时预览:所见即所得的编辑体验,确保发布效果符合预期
  • 跨平台复制:发布后可一键复制格式化内容,方便发表到知乎、公众号等其他平台
  • AI 辅助创作:集成多种 AI 大模型,提供标题润色、内容总结等智能辅助功能
  • 本地与云端同步:保持本地文章与已发布文章的同步,便于持续更新

功能特点

  • Markdown 支持:完整支持 Markdown 格式,包括图片、链接、代码块等
  • 图片上传:自动处理 Markdown 中的本地图片,上传至博客服务器
  • 文章预览:实时预览 Markdown 渲染效果
  • 文章管理:支持文章的创建、编辑、发布和删除
  • 分类管理:支持对文章进行分类
  • AI 辅助:集成多种 AI 模型(OpenAI、Claude、DeepSeek 等),提供基于大模型的文章标题润色、文章总结和简介自动生成功能,大幅提升内容创作效率
  • 词云生成:可视化展示博客内容关键词
  • 主题切换:支持亮色/暗色主题切换
  • 代理设置:支持配置 HTTP 代理,解决网络访问问题
  • 自定义后端:可配置自定义的博客后端 API 地址

技术栈

  • UI 框架:Avalonia 11.2.1
  • 开发语言:C# (.NET 8.0)
  • MVVM 框架:CommunityToolkit.Mvvm 8.2.1 + ReactiveUI 19.5.41
  • Markdown 处理:Markdig 0.40.0 + Markdown.Avalonia 11.0.3
  • HTTP 客户端:Refit 8.0.0
  • AI 集成Microsoft.Extensions.AI 9.3.0
  • 对话框:MessageBox.Avalonia 3.1.5

下载方式和安装步骤

  1. Github Releases 页面下载最新版本
  2. 解压缩下载的文件
  3. 运行 StarBlogPublisher.exe

开发记录

最后来看下这个开发日志,爆肝好多天的成果!

核心功能

  • 文章管理

    • 添加文章更新功能并优化发布流程 (2025-03-23)
    • 添加获取文章详情的接口方法 (2025-03-23)
    • 新增博客文章相关模型和服务接口 (2025-03-23)
    • 重构发布文章逻辑为多个独立方法 (2025-03-23)
    • 修复更新文章内容后未重新获取文章详情的问题 (2025-03-23)
  • Markdown处理

    • 添加Markdown处理功能及工具类 (2025-03-23)
    • 添加文件路径支持并优化Markdown处理逻辑 (2025-03-23)
    • 重构图片处理逻辑,直接上传图片到后端 (2025-03-23)
    • 添加图片上传进度事件以提升用户体验 (2025-03-23)
  • 分类管理

    • 集成了分类API (2025-03-22)
    • 添加分类词云功能 (2025-03-23)

AI功能

  • 新增AI配置功能 (2025-03-23)
  • 添加AI生成文章简介功能 (2025-03-23)
  • 添加AI润色文章标题功能 (2025-03-23)
  • 添加重新生成文章简介按钮并优化AI功能状态管理 (2025-03-23)
  • 添加AIService类以支持AI文本生成和聊天回复 (2025-03-23)
  • 优化AI提供商配置及默认模型设置 (2025-03-23)
  • 优化AI提供商选择功能,增加显示名称和描述 (2025-03-23)
  • 优化AI服务提供者获取方式和简介生成提示 (2025-03-23)
  • 修复自定义AI提供者时未正确设置默认值的问题 (2025-03-23)

用户界面

  • 使用Claude初步完成了界面布局;以及markdown预览功能 (2025-03-12)
  • 增加了深色模式切换 (2025-03-13)
  • 新增了关于界面 (2025-03-13)
  • 调整主界面布局;新增预览界面 (2025-03-23)
  • 调整登录状态面板的布局和样式 (2025-03-23)
  • 保存深色/浅色模式切换 (2025-03-23)
  • 添加复制内容和重置标题功能 (2025-03-26)

用户体验

  • 打开文件时自动填充标题和文章说明 (2025-03-23)
  • 添加自动登录功能以提升用户体验 (2025-03-23)
  • 完成了密码切换显示/隐藏功能 (2025-03-22)

安全性

  • 增加了密码加密功能 (2025-03-22)
  • 接口服务增加了代理功能 (2025-03-23)

文档和配置

  • 新增了vscode的调试配置 (2025-03-18)
  • 添加README文件及项目相关图片 (2025-03-26)

Bug修复

  • 修复了配置加载失败的bug (2025-03-22)
  • 修复了AI生成的一个bug: 把showPassword搞反了 (2025-03-22)
  • 修复更新文章内容后未重新获取文章详情的问题 (2025-03-23)
  • 修复自定义AI提供者时未正确设置默认值的问题 (2025-03-23)
  • 关于界面的链接也改成正确的了 (2025-03-13)
相关推荐
乌拉_乌拉_乌拉13 分钟前
C# string字符串介绍
开发语言·c#
C#winform流程图32 分钟前
c#winform,倒鸭子字幕效果,typemonkey字幕效果,抖音瀑布流字幕效果
开发语言·c#
DanmF--2 小时前
Unity中UDP异步通信常用API使用
网络·网络协议·unity·udp·c#
闪电麦坤953 小时前
C#:第一性原理拆解字段(fields)
开发语言·c#
csdn_aspnet3 小时前
C# 简单数字时钟
c#
WineMonk5 小时前
C#使用用户名密码连接共享文件夹
windows·c#
CXH7286 小时前
CentOS 上 Apache Kafka 2.13-3.8.1 集群部署指南(ZooKeeper 模式)
c#·linq
乌拉_乌拉_乌拉6 小时前
C#连接sqlite数据库实现增删改查
数据库·sqlite·c#
橙子家czzj7 小时前
RSA 简介及 C# 和 js 实现【加密知多少系列_4】
javascript·c#
code bean1 天前
【C#】关键字 volatile
开发语言·c#