基于.NetCore开发 StarBlog 番外篇 (4) 文章一键发布工具Publisher大升级,AI功能增强与界面优化
前言
自从上次开发了 StarBlogPublisher 这个文章创作神器之后
我的博客+公众号文章工作流效率提升了不少
不过这软件还有一些功能欠缺和我不满意的地方
这次就在这个下暴雨的周末,把这个软件完善了一下
并且还有额外的产出:为了支撑一些软件功能的实现,我还开发了一些周边工具链,这些也会在接下来的文章中介绍。
欢迎下载体验: https://github.com/star-blog/starblog-publisher/releases/tag/v1.6
图标
这个图标是之前使用 AI 生成的
比较一般,不过暂时先这个吧,懒得改了,后面有时间再改。
先解决从无到有的问题
软件图标是透明的,不容易看清细节,我加了个背景:
界面优化
最大的改变还是界面优化
原本那个界面空间利用率不高,现在右侧把分类和说明做成两栏,更能利用空间
点击 查看旧版界面 进行对比
而且原本界面上有很多 emoji
如果只在一个系统上用(如 Windows)
那可能没啥问题
但我多个设备之间切换,就发现在 macOS 上效果不好,有些 emoji 显示得和 Windows 不一样
现在全部换成 Font Awesome 了,统一美观很多。感觉换图标这件事就可以单独写一篇文章了。
我这里用的是 Icon.Avalonia
这个第三方库
重点新功能
以下介绍几个重点的新功能
详细的更新内容日志在后面有,不过是大模型总结的,我知道很多同学不喜欢看 AI 生成的内容,所以放在文章的最后了。
Slug 配置
从界面截图上可以很直观的看到增加了 Slug 配置功能
众所周知,StarBlog 是支持文章 Slug 的,但之前这个文章发布工具没有这个配置
这次我加上了,顺便加了AI自动生成功能,解放双手~
独立的 AI 配置
之前的 AI 配置比较简单,统一在设置窗口里配置
不过现在 AI 功能是这个软件的重头戏,配置选项越来越多,在设置窗口里已经不满足需求了
于是原本设置窗口里,配置 AI 的地方,变成了一个按钮,点击之后打开新的 AI 配置窗口
当然主页面也能之间打开 AI 配置
AI 设置窗口长这样
这个 AI 设置现在加了不少功能
自动获取模型列表
首先是自动获取模型列表功能,openai 的接口提供了获取可用模型列表的功能,其他的模型提供商基本也兼容 openai 的接口协议,不过就不一定有提供这个功能了。
输入 API Key 之后,点击「测试」按钮就可以获取模型列表了
当获取不到的时候,就用默认模型列表,我全部更到了最新的模型列表
多组配置文件管理功能
现在对大模型的需求已经很多了
很多人可能同时用着多个模型服务
来到这个软件的场景,可能用户在平时使用便宜的模型(如 DeepSeek)
当要求更高的模型性能时,会切换到较贵的模型(如 GPT-o3)
之前没有多组配置文件时,要进入设置修改新的 API Key,非常麻烦
现在只要添加一次,就能自由切换了
小结
AI 时代,大模型为独立开发者带来的效率提升是很可观的
最近我就利用大模型的能力完成了很多之前计划好久,但一直没时间去做的工作
感谢科技发展带来的生产力提升,接下来我也会开发更多使用 AI 提升效率的小工具,进一步解放生产力~
详细更新内容
从语言风格或许能看出来,以下更新内容是 AI 生成的
是的,我开发了一个工具,可以一键根据 Git 提交记录,自动生成详细专业的更新内容,后续我会写文章介绍一下。
Features
- 更新应用程序图标,统一所有窗口图标风格,提升整体品牌识别度
- 新增 AI 配置文件管理功能,支持创建、删除、重命名和选择不同的 AI 配置文件,配置更加灵活
- 集成 FontAwesome 图标库,提升界面美观性和一致性
- 新增 AI 设置窗口,支持配置 AI 提供商、API 密钥和模型,集成测试连接与模型动态加载功能。
- 新增 文章 Slug 生成功能,可通过 AI 自动生成符合 URL 规范的 Slug,并优化文章信息编辑体验。
- 自动完成输入框支持“获取焦点时自动下拉”,提升 AI 设置操作便捷性。
- AI 设置窗口新增状态信息区域,实时反馈模型加载进度与结果。
- 丰富清华智谱 AI 模型描述,标明完全免费及代表性模型。
️ Refactor
- 优化按钮样式,统一
IconButton
、Primary
、Danger
等风格,改善不同背景下的可见性 - 图标按钮增加悬停及按下状态,增强用户体验
- 使用 FontAwesome 图标替换原有按钮中文本表情符号,界面更统一易读
- 重构 AIService,支持设置变更自动重载,调整私有字段修饰符提升可维护性。
- 优化 AIProviderInfo,扩展模型列表与模型描述信息。
- 重构 build.py 构建脚本,平台检测与目标系统处理逻辑提取为独立函数,支持多构建配置,提升跨平台兼容性。
- 发布目录清理脚本支持多平台符号文件(如 Windows PDB、其他平台调试文件)的自动移除。
Dependencies
- 新增
Projektanker.Icons.Avalonia.FontAwesome
依赖,支持丰富的图标显示 - README 中新增依赖项说明:
Sdcb.WordCloud
、LoadingIndicators.Avalonia
。
Docs
- 更新 README 文档,补充核心亮点描述、AI 相关功能及界面预览,优化界面预览排版
- 增加、替换部分图片资源,删除不再使用的旧资源
- 调整 About 页面高度以适配新版内容
- 增强文档视觉效果,新增/优化图片资源与分类词云图片。
- AboutWindow 及 AboutWindowViewModel 更新,反映新功能。
Others
- 项目版本号升级至 1.6
- 优化 AI 配置文件加载和设置保存逻辑,提升设置流程流畅度
- 删除不再使用的分类词云图片,清理冗余资源。
- 合并远程分支更新,保证主干同步。
基于.NetCore开发 StarBlog 番外篇 (4) 文章一键发布工具Publisher大升级,AI功能增强与界面优化的更多相关文章
- Java微信公众平台开发【番外篇】(七)--公众平台测试帐号的申请
转自:http://www.cuiyongzhi.com/post/45.html 前面几篇一直都在写一些比较基础接口的使用,在这个过程中一直使用的都是我个人微博认证的一个个人账号,原本准备这篇是写[ ...
- netcore开发windows普通服务(非Web)并一键发布到服务器
如何开发并一键发布WindowsService项目(netcore普通项目) netcore下开发windows服务如果是web项目的话,由于aspnetcore本身是支持的,把默认的host.Run ...
- Java微信公众平台开发(十四)【番外篇】--微信web开发者工具使用
转自:http://www.cuiyongzhi.com/post/58.html 为帮助开发者更方便.更安全地开发和调试基于微信的网页,微信推出了 web 开发者工具.它是一个桌面应用,通过模拟微信 ...
- 前端开发--nginx番外篇
Centos7下Nginx开发使用(背景: 阿里云ECS Centos7) 安装和启动 安装教程 Centos7安装Nginx实战 需要主意的如下: 文中第四步 4.配置编译参数命令:(可以使用./c ...
- 小白自制Linux开发板 番外篇 一 modprobe加载驱动问题(转载整理)
使用modprobe加载驱动 转载地址:https://blog.csdn.net/qq_39101111/article/details/78773362 前面我们提到,modprobe并不需要指定 ...
- 痞子衡嵌入式:超级下载算法(RT-UFL)开发笔记番外(1) - JLinkScript妙用
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是超级下载算法开发笔记番外篇之JLinkScript妙用. JLinkScript 文件是配套 J-Link 调试器使用的脚本,这个脚本适 ...
- 基于.NetCore开发博客项目 StarBlog - (17) 自动下载文章里的外部图片
系列文章 基于.NetCore开发博客项目 StarBlog - (1) 为什么需要自己写一个博客? 基于.NetCore开发博客项目 StarBlog - (2) 环境准备和创建项目 基于.NetC ...
- 基于.NetCore开发博客项目 StarBlog - (21) 开始开发RESTFul接口
前言 最近电脑坏了,开源项目的进度也受到一些影响 这篇酝酿很久了,作为本系列第二部分(API接口开发)的第一篇,得想一个好的开头,想着想着就鸽了好久,索性不扯那么多了,直接开写吧~ 关于RESTFul ...
- 基于.NetCore开发博客项目 StarBlog - (25) 图片接口与文件上传
前言 上传文件的接口设计有两种风格,一种是整个项目只设置一个接口用来上传,然后其他需要用到文件的地方,都只存一个引用ID:另一种是每个需要文件的地方单独管理各自的文件.这俩各有优劣吧,本项目中选择的是 ...
- 知识图谱实战开发案例剖析-番外篇(1)- Neo4j是否支持按照边权重加粗和大数量展示
一.前言 本文是<知识图谱实战开发案例完全剖析>系列文章和网易云视频课程的番外篇,主要记录学员在知识图谱等相关内容的学习 过程中,提出的共性问题进行展开讨论.该部分内容原始内容记录在网易云 ...
随机推荐
- SpringBoot - [02] 第一个SpringBoot程序
jdk maven3.6.3 springboot最新版 idea 如果使用官网 Spring Initializr ,则需要jdk17.21.22,并且是Springboot3.x 可以在idea创 ...
- 基于 Flink+Iceberg 构建企业级实时数据湖
Apache Flink 是大数据领域非常流行的流批统一的计算引擎,数据湖是顺应云时代发展潮流的新型技术架构.那么当 Apache Flink 遇见数据湖时,会碰撞出什么样的火花呢?本次分享主要包括以 ...
- PHP检测用户是否关闭浏览器的方法
1.例子1 echo str_repeat(" ",3000); ignore_user_abort(true); mylog('online'); while (true) { ...
- Gits-命令
Git基础命令 Git是一个分布式版本控制系统,由Linus Torvalds创建,用于有效.高速地处理从小到大的项目版本管理.以下是一些基本的Git命令和概念,它们对于使用Git进行版本控制至关重要 ...
- ccrc 评审资料该如何编写【通用型】
核心思路:各个过程中和安全检查内容进行对应 首先应该有信息安全服务规范 其次准备好平时项目的所有文档 第三,参照规范内容,每一项要求[准备.需求.设计.编码.测试.验收.维保]在原有文档上进行筛选和补 ...
- 堆排序(标准版)(NB)
博客地址:https://www.cnblogs.com/zylyehuo/ # _*_coding:utf-8_*_ import random def sift(li, low, high): # ...
- Linux系统挂载未分配硬盘空间
先查看未挂载之前的磁盘使用情况 发现磁盘使用率已经达到了96%,迫切需要扩容 查看分区情况fdisk –l 首先确保有可分配的磁盘空间 发现/dev/vda下有400多个G 的空间 所以将/dev/v ...
- 基于DotNetty实现自动发布 - 背景篇
故事背景 小公司,单体项目,接口和页面都在一起,生产和测试环境都是 Windows 服务器和 IIS, 本地编译完成,把相关的页面和程序集拷贝到服务器上,尤其是涉及到多个页面,一个个页面找到对应的位置 ...
- 使用MCP C# SDK开发MCP Server + Client
大家好,我是Edison. 近日被MCP刷屏了,刚好看到张队发了一篇文章提到MCP的官方C# SDK发布了预览版,于是手痒痒尝了一下鲜,写了一个DEMO分享给大家. MCP是什么鬼? MCP,全称是& ...
- 比较LLM的function calling,Agent 和MCP
比较 对比维度 MCP(Model Context Protocol) Function Calling Agent(智能体) 定义 由 Anthropic 推出的开放协议,标准化 LLM ...