写作指导
本文最后更新于:9 天前
这是blog.swu-acm.cn的发文指引,仅供西南大学ACM实验室内部成员使用
Summary
这是托管于GitHub Page的一个静态博客站点,使用Hexo驱动,Fluid主题美化,在撰写文章之前,需要进行以下准备工作:
- 在本机安装node环境和相关依赖
- fork本站点并在本地部署
然后在发文时需要进行以下步骤:
- 检查仓库版本
- 撰写文章并commit
- 发起pull request
- 等待合并
Preparation
在本机安装node
环境
建议使用nvm
对node
环境进行管理,ACM实验室的镜像站镜像了一份nvm
仓库。
nvm
: Node Version Manager,是控制node版本的一个工具包
(仅支持Linux/Unix/macOS[1])执行下面的安装语句[2]:
Curl
1
curl -o- https://gitea.swu-acm.cn/mirrors/nvm/raw/branch/master/install.sh | bash
Wget
1
wget -q0- https://gitea.swu-acm.cn/mirrors/nvm/raw/branch/master/install.sh | bash
执行完成后,
nvm
就被安装在~/.nvm
文件夹内了,需要将其添加到环境变量中,在~/.bashrc
,~/.zshrc
,~/.profile
中任意一个文件添加如下内容[3]:1
2export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm使用
nvm
安装node
:1
nvm install $version
$version
是你要安装的node
版本使用
nvm
激活node
环境1
nvm use $version
$version
是你要使用的node
版本
现在就大功告成啦
在本地部署Hexo站点
首先从original-swu-blog[4]仓库中fork到你个人的仓库,下面你个人的仓库地址将使用
$repo
来表示:添加original-swu-blog仓库为
upstream
在
$repo
目录下执行下面的命令:1
git remote add upstream https://gitea.swu-acm.cn/SWU-ACM-Lab/original-swu-blog
这样你将可以同步original-swu-blog仓库的更改。
然后安装必须的依赖:
在
$repo
目录下执行下面的命令:hexo-cli
1
npm install hexo-cli --save
Fluid主题
1
npm install hexo-theme-fluid --save
其余依赖
1
yarn
然后跑起来:
在
$repo
目录下执行下面的命令:1
hexo server
本地站点会在localhost:4000进行服务,可以在浏览器访问看一下效果。
Writting
为了保证理解正确,建议阅读文章GitHub从fork到pull request之基础流程。
检查远程仓库版本
在$repo
目录下执行下面的命令:
1 |
|
撰写文章
生成文章
在
$repo
目录下执行下面的命令:1
hexo new post $postname
注意
$postname
将作为文章的URL,请不要使用中文和其他特殊字符!$postname
是你文章的标题,执行完后会在$repo/source/_posts
目录下生成一个$postname.md
的文件。使用你喜欢的编辑器撰写一篇markdown文章
使用一个你喜欢的markdown编辑器打开上一步生成的
$repo/source/_posts/$postname.md
,按照正常的文章编辑即可,需要注意的只有以下几点:文章属性字段
在文章一开头有形如这样的一段代码:
1
2
3
4---
title: $postname
date: $createtime
---你可以在其中加入如下字段:
title
: 文章的标题,建议更改author
: 文章的作者date
: 文章的修改日期(会自动更改)tags
: 文章的标签,可以多个banner_img
: 文章的背景图片,仅支持外链category
: 文章的分类示例如下:
1
2
3
4
5
6
7
8
9
10
11
12
13---
title: 数据结构算法
date: 2021-08-04 09:27:54
author: Vector
tags:
[
C++,
Datastructures,
Algorithm,
STL
]
category: Courses
---文章摘要
在上面那一段文章属性结束后,可以自己定义文章摘要,如下所示:
1
2
3$abstract
<!--more-->在
<!--more-->
标签以前的都是摘要,如果没有写摘要的话系统就会自动节选文章的前一百个字作为文章的摘要。公式与图形
我们适配了mermaid作为图表驱动引擎,可以在文章中使用mermaid:
1
2
3
4
5graph LR;
A-->B;
A-->C;
B-->D;
C-->D;效果:
graph LR; A-->B; A-->C; B-->D; C-->D;
我们还适配了mathjax作为公式驱动引擎,可以在文章中使用公式:
1
2
3
4
5
6$$
\begin{aligned}
\left| \bigcup_{i=1}^{n} S_i \right| &= \sum_{i} | S_i | - \sum_{i<j} | S_i \cap S_j | + \sum_{i<j<k} |S_i \cap S_j \cap S_k | - \cdots \\
& \quad + (-1)^{m-1} \sum_{a_i<a_{i+1} } \left| \bigcap_{i=1}^{m} S_{a_i} \right| + \cdots + (-1)^{n-1} \left| S_1 \cap \cdots \cap S_n \right|
\end{aligned}
$$效果:
发起pull request
在original-swu-blog页面提交pull request,按实际情况填写字段即可。
等待合并
如果审核通过的话,你的文章就会在博客站内发布了。
Errors
你可以通过如下方式提交你的问题:
- 在下方评论区留下你的问题
- 【推荐】在original-swu-blog提交Issue
Tips
- Windows请直接到
nvm-windows
仓库下载安装包。 ↩ - 由于版本可能发生更迭,建议前往mirrors/nvm查看最新的安装语句。 ↩
- 如果你使用的是bash,请在bashrc中添加,如果你使用的是zsh,请在zshrc中添加,其他shell请按照实际情况添加。 ↩
- 只有ACM实验室的注册成员且被分配了权限,才能访问该仓库。 ↩
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!