Hexo简介

Hexo是一款基于Node.js的静态博客框架,依赖少易于安装使用,可以方便的生成静态网页托管在GitHub和Coding上,是搭建博客的首选框架。大家可以进入hexo官网进行详细查看,因为Hexo的创建者是台湾人,对中文的支持很友好,可以选择中文进行查看。

Hexo搭建步骤

  • 安装Git
  • 安装Node.js
  • 安装Hexo
  • 编写github actions
  • 推送到github
  • 发布文章

我们的开发过程是在win环境下,本质和环境没关系,影响不大,首先我们要保证我们的电脑上安装了git 与node.js 其中git是为了我们方便检出与推送我们的代码,node.js是为了构建hexo的脚手架,生成项目结构,我们在在后面提供生成好的项目结构源码,这样子我们也不需要node.js了,不过还是建议大家自己来构建,灵活操作,本地浏览构建项目也需要

  • 上述两个环境我们不在这里阐述,如果不懂安装的可以百度,我们直接从hexo的脚手架构建开始

Hexo 安装与项目初始化

首先我们可以用 cmd命令窗口或者vscode里命令窗口,都一样,这里我们使用VScode因为后期项目的ide就用vocode ;

  • 打开vscode 软件,按 CTRL+ `调出命令窗口,输入

cd H:\project\ -- 切换到我们项目要放的目录下 node -v -- 查看node的环境版本 npm -v -- 查看 npm 的版本

通过这两个命令来查询我们node.js的安装情况如下,则显示正常

  • 执行命令  npm install -g hexo-cli  来安装hexo的脚手架支持,这是安装到node的插件中,



上述显示下载好cli程序,接下类我们开始初始化项目

  • 创建项目目录 名字自己定,比如 'myblog'

命令: mkdir myblog

  • 初始化hexo项目 mylog

命令:  hexo init 项目目录名   这里就是 : hexo init myblog

  • 等待构建好,上面显示就已经构建好了,接下来我们直接通过vscode来打开项目目录 myblog

  • 新建完成后,指定文件夹目录下有:

    1. node_modules : 依赖包
    2. public :存放生成的页面
    3. scaffolds :生成文章的一些模板
    4. source :用来存放你的文章
    5. themes :主题
    6. ** _config.yml : 博客的配置文件**
  • 这时候我们咋控制台可以直接命令编译启动项目

cd .\myblog\`

npm install

在执行时可能会出现下面问题



简单翻译就是:

5 个 包正在寻找募款,执行 npm fund 查看详情(募捐链接);

发现一个发现 1 个低严重性漏洞,执行 npm audit fix 进行修复, 或 npm audit 查看更多信息。

通过命令 npm audit 详细信息为 :


=== npm audit security report === Manual Review
Some vulnerabilities require your attention to resolve Visit https://go.npm.me/audit-guide for additional guidance Low Prototype Pollution Package minimist Patched in >=0.2.1 <1.0.0 || >=1.2.3 Dependency of hexo Path hexo > swig-templates > optimist > minimist More info https://npmjs.com/advisories/1179 found 1 low severity vulnerability in 470 scanned packages
1 vulnerability requires manual review. See the full report for details.

若出现这些信息,根据提示做也可不做。我们直接忽略就行了,不影响我们的项目



效果如下:

  • 我们可以通过 hexo g 来生成静态文件,在 public 目录下,类似如下:

上述是我们本地搭建运行的结果,但是在我们后面的使用中每次都要自己来生动生成静态页面是非常麻烦的事,我们完全可以交给github来做这件事

Github Actions实现自动部署

什么是 Github Actions,官网的介绍是:

With GitHub Actions you can automate your workflow from idea to production.

有点抽象,但是我们知道 Github 是什么啊,代码仓库,一个提供了分布式版本控制和源代码管理的代码仓库。在实际场景中,比如你写好了一个网站的代码,并且存储到了 Github 上,就可以了吗 ,并灭有没有,你还需要部署代码才能让别人访问你的网站。另外,如果你修改了代码,还需要单独测试。理想的情况应该是:当你将代码提交到 master 时,测试、部署等等所有工作自动执行。现在有了 Github Actions,就可以帮我们实现这些功能,

Github Actions 可以自动化和定制化项目的 Workflow,像官网显示的那样。

  • 首先我们了解一下GitHub Actions 的一些术语

(1)workflow (工作流程):持续集成一次运行的过程,就是一个 workflow。

(2)job (任务):一个 workflow 由一个或多个 jobs 构成,含义是一次持续集成的运行,可以完成多个任务。

(3)step(步骤):每个 job 由多个 step 构成,一步步完成。 一个工作中的每个步骤都在相同的虚拟环境中执行,从而允许使用文件系统共享信息。

(4)action (动作):每个 step 可以依次执行一个或多个命令(action)。 你可以创建自己的action、使用 GitHub 社区共享的action。

部署到腾讯云

  • 下面我们贴出我们的配置(部署到腾讯云CloudBase)
name: GitHub Actions Build and Deploy
on:
push:
branches: - master jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps: - name: 1. git checkout... uses: actions/checkout@v1 - name: 2. setup nodejs... uses: actions/setup-node@v1 - name: 3. install hexo... run: |
npm install hexo-cli -g
npm i -S hexo-prism-plugin -g
npm install hexo-generator-search --save -g
npm i hexo-permalink-pinyin -g
npm i --save hexo-wordcount -g
npm install hexo-filter-github-emojis -g
npm install hexo-generator-feed -g
npm install - name: 4. hexo generate public files... run: |
hexo clean
hexo g
# 部署到腾讯云 - name: Deploy static to Tencent CloudBase id: deployStatic
uses: TencentCloudBase/cloudbase-action@v1
with:
secretId: ${{ secrets.SECRET_ID }}
secretKey: ${{ secrets.SECRET_KEY }}
envId: ${{ secrets.ENV_ID }}
staticSrcPath: ./public - name: Get the deploy result run: echo "Deploy to cloudbase result ${{ steps.deployStatic.outputs.deployResult }}"

对上面内容做一个简单说明,其实这就是在github的一个容器里面跑的

  1. 首先checkout 出来我们的代码到容器,这些actions都有人写了我们直接用就好,
  2. 然后加载 uses: actions/setup-node@v1 的环境,也就是支持了node.js的环境
  3. 然后再 run下面编写我们正常使用的命令就行,最后通过hexo g生成静态文件,
  4. 下面是用来腾讯的静态网站托管服务的actions ,需要配置几个属性SECRET_ID、SECRET_KEY、ENV_ID

部署到GitHubPage

  • 有些小伙伴像直接用GitHubPage来作为承载对象,那么实现也是非常简单的,上面项目推送github一样,作为源代码仓库,可以直接私有化,actions的配置里面需要修改一下后面说
  • 需要在github上新建一个仓库作为存放生成的静态文件,这个仓库的命令有着要求,格式:  GitHub用户名.github.io  按照这个来创建仓库,如果你用户名为 admin  那么仓库名就是  admin.github.io
  • 创建好后,不要创建任何文件里面,保持空的即可,在源代码的仓库中配置 github Actions 的配置文件,和上面的类似,只有后面不服不同,具体如下:
name: GitHub Actions Build and Deploy
on:
push:
branches: - master jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps: - name: 1. git checkout... uses: actions/checkout@v1 - name: 2. setup nodejs... uses: actions/setup-node@v1 - name: 3. install hexo... run: |
npm install hexo-cli -g
npm i -S hexo-prism-plugin -g
npm install hexo-generator-search --save -g
npm i hexo-permalink-pinyin -g
npm i --save hexo-wordcount -g
npm install hexo-filter-github-emojis -g
npm install hexo-generator-feed -g
npm install - name: 4. hexo generate public files... run: |
hexo clean
hexo g # 提交到我们的存放静态资源的仓库 - name: Build and Deploy uses: y4code/hexo-deploy-action@master
env:
PERSONAL_TOKEN: ${{ secrets.ACCESS_TOKEN }}
PUBLISH_REPOSITORY: it-briefcode/it-briefcode.github.io # The repository the action should deploy to.
BRANCH: master # The branch the action should deploy to.
PUBLISH_DIR: ./public # The folder the action should deploy.
  • 上面有一个变量 ACCESS_TOKEN 是我们需要去配置的,配置方法如下,首先进入设置里面

进入后点击最后面的选项 Developer settings  进入点击生成token

进入后如下图,设置好后点击确认则可,会显示一串token 复制记录下来,这个只显示一次,所以最好记录到记事本,

拿到这个token后,返回我们的刚刚的源码仓库中选择设置,如下操作,添加一个变量

与上面配置中  ${{ secrets.ACCESS_TOKEN }} 对应的变量名,值填写刚刚获取到的token,则好

到此为止,我们的 构建就完成了,如果又遇到什么问题可以留言交流学习!

本文由AnonyStar 发布,可转载但需声明原文出处。

仰慕「优雅编码的艺术」 坚信熟能生巧,努力改变人生

欢迎关注微信公账号 :coder简码 获取更多优质文章

更多文章关注笔者博客 :IT简码

Hexo+GitHub Actions 完美打造个人博客的更多相关文章

  1. 使用Hexo + Github Pages搭建个人独立博客

    使用Hexo + Github Pages搭建个人独立博客 https://linghucong.js.org/2016/04/15/2016-04-15-hexo-github-pages-blog ...

  2. Hexo + Github Pages搭建的个人博客

    这个不算是新手的搭建流程,如果你恰巧看见这篇文章,希望你已经安装好node.git等软件,因为第一步的环境搭建准备并没有详写,默认都会了.希望能解决你的问题. 步骤: 一. 搭建环境准备 二.安装he ...

  3. 使用Hexo+Github搭建属于自己的博客

    工具:Visual Studio Code/MarkdownPad技术:Hexo+Github 创建Github项目 Github账户注册和新建项目,项目必须要遵守格式:账户名.github.io,不 ...

  4. HEXO+Github,搭建属于自己的博客

    摘录自:http://www.jianshu.com/p/465830080ea9 1. github的准备 账号 密码 建立Repository建立与你用户名对应的仓库,仓库名必须为[your_us ...

  5. hexo+github创建属于自己的博客

    配置环境 安装Node(必须) 作用:用来生成静态页面的 到Node.js官网下载相应平台的最新版本,一路安装即可. 安装Git(必须) 作用:把本地的hexo内容提交到github上去. 安装Xco ...

  6. 使用Hexo+Github搭建属于自己的博客(进阶)

    主题的配置:这里以NexT主题作为题材 1.安装NexT,在其文件夹中鼠标右键,点击Git Base Here.输入命令:git clone https://github.com/iissnan/he ...

  7. 使用Hexo+Github搭建属于自己的博客(基础)

    前言 hexo是一个台湾人做的基于Node.js的静态博客程序,优势是生成静态文件的速度非常快,支持markdown, 我最终选定它的原因是它速度快而且不容易出错,并且可以一键部署到github或者其 ...

  8. hexo + Github Page 0元建立博客攻略

    传送门: 5分钟 0元搭建个人独立博客网站(一):https://mp.weixin.qq.com/s/69isJE191WV2gaVbjrwTtw 5分钟 0元搭建个人独立博客网站(二):https ...

  9. Hexo+Github 搭建属于自己的博客(Mac下安装 其他操作系统大同小异)

    安装前提 参考博客:http://blog.csdn.net/gdutxiaoxu/article/details/53576018#t5(写的很好,不用看我的了.....) 这篇:http://ww ...

随机推荐

  1. 在学习java之余,js的使用精髓-闭包和原型链

    这里分享下廖雪峰官网写的js教程,内容写的比较实用,易懂,其中简介的原型链和闭包的知识,小伙伴们一起上呀,畅游在知识的海洋中: 地址:https://www.liaoxuefeng.com/wiki/ ...

  2. stand up meeting 12-2

    今天因为各位组员组里项目原因没有集中在一起进行stand up meeting.但是士杰和天赋国庆分别对项目进度和前后端的结合进行的沟通. 针对后端部分,天赋完成了GetRankingData API ...

  3. stand up meeting 12/18/2015 ~12/20/2015(weekend)

    part 组员                工作              工作耗时/h 明日计划 工作耗时/h    UI 冯晓云    完成主页面设计和非功能性PDF reader UI设计实现 ...

  4. Linux编辑利器-Vim

    在大学时代,Vim 的大名就已如雷贯耳,但由于它陡峭的学习曲线,一直望而却步.等真正开始学习之后,发现并没有想象中的复杂,也没有所谓的瓶颈,只要在实际写代码中强迫自己使用就可以了,无形中就会形成习惯. ...

  5. 2019-2020-1 20199308《Linux内核原理与分析》第七周作业

    <Linux内核分析> 第六章 进程的描述和进程的创建 6.1 进程的描述 操作系统内核实现操作系统的三大管理功能: 进程管理(进程)-核心 内存管理(虚拟内存) 文件系统(文件) 为了管 ...

  6. MAC地址欺骗(原理及实验)

    MAC地址欺骗 MAC地址欺骗(或MAC地址盗用)通常用于突破基于MAC地址的局域网访问控制,例如在交换机上限定只转发源MAC地址修改为某个存在于访问列表中的MAC地址即可突破该访问限制,而且这种修改 ...

  7. java中的Volatile关键字使用

    文章目录 什么时候使用volatile Happens-Before java中的Volatile关键字使用 在本文中,我们会介绍java中的一个关键字volatile. volatile的中文意思是 ...

  8. 工程师泄露5G核心技术文档 被判有期徒刑三年缓刑四年

    2002 年至 2017 年 1 月,黄某瑜就职于中兴通讯公司,担任过射频工程师.无线架构师等职务.2008 年 4 月至 2016 年 10 月,王某就职于中兴通讯公司西安研究所,担任过 RRU 部 ...

  9. B/S和C/S架构的区别

    一.B/S架构 什么是B/S模式 B/S模式,即浏览器/服务器模式,是一种从传统的二层CS模式发展起来的新的网络结构模式,其本质是三层结构C/S模式.B/S网络结构模式是基于Intranet的需求而出 ...

  10. embed git commit hash to assembly

    https://stackoverflow.com/a/41200059/3782855 https://github.com/304NotModified/Fody.Stamp