0%

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;
});

项目同时提交到多个 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」。
阅读全文 »

Netlify将url重定向到小写问题

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

前两天将博客从vercel改为托管到Netlify上,本来运行的挺流畅的。但是今天我看一篇博客的评论时突然发现,虽然有评论

评论

但是文章开头的评论数显示的是0

评论数

这里的评论系统使用的是Valine

我记得之前是好的,怎么突然不好使了呢。

阅读全文 »

DHCP 协议:动态主机配置的自动化解决方案

DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是应用层的核心协议之一,它通过自动化分配 IP 地址及相关网络参数,实现了设备的 “即插即用” 联网,极大简化了网络配置流程。无论是家庭 WiFi、企业局域网还是大型数据中心,DHCP 都是保障设备高效接入网络的关键技术。

DHCP 协议的核心功能

DHCP 的核心价值在于动态分配网络参数,无需用户手动配置,具体包括:

  • 分配 IPv4 地址(如192.168.1.100);
  • 分配子网掩码(如255.255.255.0),用于区分网络地址和主机地址;
  • 指定默认网关 IP(如192.168.1.1),实现跨网段通信;
  • 提供 DNS 服务器地址(如8.8.8.8),支持域名解析;
  • 其他可选参数(如 IP 地址租用期限、NTP 服务器地址等)。

通过这些参数,设备能自动完成网络初始化,快速接入网络并与其他设备通信。

DHCP 的工作过程:四步握手实现动态配置

DHCP 的工作过程本质是客户端与服务器之间的 “请求 - 分配” 交互,通过四个关键报文完成配置,具体流程如下:

1. 客户端发送 Discover 报文(发现服务器)

  • 触发场景:客户端(如手机、电脑)接入网络后,若未配置 IP 地址,会自动发起 DHCP 请求。
  • 报文细节:
    • 源地址:0.0.0.0:68(客户端尚未获取 IP,使用无效地址);
    • 目的地址:255.255.255.255:67(广播地址,DHCP 服务器默认端口为 67);
    • 封装协议:基于 UDP 传输,报文包含客户端的 MAC 地址(用于服务器识别设备)。
  • 作用:客户端广播请求,寻找网络中可用的 DHCP 服务器。
阅读全文 »

电子邮件协议:从发送到接收的完整流程解析

电子邮件系统是互联网最基础的应用之一,其高效运行依赖于一系列标准化协议。一个完整的电子邮件系统由用户代理(如 Outlook、 Gmail 客户端)、邮件服务器(负责存储和转发邮件)和邮件协议(规范数据传输格式与流程)三部分构成。其中,邮件协议又分为发送协议(如 SMTP)和读取协议(如 POP3、IMAP),它们共同保障了邮件的可靠传输与灵活访问。

SMTP 协议:邮件发送的核心规范

SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)是电子邮件发送的基础协议,定义了邮件从客户端发送到邮件服务器,以及从源邮件服务器转发到目标邮件服务器的规则。

核心功能与限制

  • 基本功能:负责将邮件从发送方服务器传递到接收方服务器,支持文本邮件的传输。
  • 原生限制:SMTP 最初设计仅只能只能 ASCII 码数据,无法直接发送二进制文件(如图片、附件、非英文字符)。

MIME:突破 SMTP 的传输限制

为解决 SMTP 无法传输二进制数据的问题,MIME(多用途互联网邮件扩展) 应运而生:

阅读全文 »