热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【hexo+githubpages】搭建属于自己的博客网站

今天在自定义自己github首页的时候,翻看自己GitHub项目,忽然发现了那会刚开始做前端的时候搭建的博客,好几年前了,都

今天在自定义自己github首页的时候,翻看自己GitHub项目,忽然发现了那会刚开始做前端的时候搭建的博客,好几年前了,都差不多忘记了,回想起那会搭建的时候也是费了挺大劲,最近一年也会偶尔在CSDN写博客记录点东西,那便记录一下怎么利用GitHub和hexo来搭建一个属于自己的博客网站,顺便把曾经搭建的博客网站捡起来再玩一玩。

用Hexo + GitHub 搭建自己的博客网站


什么是hexo

官方给我们的描述是快速、简洁且高效的博客框架。Hexo是一款基于Node.js的静态博客框架,依赖少易于安装使用,支持 Markdown 的所有功能,一键部署,只需要一个指令就可以部署到github pages或者其他平台,支持多种模板引擎和工具。

安装搭建hexo

要用GitHub 和 hexo 搭建个人的博客网站,首先必须有自己的github账号没什么问题吧,其次需要提前准备的环境:下载安装git, nodeJs,这个怎么去安装我想应该不用说了吧(真不知道的话分别百度nodejs, git去官网点击下载安装即可)。准备好环境后我们还要安装 hexo:

npm install hexo-cli -g

前面安装了nodejs,现在就i可以直接用 npm安装 hexo,同时按下 window + R 键,输入 cmd 打开终端,执行上面的命令,等待安装完成,完成以后可用

hexo -v 查看版本,同时也是验证是否安装完成。

hexo

如上图说明我们已经安装完成了,然后我们来初始化我们的hexo项目:

// blog 是你的项目名字,取什么名字都行您随意
hexo init blog

然后进入你的项目中,安装依赖:

cd blog // 进入项目中
npm install // 安装依赖包

完成后你的项目目录应该包含:

  • node_modules:依赖包
  • scaffolds:生成文章的模板
  • source:存放你写的文章
  • themes:主题
  • _config.yml:博客的配置文件

hexo server

打开hexo的服务,在浏览器输入http://localhost:4000/就可以打开你的博客了。

GitHub创建个人仓库

前面说过你要有自己的 github 账号,如果你还没有,去注册一个吧,注册完成后登录到GitHub页面,你会看到一个 New repository, 创建一个和你用户名同名的仓库,后面加上.github.io, 只有这样将来部署到 Github Page 的时候, 才会被识别, 也就是 用户名.github.io, 我已经创建过了,再次创建会提示 The repository **xxx.github.io** already exists on this account.,表示我这个账户已经创建过这个仓库。

如果你已经创建完成了和你注册GitHub同名的仓库,下面我们来生成ssh密钥:

在你项目文件夹点击鼠标右键,点击 git base hero, 打开你的 git base 后,在base中分别输入:

git config --global user.name "yourname" // yourname输入你的github用户名
git config --global user.email "youremail" // youremail输入你GitHub的邮箱

可以检查一下你有没有输对

git config user.name
git config user.email

配置GitHub ssh密钥

创建ssh密钥,一路回车,可以不设置密码

ssh -keygen -t rsa -C "youremail"

生成完成后,进入你的用户名文件夹下,找到.ssh 文件夹,里面有两个文件。这个就是密钥,其中 id_rsa是你电脑的私人密钥,id_rsa.pub 是公共密钥。我们要做的就是把公钥配置到GitHub中,这样当你访问链接自己的GitHub账号时,它就会根据公钥配到你的私钥,当能达到匹配的时候,你就能通过git上传你的项目到GitHub中了。

下面我们来配置自己的ssh密钥,进入你的GitHub页面,点击右上角你的账号头像,在下拉菜单中找到 settings 菜单,点击进入设置页面,然后在设置页面左边的菜单分类中找到 Access 下面的 SSH and GPG keys 菜单,然后点击 New SSH key 按钮,把你本地创建的公钥复制后粘贴到key 的输入框中, title 随便输都行,然后保存。在gitbase中查看是否成功

ssh -T git@github.com

将hexo部署到GitHub

如何将hexo和github关联起来呢,那就要把hexo生成文章部署到GitHub上,打开站点配置文件_config.yml, 翻到最后,修改配置:xxx为你的github账户

# Deployment
## Docs: https://hexo.io/docs/deployment.html
deploy:type: gitrepo: https://github.com/xxx/xxx.github.io.gitbranch: master

要完成部署操作,你还需要安装 deploy-git:

npm install hexo-deployer-git --save

然后我们需要了解一下hexo的常用命令:

// 新建一个网站,如果没设置 floder hexo默认在当前文件夹下创建网站
hexo init [flolder]
// 新建一篇文章,如果没有设置 layout 的话,默认使用 _config.yml 中的 default_layout 参数代替。如果标题包含空格的话,请使用引号括起来。
hexo new [layout] <title>
// 生成静态文件。
hexo generate // hexo g -d, 文件生成后立即部署网站
// 发表草稿
hexo publish [layout] <filename>
// 启动服务器。默认情况下&#xff0c;访问网址为&#xff1a; http://localhost:4000
hexo server
// 部署网站, 可以简写为hexo d
hexo deploy
// 清除缓存文件 (db.json) 和已生成的静态文件 (public)
hexo clean

hexo generate 顾名思义&#xff0c;生成静态文章&#xff0c;可以用 hexo g缩写
hexo deploy 部署文章&#xff0c;可以用hexo d缩写

当然你也可以用 hexo g -d 一步完成部署。

如果在执行部署网站的时候出现下列错误: ”Software caused connection abort fatal: Could not read from remote repository.”, 很可能是dns解析问题&#xff0c;用 ssh -T git&#64;github.com 在gitbase中检测是否正常&#xff0c;打开cmd输入ping github.com是否能连接&#xff0c;配置本地的hosts 文件&#xff0c; 文件路径 c:\windows\system32\drivers\etc\hosts,在末尾添加上&#xff1a;

140.82.112.4 github.com git
140.31.16.184 github.global.ssl.fastly.net

gitbase 再次ssh -T git&#64;github.com成功。


hexo的基本配置


