利用 Hexo 搭建个人博客

〇、前言

本文将会讨论,如何将 CSDN 上的博客,拉取到本地,然后PicGo、Hexo、Github 等工具建立个人博客,环境为 Ubuntu 20.04。

一、利用 Hexo

预备工作

首先安装 Node.js、npm、git工具。

> node -v
v12.22.9
> npm -v
8.5.1
> git version
git version 2.34.1

安装 Hexo

npm install -g hexo-cli> hexo -v
INFO  Validating config
hexo: 7.3.0
hexo-cli: 4.3.2
os: linux 5.15.0-107-generic Ubuntu 22.04.4 LTS 22.04.4 LTS (Jammy Jellyfish)
node: 12.22.9
v8: 7.8.279.23-node.56
uv: 1.43.0
zlib: 1.2.11
brotli: 1.0.9
ares: 1.18.1
modules: 72
nghttp2: 1.43.0
napi: 8
llhttp: 2.1.6
http_parser: 2.9.4
openssl: 1.1.1m
cldr: 40.0
icu: 70.1
tz: 2024a
unicode: 14.0

小试牛刀

首先创建一个文件夹,比如 hexotest。这个文件的目的是,我们打算在它里面创建博客,并且它是一个博客网站项目根目录:

mkdir hexotest
cd hexotest

之后,就可以初始化这个文件夹了,初始化的目的是,它会创建一个 helloword.md 文件,然后利用 node.js 等将这个 markdown 文件渲染成一个 html 文件,然后在本地开启一个网络服务器以供前端访问:

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

接着启动:

> hexo s
INFO  Validating config
INFO  Start processing
INFO  Hexo is running at http://localhost:4000/ . Press Ctrl+C to stop.

然后就可以在前端看到博客了:
博客

二、利用 Hexo 将博客部署在 github

这里创建 github 账户、创建博客仓库什么的就不啰嗦了,只提重点。

修改配置文件

进入文件夹 hexotest,之后修改配置文件 _config.yml:

# Deployment
## Docs: https://hexo.io/docs/one-command-deployment
deploy:type: gitrepo: git@github.com:Luyoung0001/Luyoung0001.github.io.gitbranch: main

之后,需要一个小工具将博客部署上去, 原理主要就是 push到远端仓库:

npm install hexo-deployer-git --save

需要注意的是,每一个项目根目录都需要执行一次这个命令,这个命令会在本地生成一些脚本,然后把脚本放在 node_modules 目录中。

之后执行下面的命令就可以了:

hexo c   #清除缓存文件 db.json 和已生成的静态文件 public
hexo g       #生成网站静态文件到默认设置的 public 文件夹(hexo generate 的缩写)
hexo d       #自动生成网站静态文件,并部署到设定的仓库(hexo deploy 的缩写)

访问

通过浏览器访问:https://luyoung0001.github.io 就可以了:
博客

至此,博客系统就初步搭建起来了。

更新博客

事实上,可以向 hexotest/source/_post 中放置大量的 markdown 文件,这些文件就是你想要写发布的博客。

写好了以后,继续执行:

hexo c
hexo g
hexo d

就好了。

三、从 csdn 到 github

经过寻找,终于让我在网上找到了这个项目:https://github.com/flytam/blog-sync-tool?tab=readme-ov-file

这个工具可以将博客从 csdn 等博客网站下载到本地,而且还支持图片下载,这意味着你csdn 中博客的图片都可以下载下来。

转移文章

参考 csdnsynchexo 的 文档,首先安装:

npx csdnsynchexo@latest  --help

安装好了就可以爬取了,但是别忘了需要阅读、修改等权限,谁的权限最高?当然是 csdn 作者本人了,因此这里需要你登录你自己的 csdn 账号后,获取到 csdn 的 cookie,并将其写入到配置文件。

配置文件

可以将这个配置文件 config.json 放到任何地方,但是我还是建议在 ~ 目录下 创建一个 csdn目录,然后将这配置文件放置到 csdn 中:

{"userId": "m0_73651896","type": "csdn","output": "./blogfromcsdn","cookie": ""
}

userId 就是 csdn 的 userID,output 就是将文章爬取下来后存入的目录,至于 cookie,这很重要。

获取方式:新开一个页面,F12(mac: cmd+shift+i)打开控制台,点击抓包这个请求的request headers中的cookie后面那段值。这个值很多,建议全部粘贴。

爬取

然后就可以执行了:

npx csdnsynchexo@latest --config ./config.json

执行完成后,就可以在目标文件夹看到爬取下来的文件了:

ls
'(1) DNS Protocol Analysis Based on Wireshark at the Application Layer.md'
'2022 Personal Summary.md'
'2023 个人总结.md'
'2024.06.16 刷题日记.md'
'2024.06.17 刷题日记.md'
'2024.06.18 刷题日记.md'
'2024.06.19 刷题日记.md'
...

将文件拷贝到博客目录

将爬取下来的文章拷贝到 hexotest/source/_post,然后继续 hexo cgd 就可以了。

四、爬取图片

