1
0
mirror of https://github.com/ZSCNetSupportDept/website.git synced 2025-10-29 01:15:04 +08:00
Files
website/docs/devdocs/02-网站/02-开发组网站/快速上手.md

253 lines
9.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 快速上手
修网的知识需要在实践中不断积累网维的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的维护工作中来。。。
:::