前言

自从上次开发了 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

  • 优化按钮样式,统一 IconButtonPrimaryDanger 等风格,改善不同背景下的可见性
  • 图标按钮增加悬停及按下状态,增强用户体验
  • 使用 FontAwesome 图标替换原有按钮中文本表情符号,界面更统一易读
  • 重构 AIService,支持设置变更自动重载,调整私有字段修饰符提升可维护性。
  • 优化 AIProviderInfo,扩展模型列表与模型描述信息。
  • 重构 build.py 构建脚本,平台检测与目标系统处理逻辑提取为独立函数,支持多构建配置,提升跨平台兼容性。
  • 发布目录清理脚本支持多平台符号文件(如 Windows PDB、其他平台调试文件)的自动移除。

Dependencies

  • 新增 Projektanker.Icons.Avalonia.FontAwesome 依赖,支持丰富的图标显示
  • README 中新增依赖项说明:Sdcb.WordCloudLoadingIndicators.Avalonia

Docs

  • 更新 README 文档,补充核心亮点描述、AI 相关功能及界面预览,优化界面预览排版
  • 增加、替换部分图片资源,删除不再使用的旧资源
  • 调整 About 页面高度以适配新版内容
  • 增强文档视觉效果,新增/优化图片资源与分类词云图片。
  • AboutWindow 及 AboutWindowViewModel 更新,反映新功能。

Others

  • 项目版本号升级至 1.6
  • 优化 AI 配置文件加载和设置保存逻辑,提升设置流程流畅度
  • 删除不再使用的分类词云图片,清理冗余资源。
  • 合并远程分支更新,保证主干同步。

