新起点丨开源建站工具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

相关文章

在macOS上安装jenv管理JDK版本的详细步骤

《在macOS上安装jenv管理JDK版本的详细步骤》jEnv是一个命令行工具,正如它的官网所宣称的那样,它是来让你忘记怎么配置JAVA_HOME环境变量的神队友,:本文主要介绍在macOS上安装... 目录前言安装 jenv添加 JDK 版本到 jenv切换 JDK 版本总结前言China编程在开发 Java

基于Python实现简易视频剪辑工具

《基于Python实现简易视频剪辑工具》这篇文章主要为大家详细介绍了如何用Python打造一个功能完备的简易视频剪辑工具,包括视频文件导入与格式转换,基础剪辑操作,音频处理等功能,感兴趣的小伙伴可以了... 目录一、技术选型与环境搭建二、核心功能模块实现1. 视频基础操作2. 音频处理3. 特效与转场三、高

基于Python开发一个图像水印批量添加工具

《基于Python开发一个图像水印批量添加工具》在当今数字化内容爆炸式增长的时代,图像版权保护已成为创作者和企业的核心需求,本方案将详细介绍一个基于PythonPIL库的工业级图像水印解决方案,有需要... 目录一、系统架构设计1.1 整体处理流程1.2 类结构设计(扩展版本)二、核心算法深入解析2.1 自

Python办公自动化实战之打造智能邮件发送工具

《Python办公自动化实战之打造智能邮件发送工具》在数字化办公场景中,邮件自动化是提升工作效率的关键技能,本文将演示如何使用Python的smtplib和email库构建一个支持图文混排,多附件,多... 目录前言一、基础配置:搭建邮件发送框架1.1 邮箱服务准备1.2 核心库导入1.3 基础发送函数二、

基于Python实现一个图片拆分工具

《基于Python实现一个图片拆分工具》这篇文章主要为大家详细介绍了如何基于Python实现一个图片拆分工具,可以根据需要的行数和列数进行拆分,感兴趣的小伙伴可以跟随小编一起学习一下... 简单介绍先自己选择输入的图片,默认是输出到项目文件夹中,可以自己选择其他的文件夹,选择需要拆分的行数和列数,可以通过

Python使用pip工具实现包自动更新的多种方法

《Python使用pip工具实现包自动更新的多种方法》本文深入探讨了使用Python的pip工具实现包自动更新的各种方法和技术,我们将从基础概念开始,逐步介绍手动更新方法、自动化脚本编写、结合CI/C... 目录1. 背景介绍1.1 目的和范围1.2 预期读者1.3 文档结构概述1.4 术语表1.4.1 核

Python使用OpenCV实现获取视频时长的小工具

《Python使用OpenCV实现获取视频时长的小工具》在处理视频数据时,获取视频的时长是一项常见且基础的需求,本文将详细介绍如何使用Python和OpenCV获取视频时长,并对每一行代码进行深入解析... 目录一、代码实现二、代码解析1. 导入 OpenCV 库2. 定义获取视频时长的函数3. 打开视频文

Linux中压缩、网络传输与系统监控工具的使用完整指南

《Linux中压缩、网络传输与系统监控工具的使用完整指南》在Linux系统管理中,压缩与传输工具是数据备份和远程协作的桥梁,而系统监控工具则是保障服务器稳定运行的眼睛,下面小编就来和大家详细介绍一下它... 目录引言一、压缩与解压:数据存储与传输的优化核心1. zip/unzip:通用压缩格式的便捷操作2.

sqlite3 命令行工具使用指南

《sqlite3命令行工具使用指南》本文系统介绍sqlite3CLI的启动、数据库操作、元数据查询、数据导入导出及输出格式化命令,涵盖文件管理、备份恢复、性能统计等实用功能,并说明命令分类、SQL语... 目录一、启动与退出二、数据库与文件操作三、元数据查询四、数据操作与导入导出五、查询输出格式化六、实用功

基于Python开发Windows屏幕控制工具

《基于Python开发Windows屏幕控制工具》在数字化办公时代,屏幕管理已成为提升工作效率和保护眼睛健康的重要环节,本文将分享一个基于Python和PySide6开发的Windows屏幕控制工具,... 目录概述功能亮点界面展示实现步骤详解1. 环境准备2. 亮度控制模块3. 息屏功能实现4. 息屏时间