Hexo 个人博客主题美化

news2024/12/29 10:48:29

anzhiyu主题文档:https://anzhiy.cn/posts/220c.html

anzhiyu主题插件地址:https://github.com/anzhiyu-c/hexo-theme-anzhiyu

anzhiyu 主题安装

  1. 在博客根目录里执行命令,安装 anzhiyu 主题:

    git clone -b main https://github.com/anzhiyu-c/hexo-theme-anzhiyu.git themes/anzhiyu
    

    image-20230501152444043

  2. 复制/themes/anzhiyu/_config.yml此文件到 hexo 根目录,并重命名为_config.anzhiyu.yml

    image-20230501152849447

    注:每次更新主题时,会覆盖主题文件下的所有文件,为了方便主题更新,将主题配置文件移动到根目录,更新时不会覆盖,根目录下的主题配置文件优先级更高

  3. 修改_config.yml文件,选择anzhiyu主题

    theme: anzhiyu
    
  4. 执行命令推送github

    hexo cl & hexo g & hexo d
    
  5. 浏览器访问:https://shijiecloud.github.io/(需等待一会儿)

    image-20230501173814928

安装 pug 和 stylus 渲染插件

npm install hexo-renderer-pug hexo-renderer-stylus --save

生成文章唯一链接

  1. 安装 hexo-abbrlink 插件,在 MyBlog 文件夹下打开 git 命令行,运行以下指令:

    npm install hexo-abbrlink --save
    
  2. 插件安装成功后,在 MyBlog 文件夹下的配置文件 _config.yml 找到 permalink:

    permalink: posts/:abbrlink.html
    

社交图标修改

image-20230501185025167

_config.anzhiyu.yml 主题配置文件中修改:

# 社交图标设置
# 格式:
#  图标名:url || 描述性文字 || hover 动画名
social:
  Github: https://github.com/ShiJieCloud || anzhiyu-icon-github
  Email: https://mail.qq.com/cgi-bin/qm_share?t=qm_mailme&email=1500492856@qq.com || anzhiyu-icon-envelope
  RSS: atom.xml || anzhiyu-icon-rss
  BiliBili: https://space.bilibili.com/328120068 || anzhiyu-icon-bilibili
  QQ: tencent://Message/?Uin=1500492856&websiteName=local.edu.com:8888=&Menu=yes || anzhiyu-icon-qq

若要更换为阿里图标或fontawesome图标,则需要在文件中添加对应的配置之后再使用图标代码即可。

icons:
  ali_iconfont_js: # 阿里图标symbol 引用链接,主题会进行加载 symbol 引用
  fontawesome: false #是否启用fontawesome6图标
  fontawesome_animation_css: #如需 hover 动画生效需配置fontawesome_animation_css

网站信息

需要在配置文件中进行修改

# Site
title: HelloWorld
subtitle: 你好世界
description: HelloWorld
keywords:
author: 赵士杰
language: zh-CN
timezone: Asia/Shanghai

导航配置

需要在配置文件中进行修改

menu:
  文章:
    隧道: /archives/ || icon-archive
    分类: /categories/ || icon-shapes
    标签: /tags/ || icon-tags

  友链:
    友人帐: /link/ || icon-link
    朋友圈: /fcircle/ || icon-artstation
    留言板: /comments/ || icon-message

  我的:
    音乐馆: /music/ || icon-music
    追番页: /bangumis/ || icon-bilibili_1
    相册集: /album/ || icon-images
    小空调: /air-conditioner/ || icon-fan

  关于:
    关于本人: /about/ || icon-zhifeiji
    闲言碎语: /essay/ || icon-lightbulb
    随便逛逛: javascript:toRandomPost() || icon-jiaoyinzujifangke

必须是 /xxx/,后面||分开,然后写图标名。如果不希望显示图标,图标名可不写。

左下角歌单

歌单配置很简单,只需要修改主题配置文件中 nav_music 即可.

# 左下角音乐配置项
nav_music:
  enable: true
  id: 8152976493 # 网易云音乐歌单id
  server: netease

首页技能点配置

创建 [blog]/source/_data/creativity.yml,输入以下内容:

