# 撰写内容
本篇文章将会指导你如何从零开始为Wiki添砖Java

:::info[注意]

你需要基本的CLI操作能力来提交更改
对于Windows用户，请观看[这个](https://www.bilibili.com/video/BV1ZUrLYSECD)视频学习cmd使用，**不推荐零基础学习PowerShell**。   
对于Linux用户，~~你怎么可能不会~~

:::

:::info[注意]

你需要一个Github账号和git环境才能进行Git操作  
请参考[Runoob教程](https://www.runoob.com/git/git-install-setup.html)来配置git。   
对于Github注册时可能遇到的网络问题，请向组内成员寻求帮助

:::

:::info[注意]

你需要配置Node.JS环境进行Docusaurus的本地预览  
请参考[Runoob教程](https://www.runoob.com/nodejs/nodejs-install-setup.html)来配置Node.JS

:::

## 0.编写文章
Wiki采用的Docusaurus框架使用Markdown格式进行文章的编写，Markdown是一个强大简洁的轻量级标记语言，易读性强。关于Markdown语法可以在[这里](https://markdown.com.cn/cheat-sheet.html)进行学习。   
需要注意的是，对于MD初学者，会遇到编译器换行与编辑器不一致的情况。请在需要换行的文章末尾添加两个空格再回车，即可解决。  

Docusaurus兼容绝大部分的Markdown语法，同时也提供其特有的特性来提升阅读体验，在这里介绍一下告示框。  
告示框中的内容由前后各三个冒号包裹起来，然后紧跟着一个表示其类型的文本标签。  

标签有五种，分别为note/tip/info/warning/danger，在标签后可跟随一个自定义的标题。  
例如  
```
:::note[Custom title with MD `STYNAX`]

Test Note

:::
```
会渲染出如下的告示框  

:::note[Custom title with MD `STYNAX`]

Test Note

:::

值得注意的是，你可以直接在Markdown文件内使用HTML标签，例如`<kbd></kbd>`,它可以以更优雅的方式渲染出键盘按键，将其重点突出。例如：  
`<kbd>win</kbd>`将会被渲染为：<kbd>win</kbd>

对于更多的语法特性，请移步至[Docusaurus文档](https://www.docusaurus.cn/docs/markdown-features) (非官方)进行了解

编写Markdown文件需要合适的编辑器，你可以选择自己喜欢的编辑器进行编写，例如[VS Code](https://code.visualstudio.com/)，Notepad++，Emacs等，笔者推荐VS Code。  

**不要使用Windows自带的记事本和Word！不要使用Windows自带的记事本和Word！不要使用Windows自带的记事本和Word！写出来的东西再像Markdown也不行！**

## 1. 获取仓库
一般来说，你编写的内容无法直接提交(Push)至主仓库，所以你需要获取一个主仓库的副本，并在这个副本中操作文件，最后再提交至主仓库。获取仓库副本的操作称为Fork。  

Wiki的主仓库链接位于[这里](https://github.com/ZSCNetSupportDept/website)  

登录你的账户，进入主仓库的Github页面，点击右上角的Fork  
![Fork仓库](/img/devdocs/GH-Fork.png)   

点击下一步，页面会跳转至属于你的仓库副本，页面链接应该长这样：   
`https://github.com/Your-User-Name/website`  

复制这个链接打开命令行，确定当前的工作路径，输入:    
`git clone https://github.com/Your-User-Name/website`   

正常来说，程序会以`Unpacking objects: 100% (x/x), done.`退出，在当前目录下新建一个`website`目录，里面存放着项目文件  

进入目录，从项目根目录下开始看起： 
- `docs`:存放wiki和开发组文档的内容 
- `blog`:存放文章的内容 
- `static`:存放静态文件(e.g.图片)的内容

打开或者新建一个.md文件，你就可以开始愉快的编写了。 

## 2.检查、提交至远程


保存你编写的文件后，你需要在本地进行预览。

如果你是第一次编写，请在项目根目录中打开命令行，输入:  

```
npm config set registry https://registry.npmmirror.com/
npm install
```

这会设置一个国内镜像源，并安装项目所需的依赖

随后运行`npm start`编译静态文件，并启动本地服务器。你可以在[localhost:3000](https://localhost:3000)观看到预览效果，他也会实时同步你对文件的修改并显示出来。

确定文章没有问题后，请按下面的步骤进行提交

`git add .`  

这个操作会将你更改过的所有文件添加至暂存区，准备推送  

`git commit -m "Info here"`

这个操作会将暂存区的更改提交到本地仓库，并添加提交信息

在推送本地更改之前，最好从远程仓库拉取最新的更改，以避免冲突：

`git pull origin main`

将本地的提交推送到远程仓库

`git push origin main`

当然，如果你用的是VS Code，也可以在侧栏的版本管理处直接提交

## 3.合并到主仓库

打开你Fork之后的仓库，点击上方的`Pull Request`  

![Pull request](/img/devdocs/GH-PR.png)

继续点击`Create pull request`,即可将你的更改提交至主仓库，仓库管理员会核查后将其合并。

![Create pull request](/img/devdocs/GH-PR-1.png)

## FF.常见问题

我不知道,有问题再补吧
