新起点丨开源建站工具Halo发布2.0版本

2024-02-29 11:30

本文主要是介绍新起点丨开源建站工具Halo发布2.0版本,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

2022年12月1日,FIT2CLOUD飞致云旗下开源建站项目Halo(github.com/halo-dev)正式发布v2.0版本。这是Halo项目继v1.0版本后的第二个里程碑版本,研发团队采用全新架构进行项目重写,实现了从单用户机制向多用户体系的转变,提供全新设计的插件机制和主题机制,改进了附件管理方式,为用户提供富文本编辑器,同时提供后台全局搜索能力。

Halo是一款好用又强大的开源建站工具,它让你无需太多的技术知识就可以快速搭建一个博客、网站或者内容管理系统。

截至目前(2022年12月1日),Halo已经在Docker Hub获得了超过150万次下载,GitHub Star数突破24k,并拥有一百多名社区贡献者。我们在此对所有参与到Halo产品及社区建设的朋友们表达由衷的感谢。

Halo2.0发布视频

亮点功能

■ 多用户与权限体系

Halo 1.0版本仅支持单管理员机制,这极大限制了Halo的多人使用场景。在Halo 2.0中,我们引入了多用户及RBAC权限体系,支持多用户同时登录管理Halo,并且支持用户权限的细粒度控制,可以为不同的用户分配不同的权限,从而实现不同的用户角色。

在这里插入图片描述

■ 灵活可扩展的插件机制

Halo 2.0带来了全新设计的插件机制,这也是2.0版本底层架构变动的主要原因。在Halo 1.0时,我们因为无法对功能进行拓展,所以随着版本不断迭代会导致系统越来越臃肿。比如我们在1.0集成了市面上常见的云存储方案,但绝大部分用户都不会使用到所有的存储方案,这些功能对于Halo来说就变成了一种负担。在Halo 2.0中,我们将这些功能抽离出来,通过插件的形式进行集成,这样用户可以根据自己的需求自由选择,不再会因为一些不需要的功能而导致系统的臃肿。同时也可以实现不更新整个Halo应用,对插件进行单独更新,降低用户更新使用新功能的代价。

我们为插件机制提供了以下能力:

ꔷ 插件的动态加载、卸载、升级;

ꔷ 自定义模型的接入,方便插件的数据存储;

ꔷ 接入Halo的配置模块,方便插件的配置管理;

ꔷ 以及拓展后端、管理端、主题端的能力。

在这里插入图片描述

从上图可以看到:

ꔷ 我们将评论组件和搜索组件做成了插件,这是为了方便主题直接使用,而不需要主题单独为这两个功能进行开发;

ꔷ 1.0的友情链接管理功能也被抽离出来,成为了一个独立的通用插件;

ꔷ 阿里云OSS的存储策略也使用插件提供,安装了这个插件即可将附件上传至阿里云OSS;

ꔷ Umami插件提供了对Umami的集成,可以在Halo控制台直接查看网站访问情况;

ꔷ Unsplash插件提供了对Unsplash的集成,可以在编写内容的时候从Unsplash选择图片。

相信随着我们对Halo的持续迭代和生态建设的持续投入,Halo的插件生态会越来越丰富。

目前已支持Halo 2.0的插件可以访问https://github.com/halo-sigs/awesome-halo查阅。

■ 全新的主题机制

Halo 2.0在主题机制上,有以下主要改进:

ꔷ 使用Thymeleaf作为默认的模板引擎;

ꔷ 支持主题预览,可以在不启用主题的情况下预览主题效果;

ꔷ 支持多语言;

ꔷ 全新的设置表单定义机制,支持更多的输入选项,支持表单验证和条件判断;

ꔷ 全新设计的主题可视化设置界面,支持预览不同设备的效果,支持保存设置之后实时预览效果。

在这里插入图片描述

■ 全新的默认主题

我们为Halo 2.0提供了全新的默认主题,并命名为Earth,我们计划在未来以太阳系成员的命名方式提供一系列的官方默认主题。
在这里插入图片描述

■ 可扩展的附件管理

在Halo 1.0时,社区用户呼声比较高的需求之一就是改进附件管理方式。在2.0版本,我们全新设计了附件的功能,支持分组管理、存储策略等功能。分组管理功能可以帮助用户更好地组织管理不同使用场景的附件。存储策略功能可以让用户定义多个不同的附件存储位置,同时也可以通过插件来拓展外部云存储,比如上面提到的阿里云OSS。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

此外,选择附件时还可以通过插件支持更多的附件来源,比如上面提到的Unsplash插件,可以做到在编辑内容的时候直接从Unsplash网站选择配图。

在这里插入图片描述

■ 强大的富文本编辑器

在2.0,为了解决Markdown编辑器无法对一些复杂的排版场景进行支持的问题,我们默认提供了富文本编辑器,它能够很好地支持图片插入、表格、任务列表等。不过考虑到部分用户对Markdown有较强的需求,我们将在后续版本中提供对Markdown格式编辑的支持。除此之外,你也可以通过安装插件的方式使用你最喜欢的编辑器。

在这里插入图片描述

■ 便捷的后台全局搜索

我们在后台提供了全局搜索功能,可以快速搜索后台的页面、文章、附件、主题等资源。并且提供了快捷键(Ctrl+K,Mac下为Cmd+K)来快速打开搜索框,提高后台的操作效率。

