Hexo+Github+Vscode搭建个人博客内含添加图片和更换主题

Why I want to get a personal blog?
从2021年开始写博客以来,我发现了如下几个好处:

  1. 独立思考的能力。为了将知识解释清楚,我必须反复思考。
  2. 逻辑能力的提升。写博客的文字必须减少废话,这对之前的我来说是一件困难的事情,但是现在通过我写PPT和汇报的能力来看是有所提升的。
  3. 激励学习。发布博客的瞬间让我的学习变得有成就感,我能通过博客了解消失的时间花费在哪里。
  4. 交流。

那么为什么我选择搭建自己的博客呢?原因有三:其一是csdn博客网站打开缓慢;其二是想尝试搭建自己的博客网站;最后希望熟悉markdown语法。

此博客网站为主是我的学习笔记,有值得发布的内容会再继续同步到csdn博客。

本人现在已经不更新博客了,建议正在搭建的人也三思。hexo生成的博客是静态的,需要每次都手动生成页面,甚至因为浏览器缓存无法看见更新。因此我现在放弃了这个搭建方法,之后会另寻他法。总的来说搭建完还是挺有成就感的。

0. 环境配置

所需工具:Node.js、npm、git

安装Node.js和git:

  • Node.js: https://link.zhihu.com/?target=https%3A//nodejs.org/zh-cn
  • Git: https://link.zhihu.com/?target=https%3A//git-scm.com/downloads

安装完成后,在cmd下输入如下命令查看版本号:

node -v
npm -v
git --version

在这里插入图片描述

1. 连接GitHub

打开git bash,输入命令设置用户名和邮箱:

git config --global user.name "GitHub 用户名"
git config --global user.email "GitHub 邮箱"

创建SSH密钥:

ssh-keygen -t rsa -C "GitHub 邮箱"

所生成文件在[C:\Users\用户名.ssh] 目录,查看id_rsa.pub公钥内容并复制。

添加公钥至github: Setting-> SSH and GPG keys-> New SSH key

在这里插入图片描述

在这里插入图片描述

验证连接:
打开GitBash,输入:

ssh -T git@github.com

显示 “Hi xxx! You’ve successfully……” 即连接成功。

2. 创建Github Pages仓库

GitHub 主页右上角加号 -> New repository:

  • Repository name 中输入 用户名.github.io
  • 勾选 “Initialize this repository with a README”
  • Description 选填
    填好后点击 Create repository 创建。

在这里插入图片描述

3. 本地安装Hexo博客程序

tips:先添加代理,否则会非常缓慢

  • 查看原来的代理
npm config get registry 
  • 修改代理
npm config set registry https://registry.npm.taobao.org 
  • 安装Hexo
npm install -g hexo-cli

如果界面没有反应,请耐心等待!

4. Hexo初始化和本地预览

初始化并安装所需组件:

hexo init      # 初始化
npm install    # 安装组件

完成后依次输入下面命令,启动本地服务器进行预览:

hexo g   # 生成页面
hexo s   # 启动预览

访问 http://localhost:4000,出现 Hexo 默认页面,本地博客安装成功!

博客目录结构

.
├── _config.landscape.yml
├── _config.yml   
├── node_modules
├── package-lock.json
├── package.json
├── scaffolds
├── source
└── themes 
  • _config.yml :全局配置文件,比如网站名称,副标题,秒速,作者,语言等等。具体可以参考官方文档:https://hexo.io/zh-cn/docs/configuration.html。
  • scaffolds :骨架文件,是生成新页面或者新博客的模版。可以根据需求编辑,当hexo生成新博客的时候,会用这里面的模版进行初始化。
  • source : 这个文件夹下面存放的是网站的markdown源文件,里面有一个_post文件夹,所有的.md博客文件都会存放在这个文件夹下。现在有一个hello-world.md文件。
  • themes :网站主题目录,hexo有非常丰富的主题支持,主题目录会存放在这个目录下面。更多的主题参见:https://hexo.io/themes/

5. 部署Hexo到GithubPages

安装 hexo-deployer-git:

npm install hexo-deployer-git --save

修改 _config.yml 文件末尾的 Deployment 部分,修改成如下:

deploy:
  type: git
  repository: git@github.com:用户名/用户名.github.io.git
  branch: master

完成后运行 hexo d 将网站上传部署到 GitHub Pages。

完成!访问GitHub 域名 https://用户名.github.io 就可以看到 Hexo 网站了。

6. 发布第一篇文章

hexo new "First post"

其中source 文件夹中会出现一个 First post.md 文件,就可以使用 Markdown 编辑器在该文件中撰写文章了。

写完后运行下面代码将文章渲染并部署到 GitHub Pages 上完成发布,以后每次发布文章都是这两条命令!

生成页面

hexo g

在这里插入图片描述

部署发布

hexo d

在这里插入图片描述