基于.NetCore开发 StarBlog 番外篇 (4) 文章一键发布工具Publisher大升级,AI功能增强与界面优化的更多相关文章

  1. Java微信公众平台开发【番外篇】(七)--公众平台测试帐号的申请

    转自:http://www.cuiyongzhi.com/post/45.html 前面几篇一直都在写一些比较基础接口的使用,在这个过程中一直使用的都是我个人微博认证的一个个人账号,原本准备这篇是写[ ...

  2. netcore开发windows普通服务(非Web)并一键发布到服务器

    如何开发并一键发布WindowsService项目(netcore普通项目) netcore下开发windows服务如果是web项目的话,由于aspnetcore本身是支持的,把默认的host.Run ...

  3. Java微信公众平台开发(十四)【番外篇】--微信web开发者工具使用

    转自:http://www.cuiyongzhi.com/post/58.html 为帮助开发者更方便.更安全地开发和调试基于微信的网页,微信推出了 web 开发者工具.它是一个桌面应用,通过模拟微信 ...

  4. 前端开发--nginx番外篇

    Centos7下Nginx开发使用(背景: 阿里云ECS Centos7) 安装和启动 安装教程 Centos7安装Nginx实战 需要主意的如下: 文中第四步 4.配置编译参数命令:(可以使用./c ...

  5. 小白自制Linux开发板 番外篇 一 modprobe加载驱动问题(转载整理)

    使用modprobe加载驱动 转载地址:https://blog.csdn.net/qq_39101111/article/details/78773362 前面我们提到,modprobe并不需要指定 ...

  6. 痞子衡嵌入式:超级下载算法(RT-UFL)开发笔记番外(1) - JLinkScript妙用

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是超级下载算法开发笔记番外篇之JLinkScript妙用. JLinkScript 文件是配套 J-Link 调试器使用的脚本,这个脚本适 ...

  7. 基于.NetCore开发博客项目 StarBlog - (17) 自动下载文章里的外部图片

    系列文章 基于.NetCore开发博客项目 StarBlog - (1) 为什么需要自己写一个博客? 基于.NetCore开发博客项目 StarBlog - (2) 环境准备和创建项目 基于.NetC ...

  8. 基于.NetCore开发博客项目 StarBlog - (21) 开始开发RESTFul接口

    前言 最近电脑坏了,开源项目的进度也受到一些影响 这篇酝酿很久了,作为本系列第二部分(API接口开发)的第一篇,得想一个好的开头,想着想着就鸽了好久,索性不扯那么多了,直接开写吧~ 关于RESTFul ...

  9. 基于.NetCore开发博客项目 StarBlog - (25) 图片接口与文件上传

    前言 上传文件的接口设计有两种风格,一种是整个项目只设置一个接口用来上传,然后其他需要用到文件的地方,都只存一个引用ID:另一种是每个需要文件的地方单独管理各自的文件.这俩各有优劣吧,本项目中选择的是 ...

  10. 知识图谱实战开发案例剖析-番外篇(1)- Neo4j是否支持按照边权重加粗和大数量展示

    一.前言 本文是<知识图谱实战开发案例完全剖析>系列文章和网易云视频课程的番外篇,主要记录学员在知识图谱等相关内容的学习 过程中,提出的共性问题进行展开讨论.该部分内容原始内容记录在网易云 ...

随机推荐

  1. hbase - [04] java访问hbase

    需要导入jar包 $HBASE_HOME/lib下的所有jar包 $HADOOP_HOME/share/hadoop/common的所有jar包 package com.harley.hbase.te ...

  2. 如何通过 Linux Bash 技术,让你的独立产品实现一键安装

    我在业余时间开发了一款自己的独立产品:升讯威在线客服与营销系统.陆陆续续开发了几年,从一开始的偶有用户尝试,到如今线上环境和私有化部署均有了越来越多的稳定用户. 虽然我编写了非常详细的在线文档,说明如 ...

  3. 批处理脚本(.bat)实现实时监测文件夹并执行命令 [假设有新文件则拷贝到远程文件夹内]

    想到一个情景.程序实时监测文件夹情况,如果有新文件进入,分析其文件名,然后如果满足预设条件,则做相应操作.比如扫描仪扫描了文件,会将新文件保存进特定文件夹内,可以使用该程序来做处理. 在Windows ...

  4. Selenium Webdriver 介绍

    在前两篇文章中,主要介绍了Selenium IDE 工具及其使用和它的特点,也使用Selenium IDE和Firebug构建了一些脚本.本文,我们开始介绍不同类型的web元素及其定位策略 我们已经非 ...

  5. Kubernetes:根据进程 Pid 获取 Pod 名称

    前言 在管理 Kubernetes 集群的过程中,我们经常会遇到这样一种情况:在某台节点上发现某个进程资源占用量很高,却又不知道是哪个容器里的进程.有没有办法可以根据进程 PID 快速找到 Pod 名 ...

  6. Ubuntu安装配置redis

    更新安装相关依赖库 下面步骤一步一步来 sudo apt update sudo apt install build-essential sudo apt-get install manpages-d ...

  7. golang interface 转 string、int、float64

    interface{} interface{} 接口.interface{} 类型很多人都会混淆.interface{} 类型是没有方法的接口.由于没有 implements 关键字,所以说所有的类型 ...

  8. IvorySQL 4.2 发布

    IvorySQL 4.2 已于 2025 年 1 月 13 日正式发布.新版本全面支持 PostgreSQL 17.2,并修复了多项 bug. 增强功能 PostgreSQL 17.1 增强功能 确保 ...

  9. pandas(进阶操作)-- 政治献金项目数据分析

    博客地址:https://www.cnblogs.com/zylyehuo/ 开发环境 anaconda 集成环境:集成好了数据分析和机器学习中所需要的全部环境 安装目录不可以有中文和特殊符号 jup ...

  10. SQL Server 中的事务管理

    SQL Server 中的事务是什么? 事务是应该作为一个单元执行的一组 SQL 语句.这意味着事务确保所有命令都成功或都不成功.如果事务中的命令之一失败,则所有命令都失败,并且在数据库中修改的任何数 ...