---
permalink: /posts/this-blog-v2
title: 本博客网站介绍
tags: 博客折腾
date: 2018-07-03 17:44:45 +08:00
last_modified_at: 2018-08-03
---
# 特点
在线编辑及后台管理页面、博文可置顶或在首页隐藏。
TOC(自动目录)、段落Anchor、加强的标签功能,以及为小屏优化体验。
通过metadata来控制网页样式,以及要加载的静态资源。
# 使用
## 创建、管理博文
本博客有[在线编辑](/create)页面,在这里预览到的效果与最终编译好的效果非常接近。
写好后,可以复制到[后台页面](/admin)发布,后台支持自定义字段,无需手写metadata。
## LaTeX 支持
在页面的 Metadata 中添加
```
component: katex
```
然后就可以使用``来定义公式。
例如输入 `c = \pm\sqrt{a^2 + b^2}`
则会输出 c = \pm\sqrt{a^2 + b^2}
## Metadata 选项
### 通用
指frame布局,其他布局都继承自frame布局。
#### layout: post
可选 `post`、`index`、`frame`,说明见下文页面结构
#### component:
加载项,多个加载项使用空格分开
`jquery` `mdui` 所有布局默认导入;
`markdown` `anchor` 在post布局已导入;
`katex` 根据需要选填。
#### drawer-close: false
默认为false;为true时左侧菜单默认收回。
**permalink**: 【生成链接地址,建议填入】
**title**: 【网页标题】
### 页面(index布局)
继承自frame
#### sidebar:
可填`fixed`、`nextprev`、`toc`、`tags`、`bio`,多个内容以空格分开
fixed指边栏固定(position: fixed)
#### comment: true
显示评论框,填`true`或`false`
### 博文(Post)
继承自index,所以三个布局的字段都可以使用
#### display: normal
可选 `normal`、`sticky`(置顶)、`hide`(首页隐藏)
#### emotag: 😊
作为tag的补充,主要用于突出某些博文;其实填任何内容都行,但填一个emoji效果最好。
**tags**: 【博文标签】
**date**: 【日期,格式:2018-07-03 17:44:45 +08:00】
# 技术
## 用到的库
- #### 主题 [MDUI](https://www.mdui.org/)
Material Design UI库。这次脱离了Bootstrap,使用MD风格。
- #### 后台 [netlify-cms](https://github.com/netlify/netlify-cms)
让GitHub Pages拥有后台管理界面,支持自定义metadata字段。[这篇文章](/posts/netlify-as-github-pages-cms)详细介绍了如何设置后台页面。
- #### 样式
- [github-markdown.css](https://github.com/sindresorhus/github-markdown-css) GitHub风格的markdown样式
- [rouge.css](https://github.com/jneen/rouge) 代码高亮 (需要自行引入css,使用`rougify style monokai.sublime > rouge-monokai.css`导出css文件,或去找[现成的文件](https://github.com/XUJINKAI/XUJINKAI.github.io/blob/master/static/render/rouge-monokai.css)添加到网站中)
- [Anchorjs](https://www.bryanbraun.com/anchorjs/) 为段落添加hash tag,方便分享
- [KaTex](https://khan.github.io/KaTeX/) 公式渲染
- [Tocbot](https://tscanlin.github.io/tocbot/) 自动生成目录
- #### JS渲染:
在线编辑页面需要用到 [kramed](https://github.com/GitbookIO/kramed), [highlightjs](https://highlightjs.org/) 这两个库来代替jekyll编译。
## 页面结构
在_layouts目录中,有frame、index、post三种布局。
**frame** 中有统一的静态资源加载,并定义了标题栏和侧边栏。
content外就是body,提供最大自由度,如在线编辑页面就使用了frame布局。
**index** 布局继承自frame,分为左右两栏。
左栏内容由content和comment组成;
右栏内容通过`sidebar`字段定义,导入_includes目录内容。
**post** 布局继承自index,并定义右栏为toc。为博文默认布局。
## 加载额外的静态资源
静态资源在/static文件夹,并按照库的名字划分(而不是后缀)。
在[/layouts/frame.html](https://github.com/XUJINKAI/XUJINKAI.github.io/blob/master/_layouts/frame.html)文件中通过读取`component`属性来控制静态文件的导入。
这种方式可以分离页面文件和资源链接,统一管理,并防止重复引用。
此外,还可以根据需要添加脚本完成额外的工作,例如定义上文所说的tex标签。
# 欢迎fork
本博客代码许可证随意,愿意的话可以保留本站地址,或者加个友链支持。
fork整个博客的话,请务必修改_config.yml文件中的`ga`和`disqus`值。