网站 (# site)


参数描述
title网站标题
subtitle网站的副标题
description网站描述
keywords网站的关键词。支持多个关键词。
author作者名字
language网站使用的语言。对于简体中文用户来说&#xff0c;使用不同的主题可能需要设置成不同的值&#xff0c;请参考你的主题的文档自行设置&#xff0c;常见的有 zh-Hanszh-CN
timezone网站时区。Hexo 默认使用您电脑的时区。般的&#xff0c;对于中国大陆地区可以使用 Asia/Shanghai

网址(#URL)


参数描述默认值
url网址, 必须以 http://https:// 开头
root网站根目录/
permalink文章的 永久链接 格式:year/:month/:day/:title/
permalink_defaults永久链接中各部分的默认值
pretty_urls改写 permalink 的值来美化 URL
pretty_urls.trailing_index是否在永久链接中保留尾部的 index.html&#xff0c;设置为 false 时去除true
pretty_urls.trailing_html是否在永久链接中保留尾部的 .html, 设置为 false 时去除 (对尾部的 index.html无效&#xff09;true

我们在配置文件中将url改成自己的网站域名&#xff0c;permalink是我们生成文章时候的那个链接格式。链接的变量很多&#xff0c;可以点击上面的永久链接去官方文档查找配置。

目录#Directory

# Directory
source_dir: source # 资源文件夹&#xff0c;这个文件夹用来存放内容。
public_dir: public # 公共文件夹&#xff0c;这个文件夹用于存放生成的站点文件。
tag_dir: tags # 标签文件夹
archive_dir: archives # 归档文件夹
category_dir: categories # 分类文件夹
code_dir: downloads/code # Include code 文件夹&#xff0c;source_dir 下的子目录
i18n_dir: :lang # 国际化&#xff08;i18n&#xff09;文件夹
skip_render: # 跳过指定文件的渲染

如果您刚刚开始接触 Hexo&#xff0c;通常没有必要修改这一部分的值。


文章#Writing

# Writing
new_post_name: :title.md # 新文章的文件名称
default_layout: post # 预设布局
titlecase: false # 把标题转换为 title case
auto_spacing: false # 在中文和英文之间加入空格
external_link:enable: true # Open external links in new tabfield: site # Apply to the whole siteexclude: &#39;&#39; # 需要排除的域名
filename_case: 0 # 把文件名称转换为 (1) 小写或 (2) 大写
render_drafts: false # 显示草稿
post_asset_folder: false # 启动 Asset 文件夹
relative_link: false # 把链接改为与根目录的相对位址
future: true # 显示未来的文章
highlight: # 代码块的设置, 请参考 Highlight.js 进行设置enable: trueline_number: trueauto_detect: falsetab_replace: &#39;&#39;wrap: truehljs: false
prismjs: # 代码块的设置, 请参考 PrismJS 进行设置enable: falsepreprocess: trueline_number: truetab_replace: &#39;&#39;

分类 & 标签

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

分页

# Pagination
per_page: 10 # 每页显示的文章量 (0 &#61; 关闭分页功能)
pagination_dir: page # 分页目录

主题

通常情况下&#xff0c;Hexo 主题是一个独立的项目&#xff0c;并拥有一个独立的 _config.yml 配置文件。

除了自行维护独立的主题配置文件&#xff0c;你也可以在其它地方对主题进行配置。

hexo官网有300多个主题&#xff0c;在这里下载你喜欢的主题进行修改就可以了。直接在github链接上下载下来&#xff0c;然后放到theme文件夹下就行了&#xff0c;然后再在刚才说的配置文件中把theme换成那个主题文件夹的名字&#xff0c;它就会自动在theme文件夹中搜索你配置的主题。

我们也可以自定义自己的主题&#xff0c;或者修改已经安装的主题的样式。

跳转 我的博客 查看&#xff01;


推荐阅读
  • Node.js 教程第五讲:深入解析 EventEmitter(事件监听与发射机制)
    本文将深入探讨 Node.js 中的 EventEmitter 模块,详细介绍其在事件监听与发射机制中的应用。内容涵盖事件驱动的基本概念、如何在 Node.js 中注册和触发自定义事件,以及 EventEmitter 的核心 API 和使用方法。通过本教程,读者将能够全面理解并熟练运用 EventEmitter 进行高效的事件处理。 ... [详细]
  • TypeScript 实战分享:Google 工程师深度解析 TypeScript 开发经验与心得
    TypeScript 实战分享:Google 工程师深度解析 TypeScript 开发经验与心得 ... [详细]
  • 掌握PHP编程必备知识与技巧——全面教程在当今的PHP开发中,了解并运用最新的技术和最佳实践至关重要。本教程将详细介绍PHP编程的核心知识与实用技巧。首先,确保你正在使用PHP 5.3或更高版本,最好是最新版本,以充分利用其性能优化和新特性。此外,我们还将探讨代码结构、安全性和性能优化等方面的内容,帮助你成为一名更高效的PHP开发者。 ... [详细]
  • 深入探索Node.js新框架:Nest.js第六篇
    在本文中,我们将深入探讨Node.js的新框架Nest.js,并通过一个完整的示例来展示其强大功能。我们将使用多个装饰器创建一个基本控制器,该控制器提供了多种方法来访问和操作内部数据,涵盖了常见的CRUD操作。此外,我们还将详细介绍Nest.js的核心概念和最佳实践,帮助读者更好地理解和应用这一现代框架。 ... [详细]
  • 基于Node.js的高性能实时消息推送系统通过集成Socket.IO和Express框架,实现了高效的高并发消息转发功能。该系统能够支持大量用户同时在线,并确保消息的实时性和可靠性,适用于需要即时通信的应用场景。 ... [详细]
  • Eclipse安装教程:解决Genymotion配置中的疑难杂症
    Eclipse安装教程:解决Genymotion配置中的疑难杂症 ... [详细]
  • 为了在Hadoop 2.7.2中实现对Snappy压缩和解压功能的原生支持,本文详细介绍了如何重新编译Hadoop源代码,并优化其Native编译过程。通过这一优化,可以显著提升数据处理的效率和性能。此外,还探讨了编译过程中可能遇到的问题及其解决方案,为用户提供了一套完整的操作指南。 ... [详细]
  • 数字图书馆近期展出了一批精选的Linux经典著作,这些书籍虽然部分较为陈旧,但依然具有重要的参考价值。如需转载相关内容,请务必注明来源:小文论坛(http://www.xiaowenbbs.com)。 ... [详细]
  • 本文介绍了 Vue 开发的入门指南,重点讲解了开发环境的配置与项目的基本搭建。推荐使用 WebStorm 作为 IDE,其下载地址为 。安装时请选择适合您操作系统的版本,并通过 获取激活码。WebStorm 是前端开发者的理想选择,提供了丰富的功能和强大的代码编辑能力。 ... [详细]
  • 作为软件工程专业的学生,我深知课堂上教师讲解速度之快,很多时候需要课后自行消化和巩固。因此,撰写这篇Java Web开发入门教程,旨在帮助初学者更好地理解和掌握基础知识。通过详细记录学习过程,希望能为更多像我一样在基础方面还有待提升的学员提供有益的参考。 ... [详细]
  • 本文探讨了资源访问的学习路径与方法,旨在帮助学习者更高效地获取和利用各类资源。通过分析不同资源的特点和应用场景,提出了多种实用的学习策略和技术手段,为学习者提供了系统的指导和建议。 ... [详细]
  • 本文详细介绍了如何在Java Web服务器上部署音视频服务,并提供了完整的验证流程。以AnyChat为例,这是一款跨平台的音视频解决方案,广泛应用于需要实时音视频交互的项目中。通过具体的部署步骤和测试方法,确保了音视频服务的稳定性和可靠性。 ... [详细]
  • 解析 /etc/pki/tls/certs/cabundle.crt 文件的主要功能与应用场景 ... [详细]
  • 在GitHub上克隆vue-element-admin项目时遇到依赖安装错误
    在 GitHub 上克隆 vue-element-admin 项目后,使用 `npm install` 安装依赖时遇到了未知的 Git 错误。具体错误信息为 `npm ERR! code 128`,提示命令执行失败。这可能是由于网络问题、Git 配置不正确或某些依赖包的仓库地址无效导致的。建议检查网络连接、更新 Git 版本并确保所有依赖项的 URL 正确无误。 ... [详细]
  • CentOS 7环境下Jenkins的安装与前后端应用部署详解
    CentOS 7环境下Jenkins的安装与前后端应用部署详解 ... [详细]
author-avatar
洗吉精洗白菜_773
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有