Dream 主题使用手册 - 基础篇
Dream 主题基于 Halo 博客系统开发,本文将介绍本主题一些功能的使用,文档将持续更新。
一、安装 & 更新
1.1 安装包安装 & 更新
- 进入主题
Release界面:https://github.com/nineya/halo-theme-dream/releases 下载主题压缩包halo-theme-dream.zip压缩包文件; - 进入博客后台管理
外观->主题->安装->本地上传,选择下载的halo-theme-dream.zip安装包进行上传; - 等待安装完成;
- 更新主题时同样前往主题
Release界面下载主题安装包,然后通过 ``外观->主题->Dream->更多->从主题包更新` 方法上传安装包进行更新。
1.2 在线安装 & 更新
- 复制主题仓库地址
https://github.com/nineya/halo-theme-dream.git - 进入博客后台管理
外观->主题->安装->远程下载,黏贴仓库地址进行安装; - 等待安装完成;
- 在线更新主题时,通过 ``外观->主题->Dream->更多->在线更新` 方法进行更新。
在线安装 & 更新的方式不推荐:
- 因为由于
GitHub的网络问题,很大几率会安装& 更新失败;- 主题是经过源码编译的,直接从仓库下载包含了主题的源码以及开发所需的相关文件,这些文件并不是安装主题所需要的。
二、导航栏
-
Dream主题导航栏支持添加图标,可在菜单项中填写FontAwesome的相关图标class。主题基于
FontAwesome 4.7.0版本,图标可参考网站:http://www.fontawesome.com.cn/faicons/ -
主题支持多级菜单,但最多支持三级;
-
有时候可能想临时关闭菜单项,不想对菜单项进行重复的删除和添加,主题支持通过在菜单栏名称前添加
#hide临时隐藏菜单项。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-j5EXAyhg-1681178684990)(/upload/2022/05/image-20220501221505345-0ba8641ee686478f9c6f1e7ed8b955f3.png)]
三、侧边栏
-
主题默认采用经典的三列布局,也支持在配置中隐藏左右其中一侧的侧边栏;
-
侧边栏的
Widget模块支持通过配置优先级的方式进行排序,可填写一个数字,值越大优先级越高;可能这是 FreeMarker 关于排序的 bug?虽然指定的是一个数字,但是底层应该是按字符串的方式来进行排序处理的,且字符串的长度不做为排序的条件。
因此将出现这样的情况,优先级为 9 的 Widget 优先级高于 80,800,甚至于 80000;
所以,配置优先级时切记数值要处于相同的分位,简单说就是数值的字符串长度要相同,避免引起歧义。
四、代码块
主题支持指定代码块的标题,标题和代码块语言之间通过 | 或 < 号进行分隔。
- “<” 表示默认代码块为折叠;
- “|” 表示默认代码块为展开。
示例:
// 默认展开
{% codeblock lang|可选代码块标题 %}// 默认折叠
{% codeblock lang<可选代码块标题 %}// 默认折叠,且不指定代码块标题
{% codeblock lang< %}// 默认折叠,且不指定代码类型和代码块标题
{% codeblock < %}
需要注意,halo 本身 markdown 具有一些限制,如代码块名称不能包含空格。
五、元数据的使用
| enable_copyright | |
|---|---|
| 名称 | 显示版权模块 |
| 范围 | 文章/自定义页面 |
| 可选值 | true/false |
| 默认值 | 无 |
| 说明 | 指定是否显示版权模块,未指定该值时以主题配置界面中的配置为准。 |
| thumbnail_mode | |
|---|---|
| 名称 | 缩略图显示模式 |
| 范围 | 文章 |
| 可选值 | back/small/dafault |
| 默认值 | dafault |
| 说明 | 指定文章列表中文章的缩略图显示方法。 default: (默认)缩略图在标题的上方显示; back: 缩略图将以背景图的方式显示; small: 缩略图以小图的方式在文章摘要的左侧显示; small-right: 缩略图以小图的方式在文章摘要的右侧显示; small-alter: 缩略图以小图的方式在文章摘要的左右侧交替显示; fold: (置顶文章有效)正文内容折叠。 |
| tips | |
|---|---|
| 名称 | 文章提示信息内容 |
| 范围 | 文章/自定义页面 |
| 可选值 | 提示信息内容,支持 html 标签 |
| 默认值 | 无 |
| 说明 | 文章正文顶部显示提示信息内容。 |
| enable_katex | |
|---|---|
| 名称 | 启用数学公式支持 |
| 范围 | 文章/自定义页面 |
| 可选值 | true/false |
| 默认值 | 无 |
| 说明 | 指定是否启用数学公式支持,未指定该值时以主题配置界面中的配置为准。 |
| enable_share | |
|---|---|
| 名称 | 开启文章分享 |
| 范围 | 文章/自定义页面 |
| 可选值 | true/false |
| 默认值 | 无 |
| 说明 | 开启文章分享插件。 |
| enable_bullet_screen | |
|---|---|
| 名称 | 开启评论弹幕 |
| 范围 | 文章/自定义页面 |
| 可选值 | true/false |
| 默认值 | 无 |
| 说明 | 开启评论弹幕。 |
| index_carousel | |
|---|---|
| 名称 | 开启首页轮播 |
| 范围 | 置顶文章 |
| 可选值 | true/false |
| 默认值 | 无 |
| 说明 | 在首页时,文章通过大图轮播方式展示(仅对置顶文章有效)。 |
六、启用Service Worker优化
Service Worker 支持自动切换异常的 CDN 站点,对脚本等文件进行缓存,提升网站的访问速度和稳定性。
有效解决该死的
jsdelivr出现异常这种问题…
Dream 主题支持使用 Service Worker 提升网站访问速度,内部已经提供了 Service Worker 相关的实现,但是由于 halo 博客系统的限制,脚本文件不能放在网站的根目录,导致 Service Worker 无法生效,所以需要使用 Nginx 进行 url 重写,将 sw.min.js 文件映射到网站根目录。
脚本必须与网站同域,且在网站根目录,且网站不能存在证书问题,否则
Service Worker将无法正常注册
打开 Nginx 的配置文件,添加如下转发配置:
location ~ ^/sw.min.js {rewrite ^/(.*) /themes/dream/source/js/$1 break;proxy_pass http://localhost:8090;proxy_set_header HOST $host;proxy_set_header X-Forwarded-Proto $scheme;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}
使配置生效:
# 检查配置正确性
nginx -t# 重新加载配置
nginx -s reload
通过 https://域名/sw.min.js 能够成功访问到文件即配置成功。
若你修改了主题的
css/js文件,需确保关闭Service Worker功能,否则可能从远程 CDN 下载资源,导致修改的内容不会生效。
相关文章:
Dream 主题使用手册 - 基础篇
Dream 主题基于 Halo 博客系统开发,本文将介绍本主题一些功能的使用,文档将持续更新。 一、安装 & 更新 1.1 安装包安装 & 更新 进入主题 Release 界面:https://github.com/nineya/halo-theme-dream/releases 下载主题压缩包 halo…...
WSL下的Kafka开发容器:Docker搭建、API、整合
背景介绍 Kafka是一个分布式流处理平台,可以处理大规模数据流并支持实时数据流的处理。 本文介绍了如何在WSL下使用Docker搭建Kafka容器,并使用Python的kafka-python库和FastAPI框架实现了一个简单的API。同时,还将该服务整合到一个整体的d…...
cv2(OpenCV)下载安装
cv2对应库是OpenCV,官网下载链接:https://www.lfd.uci.edu/~gohlke/pythonlibs/#opencv 最好下载对应python版本的,通过pip命令安装可能会出现版本过高或者过低的问题,导致import cv2没问题,但是内部函数无法调用。 …...
【剑指 offer】旋转数组的最小数字
✨个人主页:bit me👇 ✨当前专栏:算法训练营👇 旋 转 数 组 的 最 小 数 字核心考点:数组理解,二分查找,临界条件 描述: 有一个长度为 n 的非降序数组,比如[1,2,3,4,5]…...
GB 9706.1-2020 医用电气设备第1部分:基本安全和基本性能的通用要求-1
这是份什么文件 这是一份中华人民共和国国家标准,具体为GB9706.1—2020,标准适用于医用电气设备,并规定了医用电气设备基本安全和基本性能的通用要求。主要涵盖了医疗电器设备与患者接触的各种要求,包括电气安全、机械防护、防护辐…...
认识C++《共、枚、指1》
目录 前言: 1.共用体的基本知识 2.匿名共用体 3.枚举 3.1设置枚举值 3.2枚举的应用场景 3.3枚举变量的取值范围 4.地址和自由存储空间 5.指针的思想 6.指针的声明和初始化 前言: 指针内容比较多,还需要再出一篇。久等了!!我看了我的…...
vim 一键配置
PS:本文是为了以后为了方便,做备忘的,今天用的时候找了半天很麻烦。 vim编辑器一键配置 在非root用户下执行上面的语句即可,不要在root用户下直接安装! 安装的时候需要输入root用户的密码,请找您的服主要一…...
如何成为一名成功的 PHP 开发者
当今的网络应用开发市场,PHP 一直是其中最受欢迎的语言之一,许多优秀的网络应用程序都是由 PHP 开发人员设计和开发的。如果你想成为一名成功的 PHP 开发者,以下是几个关键步骤: 1. 学习基础知识 首先,你需要掌握 PH…...
UHD安装教程
UHD Universal Hardware Driver,即USRP驱动。 UHD,Windows平台安装教程 uhd驱动安装 http://files.ettus.com/binaries/misc/erllc_uhd_winusb_driver.zip 安装LibUSBx http://files.ettus.com/binaries/uhd/latest_release 下载默认C盘 环境配置 将…...
Unity和UE有啥区别?哪个更适合游戏开发
游戏制作软件中最著名的两个游戏引擎是 Unity 和 Unreal Engine。从独立游戏到大型工作室,许多游戏开发商都在使用它们。如果你打算从事游戏行业工作,你肯定曾经问过自己“我的游戏应该使用 Unity 还是 Unreal Engine?” ” 让我们来了解和比…...
红队内网靶场
文章目录开篇介绍靶场介绍靶场下载以及配置Tomcat Get Shell突破DMZ防火墙拿下域内成员机器将内网机器上线到CS使用Adfind侦察子域信息控制子域DCRadmin登录子域进行权限维持(白银票据/ACL)子域bloodhound获取父域信息分析子域Krbtgt密钥创建跨域金票Dcsync父域PTH父域DC准备打…...
如何合并多个升序链表?
前言 本文主要介绍如何将多个小的升序链表合并一个大的升序链表。 需求描述 给出K个升序链接,要求把这K个升序链表合并成一个,并且这个链表也是升序的。 例如:A [1,5,6], B [2,3,8], C [4,4,9] 将这3个链表合并成一个链表D…...
23上半年信息系统项目管理师新老教程兼顾使用备考策略
在离考试仅有50多天的时候,软考办发文:“为方便报考信息系统项目管理师的考生进行复习备考,2023年上半年信息系统项目管理师考试第3版、第4版教程兼顾使用”。 其实软考办发布这样一条信息,也是为了照顾那些在新版发布以前按第…...
Linux环境搭建SVN服务器并实现公网访问 - cpolar端口映射
文章目录前言1. Ubuntu安装SVN服务2. 修改配置文件2.1 修改svnserve.conf文件2.2 修改passwd文件2.3 修改authz文件3. 启动svn服务4. 内网穿透4.1 安装cpolar内网穿透4.2 创建隧道映射本地端口5. 测试公网访问6. 配置固定公网TCP端口地址6.1 保留一个固定的公网TCP端口地址6.2 …...
仿牛客网社区Web开发项目代码逐行精读(更新中)
仿牛客网社区Web开发项目怎么看项目?如何调试项目前瞻技术架构项目亮点开始看代码LoginControllerDiscussPostController怎么看项目? pom.xml看技术架构resource看配置文件,这个项目是前后端不分离的以调试为导向,从前端入手检查…...
5G NR调制阶数与EVM关系以及对系统SNR要求分析
移动通信技术对数据传输速率要求越来越高。一种提高传输速率的思路是使用更高阶的QAM 调制方式,例如5G NR 的256QAM PDSCH,微波的1024QAM,2048QAM和4096QAM 调制。更高阶的QAM 调制方式对系统也提出了更高的要求。例如某个系统的EVM 测试结果…...
【NAS群晖drive异地访问】远程连接drive挂载电脑硬盘「内网穿透」
文章目录前言1.群晖Synology Drive套件的安装1.1 安装Synology Drive套件1.2 设置Synology Drive套件1.3 局域网内电脑测试和使用2.使用cpolar远程访问内网Synology Drive2.1 Cpolar云端设置2.2 Cpolar本地设置2.3 测试和使用3. 结语转发自CSDN远程穿透的文章:【群晖…...
react:hooks为什么不能写在条件语句里
背景 最近朋友在面试,说面试官问到了一个问题不会,说为什么 react hooks为什么不能写在条件语句里,今天我们来研究一下这个问题。 我们在来简单实现一个 useState: const reRender () > {stateIndex -1 ReactDOM.render(&…...
模型优势缺陷整理
(1)BERT 1. 计算资源消耗:bert模型是一个相对较大的模型,具有数亿个参数。因此,为了训练和使用bert模型,需要大量的计算资源和时间。 2. 学习不足问题:尽管bert模型在大规模语料库上进行了预训…...
编写猫咪相册应用 HTML
文章目录1. 标题元素标签2. p元素用于在网站上创建一段文本3. 注释4. 页面主要部分标识标签5. 通过使用img元素来为你的网站添加图片6. 使用锚点元素(a)链接到另一个页面7. 使用 section 元素将照片内容与未来的内容分开8. 无序列表(ul)元素,列表项(li)元素在列表中…...
安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件
在选煤厂、化工厂、钢铁厂等过程生产型企业,其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进,需提前预防假检、错检、漏检,推动智慧生产运维系统数据的流动和现场赋能应用。同时,…...
Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)
概述 在 Swift 开发语言中,各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过,在涉及到多个子类派生于基类进行多态模拟的场景下,…...
AI编程--插件对比分析:CodeRider、GitHub Copilot及其他
AI编程插件对比分析:CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展,AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者,分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...
全志A40i android7.1 调试信息打印串口由uart0改为uart3
一,概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本:2014.07; Kernel版本:Linux-3.10; 二,Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01),并让boo…...
蓝桥杯3498 01串的熵
问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798, 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...
嵌入式学习笔记DAY33(网络编程——TCP)
一、网络架构 C/S (client/server 客户端/服务器):由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序,负责提供用户界面和交互逻辑 ,接收用户输入,向服务器发送请求,并展示服务…...
Mysql8 忘记密码重置,以及问题解决
1.使用免密登录 找到配置MySQL文件,我的文件路径是/etc/mysql/my.cnf,有的人的是/etc/mysql/mysql.cnf 在里最后加入 skip-grant-tables重启MySQL服务 service mysql restartShutting down MySQL… SUCCESS! Starting MySQL… SUCCESS! 重启成功 2.登…...
数据库——redis
一、Redis 介绍 1. 概述 Redis(Remote Dictionary Server)是一个开源的、高性能的内存键值数据库系统,具有以下核心特点: 内存存储架构:数据主要存储在内存中,提供微秒级的读写响应 多数据结构支持&…...
表单设计器拖拽对象时添加属性
背景:因为项目需要。自写设计器。遇到的坑在此记录 使用的拖拽组件时vuedraggable。下面放上局部示例截图。 坑1。draggable标签在拖拽时可以获取到被拖拽的对象属性定义 要使用 :clone, 而不是clone。我想应该是因为draggable标签比较特。另外在使用**:clone时要将…...
「Java基本语法」变量的使用
变量定义 变量是程序中存储数据的容器,用于保存可变的数据值。在Java中,变量必须先声明后使用,声明时需指定变量的数据类型和变量名。 语法 数据类型 变量名 [ 初始值]; 示例:声明与初始化 public class VariableDemo {publi…...