也可以不使用命令自己创建 .md 文件,只需在文件开头手动加入如下格式 Front-matter 即可,写完后运行 hexo g 和 hexo d 发布。

---
title: Tutorial:基于Hexo和Github搭建个人博客
date: 2022-08-25 14:07:06
tags:
- other
keywords:
- hexo
- github
- blog
---

摘要
<!--more-->
正文

至此,博客搭建成功 !!!


其他

1) hexo更换主题

  1. 下载主题
    主题链接:https://github.com/jerryc127/hexo-theme-butterfly
    Blog根目录下
git clone -b master https://github.com/jerryc127/hexo-theme-butterfly.git themes/butterfly
  1. 更改配置文件
theme: butterfly

错误解决: https://blog.youkuaiyun.com/weixin_44318830/article/details/104884936

npm install --save hexo-renderer-jade hexo-generator-feed hexo-generator-sitemap hexo-browsersync hexo-generator-archive
  • 清除缓存
hexo clean
  • 生成静态文件
hexo g

2) 插入图片

下载插件

进入根目录,右键打开git bash,输入如下命令:

npm install hexo-asset-image --save

修改插件

该插件在hexo3.1版本时发布,需要修改一处代码。
进入博客根目录找到node_modules-> hexo-asset-image-> index.js

在第58行

$(this).attr('src', config.root + link + src);

改成

$(this).attr('src', config.root + link + src);

保存文件

修改配置文件

  • 在_config.yml配置文件将post_asset_folder:false改成true
  • hexo new "blog name"的时候会同时生成同名文件夹用来存放资源(将所有图片放在这个文件夹内)

在这里插入图片描述

插入图片命令

  • [ ](imgName.png)
  • [ ](./ImgFolder/imgName.png)

在vscode等markdown编辑器下也会正常显示图片

最后,hexo clean -> hexo g -> hexo s -> hexo d,查看博客。

3) 使用vscode在markdown粘贴图片

插件:Paste Image

在这里插入图片描述

快捷键如下:

ctrl + alt + v

参考资料:

  1. 使用 Hexo+GitHub 搭建个人免费博客教程(小白向)

  2. 个人博客搭建教程

  3. Hexo 图片插入无法显示的问题

_config.yml文件含义

# Site
title: Hexo  # 网站标题
subtitle:    # 网站副标题
description: # 网站描述
author: John Doe  # 作者
language:    # 语言
timezone:    # 网站时区, Hexo默认使用您电脑的时区

# URL
## If your site is put in a subdirectory, set url as 'http://yoursite.com/child'
## and root as '/child/'
url: http://yoursite.com   # 你的站点Url
root: /                    # 站点的根目录
permalink: :year/:month/:day/:title/   # 文章的 永久链接 格式   
permalink_defaults:        # 永久链接中各部分的默认值

# Directory   
source_dir: source     # 资源文件夹,这个文件夹用来存放内容
public_dir: public     # 公共文件夹,这个文件夹用于存放生成的站点文件。
tag_dir: tags          # 标签文件夹     
archive_dir: archives  # 归档文件夹
category_dir: categories     # 分类文件夹
code_dir: downloads/code     # Include code 文件夹
i18n_dir: :lang              # 国际化(i18n)文件夹
skip_render:                 # 跳过指定文件的渲染,您可使用 glob 表达式来匹配路径。    

# Writing
new_post_name: :title.md  # 新文章的文件名称
default_layout: post      # 预设布局
titlecase: false          # 把标题转换为 title case
external_link: true       # 在新标签中打开链接
filename_case: 0          # 把文件名称转换为 (1) 小写或 (2) 大写
render_drafts: false      # 是否显示草稿
post_asset_folder: false  # 是否启动 Asset 文件夹
relative_link: false      # 把链接改为与根目录的相对位址    
future: true              # 显示未来的文章
highlight:                # 内容中代码块的设置    
  enable: true            # 开启代码块高亮
  line_number: true       # 显示行数
  auto_detect: false      # 如果未指定语言,则启用自动检测
  tab_replace:            # 用 n 个空格替换 tabs;如果值为空,则不会替换 tabs

# Category & Tag
default_category: uncategorized
category_map:       # 分类别名
tag_map:            # 标签别名

# Date / Time format
## Hexo uses Moment.js to parse and display date
## You can customize the date format as defined in
## http://momentjs.com/docs/#/displaying/format/
date_format: YYYY-MM-DD     # 日期格式
time_format: HH:mm:ss       # 时间格式    

# Pagination
## Set per_page to 0 to disable pagination
per_page: 10           # 分页数量
pagination_dir: page   # 分页目录

# Extensions
## Plugins: https://hexo.io/plugins/
## Themes: https://hexo.io/themes/
theme: landscape   # 主题名称

# Deployment
## Docs: https://hexo.io/docs/deployment.html
#  部署部分的设置
deploy:     
  type: '' # 类型,常用的git 
