博客折腾了好久,也看了好多贴子,稍微整理一个较全的给大家,可持续更新。
思路:还是用hexo吧,敲几行代码就可以搞定。如果使用各种客户端,总是会出现莫名其妙的错误,而且你也不知道哪错了。很是痛苦。
对一下软件版本号:hexo 4.2.0 , Next 7.7.1 。
1、注册github博客空间
打开网址github.com,注册过程不表。成功后,点击右上角小+,新建一个库,英文“New repository”
库的名字,必须是“你的用户名.github.io”,这个名字千万不能错,每个库只能创建一个主页的库而且名字必须这样命名。如果成功,你打开这个库,看浏览器地址应该是:github.com/你的用户名/你的用户名.github.io
点击”settings”:
Repository name(库名),必须为:“你的用户名.github.io”
Custom domain ,如果你申请的有阿里云的域名,可以填进去,如果没有的话就算了。这一步完成后,所在的大项 GitHub Pages ,会告诉你博客的访问地址。类似于:http://你的用户名.github.io 或者你买的域名。就成功了。现在就可以按这个地址来访问。
2、申请域名(或可不用)
去阿里云自行购买即可。购买完成后,需要解析。登陆阿里云后,点击控制台。拉到中间,点击“域名”。
找到自己的域名后,点击右边的选项:解析
点击“添加记录”,注意不要选A记录,选CNAME记录就可以了。把“你的用户名.github.io”填进去就好
注:A记录一般是添加IP地址,除非你自己有服务器。你挂到github上,地址老变,你得老改,太麻烦了。
3、用git和hexo搭建博客
3.1 首先下载软件
A 下载git,即git bush
建议到[Git官网]下载最新版本 https://git-scm.com/
生成密钥:
1 | ssh-keygen -t rsa –C "你的邮箱地址" #生成密钥 |
之后会在C:\Users\你的管理员账户下,生成一个.ssh的文件夹,里面会生成id_rsa和id_rsa.pub两个文件。id_rsa是私钥(要保密),id_rsa.pub是公钥
B 安装hexo
可以在gitbush里: npm install -g hexo
C 初始化
Git是分布式版本控制系统,它需要跟你的github远程账号互动,有两种方式,我用的是SSH。
在电脑里建立好一个文件夹,这个文件夹里存放你的github内容。比如:”d:/github/myblog”
指定这个文件夹为库文件夹:
1 | cd d:/github/myblog #打开这个文件夹 |
完了会你的myblog会生成如下的文件夹:(解释每个文件夹啥意思)
1 | -myblog |
然后你执行:
1 | hexo g |
会生成你的静态页面,生成以后,执行
1 | hexo s |
开启本地预览,在浏览器里输入:http://localhost:4000/ 如果能看到一个模板页面,就说明成功了。
D 与github账户连接
首先打开id_rsa.pub,全选-复制一下。然后打开你的github账号,个人头像里的“settings” > ”SSH and GPG keys”选项 > 点击”New SSH Key”。把刚复制的粘进去。这样你如果本地修改好的文件,可以用“hexo d ”的命令同步到远端。
现在基本工作已经准备好了。证明环境已经搭好,但还不是一个真正的博客。
3.2 博客出世
A 选一个主题吧
“NEXT”目前是使用排名第一的主题先用这个。后期玩明白了再说换的事儿。定位到你的库文件夹下,然后在gitbush:
1 | git clone https://github.com/iissnan/hexo-theme-next themes/next |
然后在themes下面会有一个next文件夹,这个就是你的主题了。下面要开始配置。打开库文件夹里的主配置文件_config.yml ,找到theme:
1 | theme: next |
然后找到 language:
1 | language: zh-CN #主题文件夹下有个“zh-CN”文件夹,会显示页面目录的翻译 |
接下来大部分的配置都在next这里面设置
B 设置个性的目录
a 策划你自己的目录
默认的页面显然不能满足你的需求,比如我就想建个笔记页面,打开主题的配置文件_config.yml,找到menu
1 | menu: |
about前面打了#,说明我不想显示这个目录,现在看到的显示5个页面,最下面两个是我新增的biji和youji
比如#about: /about/ || user,格式为:“页面名称:/ 地址 || 图标名”
因为我们的博文是放在_post文件夹下的,所以假如你在里面新建一个biji的文件夹,地址就换成“biji/”
图标名指的是font-awesome图标名称,在https://www.bootcss.com/p/font-awesome/design.html 可以查找自己想要的图标,然后填在这里就好了
b 在主题里配置目录
目录设计好了,但是它显示出来就需要翻译了,next文件夹下的languages文件夹下面,打开“zh-CN”,找到menu:
1 | menu: |
注意,home: 首页,格式是 “页面名称: 翻译”。所以我的笔记页面,显示的就是“想法”。
C 写文章和发布
在gitbush里,hexo new “yiciyouwan” ,文章名最好不要用中文,这样在外链的时候会转成特别长的码。这时你发现在_post下面,有一个文件”yiciyouwan.md”。可以用markdown编辑器编一下。(我用的是Typora)。找开这个文件后大概是这样的:
1 | --- |
后几个是我加的,后面做优化的时候会用到。title里放的就是文章的标题。可以多整几篇文章。然后生成静态页面:
1 | hexo g |
如果没有报错error的话,基本上可以预览了: hexo s
这时候在本地预览里,可以看到新的页面。localhost:4000
此时可以发布了: hexo d 。100%完毕后,稍等几分钟,打开你的域名就可以看到博客了。
4、优化或调整
以上步骤完成后,基本上博客的初稿就完成了。但是离理想中的还有一些差距。后期还要不断进行优化。基本上就是文章的管理和页面的优化。
4.1 新建文章及分组
一个博客里有很多篇文章,按照上述方法,这些文章默认是放在主页的,但同时这些文章还应该分门别类进入子页面里。这里是应用hexo的分类功能。打开博客\scaffolds,里的post.md,增加categories:
1 | --- |
这样,当你再用hexo new “文章名” 命令新建文章时,如果要把该文章放进biji(显示:想法),那就打开“文章名.md”,在文件头找:
1 | categories: biji |
与此同时,打开主题的主配置文件,找到menu
1 | menu: |
biji的地址部分变成了:“/categories/biji/”,后面的biji就是你的标签名称,跟第二步对应。
你的新文章就放到biji中去了。在页面中显示是这样的:
4.2 设置文章不在首页显示
《我用的是新版next7.7.1主题》
1、在文章头新建一个变量:notshow。也可以在post(\scaffolds)模板中改,以后可以自动生成
1 | --- |
2、在主题文件夹下,layout\index.swig,定位到post代码块:
增加一个if条件,有批注的两行是我修改的。
1 | <div class="posts-expand"> |
注意,实际改的时候把注释去掉,否则“#开始if”会显示在你的页面最上方。
4.3 添加文章到某一个栏中
比如我要把某一篇文章加入到我的“笔记”这一栏里。
a 更改设置文件
你的主题文件夹下的 _config.yml 找到menu菜单
1 | biji: //categories/biji/ || pencil |
这句是我新增的,biji是我要加入栏目,把它的路径(原始/biji/)改成了“/categories/biji”。
然后在打开主题里你选择的语言文件,languages/zh-CN.yml ,找到”menu”,在下面增加一行:
1 | biji: 笔记 |
b 加入分类categories
1 | --- |
也可以用更改post中的格式,加入这一行。
同样的,可以用相同的方法把文章加入到其它页面。
4.4 添加阅读与访问量统计
打开主题配置文件,搜索到 busuanzi_count: 更改 enable的值为: true。即可,页面上就会有小眼睛
1 | busuanzi_count: |
4.5 添加图片或视频
首先,要有博客文章文件名的同名文件夹。把图片或视频放到这个文件夹下面。
插入图片的格式:
1 | {% asset_img 图片名称带格式 [图片描述] %} #注意文字部分要替换成你自己的其它别动 |
插入视频的步骤,稍微复杂一点,需要下载插件:
首先需要下载插件
1 | npm install hexo-tag-dplayer --save |
插入视频的代码为:
1 | {% dplayer "url=视频地址" "api=http://dplayer.daoapp.io" "pic=图片地址" "id=9E2E3368B56CDBB4" "loop=no" "theme=#FADFA3" "autoplay=false" "token=tokendemo" %} |
5、更新及DeBug
5.1 每次要重设自义域名
每次更新以后你的自定义用户名可能点不进去。因为需要在你的github博客库(用户名.github.io)设置里,重新输入你的自定义域名。解决:
在你的source文件夹下,建议一个文件,名为“CNAME”无后缀
用记事本打开,输入你的自定义域名:比如我的就是nidebin.top 然后应用再更新即可
5.1 spawn failed解决办法
发生布署错误后,不要慌。执行下列命令:
1 | git clean |
5.3 load failed: hexo-leancloud-counter-security
hexo-leancloud-counter-security该插件加载错误
在hexo博客中hexo g 以后出现的:
ERROR Plugin load failed: hexo-leancloud-counter-security
Error: Cannot find module ‘babel-runtime/regenerator’
Require stack:
ERROR Plugin load failed: hexo-leancloud-counter-security
这就是包加载错误,简单来说就是下载的包有问题,修复一下。解决办法,(博客根目录中)在package.json中加入依赖label-runtime 的语句,【下面第二句】:
1 | "dependencies": { |
然后运行git bush ,以修复package里的包们:
1 | npm install --save |