谷歌搞定一切,搞不定,问GF。
能找到一个自己写点东西而且不用被注册手机号码的平台,不易。
所以,有了今天的第一篇博文。
前言
如果想拥有自己的公开博客,程序员也好,文字爱好者也罢,通常有三种方式:
1 在现有博客平台上注册,方便上手主题直接用,博客园、CSDN、新浪、腾讯和网易LOFTER(有一点小逼格,以摄影爱好者为主)
2 利用博客框架搭建,专注内容,WordPress,Jekyll,hexo
3 自己写一个网站
1-简单,会被删帖删号。2-比较折腾,需要购买自己的服务器,如果内容太多而的话。3-对前端编程能力要求比较高,当然也需要自己维护,如果你想,就去吧。这里我用的是第二种github pages+hexo,花费了两个小时搭建完成。
环境
Windows:
安装node.js和git,node.js无脑下载双击安装,git也是。下载后,可以稍微研究下git,以及github使用。简单来说,它的作用是完成多人协同工程和版本管理,以及分享你的代码到网络,你要是简单理解为工程文件的双向云同步,也没问题。
记住,账号是核心,git全局账号、名称最好跟github一致。鉴于github有个人资源大小1GB的限制,单独为自己的博客注册一个github账号。
建立和注册github账号。教程网上一大堆,小懂点英语的人都可以,不懂,猜也行。
完成这些后,你最好也习惯下在cmd/git bash下敲命令行,对当前的工作目录/工作文件夹有个概念,所有东西都离不开内容,这个意思。
如果想快速知道如何使用和建立起概念,点击Git, github
Mac:
由于mac系统自带了npm工具,所以只需要安装git,同理无脑安装。其后所有过程基本和windows差不多,有不一样的我会特别指出来。
建立个人主页
利用Github Pages构建免费站点,网址以username.github.io结尾,如果嫌丑,以后自己买域名。
假设你已经熟悉github,在github上新建repo,工程名写成USERNAME.github.io,名字注意和自己GitHub的用户名保持一致,否则会出问题。其他设置不用管。如果需要用hexo建博客,到此为止。
以下可选(如果需要自己编辑网页):
然后,setup-desktop/或者使用git建立链接,本地编辑并保存index.html–此时为一静态网页,上传至github远程仓库
Done!此时你已经有自己的网站了,可以直接访问,然而,没什么内容,你还需要研究排版、样式等很多html知识,所以,我的方案是githubio+hexo。
Hexo
检查安装环境
进入cmd/git bash1
2npm -v
node -v
命令行安装hexo:1
npm install hexo-cli -g
建立Hexo工程
windows:
在当前目录创建文件夹MyHexoProj,同时也是工程目录
新建hexo工程,也就是你的网页内容所在,往后你所有的内容编辑、样式修改都跟这个工程有关。1
hexo init MyHexoProj
cd进入该MyHexoProj目录后
Mac:1
2
3mkdir YourFolder
cd YourFolder
hexo init
安装github的发布插件1
npm install hexo-deployer-git --save
本地发布和查看1
2
3hexo clean
hexo g(enerate)
hexo server
到这,你的hexo网页已经构建好了,可以在本地Local4000端口查看构建好的静态网页。
发布到githubio
修改发布方式:
根目录下的_config.yml,当然,细心的你还可以修改其他无关紧要的内容。
deploy:
type: git
repo: git@github.com:kangzhi/kangzhi.github.io.git
branch: master
(冒号后空格,注意这里我们一般是通过ssh访问,所以链接贴ssh,不是https)1
2hexo clean
hexo g
发布到githubio1
2
3hexo d
//或者一行代码代替
hexo d -g
中途可能遇到无法链接到GitHub的问题(其实就是建立远程仓库链接问题,如果之前没建立过,可能会有这个坑)输入:1
ssh git@github.com
检测是否连接到远程,如出现’Hi XXX! You’ve successfully authenticated, but GitHub does not provide shell access.Connection to github.com closed.’说明你链接成功了。
如果不是,恭喜,顺便陪你再复习下和github远程仓库建立ssh链接:1
ssh-keygen -t rsa -C "your_email@youremail.com"
一路回车,然后打开C/users/你的用户名/.ssh/文件夹里面id_rsa.pub,记事本打开全部复制。在github->settings里新建SSH连接,随便起个名字,粘贴内容。
再次检测,Done。
此时,可以到网站上去查看你全新的网页了。
编辑和个性化
hexo支持markdown编辑,在你的MyHexoProj/source/_post目录下,有一个hello-world.md的markdown文本,他就是你的默认第一篇博客。
新建你自己的第一篇文章:1
hexo new "Your Title"
此时,该目录下会有一个新的“Your Title.md”文件,开启你的书写之旅吧。
如果想了解下markdown,可以推荐几个好用的编辑器:
markdown编辑器
hexo支持markdown编辑,关于他的争议见仁见智,如果你只想专注于你的内容而非排版,花十分钟了解和上手还是很值得的。
cmd markdown(登陆体验差)
Haroopad
windows平台:
markdown pad
论文幻灯片用Modoko
MarkPad
Mac平台:
Mou,暂时不支持OSX Sieera,强推
macdown
IOS:
Drafts,Day one(收费)
马克飞象
最终使用:Typora(mac+windows)
设置主题
更换主题:
hexo默认的主题是landscape,比较简约大气的一个主题,你可以自己更换背景图片之类的。当然,各有所爱,你可以选择设置成自己喜欢的主题,基本就是下载资源,然后修改相应的配置文件就可以了,这是主题的集合链接。
这里推荐几个比较符合中国人习惯的主题:iissnan/yilia/jacman/packman
以yilia举例说明下如何设置:1
git clone https://github.com/litten/hexo-theme-yilia.git themes/yilia
相当于将资源下载到你的工程目录,然后设置根目录了yml文件下:
theme: yilia
更换背景图片:
添加一张图片到themes/next/spource/images
themes/next/source/css/_custom/custom.styl增加:
body
{
background-image:url(/images/background1.png);
background-repeat: no-repeat;
background-attachment:fixed;
background-position:50% 50%;
}
添加动态特效:
在主题文件config.yml中设置canvas_nest:true
Done!发布你的网站,就成另外一个样子了。如果想做其他细节的设置,到themes/yilia目录的yml文件,修改里面的各种配置参数就可以。
个人使用主题记录:
1Next.Pisces
2hexo-theme-Butterfly
域名和备案
source下面有CNAME文件
博客迁移和部署
hexo的宗旨是不管你在哪里,只要拥有博客内容(比如说md文件),都可以在半个小时之搭建起你的博客,迁移非常方便和省事。
开始之前,你需要先搞清楚两件事,博客的备份+迁移,博客的异地部署是两件事。如果你搞混淆了,那么网络上所有的教程只会越看越乱。
备份和迁移
首先,假设已经有完整的工程了,hexo整个工程目录结构如下:
- .deploy_git : 执行hexo deploy命令部署到GitHub上的内容目录
- node_modules
- public : hexo generate的输出,输出的静态网页内容目录
- scaffolds : layout模板文件目录,其中的md文件可以添加编辑
- source : 文章源码目录,该目录下的markdown和html文件均会被hexo处理。该页面对应repo的根目录,404文件、favicon.ico文件
- themes : 主题文件目录
- .gitignore
- _config.yml : 全局配置文件,大多数的设置都在这里
- db.json
- package.json : 应用程序数据,指明hexo的版本等信息,类似于一般软件中的关于按钮
- package-lock.json
可以看到,理论上,迁移博客你需要迁移的核心内容是:
scaffolds+source+themes+.gitignore+_config.yml+package.json+packagelock.json
所以迁移的过程如下:
将上述目录copy到新的电脑/目录
A 暴力拷贝
完事了,直接copy过去,就完成迁移了。百度云、坚果云、硬盘、U盘随意用。
B 在github上新建分支hexo
- 先进行远程同步,再拉去到异地的目录。所有你编辑、同步、拉取的都是你要迁移的文件目录。所以这里唯一需要注意的就是,设置正确的gitignore,管理好你的资源内容,而不是博客的发布/生成内容。
- githubio有默认的master分支,这就是静态的网站。也就是config.yml里配置好的部署目标。
- 增加一个新的分支,hexo,gitignore里设置只需要同步
scaffolds/source/themes/config.yml/package.json - 管理仓库,编写更新推送就完事了。
注意事项
如果你之前克隆过theme中的主题文件,那么应该把主题文件中的.git文件夹删掉,因为git不能嵌套上传,最好是显示隐藏文件,检查一下有没有,否则上传的时候会出错,导致你的主题文件无法上传,这样你的配置在别的电脑上就用不了了。
博客部署
所以,部署要做的事情,就是在本地安装好环境,然后通过SSH建立和githubio托管服务器的远程连接。
在新的电脑/目录配置环境
安装node
安装npm
安装hexo1
2npm install
npm install -g hexo-cli以下不一执行,因为npm install已经执行了所有必要包的操作。
1
2
3npm install hexo-deployer-git --save
npm install hexo-generator-feed --save
npm install hexo-generator-sitemap --save
这里遇到hexo command not found 的问题:1
2
3sudo apt-get update
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
sudo apt-get install -y nodejs
先把node升级到最新版本12
然后重新安装hexo1
2sudo npm install hexo -g
hexo -v
输出正确信息,OK
- 由于编辑的博客本质上还是要通过github pages托管,所以你需要配置git上的ssh密钥。
- 查看ssh是否存在 到~/.ssh 目录下查看,或者直接输入 ls -al ~/.ssh
如果不存在,则只有known_hosts - 任意路径 ssh-keygen -t rsa -C “your_email@example.com“ //这里邮箱随便填,不一定必须跟githubio的账户邮箱一致,这里甚至是表明你以一个本地git用户的身份和远程建立连接
现在,生成了id_rsa文件和id_rsa.pub文件,前面是私有密钥,后面是公有密钥,可以任意公开。 - 在githubio的博客账户settings里找到增加SSHKey项目,新建一个SSHKey,将id_rsa.pub的内容复制进去。
这样你的本地git就和远程仓库建立了连接。如果你有多台设备,你可以将这些设备都添加到github上去。 - 验证 ssh-T git@github.com
3. git init 如果之前不小心生成了.deploygit目录,全部删除,重新生成
- 正常的hexo发布流程 hexo clean/ hexo g -> hexo d // hexo d -g
个人迁移记录
- 备份文件:直接复制原工程下必要的文件夹,到ubuntu的新系统
- 安装:安装node/npm/hexo,期间遇到问题 node/npm安装版本太低,导致hexo一直安装不成功。 解决办法如上述。
- 环境:git全局是一个账号,github博客是另一个账号。SSHkey使用的是非githubio邮箱。
- 全局账号配置:git config –global user.name “Mona Lisa”
- 局部配置:git config user.name “Mona Lisa”
之后hexo clean-hexo g 均没有问题,但是hexo d 报错:
Error: EACCES: permission denied, unlink ‘/home/cs18/_Blog/.deploy_git/archives/index.html’
看提示应该是权限问题,到文件夹下查看.deploygit的很多文件都上了锁。猜测可能是在git初始化以前就生成了某些文件。
删除该目录,重新生成发布。
OK。
进一步测试:是否必须是git仓库才可以发布。
hexo clean 删除public文件夹,deploygit仍然存在
删除.git文件夹,hexo d -g 一切OK。
所以博客的文件目录不是必须为git,hexo的部署命令和git push到远程仓促并不是同一性质。
附件未整理
picGo+Aliyun搭建图床 - 将网站托管到阿里云并进行备案?https://www.cnblogs.com/Gentleaves/p/12615168.htmlhttps://blog.csdn.net/kai123wen/article/details/104027802https://blog.csdn.net/qq_35742333/article/details/103652796
【github详细使用教程】一个博客详细介绍 winhttps://blog.csdn.net/Hanani_Jia/article/details/77950594mac githubhttps://www.jianshu.com/p/6d9e581a720d
【githubio+hexo】https://zhuanlan.zhihu.com/p/26625249https://zhuanlan.zhihu.com/p/22191919
https://commitlogs.com/2016/09/03/how-to-build-blog-with-hexo/(包含极简github上手https://zhuanlan.zhihu.com/p/21438729)
https://zhangslob.github.io/2017/02/28/%E6%95%99%E4%BD%A0%E5%85%8D%E8%B4%B9%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2%EF%BC%8CHexo-Github/https://zhuanlan.zhihu.com/p/22274983https://www.zhihu.com/question/39183612/answer/80082259
附带多电脑终端的解决方案mac上配置详细 https://blog.csdn.net/yanzi1225627/article/details/54566792其他参考:https://blog.csdn.net/liu_wentao/article/details/70174508https://blog.csdn.net/qianqianstd/article/details/55823691
【主题】jackman/pacman考虑最终两个主题nexthttps://github.com/iissnan/hexo-theme-next/blob/master/README.cn.mdyiliahttps://github.com/litten/hexo-theme-yilia
https://dandyxu.me/https://acris.me/ 比较推荐我的配置,详细:http://theme-next.iissnan.com/getting-started.html
一个好看的背景图片网站https://blog.csdn.net/lemonxq/article/details/78578650[https:](https://source.unsplash.com/)[//source](https://source.unsplash.com/)[.unsplash](https://source.unsplash.com/)[.com](https://source.unsplash.com/)[/](https://source.unsplash.com/)【迁移和备份】https://www.jianshu.com/p/4e068f4dd726https://blog.csdn.net/qq_27803491/article/details/78132920https://www.jianshu.com/p/beb8d611340a
【插入图片解决方案】一直上传到HEXO目录的话,时间久了以后太占空间了,所以,用其他解决方案:https://www.v2ex.com/t/298315
总结来就是:Mweb外部文档模式 +七牛 markeditorhttps://github.com/liyaodong/image-uploader
https://blog.csdn.net/crazy1235/article/details/78570367https://www.jianshu.com/p/c859ead1b493
最后用的贴图库,一键生成markdown外链地址【建立相册】https://blog.csdn.net/u013082989/article/details/70162293https://blog.csdn.net/weixin_42556146/article/details/80825258
https://timding.top/http://lawlite.me/https://blog.jamespan.me/favorite/?spm=a2c4e.11153940.blogcont4200.4.7af2567aXlE89Ghttps://yq.aliyun.com/articles/4200
这个不错图床实现:https://www.jianshu.com/p/7f6425b3ffb2