这个很重要,因为这里还牵扯到将以后写的文章的图片存储到哪里的问题。

好消息是 csdnsynchexo 支持爬取图片,并将这些图片上传到图床,然后将图床中图片的链接统一地在 markdown 中置换,这简直太棒了!

支持这一功能的是 PicGo,PicGo 是一个强大的用于快速上传图片并获取图片 URL 链接的工具,PicGo 本体支持如下图床:

  • 七牛图床 v1.0
  • 腾讯云 COS v4\v5 版本 v1.1 & v1.5.0
  • 又拍云 v1.2.0
  • GitHub v1.5.0
  • SM.MS V2 v2.3.0-beta.0
  • 阿里云 OSS v1.6.0
  • Imgur v1.6.0

这里支持的很多,但是个人建议选取 github,因为未来我们要用到 CloudFlare+github 的形式来做cdn。

csdnsynchexo 中配置文件只需要这样修改以及添加:

{"userId": "m0_73651896","type": "csdn","imgConfig": "./img.json","output": "./blogfromcsdn","cookie": ""
}

然后继续添加一个图片配置文件img.json:

{"accessKey": "xxxxx","secretKey": "xxxx","bucket": "xxxxx","area": "z2","options": "","path": "./blogfromcsdn","picBed": {"uploader": "github","github": {"repo": "Luyoung0001/picBed","token": "","branch": "main"}},"picgoPlugins": {}
}

具体配置方法,参考 GitHub 图床。需要注意的是,一定要放置图床的仓库设为公开仓库,毕竟要从外面访问,要有访问权限。

之后,重新爬取、转移、生成、布置就好了!

五、写附带图片的文章

写文章很简单,就在hexotest/source/_post目录下进行创作就行了,但是插入图片怎么办呢?我们继续使用网络图片,放置自己picbed 中的图片。

问题是怎么上床呢?简单方法是直接 push 到这个仓库,然后抛链接,但是这不正规,况且文件的命名都是麻烦事。这里最好使用 PicGo。

六、配置使用 PicGo

首先下载 PicGo:
选择一个合适的发行版,然后就可以在本地操作了。

具体参考这里

总结

以上就是个人博客搭建的全过程,经过一上午的从 0 到 1,博客终于实现了,以后还得学习学习怎么添加一些feature。

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

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

相关文章

《梦醒蝶飞:释放Excel函数与公式的力量》9.1 PMT函数

9.1 PMT函数 PMT函数是Excel中用于计算贷款或投资每期付款金额的函数。它是一个非常实用的财务函数,能够帮助我们快速计算等额本息还款金额。 9.1.1 函数简介 PMT函数用于计算贷款的等额分期付款金额。它根据贷款总额、利率和贷款期数,计算每期需要偿…

大模型日报 2024-07-06

大模型日报 2024-07-06 大模型资讯 ⏩支付宝发布多模态医疗大模型,联合 20 家机构发起医疗 AI 共建计划 支付宝发布多模态医疗大模型,联合 20 家机构发起医疗 AI 共建计划。旨在推动 AI 在医疗领域的创新应用,通过多模态数据整合和分析&#…

解释Handler、Looper和Message Queue在Android中的作用和关系。

在Android开发中,Handler、Looper和Message Queue是处理线程间通信和消息传递的重要组件,它们在异步编程和UI更新方面发挥着至关重要的作用。下面从技术难点、面试官关注点以及回答吸引力三个方面详细解释这些组件的作用和关系。 技术难点 Handler的作用…

vue3使用pinia中的actions,需要调用接口的话

actions,需要调用接口的话,假如页面想要调用actions中的方法获取数据, 必须使用try catch async await 进行包裹,详情看下面代码 import {defineStore} from pinia import {reqCode,reqUserLogin} from ../../api/hospital/i…

Midjourney 预设

使用命令/settings 进入预设,根据点击不同选项来配置。 🌹 1. 设置工作所使用的模型版本。 1️⃣ MJ Version 1 2️⃣ MJ Version 2 3️⃣ MJ Version 3 4️⃣ MJ Version 4 5️⃣ MJ Version 5 5️⃣ MJ Version 5.1 🔧Raw Mode 🌈 Niji Version 4 🍎 Niji Versio…

深入探索C语言中的结构体:定义、特性与应用

🔥 个人主页:大耳朵土土垚 目录 结构体的介绍结构体定义结构成员的类型结构体变量的定义和初始化结构体成员的访问结构体传参 结构体的介绍 在C语言中,结构体是一种用户自定义的数据类型,它允许开发者将不同类型的变量组合在一起…

数据库管理工具 -- Navicat Premium v17.0.8 特别版

软件简介 Navicat Premium 是一款功能强大的数据库管理工具,适用于Windows、Mac和Linux平台。它支持多种数据库,包括MySQL、MariaDB、SQL Server、PostgreSQL、Oracle、SQLite等。用户可以通过Navicat Premium轻松地连接到各种数据库服务器,…

ASP.NET Core----基础学习02----中间件的执行顺序 静态文件中间件

