教程-博客篇
目录
用hexo搭建博客
官方教程: https://hexo.io/zh-cn/docs/index.html
参考链接:http://blog.csdn.net/wx_jin/article/details/51027783
准备工作
- 安装Node.js https://nodejs.org/zh-cn/
- 安装Git https://git-scm.com/download/win
一步步按指令安装即可。 - 注册GitHub账号
产生生产新的SSH Key
在Git Bash执行代码:1ssh-keygen -t rsa -C "xxxx@gmail.com"成功后在C:\Users\xxx.ssh的文件夹下会产生两个文件id_rsa 以及id_rsa.pub
- 在GitHub网页右上角,点击你的头像,选择Settings-> SSH keys->New SSH key,将id_rsa.pub复制粘贴到“key”中
搭建博客
安装hexo
在本地新建一个文件夹,右键,选择Git Bash;输入:1npm install -g hexo初始化:
1hexo init hexo初始化成功会显示Start blogging with Hexo!这时在你刚才创建的文件夹里面会多出一个hexo文件,继续输入以下命令
1234cd hexonpm installhexo ghexo server分别为打开hexo目录、安装依赖文件、部署形成文件、跑起hexo服务。
这时提示Hexo is running at http://loalhost:4000/.
接着我们打开浏览器,输入http://localhost:4000/ 便可看到默认的博客
hexo已经安装完毕,我们已经可以看到默认的博客内容了。- 配置GitHubPage
在GitHub新建一个repository,并输入仓库名为你的Github名称.github.io。使用GitHubPage可以使用免费的域名搭建属于自己的静态网页,即使不搭建博客也可以在这里写一些静态网页。 将本地hexo项目托管到Github
打开(记事本等)修改hexo目录下配置文件_config.yml,编辑最后面的deploy属性,加入以下代码:123type: gitrepository: https://github.com/username/username.github.iobranch: masterrepository属性改成你的刚才创建仓库git地址。
安装hexo-deployer-git插件
输入以下代码:1npm install hexo-deployer-git --save部署你本地的主题到GitHub上
1hexo d
基本命令
|
|
更改主题,以Tranquilpeak为例
- 下载主题
https://github.com/LouisBarranqueiro/hexo-theme-tranquilpeak(download),解压缩之后重命名为tranquilpeak复制到你的本地博客themes目录下 - 配置主题
hexo目录下的_config.yml修改如下设置:1theme: tranquilpeaks
以下是针对Tranquipeaks的扩展配置,让功能更加强大更多个性化的设置。本文主要针对已实现的功能做说明,建议参考官方文档:https://github.com/LouisBarranqueiro/hexo-theme-tranquilpeak
扩展功能
theme/tranquilpeak的主题配置文件_config.yml里配置更多功能,建议先在hexo/_config.yml中将语言改成中文
该主题支持中文
siderbar
- title: title 显示的题目,global.home 全局已经设置好了支持多语言,也可以设定自己想要的内容。
- url: url 链接,可以是其他链接,也可以是本网站下的目录。
- icon: icon 显示的图标。可以在Font Awesome找到你所需要的icon
可以自定义侧边栏,只要按照“groups of links- > link- > title, link, icon”这样的层级关系自定义即可123456sidebar:menu:home:title: Homeurl: /icon: home
author
设置作者相关信息,但个人简介(bio)和工作信息需要在hexo\themes\Tranquilpeak\languages对应的语言配置文件中修改
分类
|
|
该命令在source产生一个新的文件夹all-categories,文件夹内的文件index.md修改成如下:
在新建的文章开头即可添加分类
浏览时便能按照分类来浏览
标签
同上,将categories改为tags即可
时间排序
同上,将categories改为archives即可
文章目录
在正文开始之前加入以下代码,自动根据标题级别生成目录
搜索
针对本主题,在根目录下的_config.yml文件中,自己加入以下:
如果搜索功能无效,可能需要hexo clean
,每次更新了内容都需要重新输入hexo algolia
,无其它代码配置
支持对标题、日期、摘要、标签、分类的搜索,对正文暂不支持
缩略+缩略图
- 缩略显示:在需要显示在首页之后的内容结尾处加上
<!-- more -->
,在这之后的内容不会显示在首页。或者使用摘要<!-- excerpt -->
,则摘要中的文字(标签之前)的文字不会出现在打开的正文中 缩略图(移动端不加载),在PC端,可以在文章左侧或右侧:
12thumbnailImage: welcome/welcome.png #在文章开头的Front-matter中写,路径为“文章名(文件名)/图片名”thumbnailImagePosition: bottom #图片位置,可以为left/right/bottom,第一篇文章放bottom,后面都建议统一放左侧或右侧缩略图制作:可以用画图工具将图片打开,重新调整大小(建议调整为140*140),如果非方形图,将最小的值设为140,接着选择(左下角有像素),裁剪,保存
题图
题图是一打开文章的全屏大图,
1234coverImage: city.jpg #位置同缩略图coverSize: full/partial #full:全屏,partial:60%高度coverCaption: # 对图片的说明coverMeta: in/out # in: 标题、日期、分类等属于meta信息放在图片上(垂直居中),out: meta信息放在图片下
分享和评论
分享
1234sharing_options:facebook:icon: "fa-facebook-official"url: "https://www.facebook.com/sharer/sharer.php?u={{post.permalink}}"评论
多说已经停止服务了,而disqus在国内也不能配置,甚至使用都不行,但配置不复杂,此处省略。
本博客使用的是disqus,如果科学上网,即可使用该功能。隐藏
对于目录中以”_”开头的文件,默认是不会渲染的,这个功能可以作为草稿功能更加方便,当然,也可以使用主题中的draft文件
插入本地图片
1 #这是在Tranquilpeak\source文件夹下面自己建的img文件夹而对于处理大量图片的文章是不适合的
安装插件:npm install hexo-asset-image --save
此时输入 hexo n "xxxx"
新建文章时,会同时新建同名文件夹,将图片放入该文件夹内,并将图片地址写为:文件夹名/文件名
即可,开头不需要输入斜杠
插入音频、视频
直接插/入如网易云音乐、优酷等网站提供的网页代码。markdown支持将网页代码直接解析。
字数统计
安装wordcount插件
在\Tranquilpeak\layout_partial 文件夹下,post.ejs文件中,根据插入页面的位置插入如下代码,在每篇文章中显示总字数
在\Tranquilpeak\layout_partial 文件夹下,index.ejs文件中,根据插入页面的位置插入如下代码,在首页显示博客总字数
文章模板
在\hexo\scaffolds 文件夹下,分别有对文章、页面和草稿的模板,可以对Front-matter和正文修改模板。
定制404页面
在tranquilpeak文件夹下的source文件夹中放入404.html文件,当页面不存在,会自动跳转到该页面。如果是404.md,则需要在YAML front matter (开头—内)中配置
可以不新建404.md文件,不过当404出现在二级或更多级的目录下时,css仍然在根目录下,此时无法加载css样式。
网页图标
在该主题下的_config.yml文件下找到如下属性:
图片放在主题目录下的:assets\images
但此主题特殊之处在于,查看审查元素时可以看到,facicon在最后生成的网页中的地址是http://yoursite.com ,所以要将根目录下的
url
设置为网页地址。
但这样在server上测试时,如果图片没有先上传,就无法预览到图片。
这个问题是困扰了我很久的,网上搜遍了答案,也用了审查元素,最后的解决办法居然是,查看源代码,前端做了这么久,还不知道审查元素看到的不是源代码。
careful
在修改本地主题的时候一定要“clean”,记得做好备份:
123hexo cleanhexo ghexo d如果只是修改了博客的内容,不需要反复generate,直接在server刷新就能看到最新的修改的效果了。