在这里插入图片描述

■ 支持搜索引擎

在Halo 1.0的时候,我们搜索文章是通过SQL模糊匹配的方式来实现的,这种方式的搜索效率和准确性都不够理想。在2.0中,我们默认使用了Apache Lucene来提供搜索引擎的支持,也为主题端提供了通用的搜索框组件,大大提高了搜索功能的实用性。同样的,搜索引擎我们也支持通过插件来展,比如集成Elasticsearch、MeiliSearch等。

在这里插入图片描述

完整变更日志

关于Halo 2.0的完整特性和变更日志,请访问GitHub Release页面。

https://github.com/halo-dev/halo/releases

接下来

在Halo 2.0正式版发布之后,我们会继续完善Halo的功能和文档,并在每个月按时发布一个功能版本。同时将持续投入对Halo生态的建设,让用户能够更加方便地使用Halo搭建各式各样的网站,构建心中的理想站点。此外,我们也将在不久之后开启应用市场的开发,让用户获取主题、插件更加便捷。同时我们也会不断加大对前沿技术及用户体验的探索,让Halo朝着好用又强大的零代码建站工具的目标持续迈进。

Halo此前的成绩离不开每一位参与者的贡献与支持,踏上这个新的起点,Halo的未来也仍需各位共同努力。

这篇关于新起点丨开源建站工具Halo发布2.0版本的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/758631

相关文章

Python基于wxPython和FFmpeg开发一个视频标签工具

《Python基于wxPython和FFmpeg开发一个视频标签工具》在当今数字媒体时代,视频内容的管理和标记变得越来越重要,无论是研究人员需要对实验视频进行时间点标记,还是个人用户希望对家庭视频进行... 目录引言1. 应用概述2. 技术栈分析2.1 核心库和模块2.2 wxpython作为GUI选择的优

Linux卸载自带jdk并安装新jdk版本的图文教程

《Linux卸载自带jdk并安装新jdk版本的图文教程》在Linux系统中,有时需要卸载预装的OpenJDK并安装特定版本的JDK,例如JDK1.8,所以本文给大家详细介绍了Linux卸载自带jdk并... 目录Ⅰ、卸载自带jdkⅡ、安装新版jdkⅠ、卸载自带jdk1、输入命令查看旧jdkrpm -qa

SpringKafka消息发布之KafkaTemplate与事务支持功能

《SpringKafka消息发布之KafkaTemplate与事务支持功能》通过本文介绍的基本用法、序列化选项、事务支持、错误处理和性能优化技术,开发者可以构建高效可靠的Kafka消息发布系统,事务支... 目录引言一、KafkaTemplate基础二、消息序列化三、事务支持机制四、错误处理与重试五、性能优

Tomcat版本与Java版本的关系及说明

《Tomcat版本与Java版本的关系及说明》:本文主要介绍Tomcat版本与Java版本的关系及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Tomcat版本与Java版本的关系Tomcat历史版本对应的Java版本Tomcat支持哪些版本的pythonJ

新特性抢先看! Ubuntu 25.04 Beta 发布:Linux 6.14 内核

《新特性抢先看!Ubuntu25.04Beta发布:Linux6.14内核》Canonical公司近日发布了Ubuntu25.04Beta版,这一版本被赋予了一个活泼的代号——“Plu... Canonical 昨日(3 月 27 日)放出了 Beta 版 Ubuntu 25.04 系统镜像,代号“Pluc

使用Java实现通用树形结构构建工具类

《使用Java实现通用树形结构构建工具类》这篇文章主要为大家详细介绍了如何使用Java实现通用树形结构构建工具类,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录完整代码一、设计思想与核心功能二、核心实现原理1. 数据结构准备阶段2. 循环依赖检测算法3. 树形结构构建4. 搜索子

利用Python开发Markdown表格结构转换为Excel工具

《利用Python开发Markdown表格结构转换为Excel工具》在数据管理和文档编写过程中,我们经常使用Markdown来记录表格数据,但它没有Excel使用方便,所以本文将使用Python编写一... 目录1.完整代码2. 项目概述3. 代码解析3.1 依赖库3.2 GUI 设计3.3 解析 Mark

IDEA中Git版本回退的两种实现方案

《IDEA中Git版本回退的两种实现方案》作为开发者,代码版本回退是日常高频操作,IntelliJIDEA集成了强大的Git工具链,但面对reset和revert两种核心回退方案,许多开发者仍存在选择... 目录一、版本回退前置知识二、Reset方案:整体改写历史1、IDEA图形化操作(推荐)1.1、查看提

利用Go语言开发文件操作工具轻松处理所有文件

《利用Go语言开发文件操作工具轻松处理所有文件》在后端开发中,文件操作是一个非常常见但又容易出错的场景,本文小编要向大家介绍一个强大的Go语言文件操作工具库,它能帮你轻松处理各种文件操作场景... 目录为什么需要这个工具?核心功能详解1. 文件/目录存javascript在性检查2. 批量创建目录3. 文件

jvm调优常用命令行工具详解

《jvm调优常用命令行工具详解》:本文主要介绍jvm调优常用命令行工具的用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一 jinfo命令查看参数1.1 查看jvm参数二 jstack命令2.1 查看现场堆栈信息三 jstat 实时查看堆内存,gc情况3.1