您的位置:首页 > 其它

使用Hexo平台搭建个人博客

2017-01-15 16:56 513 查看

前言

本人经常想有着能有一个属于自己的写作平台,可以时不时地写一些日志笔记什么的。但毕竟主要学习的方向不是前端没有相关的技能,因此只能靠一些平台搭建简单的可供外网访问的博客平台。而且正好在徐宜生大神的《Android群英传:神兵利器》中有关利用Hexo搭建博客的章节,所以就根据教程自己尝试了一下,最终的结果当然是成功了,这是部署成功后的页面:DoubleCC的博客。不过期间却遇到了不少问题,照本宣科的方式告诉我理想的环境还是和现实会有一点出入的,好比如我们的代码一样o(╯□╰)o。不过在遇到问题后能够自行找方法解决也是提升能力的一部分。这里记录一下我搭建Hexo博客的过程。

Hexo是基于Node.js的博客平台。Hexo会将本地文档生成为静态的Html文件作为静态页面,然后将其部署到托管平台上。此处是采用git将其发布到Github Pages服务器中。本人的系统是Windows10 64位,因此以下都是在该系统下的操作。

环境搭建

环境的安装可以查看Hexo提供的文档,这个文档在使用上都有详细的说明,包括基本说明和自定义博客。Hexo文档

安装Git

Git分布式版本管理工具,因为我们要将博客部署到github上,因此需要它。可在此下载Git for windows,安装方法和具体使用就不说明但记得勾选Git Bash Here选项方便以后我们命令操作。



安装完后查看是否安装成功,进入命令行输入“git –version”

此处说下第一个遇到的坑,不知道是我解决方法不对还是什么原因,我就直接说下我的问题和最后解决方法。

Permission denied (publickey)
fatal: Could not read from remote repository.




问题是我在最后执行部署指令时提示权限问题,即访问github库权限不足。我想可能是我Github没设置ssh的原因,但设置之后还是不行,之后查了一些方法说有些git较高的版本才会出现这问题,我半信半疑地在最后无奈下试了确实可以。因此在下载和安装git时要注意一下。不过在之后的操作中,我使用新的git却又可以了。具体原因我也蒙圈中。

安装Node.js

Node.js安装可以直接去其官网下载安装包然后按默认就行。Node.js官网。最后查看git和node.js是否安装成功,记得如果安装时选择自定义安装路径的话记得设置环境变量。



安装Hexo

安装hexo位置即表示要将博客本地数据存放在哪里,我想将其放置D盘的blog文件夹下,就在D盘中新建一个blog文件夹,然后进入该目录中执行命令

npm install -g hexo-cli




等待安装完毕后如果你想直接将初始化文件放在该文件夹下则执行命令,然后等待安装完毕

npm install


或者在blog文件夹下新创建一个目录如名为hexo,并在里面初始化则执行命令

hexo init hexo


然后再cd进入该文件夹下执行初始化命令。

待一切都已完成后我们查看是否安装成功,进入初始化的文件夹下执行如下命令将其部署到本地,在本地进行测试服务。

hexo server




可以看到hexo已经运行在http://localhost:4000/上了。只要我们打开该网站就可以预览默认的hexo博客页面了。这就说明我们搭建成功了。我们打开最初初始化的文件夹,我的是D盘的blog。



其中.deploy_git是执行git时生成的文件,source是博客资源文件夹,其中有 _posts用于存放文章,如果有 _drafts则是存放草稿的。themes中放的是hexo主题文件,有个默认的主题。这里第一次使用时我们会做修改的是下面的 _config.yml文件,这里是Hexo的全局配置文件,一些基本的信息就是通过编辑这里改动的。如部署位置。

Hexo配置

Github 创建repository

Github账号相信大家都有,哪怕像我这种菜鸟也会注册个用来看大神们的分享。

首先在Github上创建一个repository(个人主页右上角)选择New repository。



进入创建页面后输入repository名称,名称格式须是 ++你的github名.github.io++。然后填一些其他如描述的信息即可直接create repository创建了。

_config.yml配置文件修改