- class_name: 开启创造力
  creativity_list:
    - name: Java
      color: "#fff"
      icon: https://cdn.jsdelivr.net/gh/ShiJieCloud/hexo-blog-resource@master/img/logo/logo_java_320x412.jpg
    - name: Docker
      color: "#57b6e6"
      icon: https://cdn.jsdelivr.net/gh/ShiJieCloud/hexo-blog-resource@master/img/logo/logo_docker_160x128.png
    - name: Photoshop
      color: "#4082c3"
      icon: https://cdn.jsdelivr.net/gh/ShiJieCloud/hexo-blog-resource@master/img/logo/ps.png
    - name: Node
      color: "#333"
      icon: https://cdn.jsdelivr.net/gh/ShiJieCloud/hexo-blog-resource@master/img/logo/node.svg
    - name: Webpack
      color: "#2e3a41"
      icon: https://cdn.jsdelivr.net/gh/ShiJieCloud/hexo-blog-resource@master/img/logo/logo_webpack_300x300.png
    - name: Python
      color: "#fff"
      icon: https://cdn.jsdelivr.net/gh/ShiJieCloud/hexo-blog-resource@master/img/logo/python.png
    - name: Vite
      color: "#937df7"
      icon: https://cdn.jsdelivr.net/gh/ShiJieCloud/hexo-blog-resource@master/img/logo/vite-logo.svg
    - name: Flutter
      color: "#4499e4"
      icon: https://cdn.jsdelivr.net/gh/ShiJieCloud/hexo-blog-resource@master/img/logo/logo_flutter_100x100.png
    - name: Vue
      color: "#b8f0ae"
      icon: https://cdn.jsdelivr.net/gh/ShiJieCloud/hexo-blog-resource@master/img/logo/logo_vue_400x400.png
    - name: React
      color: "#222"
      icon: https://cdn.jsdelivr.net/gh/ShiJieCloud/hexo-blog-resource@master/img/logo/react.svg
    - name: CSS3
      color: "#2c51db"
      icon: https://cdn.jsdelivr.net/gh/ShiJieCloud/hexo-blog-resource@master/img/logo/logo_css3_128x128.png
    - name: JS
      color: "#f7cb4f"
      icon: https://cdn.jsdelivr.net/gh/ShiJieCloud/hexo-blog-resource@master/img/logo/logo_js_128x128.png
    - name: HTML
      color: "#e9572b"
      icon: https://cdn.jsdelivr.net/gh/ShiJieCloud/hexo-blog-resource@master/img/logo/logo_html5_200x200.png
    - name: Git
      color: "#df5b40"
      icon: https://cdn.jsdelivr.net/gh/ShiJieCloud/hexo-blog-resource@master/img/logo/logo_git_200x200.webp
    - name: Apifox
      color: "#e65164"
      icon: https://cdn.jsdelivr.net/gh/ShiJieCloud/hexo-blog-resource@master/img/logo/logo_apifox_194x180.png

文字部分在主题配置文件中 home_top 配置项修改

字体统计

在 hexo 博客根目录下打开 git 终端,执行命令安装插件:

npm install hexo-wordcount --save or yarn add hexo-wordcount

修改 _config.anzhiyu.yml 主题配置文件:

wordcount:
  enable: true
  post_wordcount: true
  min2read: true
  total_wordcount: true

搜索功能

记得运行 hexo clean

需要安装 hexo-algolia 或 hexo-algoliasearch,并配置 fields 参数的 title, permalinkcontent。根据它们的说明文档去做相应的配置。

  1. 注册账号,前往 Algolia 官网注册一个账号,新建应用和 index

  2. 安装hexo-algolia 或 hexo-algoliasearch插件

    npm install --save hexo-algolia
    npm install hexo-algoliasearch --save
    
  3. 修改配置文件_config.yml

    # algolia 搜索
    algolia:
      appId: "appId"
      apiKey: "apiKey"
      adminApiKey: "adminApiKey"
      chunkSize: 5000
      indexName: "hexo"
      fields:
        - content:strip:truncate,0,500
        - permalink
        - tags
        - title
    
    plugins:
      - hexo-algoliasearch
    

    image-20230502130949230

  4. 修改主题配置文件_config.anzhiyu.yml

    algolia_search:
      enable: true
      hits:
        per_page: 6
    
  5. 在git bash里面输入以下命令:切记切记要用git bash,因为Windows下无论powershell还是cmd都无法执行export命令。

    export HEXO_ALGOLIA_INDEXING_KEY=你的API Key
    hexo cl && hexo g && hexo algolia
    
  6. 使用搜索

    image-20230502131333916