文章目录 1.终端中间件(Middleware)2.中间件的执行顺序(1)当只有2个中间件的时候,先执行普通中间件,再执行终端中间件(2)当有多个中间件的时候,中间件的执行顺序 3.添加静…

接口自动化测试思路和实战(5):【推荐】混合测试自动化框架(关键字+数据驱动)

混合测试自动化框架(关键字数据驱动) 关键字驱动或表驱动的测试框架 这个框架需要开发数据表和关键字。这些数据表和关键字独立于执行它们的测试自动化工具,并可以用来“驱动"待测应用程序和数据的测试脚本代码,关键字驱动测试看上去与手工测…

Nacos服务注册总流程(源码分析)

文章目录 服务注册NacosClient找看源码入口NacosClient服务注册源码NacosServer处理服务注册 服务注册 服务注册 在线流程图 NacosClient找看源码入口 我们启动一个微服务&#xff0c;引入nacos客户端的依赖 <dependency><groupId>com.alibaba.cloud</groupI…

免密ssh和自定义服务器名字【远程连接服务器】

免密ssh和自定义服务器名字【远程连接服务器】 免密ssh和自定义服务器名字【远程连接服务器】服务器添加本地公钥ssh-copy-id使用别名登录config 免密ssh和自定义服务器名字【远程连接服务器】 原理 实现免密登录需要 本地的公钥id_rsa.pub放在服务器上的 authorized_keys 文件…

Linux 防火墙配置指南:firewalld 端口管理应用案例(二十个实列)

&#x1f3e1;作者主页&#xff1a;点击&#xff01; &#x1f427;Linux基础知识(初学)&#xff1a;点击&#xff01; &#x1f427;&#x1f427;Linux高级管理专栏&#xff1a;点击&#xff01; &#x1f510;Linux中firewalld防火墙&#xff1a;点击&#xff01; ⏰️…

Thisjavabean对象数组

This 1.概念 this是一个对象this是一个构造函数 2.介绍 解决局部变量和成员变量命名冲突 this在面向对象-封装那一篇里&#xff0c;有被两个地方提及。 但我们先简单给一个例子&#xff1a; public Person(String name, String phone, String qqPassword, String bankCar…

豆瓣评分9.6,这本书不看损失巨大!

点击上方△腾阳 关注 转载请联系授权 这些年&#xff0c;我就像是个热心向导&#xff0c;逢人就劝读那本《毛泽东选集》。 结果呢&#xff1f;有人一听就摆手&#xff0c;笑言&#xff1a;“哎呀&#xff0c;那书太高大上了&#xff0c;咱啃不动啊&#xff01;” 特别是咱们…

WEB编程-了解Tomcat服务器

第⼀章⽹络编程 1.1 概述 计算机⽹络&#xff1a;是指将地理位置不同的具有独⽴功能的多台计算机及其外部设备&#xff0c;通过通信线路连接起来&#xff0c;在⽹络 操作系统、⽹络管理软件及⽹络通信协议的管理和协调下&#xff0c;实现资源共享和信息传递的计算机系统。 …

智慧矿山建设规划方案(121页Word)

智慧矿山建设项目方案摘要 一、项目背景及现状分析 项目背景 随着信息技术的迅猛发展&#xff0c;智慧化、数字化已成为矿山行业转型升级的必然趋势。智慧矿山建设项目旨在通过集成先进的信息技术手段&#xff0c;实现对矿山生产、管理、安全等全过程的智能化监控与管理&…

SpringBoot新手快速入门系列教程四:创建第一个SringBoot的API

首先我们用IDEA新建一个项目&#xff0c;请将这些关键位置按照我的设置设置一下 接下来我将要带着你一步一步创建一个Get请求和Post请求&#xff0c;通过客户端请求的参数&#xff0c;以json格式返回该参数{“message”:"Hello"} 1,先在IDE左上角把这里改为文件模式…

CP AUTOSAR标准之TimeSyncOverFlexRay(AUTOSAR_CP_SWS_TimeSyncOverFlexRay)(更新中……)

1 简介和功能概述 FrTSyn模块负责处理FlexRay总线上的时间信息分发。   FlexRay机制比CAN机制简单得多,因为它基于这样一个事实,即FlexRay节点彼此同步,否则任何消息都无法在FlexRay上传输。   时间主站和时间从站对FlexRay全局时间的看法相同。因此,只需定义(FlexRay)…

G9 - ACGAN理论与实战

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 目录 环境步骤环境设置数据准备工具方法模型设计模型训练模型效果展示 总结与心得体会 上周已经简单的了解了ACGAN的原理&#xff0c;并且不经实践的编写了部分…

Docker 入门篇(十 一)-- 网络配置总结

Docker 容器技术的核心优势之一是其轻量级的虚拟化和隔离性&#xff0c;而 Docker 网络则是实现容器间以及容器与外界通信的关键。以下是对 Docker 网络的关键知识点的总结。 一、 Docker 网络概述 Docker 网络允许容器进行相互通信以及与外部网络的连接。Docker 提供了多种网…