hexo博客搭建部署

文章目录

      • hexo 本地搭建
        • 部署到 github
      • next 主题安装和配置
        • 标签和分类
        • 一篇文章多个分类
        • 网站描述
        • 头像
        • 侧边栏社交链接
        • 字数统计和阅读时长
      • 遇到的报错问题并解决
        • 文章摘要显示数字
        • 分页的前一页下一页显示不对
        • 部署报错
        • 点击目录无法跳转
        • 侧边栏目录带有编号问题
        • 点击多级标题无法展开

成果:利用 github pages 部署地址,还在完善中


hexo 本地搭建

D:\Developer>hexo init github_blog
INFO  Cloning hexo-starter https://github.com/hexojs/hexo-starter.git
INFO  Install dependencies
INFO  Start blogging with Hexo!

D:\Developer>cd github_blog

D:\Developer\github_blog>hexo g
INFO  Validating config
INFO  Start processing
INFO  Files loaded in 175 ms
INFO  Generated: archives/index.html
INFO  Generated: index.html
INFO  Generated: css/style.css
...
INFO  Generated: css/images/banner.jpg
INFO  11 files generated in 163 ms

D:\Developer\github_blog>hexo server
INFO  Validating config
INFO  Start processing
INFO  Hexo is running at http://localhost:4000/ . Press Ctrl+C to stop.
hexo new "my new post"  # Create a new post
hexo generate    # Generate static files
hexo server  # Run server
hexo deploy  # Deploy to remote sites
部署到 github
npm install hexo-deployer-git --save
hexo clean  # 清除旧的生成文件和缓存。
hexo g  # 根据内容生成新的静态页面。
hexo deploy  # 将生成的页面部署到服务器或 GitHub Pages。

next 主题安装和配置

从 hexo-theme-next fork 一份到自己的 github 上,为了方便跟踪改了哪些配置,再克隆到 github_blod 目录中。

D:\Developer\github_blog>git clone git@github.com:zypdominate/hexo-theme-next.git themes/next

修改 _config.yaml

# Extensions
# theme: landscape
theme: next

重新启动服务,出现一个报错:

{% extends '_layout.swig' %} {% import '_macro/post.swig' as post_template %} {% import '_macro/sidebar.swig' as sidebar_template %} {% block title %}{{ config.title }}{% if theme.index_with_subtitle and config.subtitle %} - {{config.subtitle }}{% endif %}{% endblock %} {% block page_class %} {% if is_home() %}page-home{% endif -%} {% endblock %} {% block content %}
{% for post in page.posts %} {{ post_template.render(post, true) }} {% endfor %}
{% include '_partials/pagination.swig' %} {% endblock %} {% block sidebar %} {{ sidebar_template.render(false) }} {% endblock %}

解决:npm i hexo-renderer-swig

