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

相关文章

IDEA如何切换数据库版本mysql5或mysql8

《IDEA如何切换数据库版本mysql5或mysql8》本文介绍了如何将IntelliJIDEA从MySQL5切换到MySQL8的详细步骤,包括下载MySQL8、安装、配置、停止旧服务、启动新服务以及... 目录问题描述解决方案第一步第二步第三步第四步第五步总结问题描述最近想开发一个新应用,想使用mysq

基于Python开发电脑定时关机工具

《基于Python开发电脑定时关机工具》这篇文章主要为大家详细介绍了如何基于Python开发一个电脑定时关机工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 简介2. 运行效果3. 相关源码1. 简介这个程序就像一个“忠实的管家”,帮你按时关掉电脑,而且全程不需要你多做

java脚本使用不同版本jdk的说明介绍

《java脚本使用不同版本jdk的说明介绍》本文介绍了在Java中执行JavaScript脚本的几种方式,包括使用ScriptEngine、Nashorn和GraalVM,ScriptEngine适用... 目录Java脚本使用不同版本jdk的说明1.使用ScriptEngine执行javascript2.

基于C#实现PDF文件合并工具

《基于C#实现PDF文件合并工具》这篇文章主要为大家详细介绍了如何基于C#实现一个简单的PDF文件合并工具,文中的示例代码简洁易懂,有需要的小伙伴可以跟随小编一起学习一下... 界面主要用于发票PDF文件的合并。经常出差要报销的很有用。代码using System;using System.Col

redis-cli命令行工具的使用小结

《redis-cli命令行工具的使用小结》redis-cli是Redis的命令行客户端,支持多种参数用于连接、操作和管理Redis数据库,本文给大家介绍redis-cli命令行工具的使用小结,感兴趣的... 目录基本连接参数基本连接方式连接远程服务器带密码连接操作与格式参数-r参数重复执行命令-i参数指定命

五大特性引领创新! 深度操作系统 deepin 25 Preview预览版发布

《五大特性引领创新!深度操作系统deepin25Preview预览版发布》今日,深度操作系统正式推出deepin25Preview版本,该版本集成了五大核心特性:磐石系统、全新DDE、Tr... 深度操作系统今日发布了 deepin 25 Preview,新版本囊括五大特性:磐石系统、全新 DDE、Tree

Debian如何查看系统版本? 7种轻松查看Debian版本信息的实用方法

《Debian如何查看系统版本?7种轻松查看Debian版本信息的实用方法》Debian是一个广泛使用的Linux发行版,用户有时需要查看其版本信息以进行系统管理、故障排除或兼容性检查,在Debia... 作为最受欢迎的 linux 发行版之一,Debian 的版本信息在日常使用和系统维护中起着至关重要的作

Linux Mint Xia 22.1重磅发布: 重要更新一览

《LinuxMintXia22.1重磅发布:重要更新一览》Beta版LinuxMint“Xia”22.1发布,新版本基于Ubuntu24.04,内核版本为Linux6.8,这... linux Mint 22.1「Xia」正式发布啦!这次更新带来了诸多优化和改进,进一步巩固了 Mint 在 Linux 桌面

多模块的springboot项目发布指定模块的脚本方式

《多模块的springboot项目发布指定模块的脚本方式》该文章主要介绍了如何在多模块的SpringBoot项目中发布指定模块的脚本,作者原先的脚本会清理并编译所有模块,导致发布时间过长,通过简化脚本... 目录多模块的springboot项目发布指定模块的脚本1、不计成本地全部发布2、指定模块发布总结多模

Python pyinstaller实现图形化打包工具

《Pythonpyinstaller实现图形化打包工具》:本文主要介绍一个使用PythonPYQT5制作的关于pyinstaller打包工具,代替传统的cmd黑窗口模式打包页面,实现更快捷方便的... 目录1.简介2.运行效果3.相关源码1.简介一个使用python PYQT5制作的关于pyinstall