前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于Halo搭建个人网站

基于Halo搭建个人网站

作者头像
神奇的程序员
发布2022-05-25 08:56:22
3.6K0
发布2022-05-25 08:56:22
举报
文章被收录于专栏:神奇的程序员的专栏

前言

最近花了点时间基于Halo把自己的网站改造了下,实现了站内的文章阅读、点赞、评论、留言板等功能,本文就跟大家介绍并分享下我改造后的网站[1],欢迎各位感兴趣的开发者阅读本文。

环境搭建

Halo[2]是一款现代化的开源博客/CMS系统,官网[3]列举了详细的环境搭建教程[4],按着官网给出的教程一步步往下走,即可完成安装,过程很顺利,此处不做过多赘述。

对我改造好的网站比较感兴趣的开发者,请移步:在线地址[5]

自定义数据库

如果你有一定的Java/SpringBoot/Gradle基础,希望对搭建好的环境进行更深层次的定制,你可以继续阅读本章节,否则跳过即可。

Halo默认采用H2作为数据库,因为我本地装有MySQL,为了方便管理,我决定把它改掉,在文档的数据库章节[6]提供了配置方案,我们需要将Halo的源码[7]clone到本地,打开application.yaml文件,删除H2相关的配置,加入如下所示的配置:

代码语言:javascript
复制
spring:
  datasource:
   # MySQL database configuration.
    driver-class-name: com.mysql.cj.jdbc.Driver
    # 修改成你的数据库地址
    url: jdbc:mysql://127.0.0.1:3306/halodb?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
    # 数据库的用户名与密码
    username: root
    password: 123456

注意:halo目前只支持mysql且版本必须大于等于5.7。

自定义缓存

本章节也需要你有一定的Java/SpringBoot/Gradle基础,否则跳过即可。

Halo的默认缓存策略是到内存中的,它支持redis缓存方式,我本地装有redis,因此也一并修改了,在文档的缓存章节[8]提供了配置方案,打开application.yaml文件,修改cache字段值为redis,并加入redis的连接配置,如下所示:

代码语言:javascript
复制
spring:
  redis:
    # redis端口号
    port: 6379
    database: 0
    # redis地址
    host: 127.0.0.1
    # redis密码
    password: 123456
halo:
 cache: redis

编译项目

做完上述修改后,我们需要对项目进行编译(注意你的jdk版本必须大于等于11),打开idea中的Gradle面板,执行build命令的jar即可。

image-20220506000934441

编译过程中可能会看到一些test的报错,它不影响最终打包结果,可以忽略不计,打包成功后,在项目的build/libs目录下即可看到打包出来的文件。

image-20220506001324907

最后,拿着打包出来的去运行即可(同样的,运行环境的jdk>=11)。

选择主题

环境搭建完毕后,在浏览器输入http://127.0.0.1:8090即可看到初始化界面了,根据页面提示一步步的往下进行即可。

由于默认界面是比较丑的,halo提供了主题仓库[9],里面有许多第三方主题,可以挑选一个好看的进行改造,我挑选的是Joe 2.0主题[10],基于它进行了改造,在线地址[11],最终效果如下所示:

注意:如果的halo是自己编译的,在管理后台安装第三方主题时,可能会出现报错:当前主题仅支持 Halo ^1.x.xx 及以上的版本,求助这个主题的作者后,他说这个校验逻辑在后端,只能通过手动下载Release[12] 页面的主题包,手动解压上传到halo安装目录的/templates/themes/目录下,并将文件夹命名为joe2.0。

image-20220506003306253最后,在后台管理界面启用主题即可。

image-20220506003442183

GPU占用严重问题

如果你使用的是Joe 2.0主题,在浏览器打开你的网站超过5分钟,你的电脑风扇会狂响,cpu温度持续升高。

image-20220506003957266

image-20220506004108767

经过一番排查后,终于定位到了问题:人生倒计时插件的锅,可能这里的代码写的不好,造成了大量运算,在网站管理后台的主题 -> 主题设置 -> 侧边栏 展示人生倒计时,将其关掉即可。

image-20220506004444333

改造后的网站

接下来,跟大家介绍下我的个人网站[13]中都有哪些内容。

首页

首页有4个模块,如下所示:

  • 轮播图区域:此处会按时间循环展示我最新发表的5篇文章
  • 侧边栏区域:展示我的头像、昵称、专栏数、文章数、社交平台等信息
  • 推荐专栏区域:会按照专栏的点击量来展示6个热度最高的专栏
  • 文章列表区域:包含最新文章、热门文章、最近更新、最多点赞四个分类,默认展示最新文章

动态

此处将分享一些我的日常生活状态、一些简短的想法等内容🤗

image-20220506005503508

文章

此处将以时间轴的形式展示我所发布过的文章。

image-20220506005610659

专栏

此处将展示我创建的所有专栏(即:文章分类)。

标签

此处将展示文章发布时所创建的标签。

image-20220506010006880

留言板

如果有想对我说的话,欢迎在此留言🤓

image-20220506010200337

关于我

此处将展示一些我的个人介绍。

image-20220506011426299

写在最后

至此,文章就分享完毕了。

我是神奇的程序员,一位前端开发工程师。

参考资料

[1]

我改造后的网站: https://www.kaisir.cn/

[2]

Halo: https://halo.run/

[3]

官网: https://halo.run/

[4]

环境搭建教程: https://docs.halo.run/

[5]

在线地址: https://www.kaisir.cn/

[6]

数据库章节: https://docs.halo.run/getting-started/config#%E6%95%B0%E6%8D%AE%E5%BA%93

[7]

Halo的源码: https://github.com/halo-dev/halo

[8]

缓存章节: https://docs.halo.run/getting-started/config#%E7%BC%93%E5%AD%98

[9]

主题仓库: https://halo.run/themes.html

[10]

Joe 2.0主题: https://halo.run/archives/joe20.html

[11]

在线地址: https://www.kaisir.cn/

[12]

Release: https://github.com/qinhua/halo-theme-joe2.0/releases

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-05-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 神奇的程序员 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 环境搭建
    • 自定义数据库
      • 自定义缓存
        • 编译项目
        • 选择主题
          • GPU占用严重问题
          • 改造后的网站
            • 首页
              • 动态
                • 文章
                  • 专栏
                    • 标签
                      • 留言板
                        • 关于我
                        • 写在最后
                          • 参考资料
                          相关产品与服务
                          云数据库 Redis
                          腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
                          领券
                          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档