D:\Developer\github_blog>npm i hexo-renderer-swig
npm warn deprecated hexo-renderer-swig@2.0.0: hexo-renderer-swig has been deprecated. Please use other template engines. (e.g. nunjucks https://github.com/hexojs/hexo-renderer-nunjucks)
npm warn deprecated swig-templates@2.0.3: unmaintained

added 28 packages, and audited 256 packages in 5m

23 packages are looking for funding
  run `npm fund` for details

6 vulnerabilities (2 low, 1 high, 3 critical)

To address all issues (including breaking changes), run:
  npm audit fix --force

Run `npm audit` for details.
标签和分类

设置菜单栏,修改 _config.yaml

menu:
  home: /
  categories: /categories/
  tags: /tags/
  archives: /archives/
  about: /about/

创建页面:categories,tages,about。在此之前,如果没有创建,点击主页上的这些菜单,会出现 Cannot GET /categories/ 这样的报错。

D:\Developer\github_blog>hexo new page categories
INFO  Validating config
INFO  Created: D:\Developer\github_blog\source\categories\index.md

D:\Developer\github_blog>hexo new page tags
INFO  Validating config
INFO  Created: D:\Developer\github_blog\source\tags\index.md

D:\Developer\github_blog>hexo new page about
INFO  Validating config
INFO  Created: D:\Developer\github_blog\source\about\index.md

分别修改对应的index.md文件

---
title: categories
date: 2018-07-01 23:37:24
type: "categories"

---
title: tages
date: 2018-07-01 23:33:14
type: "tags"
一篇文章多个分类

在很多情况下,我们希望在 Hexo 中写的一篇文章能够同时属于多个分类,例如我写一篇 [《Python自动化测试》],我既想将它放在 [Python] 这个分类中,又想将它放入 [自动化测试] 这个分类。

子分类

下面的分类会将该分章放到 Python/Automation这个分类下

categories:
  - Python
  - Automation

或者

categories: [Python, Automation]

多个分类

如果要求是将文章同时分到多个不同的分类中呢,应该这样:

categories:
  -[Python]
  -[Automation]

这样,就可以将上面的文章分类到 PythonAutomation 这两个不同的目录中了。

扩展一下,如果我们将其分类到 Python/ServletProgramming 两个不同的目录下,我们应该如下写:

categories:
  -[Python, Automation]
  -[Programming]
网站描述
# Site
title: Magnolia的博客
subtitle: '我们的征途是星辰大海'
description: 'Pytho/测试开发/自动化测试'
keywords:
author: Zhu Yuping
language: en
timezone: Asia/Nanjing
头像

将图片放到 source/images 里面

# Sidebar Avatar
avatar: /images/avatar.jpg
侧边栏社交链接
social:
  CSDN: https://blog.csdn.net/qq_31362767 || cndn
  Gitee: https://gitee.com/zypdominate || gitee
  GitHub: https://github.com/zypdominate || github
  E-Mail: mailto:zypdominate@gmail.com || envelope
字数统计和阅读时长

安装插件

npm install hexo-symbols-count-time --save

修改配置

symbols_count_time:
  #文章内是否显示
  symbols: true
  time: true
  # 网页底部是否显示
  total_symbols: true
  total_time: true
  separated_meta: true
  item_text_post: true
  item_text_total: false
  awl: 4
  wpm: 275
  suffix: mins.

遇到的报错问题并解决

文章摘要显示数字

解决:

在文章的 front-matter 中添加 description: xxx,description 的内容就是被显示在首页上,其他的不显示。

或者在文件内容中加入截断,<!--more-->,在这之后的内容就不会显示。

分页的前一页下一页显示不对

将以下内容:

{% if page.prev or page.next %}
  <nav class="pagination">
    {{
      paginator({
        prev_text: '<i class="fa fa-angle-left"></i>',
        next_text: '<i class="fa fa-angle-right"></i>',
        mid_size: 1
      })
    }}
  </nav>
{% endif %}

改为:

{% if page.prev or page.next %}
  <nav class="pagination">
    {{
      paginator({
        prev_text: '<i class="fa fa-angle-left" aria-label="' + __('accessibility.prev_page') + '"></i>',
        next_text: '<i class="fa fa-angle-right" aria-label="' + __('accessibility.next_page') + '"></i>',
        mid_size: 1,
        escape: false
      })
    }}
  </nav>
{% endif %}
部署报错
fatal: unable to access 'https://github.com/zypdominate/zypdominate.github.io.git/': Failed to connect to github.com port 443 after 21084 ms: Could not connect to server
FATAL Something's wrong. Maybe you can find the solution here: https://hexo.io/docs/troubleshooting.html
Error: Spawn failed
    at ChildProcess.<anonymous> (D:\Developer\github_blog\node_modules\hexo-deployer-git\node_modules\hexo-util\lib\spawn.js:51:21)
    at ChildProcess.emit (node:events:519:28)
    at cp.emit (D:\Developer\github_blog\node_modules\cross-spawn\lib\enoent.js:34:29)
    at ChildProcess._handle.onexit (node:internal/child_process:294:12)

重新执行了一遍:

npm install hexo-deployer-git --save
hexo clean  # 清除旧的生成文件和缓存。
hexo g  # 根据内容生成新的静态页面。
hexo d  # 将生成的页面部署到服务器或 GitHub Pages。

修改 Hosts 文件(解决 DNS 污染):
C:\Windows\System32\drivers\etc\hosts 中添加:

140.82.112.4 github.com
点击目录无法跳转

在文章中,点击左侧的含中文的目录,没法跳转到对应的标题。

解决:

  // Handle the clicking of TOC links
  $('.post-toc a').on('click', function (e) {
    e.preventDefault();
    var targetId = decodeURIComponent($(this).attr('href'));
    var target = $(targetId);

    if (target.length) {
      $('html, body').animate({
        scrollTop: target.offset().top
      }, 500);
    }
  });
  • 等待文档加载完成
  • 为所有目录链接添加点击事件监听器
  • 阻止默认的跳转行为
  • 解码链接中的中文字符
  • 平滑滚动到目标位置

清除浏览器缓存并重新生成静态文件,hexo cleanhexo generate

侧边栏目录带有编号问题

默认情况下,Next 主题会给侧边栏的目录自动编号。

文章中标题本身没有 1. 2. 3. 这样的有序列表前的数字,但是启动服务后,加载出来的文件的侧边栏目录中带有 1. 2. 3. 4.,如果原来标题就有1.2.3,那么出现 1.1 2.2 3.3 这样的显示,很难看。

解决:打开 themes/next/_config.yml 文件,找到 toc 相关的配置部分,修改以下配置:

toc:
  enable: true
  # 将 number 设置为 false 来关闭自动编号
  number: false  
  wrap: false
  expand_all: false
  max_depth: 6

主要是将 number: true 改为 number: false,这样就能关闭目录的自动编号功能。侧边栏的目录就不会自动添加数字编号了,会保持和文章标题一致的格式。

点击多级标题无法展开

询问 Claude,问题出在目录的 HTML 结构上,给 Claude 我博客文章点击目录后的结构 html,针对性地修改 JavaScript 代码。发现目录结构使用了 nav-child 类来表示子目录,于是修改如下后,解决问题。

$(document).ready(function() {
  // 处理目录点击展开/折叠
  $('.post-toc .nav-item').on('click', function(e) {
    e.stopPropagation(); // 阻止事件冒泡
    
    var $this = $(this);
    var $subNav = $this.children('.nav-child');
    
    // 如果有子目录
    if ($subNav.length > 0) {
      e.preventDefault(); // 阻止默认跳转
      $subNav.slideToggle(200);
      $this.toggleClass('expanded');
    }
  });
  
  // 初始展开当前活动的目录项
  function expandActiveNav() {
    var $activeItem = $('.post-toc .active-current').parent();
    $activeItem.parents('.nav-child').show();
    $activeItem.parents('.nav-item').addClass('expanded');
  }
  
  // 首次加载时展开
  expandActiveNav();
  
  // 滚动时保持展开状态
  $(window).on('activate.bs.scrollspy', function() {
    expandActiveNav();
  });
});

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/975495.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

《Spring实战》(第6版) 第3章 使用数据

第3章 使用数据 使用Spring的JdbcTemplate&#xff1b;创建Spring Data JDBC存储库&#xff1b;使用Spring Data声明JPA存储库&#xff1b; 本章对Taco Cloud应用添加对数据库持久化的支持&#xff0c;关注JDBC和JPA。 3.1 使用JDBC读取和写入数据 Spring对JDBC的支持要归功…

设计模式 - Singleton pattern 单例模式

文章目录 定义单例模式的实现构成构成UML图 单例模式的六种实现懒汉式-线程不安全懒汉式-线程安全饿汉式-线程安全双重校验锁-线程安全静态内部类实现枚举实现 总结其他设计模式文章&#xff1a;最后 定义 单例模式是一种创建型设计模式&#xff0c;它用来保证一个类只有一个实…

出行项目案例

spark和kafka主要通过Scala实现&#xff0c;Hadoop和HBase主要基于java实现。 通过该项目&#xff0c;主要达到以下目的&#xff1a; &#xff08;1&#xff09;通用的数据处理流程&#xff0c;入门大数据领域 &#xff08;2&#xff09;真实体验大数据开发工程师的工作 &a…

从零开始制作一个漂亮的悬浮按钮

0.1血版 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title> </head> &l…

安全面试2

文章目录 简单描述一下什么是水平越权&#xff0c;什么是垂直越权&#xff0c;我要发现这两类漏洞&#xff0c;那我代码审计要注意什么地方水平越权&#xff1a;垂直越权&#xff1a;水平越权漏洞的审计重点垂直越权漏洞的审计重点 解释一下ssrf漏洞原理攻击场景修复方法 横向移…

数字电子技术基础(二十一)——双极型三极管的开关特性

目录 1 半导体三极管的开关特性 1.1 双极性三极管的开关特性 1.2 双极型三极管的基本开关电路 1.3 三极管的开关等效电路 1.4 双极型三极管的动态开关特性 TTL门电路是一种基于双极型晶体管的数字逻辑电路&#xff0c;在20世纪60年代到80年代之间&#xff0c;TTL门电路是应…

足疗店会员管理系统,足疗养生全方位会员管理解决方案,佳易王试用版养生会所足疗店推拿按摩会员管理系统操作教程

一、概述 本实例以佳易王试用版养生会所足疗店推拿按摩会员管理系统17.1版本为例说明&#xff0c;其他版本可参考本实例。试用版软件资源可到文章最后了解&#xff0c;下载的文件为压缩包文件&#xff0c;请使用免费版的解压工具解压即可试用。 软件特点&#xff1a; 1、功能…

【HarmonyOS Next】拒绝权限二次申请授权处理

【HarmonyOS Next】拒绝权限二次申请授权处理 一、问题背景&#xff1a; 在鸿蒙系统中&#xff0c;对于用户权限的申请&#xff0c;会有三种用户选择方式&#xff1a; 1.单次使用允许 2.使用应用期间&#xff08;长时&#xff09;允许 3.不允许 当用户选择不允许后&#xff0…

论文笔记(七十二)Reward Centering(四)

Reward Centering&#xff08;四&#xff09; 文章概括摘要附录A 伪代码 文章概括 引用&#xff1a; article{naik2024reward,title{Reward Centering},author{Naik, Abhishek and Wan, Yi and Tomar, Manan and Sutton, Richard S},journal{arXiv preprint arXiv:2405.09999…

数据结构之二叉树的定义及实现

1. 树的概念 主要的定义&#xff1a; 节点的度&#xff1a;一个节点含有的子树的个数称为该节点的度&#xff1b;如上图&#xff1a;A的为6 叶节点或终端节点&#xff1a;度为0的节点称为叶节点&#xff1b;如上图&#xff1a;B&#xff0c;C&#xff0c;H&#xff0c;I等节点…

Deepseek 与 ChatGPT:AI 浪潮中的双子星较量

引言 在人工智能飞速发展的当下&#xff0c;AI 语言模型成为了人们关注的焦点。Deepseek 与 ChatGPT 作为其中的佼佼者&#xff0c;各自展现出独特的魅力&#xff0c;引领着 AI 技术的发展潮流。今天&#xff0c;就让我们深入探讨这两款模型&#xff0c;看看它们在 AI 领域中是…

网络运维学习笔记 019 HCIA-Datacom综合实验03

文章目录 综合实验3实验需求一&#xff1a;A公司网络规划二&#xff1a;B公司网络规划 配置一、ip、vlan、vlanif&#xff0c;stp、eth-trunkSW1SW2SW3R1 二、ospfSW1R1 三、NATR1ISP 四、拒绝ping允许httpSW1 五、右半部分vlan、dhcp、ospf、NATSW4R2 综合实验3 实验需求 一&…

【时时三省】(C语言基础)结构化程序设计方法

山不在高&#xff0c;有仙则名。水不在深&#xff0c;有龙则灵。 ----CSDN 时时三省 结构化程序设计方法 结构化程序设计强调程序设计风格和程序结构的规范化&#xff0c;提倡清晰的结构。怎样才能得到一个结构化的程序呢?如果面临一个复杂的问题&#xff0c;是难以一下子写…

“国补”带火手机换新,出售旧手机应如何保护个人信息安全

在“国补”政策的推动下,手机换新热潮正席卷而来。“国补”以其诱人的补贴力度,成功激发了消费者更换手机的热情。无论是渴望体验最新技术的科技爱好者,还是对旧手机性能不满的普通用户,都纷纷投身到这场手机换新的浪潮之中。 随着大量消费者参与手机换新,二手手机市场迎来…

Flash-01

1-初始登录页面 2-【文件】-【新建】 3-【ActionScript3.0】 4-常用功能介绍【关闭/开启】 4-1-【关闭开始页】 勾选【不再提示】 4-2-【开启开始页】 【编辑】-【首选参数】-【常规】-【重置所有警告对话框】 5-恢复初始页面 【窗口】-【工作区】-【重置】 6-常用快捷键 …

Golang | 每日一练 (3)

&#x1f4a2;欢迎来到张胤尘的技术站 &#x1f4a5;技术如江河&#xff0c;汇聚众志成。代码似星辰&#xff0c;照亮行征程。开源精神长&#xff0c;传承永不忘。携手共前行&#xff0c;未来更辉煌&#x1f4a5; 文章目录 Golang | 每日一练 (3)题目参考答案map 实现原理hmapb…

DeepSeek掘金——基于DeepSeek-R1构建文档问答机器人

DeepSeek掘金——基于DeepSeek-R1构建文档问答机器人 在这个项目中,我们将结合本地 AI 的隐私与 Deepseek R1 的智能,创建一个完全本地化、推理驱动的问答机器人。 在人工智能 (AI) 日益融入我们日常生活的时代,一个问题仍然处于最前沿:隐私。尽管基于云的 AI 系统功能强大…

蓝桥杯学习笔记04-滑动窗口不定长(最短/最小)

题目来源 分享丨【题单】滑动窗口与双指针&#xff08;定长/不定长/单序列/双序列/三指针/分组循环&#xff09; - 力扣&#xff08;LeetCode&#xff09; 209. 长度最小的子数组 - 力扣&#xff08;LeetCode&#xff09; 题目要求大于等于 class Solution { public:int min…

基于WOA鲸鱼优化的BiLSTM双向长短期记忆网络序列预测算法matlab仿真,对比BiLSTM和LSTM

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 (完整程序运行后无水印) 2.算法运行软件版本 matlab2022a/matlab2024b 3.部分核心程序 &#xff08;完整版代码包含详细中文注释和操作步骤视频…

DeepSeek R1本地+私有云版医疗AI部署开发成功案例技术剖析

1. 引言 1.1 研究背景与意义 随着科技的飞速发展,人工智能(AI)在医疗领域的应用正逐渐成为推动医疗行业变革的重要力量。近年来,医疗 AI 取得了显著的进展,从疾病诊断、药物研发到医疗管理等各个环节,AI 技术都展现出了巨大的潜力。它能够处理和分析海量的医疗数据,为…