本文主要介绍 © 哨兵SENTINEL SECURITY, LAB 相关主题源码的路由规则与配置方法。

一、文章编写规范

1.1 文件命名规范

以《虚函数表》一文为例,文件名采用如下格式:

年-月-日-时-间-中英文-均可-空格-用横杠代替.md

示例:2022-01-09-Learning-process-about-virtual-function-table.md

1.2 栏目分类

仓库博文分为以下几个栏目,所有 Markdown 文件应放置在对应目录下:

栏目 路径 说明
BLOG _posts/blog 技术博客
TOPS _posts/top 置顶文章
DAILY _posts/daily 日常闲谈
ABOUT _posts/about 个人研究

1.3 Front Matter 配置

所有 Markdown 文件都必须按照仓库 Post 文件格式添加文件头:

---
layout: post
# 分类布局:blog 栏目文章=post,Tops 栏目文章=top,不确定可参考对应文件夹下文件值
title: "关于虚函数表的学习过程"
# 文章标题,简要概括文章内容
date: 2022-01-09
# 上传仓库时间
# wrench: 2022-01-06
# 如文章有修改则填写修改时间,也可直接删除该行,需要时再加回
author: codecat
# 作者
toc: true
# 文章目录,不为 true 则不显示目录
categories: [blog, 笔记]
# 分类,可提取文章相关关键词
permalink: /blog/2022/Learning-process-about-virtual-function-table/
# 访问链接,一般为 $root-url/$permalink
---

1.4 标题层级建议

例如,一级标题 # 虚函数表 应写为三级标题 ### 虚函数表,这样整体大小较为平均美观:

标题层级对比

1.5 图片与图床

图片可使用 sm.ms 公共图床进行托管。图片上传完成后,页面会提供相关格式的链接供使用:

sm.ms 图床使用示例

1.6 Commit 信息规范

提交信息可参考以下格式:

[2022/01/09/16:13:13]<添加::Learning-process-about-virtual-function-table.md>commit by sentryCyberSec.

格式说明:[时间]<操作::相关文件>commit by someone.

更多可参考 Git 操作 - Git push

1.7 文章发布与访问

上传完成后即可通过以下方式访问文章:


二、路由配置说明

源码下载后的基本文件结构供参考:

文件结构截图

实操下来发现路由结构如下:

  • 新闻-公告窗口相互绑定 /newsreadmore 功能同样跳转;
  • 帮助-个人栏目希望实现对近期研究(如 struts2shiro)的展示。

2.1 路由更新记录

2020-11-08 更新:

发现路由信息:

  • _data/options.yml 配置文件可选择配置 force_redirect_help 功能,即强制路由跳转至 help/*{redirect_url}
  • 可选择配置 unlist 选项、new 显示等。

2021-02-01 更新:

发现头部样式关联:

  • category 配置与 layout 配置;
  • layout 布局选项配置,如选择配置 help,则可以在近期研究中左侧导航栏中发现。

三、环境搭建与构建

3.1 依赖安装

本站使用 Jekyll 编写,并使用 babel 编译,采用 ECMAScript 6,因此必须安装 ruby >= 2.0nodejs

Step 1:安装 nodejs

yum install nodejs

Step 2:安装 ruby 2.2.4 和 rubygems

# 安装编译依赖
yum install gcc-c++ patch readline readline-devel zlib zlib-devel
yum install libyaml-devel libffi-devel openssl-devel make
yum install bzip2 autoconf automake libtool bison iconv-devel sqlite-devel

# 下载并编译 ruby 2.2.4
wget -c https://cache.ruby-lang.org/pub/ruby/2.2/ruby-2.2.4.tar.gz

# 下载并安装 rubygems
wget -c https://rubygems.org/rubygems/rubygems-2.4.8.tgz
ruby setup.rb

Step 3:安装 bundle 和 build

gem install bundle
gem install build

3.2 本地构建与运行

Fork 并克隆源码后,在博客文件夹根目录下执行:

bundle install
jekyll build

启动本地服务:

jekyll serve -P 80
# 或
bundle exec jekyll server -P 80

参考文章:


四、Git 操作指南

4.1 常规 Push 操作

命令行方式:

git add .
git commit -m "[`date +%Y/%m/%d/%T`]<移除::.DS_Store>: commit by `git config --global --list | grep user.name | awk -F"=" '{print $2}'`"
git push -u origin main

格式说明:

  • [date +%Y/%m/%d/%T] — Linux 时间戳;
  • <移除::.DS_Store> — 需要修改的内容,格式为 <[操作:移除/修复/更新/等]::本次上传修改的文件>
  • commit by ... — 取出操作人。

Windows(Git Bash)示例:

git commit -m "[`date +%Y/%m/%d/%T`]<测试::GitBash on MSWin>: commit by `git config --global --list | grep user.name | awk -F"=" '{print $2}'`"

输出示例:

[SCS-1.0-dev bfc8df8] [2021/12/07/13:59:59]<测试::GitBash on MSWin>: commit by sentryCyberSec

4.2 IDEA 中使用 Git

4.3 全局忽略文件配置

.DS_Store 为例,配置 Git 全局禁止某些文件上传到仓库:

Step 1:.DS_Store 加入全局 .gitignore 文件

echo .DS_Store >> ~/.gitignore_global

Step 2: 将全局 .gitignore 文件加入 Git 全局配置

git config --global core.excludesfile ~/.gitignore_global

五、GitHub Actions 自动部署

自动部署工作流配置文件:

贡献开源文档

贡献当前开源文档
此之前,学习开源贡献CN | EN

此文档对您有帮助吗