gulp压缩静态资源

gulp 能够帮助用户自动压缩静态资源,配合各类下属插件,能够压缩包括css、js、html乃至各类格式的图片文件。(图片文件的压缩往往只能节省几十KB,效果远远不如imagine、tinypng等压缩方式,所以此处不再写使用gulp压缩图片的内容)。

  1. 安装Gulp插件:在博客根目录[Blogroot]打开终端,输入:

    npm install --global gulp-cli #全局安装gulp指令集
    npm install gulp --save #安装gulp插件
    
  2. 安装各个下属插件以实现对各类静态资源的压缩。

    • 压缩HTML:

      npm install gulp-htmlclean --save-dev
      npm install gulp-html-minifier-terser --save-dev
      # 用gulp-html-minifier-terser可以压缩HTML中的ES6语法
      
    • 压缩CSS:

      npm install gulp-clean-css --save-dev
      
    • 压缩JS

      使用terser来压缩js。gulp-terser只会直接压缩js代码,所以不存在因为语法变动导致的错误 。事实上,当我们使用jsdelivrCDN服务时,只需要在css或者js的后缀前添加.min,例如example.js->example.min.jsJsDelivr就会自动使用terser帮我们压缩好代码。

      npm install gulp-terser --save-dev
      
    • 压缩字体包

      fontmin可以遍历博客内用到的字符,并将字体包内这些字符的字体样式提取出来输出为新的字体包。fontmin仅支持压缩ttf格式的字体包

      npm install gulp-fontmin --save-dev
      
  3. 为Gulp创建gulpfile.js任务脚本。在博客根目录[Blogroot]下新建gulpfile.js,打开[Blogroot]\gulpfile.js,输入以下内容:

    //用到的各个插件
    var gulp = require('gulp');
    var cleanCSS = require('gulp-clean-css');
    var htmlmin = require('gulp-html-minifier-terser');
    var htmlclean = require('gulp-htmlclean');
    var fontmin = require('gulp-fontmin');
    // gulp-tester
    var terser = require('gulp-terser');
    // 压缩js
    gulp.task('compress', async() =>{
      gulp.src(['./public/**/*.js', '!./public/**/*.min.js'])
        .pipe(terser())
        .pipe(gulp.dest('./public'))
    });
    //压缩css
    gulp.task('minify-css', () => {
        return gulp.src(['./public/**/*.css'])
            .pipe(cleanCSS({
                compatibility: 'ie11'
            }))
            .pipe(gulp.dest('./public'));
    });
    //压缩html
    gulp.task('minify-html', () => {
        return gulp.src('./public/**/*.html')
            .pipe(htmlclean())
            .pipe(htmlmin({
                removeComments: true, //清除html注释
                collapseWhitespace: true, //压缩html
                collapseBooleanAttributes: true,
                //省略布尔属性的值,例如:<input checked="true"/> ==> <input />
                removeEmptyAttributes: true,
                //删除所有空格作属性值,例如:<input id="" /> ==> <input />
                removeScriptTypeAttributes: true,
                //删除<script>的type="text/javascript"
                removeStyleLinkTypeAttributes: true,
                //删除<style>和<link>的 type="text/css"
                minifyJS: true, //压缩页面 JS
                minifyCSS: true, //压缩页面 CSS
                minifyURLs: true  //压缩页面URL
            }))
            .pipe(gulp.dest('./public'))
    });
    //压缩字体
    function minifyFont(text, cb) {
      gulp
        .src('./public/fonts/*.ttf') //原字体所在目录
        .pipe(fontmin({
          text: text
        }))
        .pipe(gulp.dest('./public/fontsdest/')) //压缩后的输出目录
        .on('end', cb);
    }
    
    gulp.task('mini-font', (cb) => {
      var buffers = [];
      gulp
        .src(['./public/**/*.html']) //HTML文件所在目录请根据自身情况修改
        .on('data', function(file) {
          buffers.push(file.contents);
        })
        .on('end', function() {
          var text = Buffer.concat(buffers).toString('utf-8');
          minifyFont(text, cb);
        });
    });
    // 运行gulp命令时依次执行以下任务
    gulp.task('default', gulp.parallel(
      'compress', 'minify-css', 'minify-html','mini-font'
    ))
    
  4. 在每次运行完hexo generate生成静态页面后,运行gulp对其进行压缩。指令流程如下:

    hexo clean
    hexo generate
    gulp
    hexo server 或 hexo deploy
    
  5. 关于 font-min 的补充说明,在本文中,是通过读取所有编译好的html文件(./public/**/*.html)中的字符,然后匹配原有字体包内./public/fonts/*.ttf字体样式,输出压缩后的字体包到./public/fontsdest/目录。所以最终引用字体的相对路径应该是/fontsdest/*.ttf。而本地测试时,如果没有运行gulp,自然也就不会输出压缩字体包到public目录,也就看不到字体样式。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

sql partition by和rank的统计用法

问题背景 最近公司有个项目需要用到某种特殊的统计用法&#xff0c; 例如从所有的数据中找出每个账号最新的一条余额信息&#xff08;根据某个关键信息进行排序并获取排序值最高的记录&#xff09;。 当时用的是非常普通的语句&#xff0c;也就是多个子查询嵌套select出每个账…

chatgpt赋能python:Python下载jieba:优化中文分词的必备工具

Python下载jieba&#xff1a;优化中文分词的必备工具 在中文自然语言处理的领域中&#xff0c;分词是一项基础且重要的任务。jieba是一个优秀的中文分词组件&#xff0c;它支持三种分词模式&#xff0c;并且具有高效、准确、易用等优点。本文将介绍如何通过Python来下载jieba&…

chatgpt赋能python:Python中8//3**2*10的解析与运算

Python中8//3**2*10的解析与运算 Python是一种高效&#xff0c;多范式&#xff0c;解释性编程语言&#xff0c;广泛用于Web开发&#xff0c;数据科学&#xff0c;人工智能等领域。在Python的运算中&#xff0c;有一个8//3**2*10的表达式&#xff0c;本篇文章将对其进行解析与运…

Springboot 配置文件脱敏的实践

写作目的 数据安全这块还是挺严重的&#xff0c;尤其是自己专注于业务开发&#xff0c;不能总停留在一个地方&#xff0c;还要关注其他的一些问题&#xff0c;比如数据安全。 配置脱敏 实现配置的脱敏我使用了Java的一个加解密工具Jasypt。该工具支持对称加密和非对称加密。…

pytorch基础学习-tensorboardX

最近训练总是出问题&#xff0c;听取建议&#xff0c;在pytorch环境下引入了tensorboard 1、安装tensorboardX tensorboardX是在tensorboard前提下进行安装的&#xff0c;所以我们需要先安装tensorboard pip install tensorboardpip install tensorboardX2、简单使用 这里我…

应急响应-windows

win系统常见的安全事件 1.病毒&#xff0c;木马&#xff0c;蠕虫事件 2.web服务器入侵事件或第三方服务入侵事件 3.系统入侵事件&#xff0c;用win漏洞入侵系统&#xff0c;利用弱口令等。 4.网络攻击事件&#xff0c;如DDos&#xff0c;ARP欺骗等。 win系统安全事件发现的…

基于自适应反馈调节因子的阿基米德优化算法(IAOA)-附代码

基于自适应反馈调节因子的阿基米德优化算法(IAOA) 文章目录 基于自适应反馈调节因子的阿基米德优化算法(IAOA)1.阿基米德优化算法2. 改进阿基米德优化算法2.1 佳点集种群初始化2.2 自适应反馈调节因子2.3 莱维旋转变换策略 3.实验结果4.参考文献5.Matlab代码6.Python代码 摘要&…

软考A计划-试题模拟含答案解析-卷七

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例 &#x1f449;关于作者 专注于Android/Unity和各种游戏开发技巧&#xff0c;以及各种资源分享&am…

Maven学习笔记(单一架构案例)22版

第一节 创建工程&#xff0c;引入依赖 1 架构 ①架构的概念 『架构』其实就是『项目的结构』&#xff0c;只是因为架构是一个更大的词&#xff0c;通常用来形容比较大规模事物的结构。 ②单一架构 单一架构也叫『all-in-one』结构&#xff0c;就是所有代码、配置文件、各种…

基于hdoop的短视频用户画像研究_kaic

基于hadoop的短视频用户画像研究 摘 要 在这个互联网迅速发展的时代&#xff0c;网络和信息技术都跟上了时代的潮流&#xff0c;在互联网中的用户数据也出现了爆炸性的增长。用户的各种日常行为都通过互联网被记录下来&#xff0c;对于所有的互联网企业来说&#xff0c;想要从…

TCP报文中序列号的作用

TCP&#xff08;传输控制协议&#xff09;中的序列号用于标识TCP报文段中的数据部分。每个TCP报文段都包含一个序列号字段&#xff0c;该字段指示了报文段中第一个字节的序号。在后续的报文段中&#xff0c;序列号将递增&#xff0c;以指示下一个字节的序号。 TCP序列号是一个…

升级Springboot2.7.11之后内嵌tomcat启动成功, 但访问任何接口都是404

背景 最近项目在升级JDK17, 但原先低版本Springboot不能识别jdk17编译的字节码, 为了能够使用JDK17的语法, 因此对SpringBoot也做了升级, 直接升级到了SpringBoot 2.7.11版本. 对一些变更修改升级完成后, 本地启动服务运行, 一切正常!!! 于是发布到公司的容器环境运行, 发布平…

queue的常见接口说明(基于c++标准库的STL)

前言 队列是一种容器适配器&#xff0c;专门用于先进先出&#xff08;FIFO&#xff09;的操作中 &#xff0c;其容器从一端插入数据&#xff0c;从另一端取出数据。队列作为一种容器适配器实现&#xff0c;容器适配器即将特定的容器封装起来&#xff0c;queue提供一组特定的成员…

LBM-BGK计算泊肃叶流动

LBM在计算泊肃叶流动时&#xff0c;需要添加外力项&#xff0c;这部分网上没什么资料&#xff0c;仅有的资料也写的模糊不清&#xff0c;这里点名批评这个知乎博文。 有些地方字母都对不上。。。 本站上也有一篇博文&#xff0c;写的也比较一般&#xff0c;但是代码是多松弛MR…

测试C#分词工具jieba.NET(续2:其它用法)

jieba.NET除分词和关键词提取功能之外&#xff0c;还有一些其它用法&#xff0c;本文基于参考文献学习并记录。 设置停用词 提取关键词时&#xff0c;部分词语可能不重要或者并非所需的词语&#xff0c;此时可以通过设置停用词&#xff0c;在提取关键词时过滤掉指定的停用词。…

【笔记整理】图神经网络学习

【笔记整理】图神经网络学习 文章目录 【笔记整理】图神经网络学习一、GNN简介1、图结构 & 图基础算法1&#xff09;引言&#xff08;"非欧几何, 处理图数据的NN"&#xff09;2&#xff09;图基本概念 & 分类&#xff08;"邻接矩阵, 图结构分类"&a…

搭建springboot工程_学习笔记

2.搭建springboot环境 2.1 使用maven项目 在pox.xml文件中加入parent <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.6.4</version></parent>在pom…

chatgpt赋能python:Python中8%3的运算:一种常见的数学问题

Python中8%3的运算&#xff1a;一种常见的数学问题 在Python中&#xff0c;8%3是一种常见的数学问题。在本文中&#xff0c;我们将介绍Python中的这种运算符以及它的用途。 什么是8%3&#xff1f; 百度百科给出的解释是&#xff1a; 求余运算符&#xff08;%&#xff09;用来…

为什么要“内卷”创始人?如何内卷?

受疫情影响&#xff0c;近几年各个行业都受到很大的冲击&#xff0c;同时有许多知识创业者反而逆势增长&#xff0c;这是为什么呢&#xff1f;因为有一个好的领导者&#xff01;一家企业的发展&#xff0c;和创始人的心力和决心紧密联系着&#xff0c;只有好的将军才能带领出好…

【社群运营】关于社群运营的一些学习和思考

社群运营 运营流程&#xff08;自己&#xff09;背景流程过去经验1.你觉得社群最重要的价值是什么&#xff1f;对个人对DW 2.学习社群组织好哪些环节你觉得非常重要&#xff1f;3.这些环节有没有比较好的运营经验/方法&#xff1f;价值共鸣情感共鸣精神共鸣 社群总结 运营流程&…