关于这个配置文件的信息官网的文档有详细的说明,我们使用一些对代码有排版的软件打开此文本,如NotePad++。其中有个较为重要的配置,即底部的deploy部分,这里配置如何部署到服务器上。我是根据徐大神教材中的配置,即如下

deploy:
type: git
repository: git@github.com:ionetwogo/ionetwogo.github.io.git
branch: master


在这里需注意一定要切换至英文下,不然有时候一些符号的问题可能使配置不规范导致部署不成功,还有就是“:”之后是有个空格的。如我将repository:后面的空格去掉,直接接git@xxxxxx就会有下面的错误。

can not read a block mapping entry; a multiline key may not be an implicit key




其他地方的配置可按Hexo文档说明来修改。如我就随意改了下

title: DoubleCC的博客
subtitle: 学习笔记
description: That's all, thank you!
author: DoubleCC
language: zh-CN
timezone: Asia/Shanghai

url: http://yoursite.com root: /
permalink: :year/:month/:day/:title/
permalink_defaults:


由于我Hexo是直接初始化在blog根目录文件夹下的,因此我的url和root没有改动,如果是初始化在子目录下的(如:blog中的hexo目录)就需要改为

url: http://yoursite.com/hexo root: /hexo/


在deploy之上还可以看到

# Extensions
## Plugins: https://hexo.io/plugins/ ## Themes: https://hexo.io/themes/ theme: landscape


这里是更改主题的,名字为之前hexo初始化文件夹中themes文件夹下的主题文件夹。我们可以自己创建自定义自己的主题(我是不会的o(╯□╰)o),也可以使用他人的主题,如hexo给出的Themes



选择Demo可以查看主题效果。点击前面的名字可以进入查看详情,查看项目的readme了解怎么使用及详细的命令。

部署

新建博客

Hexo博客采用的是Markdown文档,我们进入source文件夹下课看到已有的一篇hello-world的文章打开可以看到采用的是Markdown语法标准,但其实Markdown是一种轻量级标记语言,其语法很简单,如本篇文章就是采用Markdown语法写的。认识与入门 Markdown

既然是.md格式的文档,那么我们新建博客文章当然可以直接将Markdown文件直接放入source文件夹下,但要注意要在文章前添加Hexo自动生成的头内容,不然页面显示可能有问题。如:

---
title: testBlog
date: 2017-01-15 15:58:15
tags:
---


为什么要添加这个呢?因为如果我们使用命令生成一篇markdown文件编辑时就会看到上面的这串内容。但也只能说有可能会出现问题,因为看下Hello-world那个文件好像就没有。那么就说下如何命令生成,在cd进入目录文件夹下(我的是blog)执行命令

hexo new testBlog




这时打开source文件夹就可以看到testBlog.文件,打开它就可以编辑内容了。

如果想要在文章中添加图片的话,则在source文件夹中创建一个img文件夹,并将图片放进去,使用时链接就是/img/图片名。注意,如果有代码块的话则代码块符号点的后面不能有空格。否则会代码格式化失败。

如果想在首页只显示一部分摘要的话则可以在要截取成摘要后另起一行并添加

<!-- more -->


生成博客

在对hexo中内容做修改后,如添加和修改博客时,需要对之前静态的Html文件进行重新生成才能发布到服务器上,其指令为

hexo generate




新的静态Html文件将生成到/public文件夹中,生成完毕后可以通过hexo server指令本地预览,或者直接通过以下指令直接发布到服务器上。

hexo deploy


执行以上部署指令后输入ssh密码即可如下将Github项目更新并部署成功



发布后通过之前在Github创建的repository的名称直接可以网络访问Hexo博客了。对于博客后期的主题修改或者添加插件什么的就可以慢慢来,毕竟我们写文章才是主要目的,博客优化可以在闲时来当做练习。

最后说下其实一些通用的指令是可以缩写的如:hexo generate 可以用hexo g代替,hexo server 可以是hexo shexo deploy可以是hexo d

本来想详细地说下步骤,到现在才发现其实很简单,真正耗时的是第一次搭建有可能遇到很多问题。而我也是,在写之前我想把问题和解决方法也写进来,但在解决之后发现那些不是什么问题。一般网上直接就可以搜的到,而且很多指令我目前也没用过。我就是个看热闹的。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: