Hexo
参考网站:https://yafine-blog.cn/posts/4ab2.html
部署到码云:https://yafine-blog.cn/posts/51fb.html
Hexo 是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。
上传步骤:
hexo cleanhexo g -d
本地运行测试
hexo g -s
1、Hexo环境搭建
1.1、安装前提
1.2、快速开始
所有必备的应用程序安装完成后,即可使用 npm 安装 Hexo。
npm install -g hexo-cli安装 Hexo 完成后,请执行下列命令,Hexo 将会在指定文件夹中新建所需要的文件
hexo init <folder> cd <folder> npm install新建完成后,指定文件夹的目录如下:
. ├── _config.yml ├── package.json ├── scaffolds ├── source | ├── _drafts | └── _posts └── themes
文件夹信息
1、_config.yml
网站的 配置 信息,您可以在此配置大部分的参数。
网站
| 参数 | 描述 |
|---|---|
| title | 网站标题 |
| subtitle | 网站副标题 |
| description | 网站描述 |
| keywords | 网站的关键词。支援多个关键词。 |
| autho | 您的名字 |
| language | 网站使用的语言。对于简体中文用户来说,使用不同的主题可能需要设置成不同的值,请参考你的主题的文档自行设置,常见的有 zh-Hans和 zh-CN。 |
| timezone | 网站时区。Hexo 默认使用您电脑的时区。请参考 时区列表 进行设置,如 America/New_York, Japan, 和 UTC 。一般的,对于中国大陆地区可以使用 Asia/Shanghai。 |
其中,description主要用于SEO,告诉搜索引擎一个关于您站点的简单描述,通常建议在其中包含您网站的关键词。author参数用于主题显示文章的作者。
网址
| 参数 | 描述 | 默认值 |
|---|---|---|
| url | 网址 | |
| root | 网站根目录 | |
| permalink | 文章的 永久链接 格式 | :year/:month/:day/:title/ |
| permalink_defaults | 永久链接中各部分的默认值 | |
| pretty_urls | 改写 permalink 的值来美化 URL |
|
| pretty_urls.trailing_index | 是否在永久链接中保留尾部的 index.html,设置为 false 时去除 |
true |
| pretty_urls.trailing_html | 是否在永久链接中保留尾部的 .html, 设置为 false 时去除 (对尾部的 index.htm无效) |
true |
网站存放在子目录
如果您的网站存放在子目录中,例如
http://yoursite.com/blog,则请将您的url设为http://yoursite.com/blog并把root设为/blog/。
2、package.json
应用程序的信息。EJS, Stylus 和 Markdown renderer 已默认安装,您可以自由移除。
package.json{
"name": "hexo-site",
"version": "0.0.0",
"private": true,
"hexo": {
"version": ""
} ,
"dependencies": {
"hexo": "^3.8.0",
"hexo-generator-archive": "^0.1.5",
"hexo-generator-category": "^0.1.3",
"hexo-generator-index": "^0.2.1",
"hexo-generator-tag": "^0.2.0",
"hexo-renderer-ejs": "^0.3.1",
"hexo-renderer-stylus": "^0.3.3",
"hexo-renderer-marked": "^0.3.2",
"hexo-server": "^0.3.3"
}
}
3、scaffolds
模版 文件夹。当您新建文章时,Hexo 会根据 scaffold 来建立文件。
Hexo的模板是指在新建的文章文件中默认填充的内容。例如,如果您修改scaffold/post.md中的Front-matter内容,那么每次新建一篇文章时都会包含这个修改。
4、source
资源文件夹是存放用户资源的地方。除 _posts 文件夹之外,开头命名为 _ (下划线)的文件 / 文件夹和隐藏的文件将会被忽略。Markdown 和 HTML 文件会被解析并放到 public 文件夹,而其他文件会被拷贝过去。
5、themes
主题 文件夹。Hexo 会根据主题来生成静态页面。
2、更换主题
主题一:https://github.com/blinkfox/hexo-theme-matery

主题二:https://github.com/YunYouJun/hexo-theme-yun

- 在
themes文件夹下导入想要的主题 - 然后在跟目录下的
config.yml中修改主题为导入文件的名称
3、评论功能
本次使用的是Valine加LeanCloud评论功能
Valine文档:https://valine.js.org/quickstart.html
进入LeanCloud网站:https://leancloud.cn/dashboard/login.html#/signin
注册并登录
Leancloud应用管理。创建应用

获取APP ID 和 APP Key

不需要安装,因为yun主题默认使用 CDN。模版也已经内置。
在配置文件中进行修改,官方推荐写在
yun.yml中valine: enable: false appId: # your leancloud application appid appKey: # your leancloud application appkey placeholder: Just go go # comment box placeholder avatar: # gravatar style meta: - nick - mail - link pageSize: 10 # pagination size # lang: zh-CN # visitor: false # highlight: true # recordIP: false # serverURLs: # Emoji See: https://valine.js.org/emoji.html # emojiCDN: //i0.hdslb.com/bfs/emote/ # emojiMaps: # tv_doge: 6ea59c827c414b4a2955fe79e0f6fd3dcd515e24.png # more... # enableQQ: false # requiredFields: # - nick # - mail登录后台可进行数据的处理

4、页面卡片的设置
使用方法
title: SpringCloud
date: 2020-08-02 20:47:30
top: 3
categories: 微服务
tags:
- 微服务
- java
- spring
description: 快速构建分布式系统中的某些常见模式,开发人员可以快速站起来实现这些样板的服务和应用程序。Spring Cloud专注于为典型的用例和扩展机制(包括其他用例)提供良好的开箱即用体验。

效果展示

5、显示图片
安装插件
npm install hexo-asset-image --save打开hexo的配置文件_config.yml,找到 post_asset_folder,把这个选项从false改成true
打开以下目录
/node_modules/hexo-asset-image/index.js将内容更换为下面的代码
'use strict'; var cheerio = require('cheerio'); // http://stackoverflow.com/questions/14480345/how-to-get-the-nth-occurrence-in-a-string function getPosition(str, m, i) { return str.split(m, i).join(m).length; } var version = String(hexo.version).split('.'); hexo.extend.filter.register('after_post_render', function(data){ var config = hexo.config; if(config.post_asset_folder){ var link = data.permalink; if(version.length > 0 && Number(version[0]) == 3) var beginPos = getPosition(link, '/', 1) + 1; else var beginPos = getPosition(link, '/', 3) + 1; // In hexo 3.1.1, the permalink of "about" page is like ".../about/index.html". var endPos = link.lastIndexOf('/') + 1; link = link.substring(beginPos, endPos); var toprocess = ['excerpt', 'more', 'content']; for(var i = 0; i < toprocess.length; i++){ var key = toprocess[i]; var $ = cheerio.load(data[key], { ignoreWhitespace: false, xmlMode: false, lowerCaseTags: false, decodeEntities: false } ); $('img').each(function(){ if ($(this).attr('src')){ // For windows style path, we replace '\' to '/'. var src = $(this).attr('src').replace('\\', '/'); if(!/http[s]*.*|\/\/.*/.test(src) && !/^\s*\//.test(src)) { // For "about" page, the first part of "src" can't be removed. // In addition, to support multi-level local directory. var linkArray = link.split('/').filter(function(elem){ return elem != ''; } ); var srcArray = src.split('/').filter(function(elem){ return elem != '' && elem != '.'; } ); if(srcArray.length > 1) srcArray.shift(); src = srcArray.join('/'); $(this).attr('src', config.root + link + src); console.info&&console.info("update link as:-->"+config.root + link + src); } } else{ console.info&&console.info("no src attr, skipped..."); console.info&&console.info($(this)); } } ); data[key] = $.html(); } } } );新建文件
hexo new post "XXX"因为安装了插件之后会生成
"XXX.md"和“XXX”文件夹
将要展示的内容复制到
XXX.md文件中,然后将XXX.assets文件夹改名为XXX即可然后将md文件中的图片路径去除,只保留图片名称和后缀

6、代码高亮
将hexo版本升级到5.0以上的版本,在博客目录下运行
npm install hexo@latest在 Hexo (须升级至 5.0 以上版本)工作目录下的
_config.yml中配置:# 关闭 highlight highlight: enable: false # 启用 prism prismjs: enable: true preprocess: true line_number: false tab_replace: ""在主题配置文件中配置
codeblock: prismjs: light: default dark: tomorrow
7、播放音乐
安装插件
npm install hexo-tag-aplayer
8、字数统计
安装插件
npm install hexo-wordcount
9、代码高亮2
使用插件:https://www.npmjs.com/package/hexo-prism-plugin-chlandscape
下载插件
npm i -S hexo-prism-plugin修改配置文件
highlight: enable: false prism_plugin: mode: 'preprocess' # realtime/preprocess theme: 'default' line_number: false # default false使用Hbuild或其他编译器打开博客文件,在
node_modules下搜索,使用多文件搜索replace(/{ /g, '{').replace(/} /g, '}');
将内容替换,记得加空格,不然可能报错
replace(/{ /g, '{ ').replace(/} /g, '} ');
10、hexo中对{{}}的解析

11、编写文件
新建文件
hexo new post "XXX"设置以下标签
title: XXX date: 2020-08-02 21:31:22 # 一般只需要从这里复制 description: 简介 categories: 分类 tags: - 标签1 - 标签2 email: 1256240778@qq.com author: 晓江将要上传的md文件内容复制过来
如果含有图片的话,将图片文件夹命名的后缀去掉

只保留图片的名称即可

- 本文链接:https://lxjblog.gitee.io/2020/09/10/Hexo/
- 版权声明:本博客所有文章除特别声明外,均默认采用 许可协议。