mirror of
https://github.com/ZSCNetSupportDept/website.git
synced 2025-10-29 01:15:04 +08:00
253 lines
9.6 KiB
Markdown
253 lines
9.6 KiB
Markdown
# 快速上手
|
||
修网的知识需要在实践中不断积累,网维的wiki做为每一个网维成员经验的总结,自然也需要不断的更新,但是,wiki本身大部分时间都是由开发组的仅仅几个人来维护,难以时刻更新到最新情况,所以,我们想让网维的每个人都能加入wiki的维护,这篇文章就是写给希望为wiki添砖加瓦,却不太了解相关方法的小伙伴的,希望这篇文章能够快速让你上手wiki的维护工作。
|
||
|
||
在这篇文章里我们将教你:\
|
||
将我们在github上的主仓库fork一份,然后将fork仓库clone到你的电脑;修改网站源代码;将你的修改传回fork仓库,提交pull request
|
||
|
||
:::info 信息
|
||
|
||
在正式开始编辑前,你可以看看我们的成品网站,每篇文章的下面会有一个`Edit This Page`的链接,是这篇文章的源代码,这里是网站的链接:[Click Me ](https://zscdev-demo.pages.dev/)
|
||
|
||
|
||
:::
|
||
|
||
## 准备
|
||
我们假设你所使用的是windows系统。
|
||
|
||
首先,我们需要安装必要的开发工具:git 和 Node.js。
|
||
|
||
访问如下链接:[git下载](https://git-scm.com/download/win) , [Node.js下载](https://nodejs.org/zh-cn/download/prebuilt-installer)。
|
||
|
||
:::info 信息
|
||
|
||
你也可以通过windows自带的WinGet包管理器下载,详见:[微软文档](https://learn.microsoft.com/zh-cn/windows/package-manager/winget/)。
|
||
|
||
:::
|
||
|
||
:::tip git是什么?
|
||
|
||
git是一个版本控制工具,他会记录一个项目从创建之初任何人对任何文件的任何改动,大大方便了多人协作工程的管理,wiki的源代码托管在基于git设计的github上。
|
||
|
||
:::
|
||
|
||
:::tip Node.js是什么?
|
||
|
||
Node.js是一个在后端运行javascript的运行时,我们使用基于这个平台设计的docusaurus框架来将wiki从一堆markdown文档变成一个网站。
|
||
|
||
:::
|
||
|
||
访问github,如果没有账号,就注册一个,然后,打开https://github.com/ZSCNetSupportDept/website。
|
||
|
||
点击上面的fork,创建仓库的一个分支,点击create fork。
|
||
|
||
进入你刚才fork的仓库,点击Code,选择HTTPS,复制下面的那一串内容。
|
||
|
||
然后,请打开你的终端,你可以在“开始”菜单栏里搜索"PowerShell"来打开。
|
||
|
||
如果你的系统没有安装PowerShell,你可以使用cmd,按`Win+R`,在弹出框里输入`cmd`打开。
|
||
|
||
输入`git clone 你复制的内容`,这将在你的当前目录下创建一个名为`website`的文件夹,并将开发组网站的全部内容复制到这个文件夹里面。
|
||
|
||
|
||
:::tip 提示
|
||
|
||
你可能会需要科学上网的手段来访问github。
|
||
|
||
:::
|
||
|
||
|
||
然后,输入`cd website`。
|
||
|
||
切换到我们的项目目录下后,运行`npm install`来安装项目的所有依赖。
|
||
|
||
:::tip 提示
|
||
|
||
为了加速下载,你可能会需要配置npm镜像,可以输入`npm config set registry https://registry.npmmirror.com`。
|
||
|
||
:::
|
||
|
||
现在,输入`npm start`,程序就会在你的电脑上构建并部署网站。
|
||
|
||
然后在你的浏览器上输入`https://localhost:3000`
|
||
|
||
如果没有出错的话,你会看到我们开发组网站的主页。
|
||
|
||
:::tip 提示
|
||
|
||
每次启动测试版网站,都需要在这里再输入一次`npm start`
|
||
|
||
:::
|
||
|
||
## 编辑
|
||
打开`website`下的`docs`文件夹,再打开`wiki`文件夹,这里就是我们的wiki内容仓库了。
|
||
|
||
仓库里的所有的文章都是以md结尾的markdown文件,你需要熟悉markdown的写法,才能对文章的内容修改和完善,markdown并不是特别复杂,你可以花一点时间去学会他。
|
||
:::info 信息
|
||
|
||
这里是一些学习markdown的资源:https://markdown.com.cn/ \
|
||
https://github.highlight.ink/mastering-markdown/intro \
|
||
https://commonmark.org/ (英文)
|
||
|
||
:::
|
||
|
||
如果想要在文本中添加图片,视频,或者其他资源,请将这些素材放入static中,以方便管理。
|
||
|
||
对代码的修改将会自动同步到刚才打开的网页里,你可以在那里确认修改的结果满意与否,注意,你需要保存文件才会同步更改。
|
||
|
||
修改完毕后,输入`git add .`再输入`git commit`,并对你的修改做出一个简短的说明。
|
||
|
||
### 改什么?
|
||
你可以校对已有的条目,增加一些内容,或者加入一些图片之类的。
|
||
|
||
你也可以添加新条目,撰写一些你觉得有价值的修网心得。
|
||
|
||
或是帮助我们改善网站本身,比如改一改主题,写一个首页等(如果有相关能力,需要react基础)
|
||
|
||
### 文件名
|
||
你会发现,所有文件的名字前面都有一个数字,那就是文章在sidebar中出现的顺序,增添文件,请按照`order-filename.md`的格式修改名字。
|
||
|
||
在文件名前加一个下划线,系统就不会将文章加入成品网站中。
|
||
|
||
:::tip 提示
|
||
|
||
关于如何修改wiki的更多提示,可以去看docusaurus的官方文档:[链接](https://docusaurus.cn)
|
||
|
||
:::
|
||
## 推送到仓库
|
||
在修改完毕并且在本地检查完毕后,你需要将你的修改同步到你在github的远程fork仓库,然后再提交一个pull request请求主仓库合并你在fork仓库所做的修改。
|
||
|
||
首先,你需要验证你的身份,让github允许你的电脑向它提交push
|
||
:::tip 提示
|
||
|
||
你可以使用github desktop或github cli来简化这个流程,不过我们想让你在这个过程中学习SSH的用法,如果你想方便一点,直接跳到“使用github-cli”。
|
||
|
||
:::
|
||
### 选项1:使用SSH
|
||
|
||
首先,确保你安装了SSH,你可以看微软的这片文档:[链接](https://learn.microsoft.com/zh-cn/windows-server/administration/openssh/openssh_install_firstuse?tabs=gui)。
|
||
|
||
打开终端,输入
|
||
|
||
```PowerShell
|
||
|
||
ssh-keygen -t ed25519
|
||
|
||
```
|
||
|
||
然后在接下来的选项中检查密钥的存放路径,以及使用一个密码来加密这个密钥,我们建议你设置一个密码。
|
||
|
||
然后我们设置开机自动启动ssh-agent服务。
|
||
|
||
确保你使用了管理员权限运行了下面的PowerShell代码:
|
||
|
||
```PowerShell
|
||
|
||
Get-Service ssh-agent | Set-Service -StartupType Automatic
|
||
|
||
Start-Service ssh-agent
|
||
|
||
Get-Service ssh-agent
|
||
|
||
```
|
||
|
||
最后一个命令应该会返回`Running`状态。
|
||
|
||
然后,你就可以输入`ssh-add`来加载你的密钥。
|
||
|
||
```PowerShell
|
||
|
||
ssh-add 你的私钥位置
|
||
|
||
```
|
||
:::tip 提示
|
||
|
||
每次重启电脑,你都要重新输入一遍`ssh-add`。
|
||
|
||
:::
|
||
|
||
:::info 信息
|
||
|
||
关于SSH的配置,参考了这片[微软文档](https://learn.microsoft.com/zh-cn/windows-server/administration/openssh/openssh_keymanagement)。
|
||
|
||
:::
|
||
|
||
接下来,我们配置github的SSH访问。
|
||
|
||
打开与私钥同目录下的公钥文件(以pub结尾),然后复制他,注意要全部复制,不要多出或减少任何内容。
|
||
|
||
点一下你的github头像,选择Settings,然后在侧边栏的Access板块找到SSH and GPG keys。
|
||
|
||
点击 `New SSH key`。
|
||
|
||
把密钥粘贴到下面,然后保存就行了。
|
||
|
||
在终端里输入
|
||
|
||
```PowerShell
|
||
|
||
ssh git@github.com
|
||
|
||
```
|
||
|
||
如果返回的文本里出现了你的用户名,配置就大概成功了。
|
||
|
||
现在就可以输入`git push`了
|
||
|
||
```PowerShell
|
||
|
||
git push
|
||
|
||
```
|
||
|
||
这个命令会向远端的仓库提交你在本地提交的commit,检查你的fork仓库,有没有更新到你本地的修改?
|
||
|
||
:::info 信息
|
||
|
||
参考了github的文档:[Click Me ](https://docs.github.com/zh/authentication/connecting-to-github-with-ssh/about-ssh)
|
||
|
||
:::
|
||
|
||
### 选项2:使用github-cli
|
||
访问https://github.com/cli/cli/releases , 下载最新版本。
|
||
|
||
输入`gh`以检查安装的成功状况。
|
||
|
||
没问题的话,输入`gh auth login`,会弹出一个浏览器窗口,在弹出的窗口中完成登录。
|
||
|
||
然后,你应该就可以直接使用`git push`了,输入`git push`,然后查看你在github中的fork仓库,有没有更新到你本地的修改。
|
||
:::info 信息
|
||
|
||
这里有更多关于github cli 的信息:[Click Me ](https://docs.github.com/zh/github-cli/github-cli/about-github-cli)
|
||
|
||
:::
|
||
|
||
### 提交pull request
|
||
一个pull request 是一个请求,将修改建议发送给主仓库,并让主仓库合并这些修改。
|
||
|
||
打开主仓库,选择上面的Pull Requests,然后选择New Pull Request,如果没有出现你的fork仓库,点击compare accross forks。
|
||
|
||
然后就可以Create Pull Request了。
|
||
|
||
提交后,开发组成员会校对你的修改,将你的修改应用到主仓库中,这就是我们的开发流程了。
|
||
|
||
|
||
:::info wiki的分层更新模型
|
||
|
||
按照我们的设计,wiki的内容从新到旧,一共分为三个版本:
|
||
- 最新的版本是大家在自己的电脑上运行的测试版网站,这个版本包含了最新的想法和更改,等待完善后推送到主仓库。
|
||
- 然后是我们的demo版本网站[zscdev-demo.pages.dev](zscdev-demo.pages.dev),这个版本立即反应了任何被合并进去主仓库master分支的更改,大家可以对这个网站上的内容随便提意见,任何修改都将很快被同步到网站里。
|
||
- 当主仓库和demo网站的更新积累到一定程度的数量时,开发组成员会根据一个版本作为wiki的正式版,正式推送到我们的网站[developer.zsxyww.com](developer.zsxyww.com)里,这个版本通常要比demo要落后几次更新,但是那些在施工中的文章,和还在讨论的段落等不稳定的内容将不会被同步到这里,换句话说,这个版本是“稳定版”。
|
||
|
||
我们从许多大型软件,例如firefox(nightly,stable,ESR),windows(canary,dev,LTSC),debian(unstable/testing/stable)的开发中,借鉴了这一模型,它可以确保最终正式的wiki是严谨的,可信赖的,同时将想法和讨论的场地从正式文档中分离开,确保了开发的有序进行.
|
||
|
||
|
||
这样的设计是考虑了这样的场景:有许多人同时参与wiki的开发,而不是一年不一定更新一回的随意开发,还是希望大家能多多参与到wiki的维护工作中来。。。
|
||
|
||
:::
|
||
|
||
|
||
|
||
|
||
|
||
|