个人博客指南

个人博客指南
GuoYanjun- 文/一月筠
-- 转载请注明 --
- hexo是一款基于Node.js的静态博客框架,这篇文章针对Mac用户,熟悉hexo的同学可以绕道哈。初步搭建只需要简单的几步,动动你的手指头,在终端试一下吧…
Hexo博客环境搭建for Mac
history_permalink: 2015/12/25/hexo-blog-environment-set-up-for-mac.html
history_date: 2015-12-25 18:00:00
history_updated: 2015-12-25 18:00:00
前言
hexo是一款基于Node.js的静态博客框架,这篇文章针对Mac用户,熟悉hexo的同学可以绕道哈。初步搭建只需要简单的几步,动动你的手指头,在终端试一下吧…
目录
了解Github Pages
关于Github Pages请移步我的另一篇博客
搭建环境
本文只针对Mac用户,windows用户以及Linux用户可自行Google。在Mac上,推荐先安装homebrew。homebrew是Mac OS上的软件包管理工具。
Git安装和Github设置
- 使用homebrew安装git
brew install git
- 查看git是否已安装成功
git --version
- 确认Github上已经创建名为
“你的用户名.github.io”
的仓库
Node.js安装
快速安装
- 使用homebrew安装node
brew install node
- node.js的包中已经集成了npm,npm是Node.js的模块依赖管理工具
- 查看node和npm是否已安装成功
node -v
和npm -v
官网安装
本站使用的是在node官网下的Node.js
的pkg安装包进行的安装,安装的版本为v6.10.0
,可能现在的版本已经升级。可以通过查看历史版本进行下载。附上链接地址:https://nodejs.org/download/release/v6.10.0/
Hexo安装
Hexo是一个基于Node.js的静态博客框架,作者是@tommy351
- cd到你在本地的博客文件夹
cd /users/GuoYanjun/Documents/yajon_blog
,然后执行下面的安装命令
npm install hexo-cli -g
Hexo本地部署
- cd到你在本地的博客文件夹,然后执行下面的命令
1 | cd /users/GuoYanjun/Documents/yajon_blog |
- 部署步骤
每次部署的步骤,可按以下三步来进行。
1 | hexo clean |
这里有必要提下Hexo常用的几个命令:
1 | hexo generate #自动根据当前目录下文件,生成静态网页,会在当前目录下生成一个public的文件夹 |
常用命令
1 | hexo new "postName" #新建文章,其中postName是文章题目 |
常用简写
1 | $ hexo n "我的博客" == hexo new "我的博客" #新建文章 |
常用组合
1 | $ hexo d -g #生成部署 |
服务器
1 | $ hexo server |
监视文件变动
1 | hexo generate #生成静态文件 |
以下为上述部署步骤的相关截图。
- 最后,可以在本地查看
localhost:4000
在Mac terminal按下ctrl+C
结束
相关错误及解决方法
- 出现类似
Error: Module version mismatch. Expected 48, got 51.
的错误
如果终端出现类似上述的错误,可能是因为你的node.js
版本与之前项目的版本不一致造成的。可以移除之前的node.js
,按照之前的版本重新安装node.js
.
step1: node.js在Mac下的卸载
在 node 官网上下载的安装包,用安装包安装的node.应该可以用一下命令行卸载:
在终端输入以下命令:
1 | sudo rm -rf /usr/local/{bin/{node,npm},lib/node_modules/npm,lib/node,share/man/*/node.*} |
删除/usr/local/lib
中的所有node
和node_modules
删除/usr/local/lib
中的所有node
和node_modules
的文件夹
如果是从brew
安装的, 运行brew uninstall node
检查~/
中所有的local
, lib
或者include
文件夹, 删除里面所有node
和node_modules
在/usr/local/bin
中, 删除所有node的可执行文件
最后运行以下代码:(可能具体安装路径会有区别 ,find ~ -name "node"
可以找到所有
step2: hexo在Mac下的移除
接着移除hexo
,移除的命令请参照以下:
1 | npm uninstall hexo-cli -g #3.0.0版本执行 |
step3: 重新install hexo
移除之后,在本地博客的文件夹中执行npm install hexo-cli -g
命令即可。
配置SSH密钥
- Mac下已安装的ssh的id_rsa.pub文件位置
如果之前生成的SSH Key是选择默认路径的,因此要找到ssh文件夹下的id_rsa.pub文件,只需要:
打开终端输入open ~/.ssh
即可。
step1: 看看是否存在SSH密钥(keys)
首先,我们需要看看是否看看本机是否存在SSH keys,打开Git Bash,并运行:
1 | cd ~/. ssh |
检查你本机用户home目录下是否存在.ssh目录
如果,不存在此目录,则进行第二步操作,否则,你本机已经存在ssh公钥和私钥,可以略过第二步,直接进入第三步操作。
step2: 创建一对新的SSH密钥(keys)
- 按照你提供的邮箱地址,创建一对密钥
1 | $ssh-keygen -t rsa -C "your_email@example.com" |
运行完之后会出现以下提示:
1 | Generating public/private rsa key pair. |
- 直接回车,则将密钥按默认文件进行存储。此时也可以输入特定的文件名,比如/Users/yourname/.ssh/github_rsa
- 接着,根据提示,你需要输入密码和确认密码(说到这里,如果你很放心,其实可以不用密码,就是到输密码的地方,都直接回车,所以每次push就只管回车就行了。所谓的最安全的密码,就是没有密码)。这个密码会在你提交项目时使用,如果为空的话提交项目时则不用输入。这个设置是防止别人往你的项目里提交内容。注意:输入密码的时候没有*字样的,你直接输入就可以了。
相关提示如下:
1 | Enter passphrase (empty for no passphrase): <输入加密串> |
输入完成之后,屏幕会显示如下信息:
1 | Your identification has been saved in /Users/yourname/.ssh/id_rsa. |
step3: 在GitHub账户中添加你的公钥
运行如下命令,从Finder中找到你的id_rsa.pub
文件,打开之后,将其内容全部复制。看清楚是全部复制!!!
1 | cd ~/. ssh |
step4: 将密钥添加到你的GitHub账户中
- step1: 登陆GitHub,进入你的Account Settings.
- step2: 选择SSH Keys
- step3: 粘贴密钥,添加即可
step5: 测试
添加完密钥后可以输入下面的命令,看看设置是否成功,git@github.com的部分不要修改:
1 | $ ssh -T git@github.com |
如果是下面的反馈:
1 | The authenticity of host 'github.com (207.97.227.239)' can't be established. |
不要紧张,输入yes就好,然后会看到:
1 | Hi Yajon! You've successfully authenticated, but GitHub does not provide shell access. |
step5: 设置用户信息
现在你已经可以通过SSH链接到GitHub了,还有一些个人信息需要完善的。
Git会根据用户的名字和邮箱来记录提交。GitHub也是用这些信息来做权限的处理,输入下面的代码进行个人信息的设置,把名称和邮箱替换成你自己的,名字必须是你的真名,而不是GitHub的昵称。
1 | $ git config --global user.name "Yajon"//用户名 |
Extensions
- Plugins: http://hexo.io/plugins/
- Themes: http://hexo.io/themes/
Hexo命令和一些使用方法
hexo是一个基于Node.js的静态博客程序,可以方便的生成静态网页托管在github和Heroku上…
history_permalink: 2015/12/24/the-hexo-comand-and-some-usage.html
history_date: 2015-12-24 10:30:00
history_updated: 2015-12-24 10:30:00
前言
hexo是一个基于Node.js的静态博客程序,可以方便的生成静态网页托管在github和Heroku上。作者是来自台湾的@tommy351。
我们可以用hexo创建自己的博客,托管到github或Heroku上,绑定自己的域名,用markdown写文章。
本博客即使用hexo创建并托管在github上。
网上有很多hexo大的搭建教程,这里就不多说了,这里主要介绍hexo的使用方法,同时也是为了方便自己记忆。
hexo命令
1 | npm install hexo -g #安装 |
简写
1 | hexo n "我的博客" == hexo new "我的博客" |
服务器
1 | hexo server |
监视文件变动
1 | hexo generate #使用 Hexo 生成静态文件快速而且简单 |
完成后部署
两个命令的作用是相同的
hexo generate –deploy
hexo deploy –generate
1 | hexo deploy -g |
草稿
1 | hexo publish [layout] <title> |
模版
1 | hexo new "postName" |
变量 | 描述 |
---|---|
layout | 布局 |
title | 标题 |
date | 文件建立日期 |
1 | title: 使用Hexo搭建个人博客 |
模版(Scaffold)
hexo new photo "My Gallery"
变量 | 描述 |
---|---|
layout | 布局 |
title | 标题 |
date | 文件建立日期 |
设置文章摘要
1 | 以上是文章摘要 <!--more--> 以下是余下全文 |
创建一篇新文章
1 | $ hexo new "my new post" |
然后在~\hexo\source\ _posts中
打开这个文件(我用的是subline text3打开的),配置开头。
1 |
|
推送到服务器上
1 | hexo n #写文章 |
markdown语法
markdown语法,这里不做太多描述,有需要可以参考markdown 简明语法.我在这里记录一下我自己使用过程中经常用到的。
换行:
回车键或连续3个—表示分割线。强调:
星号(*)与下划线(_)都可以,单是斜体,双是粗体,符号可跨行,符号可加空格。有序列表:
数字 + . + 空格 ,数字不能省略但可无序,点号之后的空格不能少。超链接:
文字:1
[文字](url "可选的title")
图片:
1
 \#我是放在本地文件夹下的,所以路径是:/img/Share project on github.png
插入代码:
新起一行,按2次Tab键或者8次空格。插入代码也可以加入有序列表。
或者{ % codeblock [title] [lang:language] [url] [link text] % } code snippet { % endcodeblock % }
防止github中的READ.me文件被渲染的方法:
在~\Hexo\source
文件夹下建立READ.md
文件。
在~\Hexo\ _config.yml
文件中skip_render:
后面加上README.md即skip_render: README.md。一些转义符:
Markdown中的转义字符为\,转义的有:1
2
3
4
5
6
7
8
9
10
11
12\\ 反斜杠
\` 反引号
\* 星号
\_ 下划线
\{\} 大括号
\[\] 中括号
\(\) 小括号
\# 井号
\+ 加号
\- 减号
\. 英文句号
\! 感叹号
Hexo自定义页面做首页
如果你想了解:如何在 GitHub Pages 上传自己写的网页作为首页,Hexo 博客作为其子页?即自己写的页面作为
http://user.github.io
的页面,将hexo博客放在http://user.github.io/blog
上,怎么做?那就接着看…
history_permalink: 2016/03/28/hexo-custom-page-for-home-page.html
history_date: 2016-03-28 18:00:00
history_updated: 2016-03-28 18:00:00
前言
本教程的前提已经用hexo将博客搭建在yourname.github.io
的repository上,接下来跟随博主开始愉快的旅程吧。
说一下我走过的弯路吧,想想真是曲折蜿蜒。音乐music,走起!我看见一座座山,一座座。。。那就是青藏高原。。。好了,言归正传。
之前我的想法是通过子域名访问,即主域名(yoursite.com)和子域名(blog.yoursite.com)都解析到你的GitHub Pagesyourname.github.io。然后再自定义主页,比如index.html
。我的博客页面是存放在yourname.github.io
的repo
中,自定义的主页放在一个叫做Home-Page
的repo
中。在yourname.github.io
和Home-Page
这两个仓库中分别在根目录放置了CNAME
文件,文件的内容分别为blog.yoursite.com
和yoursite.com
。其实这样也是可以实现的,只是觉得太繁琐,索性就改成了现在的布局。
新建一个repository
名字可以随意,我的是blog
那么现在你有了一个空的repository然后本地clone下按照提示初始化一个master分支,并且开启github pages
。
注意,这里的repo的目录下是不存在CNAME
文件的
修改hexo配置文件_config.yml
找到url下的root 修改成/你起的名字/ (博主这里就是/blog/)url也要改!!!博主一开始没发现。。。
1 | # URL |
然后再找到_config.yml
下的deploy
,把repository改成你新的repository的clone地址
1 | deploy: |
重新部署你的博客
在对应的文件下在gitbash
上输入hexo g
再输入hexo d
这样你的博客就被部署到https://yourname.github.io/blog/上了
清空原来的repository
现在原来那个yourname.github.io的repository你就可以清空,然后留下一个index.html,把你自定义页面的代码复制到里面就好了,然后可以通过以下链接跳转到你的博客界面了。
1 | <a href="blog/"></a> |
改主题里URL的ROOT
1 | # Subdirectory | 子目录 |
像本站用的XXX主题改了以后左边栏会出现问题,这时候需要到left-col.ejs
改一下
我是这样解决的
1 | <section class="switch-part switch-part1"> |
参考资料
- 这里附上一个不错的主页效果。
https://github.com/jacklightChen/jacklightChen.github.io - 以下附上我觉得不错的参考资料。
如何将你的github仓库部署到github pages(repo里建gh-pages分支,上传hexo到blog的gh-pages里面)
hexo + github + 多说 来搭建免费博客 // Netpi 日志 (本地打不开解决方法)
使用HEXO搭建github个人网站 (本地发布、部署失败解决方法)
如何搭建一个独立博客——简明Github Pages与Hexo教程 (ssh key的设置)
Hexo博客添加打赏功能
当你的博客搭建好之后,你或许想要添加一些更有趣的功能,比如说打赏,虽然说现在是共享经济,但也有付费阅读的需求。况且读者是否打赏全凭个人心情决定…
permalink: 2016/01/08/hexo-blog-ad-reward-function.html
date: 2016-01-08 18:00:00
updated: 2016-01-08 18:00:00
前言
当你的博客搭建好之后,你或许想要添加一些更有趣的功能,比如说打赏,虽然说现在是共享经济,但也有付费阅读的需求。况且读者是否打赏全凭个人心情决定,倘若你的文章勾勒出一点他/她的共鸣和感慨,那恭喜你,你已经有拥戴者了。
打赏的基本思路是将微信和支付宝的收款二维码放到每篇文章的最后,打赏的时候扫下二维码就可以了。
以 yilia/Yelee主题为例:
step 1: 编写打赏模块的代码
layout\_partial
下新建donate.ejs
输入如下内容:
1 | <! -- 添加捐赠图标 --> |
step 2: 设置打赏模块的样式
source\css\_partial
下新建donate.styl
输入如下内容:
1 | .donate_bar { |
最后,记得在source\css\style.styl
中添加@import '_partial/donate'
step 3: 讲打赏模块整合到文章中
在layout\_partial\article.ejs
中的<article> </article>
标签内添加如下内容:
1 | <if (!index && theme.donate){ > |
- 如果你只想在所有post的文章页面添加打赏功能,可以参照以下:
1 | <!-- 添加打赏功能 只在文章详情中显示--> |
- 如果你想在指定页面添加打赏功能,需在你的主题文件夹下的
layout\_partial\article.ejs
路径中,更改article.ejs
中的内容。例如:只有页面的属性中添加了donate: true
属性后,才显示打赏,则需在你的文章的头部添加上donate: true
字段,article.ejs
中需改为如下所示:
1 | <!-- 添加打赏功能 --> |
step 4: 编写配置文件
我们可以在主题的_config.yml
文件中关闭和打开打赏功能,还可以自定义设置打赏文案。例如:
1 | #是否开启打赏功能 |
大功告成,这样一个简单的打赏功能就实现了!
当然,你如果觉得麻烦,但是又想实现打赏功能,那么可以尝试下*云打赏*,据说一行代码集成打赏功能。
使用iframe嵌入打赏
如果想要更加方便快捷的添加打赏功能,可以使用ifram的方式直接嵌入到你的文章中。
示例如下:
1 | <iframe src="https://yojoy.top/donate-page/sample1/index.html" style="overflow-x:hidden;overflow-y:hidden; border:0xp none #fff; min-height:240px; width:100%;" frameborder="0" scrolling="no" allowtransparency="true"></iframe> |
查看效果:
Hexo百度主动提交链接
某些主机,比如Github,禁止百度爬虫访问博客,导致博客无法被百度收录。多亏百度提供了主动提交的接口,这才有了个补救的方法。除此之外…
history_permalink: 2016/01/05/hexo-baidu-actively-submit-links.html
history_date: 2016-01-05 12:00:00
history_updated: 2016-01-05 12:00:00
先学习百度站长平台页面抓取栏的推送说明
以下两种方式都可以推送,可以使用其中一种,也可以两种都使用
自动推送
一般在目录blog\themes\hiker\layout\_partial\head.ejs
中加入JS,这样全站都有了:
1 | <script> |
主动推送
感谢作者:https://github.com/huiwang/hexo-baidu-url-submit
作用:某些主机,比如Github,禁止百度爬虫访问博客,导致博客无法被百度收录。多亏百度提供了主动提交的接口,这才有了个补救的方法。除此之外, 使用主动推送还会达到如下功效:
- 及时发现:可以缩短百度爬虫发现您站点新链接的时间,使新发布的页面可以在第一时间被百度收录
- 保护原创:对于网站的最新原创内容,使用主动推送功能可以快速通知到百度,使内容可以在转发之前被百度发现
效果图如下:
安装hexo-baidu-url-submit插件
首先,在Hexo根目录下,安装本插件:
1 | npm install hexo-baidu-url-submit --save |
请注意, 本插件的配置文件中包含秘钥, 请把您的Hexo博客源文件托管到私有仓库里。
配置_config.yml文件
同样在根目录下,把以下内容配置到_config.yml
文件中:
1 | baidu_url_submit: |
检查url
其次,记得查看_config.yml
文件中url的值, 必须包含是百度站长平台注册的域名(一般有www), 比如:
1 | # URL |
最后,加入新的deployer:
1 | deploy: |
执行hexo deploy的时候,新的链接就会被推送了。
实现原理
推送功能的实现,分为两部分:
新链接的产生,hexo generate
会产生一个文本文件,里面包含最新的链接
新链接的提交,hexo deploy
会从上述文件中读取链接,提交至百度搜索引擎。
链接参考:
http://yojoy.top/