0%

hexo使用next主题渲染流程图

hexo版本5.0.2 npm版本6.14.7 next版本7.8.0

next主题的配置文件中搜索找到mermaid,把enable配置改为true

1
2
3
4
mermaid:
enable: true
# Available themes: default | dark | forest | neutral
theme: default

然后在博客下安装hexo-filter-mermaid-diagrams

1
npm install hexo-filter-mermaid-diagrams --save

之后正常编译构建流程图就可以渲染出来了

1
hexo cl && hexo g && hexo s

hexo增加搜索功能

hexo版本5.0.2 npm版本6.14.7 next版本7.8.0

作为一个博客,没有搜索功能,如何在大批文章中找到自己想要的,那在hexo中如何增加搜索功能呢?

1
2
3
search:
path: search.json
field: post

在博客目录下安装npm install hexo-generator-search --save,此时使用hexo cl && hexo g就会在博客public目录下生成一个search.json,在使用hexo d部署上去搜索就可以用了

本地搜索弊端

前期还好,后来随着我的文章越来越多,search.json文件已经达到了十几M,每次加载页面都需要花费几分钟来加载search.json文件,使用体验很不好

algolia搜索

本地搜索走不通,那就只能使用远程搜索了,还好hexo提供了algolia搜索

先去官网登录一下,这里我使用的是Github登录,然后新建一个Index

创建索引

创建Index后,右上角头像处点击选择Settings

阅读全文 »

hexo使用next主题博客侧边栏标题点击不跳转

hexo版本5.0.2 npm版本6.14.7 next版本7.8.0

本着我肯定不是第一个出这个问题的人,去github上找了找,果然我不是第一个

标题点击不跳转

好吧,也跟着改吧(修改themes/next/source/js/utils.js),找到registerSidebarTOC函数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
registerSidebarTOC: function() {
const navItems = document.querySelectorAll('.post-toc li');
const sections = [...navItems].map(element => {
var link = element.querySelector('a.nav-link');
// 修复侧边栏 标题点击不跳转问题
var target = document.getElementById(decodeURI(link.getAttribute('href')).replace('#', ''));
// TOC item animation navigate.
link.addEventListener('click', event => {
event.preventDefault();
//var target = document.getElementById(event.currentTarget.getAttribute('href').replace('#', ''));
var offset = target.getBoundingClientRect().top + window.scrollY;
window.anime({
targets : document.scrollingElement,
duration : 500,
easing : 'linear',
scrollTop: offset + 10
});
});
//return document.getElementById(link.getAttribute('href').replace('#', ''));
return target;
});

hexo使用next主题新增RSS

hexo版本5.0.2 npm版本6.14.7 next版本7.8.0

如何让next主题支持RSS呢?看着好像官方没支持,自己加上吧

在next下的_config.yml配置中新增

1
2
3
4
5
sidebar_rss:
text: RSS
icon: fa fa-rss
color: burlywood
link: atom.xml

找到next/layout/_partials/sidebar/site-overview.swig文件,在社交判断板块下新增以下代码

1
2
3
4
5
6
7
8
9
10
{%- if theme.sidebar_rss %}
<div class="" >
<a target="_blank" class="social-link" href="{{ url_for(theme.sidebar_rss.link) }}" style="color: {{ theme.sidebar_rss.color }};">
<span class="icon">
<i class="{{ theme.sidebar_rss.icon }}"></i>
</span>
<span class="label">{{ theme.sidebar_rss.text }}</span>
</a>
</div>
{%- endif %}

在博客目录下安装npm install hexo-generator-feed --save,编译时就会生成atom.xml文件。部署之后效果是这样的,快来试试吧

新增RSS

项目同时提交到多个 Git 平台(Gitee、GitHub 等)的完整方案

在实际开发中,经常需要将项目同时同步到多个代码托管平台(如 Gitee、GitHub、GitLab),以满足不同场景的需求(如国内访问用 Gitee,部署用 GitHub)。本文将详细介绍如何实现一次提交同步到多个平台,以及不同平台代码不同步时的解决方法。

场景说明

假设场景:

  • 原有项目托管在 Gitee,远程名为 origin
  • 需同步到 GitHub,实现本地提交后,代码同时推送到两个平台。

将现有项目迁移到新平台(以 Gitee → GitHub 为例)

如果尚未在新平台创建仓库,可通过以下步骤快速迁移:

在新平台导入仓库(推荐)

GitHub、Gitee 等平台均支持从其他 Git 仓库导入项目,保留完整提交历史:

  1. 登录 GitHub,点击右上角「+」→「Import repository」。
  2. 在「Your old repository’s clone URL」中输入 Gitee 仓库地址(如 https://gitee.com/yourname/project.git)。
  3. 设置新仓库名称和可见性(公开 / 私有),点击「Begin import」。
阅读全文 »