<think>好的,我需要帮助用户了解如何用HexoGitHub免费搭建个人博客网站。首先,我得回忆一下Hexo的基本流程GitHub Pages的使用方法。用户可能对静态网站生成器版本控制不太熟悉,所以步骤需要详细但简洁。 首先,安装Node.jsGit是前提条件,因为Hexo基于Node.js,而Git用于部署到GitHub。我需要确保用户正确安装这些工具,可能还需要指导他们如何验证安装是否成功。 接下来是安装Hexo,通过npm全局安装。然后初始化项目,进入目录并安装依赖。这里需要注意命令的正确性,比如hexo init之后是否要指定文件夹,或者默认当前目录。 创建GitHub仓库的部分,用户需要知道仓库命名规则,比如username.github.io必须正确,否则无法生成页面。可能需要提醒用户将username替换为自己的GitHub用户名。 配置Hexo的部分,重点是修改_config.yml文件中的部署设置。需要指出正确的仓库URL分支,通常使用main或master分支。这里容易出错,比如缩进问题或拼写错误,可能需要特别强调语法。 生成静态文件部署的命令,hexo generatehexo deploy,用户需要了解每个步骤的作用。可能还要提到hexo server来本地预览,这对调试很重要。 最后,自定义主题写作的部分,用户可能希望个性化博客,所以需要推荐一些主题基本的写作流程。比如创建新文章的命令,以及如何修改主题配置。 在引用方面,用户提供的引用链接[^1][^2]需要正确对应到相关内容。比如,引用是关于使用HexoGitHub搭建网站的具体指南,而引用[^2]是静态生成器的集合,可能用来推荐其他工具,但当前问题主要关注Hexo,所以可能只在最后提到。 还要考虑用户可能遇到的问题,比如部署失败、页面无法访问、主题安装错误等,是否需要包含常见问题解答?不过根据用户要求,回答应结构清晰,分步骤解决,可能不需要深入排错,但可以建议查阅引用资料获取更多帮助。 最后,生成的相关问题需要围绕HexoGitHub Pages的优化、主题选择、部署问题等,确保问题有针对性,帮助用户进一步探索。</think>### 如何使用HexoGitHub免费搭建个人博客网站? 以下是分步操作指南: #### 1. 环境准备 - **安装Node.js** 访问[Node.js官网](https://nodejs.org/)下载安装包,完成后验证安装: ```bash node -v # 查看Node.js版本 npm -v # 查看npm版本 ``` - **安装Git** 访问[Git官网](https://git-scm.com/)下载安装包,完成后验证: ```bash git --version ``` #### 2. 安装Hexo ```bash npm install -g hexo-cli # 全局安装Hexo脚手架 hexo init myblog # 初始化博客项目 cd myblog npm install # 安装依赖 ``` #### 3. 创建GitHub仓库 - 新建仓库名为 `用户名.github.io`(需替换为你的GitHub用户名) - 仓库需设为公开(Public) - 分支默认使用 `main` 或 `master` #### 4. 配置Hexo部署 修改 `_config.yml` 文件末尾的部署配置: ```yaml deploy: type: git repo: https://github.com/你的用户名/你的用户名.github.io.git branch: main ``` #### 5. 安装部署插件 ```bash npm install hexo-deployer-git --save ``` #### 6. 生成静态文件并部署 ```bash hexo clean # 清理缓存 hexo generate # 生成静态文件 hexo deploy # 部署到GitHub ``` #### 7. 访问博客 打开浏览器输入 `https://你的用户名.github.io`,约1-2分钟后生效。 #### 8. 自定义主题(以Butterfly主题为例) 1. 安装主题: ```bash npm install hexo-theme-butterfly ``` 2. 修改 `_config.yml`: ```yaml theme: butterfly ``` 3. 重新部署: ```bash hexo clean && hexo deploy ``` #### 9. 写作新文章 ```bash hexo new "我的第一篇文章" # 在source/_posts生成Markdown文件 # 编辑完成后重新生成部署 ``` --- ### 关键配置说明 1. **本地预览** 使用 `hexo server` 可在 `http://localhost:4000` 实时调试 2. **自定义域名** 在博客根目录添加 `CNAME` 文件(内容为域名),并在域名服务商处配置DNS解析 3. **自动持续集成** 可通过GitHub Actions实现自动构建(参考[GitHub Pages文档](https://docs.github.com/en/pages)) --- ### 优势分析 | 方案 | 成本 | 技术门槛 | 可定制性 | 维护难度 | |------------|-------|----------|----------|----------| | Hexo+GitHub| 免费 | 中等 | 高 | 低 | | WordPress | 付费 | 低 | 中 | 中 | | Wix | 免费/付费 | 低 | 低 | 低 | --- ### 常见问题处理 - **页面404错误** 检查仓库命名是否正确,部署分支是否匹配 - **样式加载失败** 主题配置后需重新生成静态文件 - **部署超时** 尝试清除浏览器缓存或等待GitHub服务器刷新(最长等待10分钟) ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zoetu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值