mirror of
https://github.com/ZSCNetSupportDept/website.git
synced 2025-10-28 17:05:03 +08:00
Compare commits
9 Commits
dependabot
...
dependabot
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d8c44f1e55 | ||
|
|
3f4bff2f66 | ||
|
|
755a0cd758 | ||
|
|
7a5d8a7ff0 | ||
|
|
325f5b906f | ||
|
|
48c28f77ba | ||
|
|
c1f35228c4 | ||
|
|
ff04048f76 | ||
|
|
1c114c9e85 |
78
blog/给纯新手的网维快速入门指南.md
Normal file
78
blog/给纯新手的网维快速入门指南.md
Normal file
@@ -0,0 +1,78 @@
|
||||
# 给纯新手的网维快速入门指南
|
||||
许多新进网维的小伙伴们都可能对我们的日常工作一脸懵:网维是干什么的,我们到底在修什么?其他人说的交换机,主线到底是什么?
|
||||
|
||||
甚至有很多正式成员都搞不明白这个问题,为了提升大家的业务水平和网络技术,我们特意编写了这份指南,希望能对你有些许的用处。
|
||||
|
||||
<!--truncate-->
|
||||
|
||||
## 网络
|
||||
|
||||
网维,那不就是修网络的吗?但是,网络是什么?他究竟是什么样的?为什么我可以访问到遥远彼方的内容(网页,游戏,等)?
|
||||
|
||||
首先,我们需要知道,计算机中的一切数据,都是一串二进制数字,也就是许多的01010101101010.........,网络的本质,就是在计算机之间传输这些数字,如何进行传输呢?通常是使用物理现实的两种状态来表示0和1这两个数字。
|
||||
|
||||
比如,一个电路(简单点说,有一个电灯),电路闭合,电灯亮,我们定义这样的状态是1,反之,电路断开,电灯暗,我们定义这样的状态为0,我们让计算机监听这个电路的状态,通过电路断开闭合状态不断的超高速的变化,就可以传递01010101这些数字来进行信息的传递。
|
||||
|
||||
:::info 信息
|
||||
|
||||
这里有我们写的一篇科普文章,介绍了网线的一些概念:[Click Me](/docs/wiki/基础知识/科普/网线是什么)
|
||||
|
||||
:::
|
||||
|
||||
不一定需要电路这种介质,还可以是无线电波,例如,定义电波幅度大于某个值为1,小于某个值为0,或者大于某个频率为0,小于某个频率为1,让计算机接受这样的电波并解读,也可以传递信息。
|
||||
|
||||
其实,简单地说,前者就是以太网(有线网)本质,网线本质上就是电线,里面是以高频率断断续续的电流,把电线接到计算机里,计算机就可以依据电路的变化情况来获取信息.而后者则是无线网(Wi-Fi,移动通信技术等)本质,他们通过调制电磁波来传递信息。
|
||||
|
||||
### 网维
|
||||
|
||||
网维主要修的是学生宿舍的以太网,在每个宿舍的每个人的桌子前,都有一个网线端口,用户将网线插入端口和计算机,即可连接到宿舍的楼层线路,端口后面是墙线,意思是它是埋在墙里的,我们一般情况下没法动他
|
||||
|
||||
依据宿舍片区的不同,墙线可能直接通去了机房,也有可能是连接到了宿舍的路由器(交换机/光猫),经过这一层转发,再前往机房。
|
||||
|
||||
:::tip 提示
|
||||
|
||||
你可以在片区信息中查看各个片区的具体结构
|
||||
|
||||
:::
|
||||
|
||||
路由器是什么?交换机和光猫又是什么?这个问题如果专业地展开来讲有点难懂,对于新手来说,你可以简单的理解为他们都是中转站,电线在这里经过出去的电线继续信息的传递,而不是直接一根线连到网络上去
|
||||
|
||||
无线路由器(或者有路由功能的光猫)还可以让用户通过无线方式接入线路,比如,如果你想坐高铁,从中山坐到广州南,然后再从广州南做到其他地方,但是没必要全程坐高铁,你可以打车,坐地铁到广州南,然后再坐高铁。这里一样的,不管有线还是无线的接入,在网关(我们对这些设备的统称)都是转换成有线再出去,
|
||||
|
||||
出去是去哪里呢?在宿舍的结构中,是去了机房(或者说,弱电井),宿舍去机房的线就叫做主线(只有通过网关中继的地方才会有主线的概念,直连机房的就直接是墙线)
|
||||
|
||||
线路到了机房,一般会接入一个叫做配线架的设备,这个也是一个中继器,方便我们维修(如果是线路坏了的话),配线架的端口总是成对的,有一个进口就会有出口,一般进口都是不用我们去管的,线路经过出口出来,连接到交换机上,我们网维的工作一般追踪到这里,再往后的问题就不是我们的职责了,
|
||||
|
||||
交换机有运营商的区别,用户需要接到他宽带开通的运营商对应的交换机上,通过一类叫做“拨号”的协议来进行认证,向运营商用自己的账号请求登录,请求运营商允许联网,这样也方便运营商计费(和学校监控!),交换机通常都是集成了光纤功能,在这里将电路的信号调制成光的信号(这也是一种传输0101010的方式!),然后接入运营商的网络,访问全国,和全球的互联网
|
||||
|
||||
## 维修
|
||||
|
||||
上面就是我们学校宿舍网络的结构了,网维的工作,本质就是维护这样的结构正常运行,在这些环节中,每一个都有可能出错,一般来说,我们最常见的有两种错误:硬件(物理层)错误(651)和软件错误(691).
|
||||
### 651错误
|
||||
硬件错误,通常在拨号时会给出`651`错误,本质上,这种错误就是物理连接出现了问题,要么是墙线老化接触不良了,要么是主线出现了问题,要么是交换机,配线架没有接好,要么是网线问题,对于这种问题,我们通常通过寻线对线器来解决,排查问题
|
||||
|
||||
排查问题一般都是调试可能出错的因素,例如,你用一根确定了的是好的网线直连端口对线没问题,但是用户的线连接端口就有问题,那么就是用户的线有问题
|
||||
|
||||
:::info 信息
|
||||
|
||||
关于更多651错误,请查阅wiki相关页面,也请查阅`技能`板块中`对线`和`寻线`的条目
|
||||
|
||||
:::
|
||||
|
||||
### 691错误
|
||||
软件错误,通常会在拨号时给出`691`错误,本质上,这意味着物理连接是通的,但是运营商那边拒绝的用户的登录,有几种可能:
|
||||
1. 交换机接错了,用户是某个运营商,你接到了其他的运营商的交换机,当然报错喽~
|
||||
2. 短时间内过多的登录,被运营商拉黑了,需要稍等一会子
|
||||
3. 宽带欠费,停机
|
||||
4. 账号密码错误
|
||||
5. 运营商会绑定MAC地址来限制多设备,在更换电脑或者转接器等设备时会遇到这样的情况,可以打电话给运营商要求所谓的“解绑刷新”,也可以组长
|
||||
|
||||
:::info 信息
|
||||
|
||||
关于更多691错误,请查阅wiki的相关页面,和相应的文章
|
||||
|
||||
:::
|
||||
|
||||
## 总结
|
||||
|
||||
这里只是一篇简要的指南,我们在这里介绍了网络的基本概念,让你对你所要维修的系统有一个大概的了解,你可以继续去看wiki中的相关条目,来进一步扩充你的知识,希望你在网维的时光过得愉快!
|
||||
@@ -1,17 +1,9 @@
|
||||
# 报修服务器
|
||||
## 概览
|
||||
ip: **192.112.117.67**\
|
||||
|
||||
OS:**CentOS 7.6 64bit**\
|
||||
|
||||
配置:CPU - 1核 内存 - 2GB\
|
||||
系统盘 - SSD云硬盘 40GB\
|
||||
流量包 - 1000GB/月(带宽:5Mbps)\
|
||||
|
||||
服务:报修系统
|
||||
|
||||
因信息安全,请移步我们的内部仓库访问相关信息
|
||||
:::tip 提示
|
||||
|
||||
记得续费网站
|
||||
|
||||
:::
|
||||
|
||||
|
||||
|
||||
@@ -1,32 +1,5 @@
|
||||
# 网站服务器
|
||||
## 概况
|
||||
ip:**43.129.159.235**
|
||||
|
||||
OS:**Debian 10.2 64bit**
|
||||
|
||||
配置:CPU - 1核 内存 - 1GB\
|
||||
系统盘 - SSD云硬盘 25GB\
|
||||
流量包 - 1024GB/月(峰值带宽:30Mbps)
|
||||
|
||||
服务:官网(通过docker部署,8090端口,nginx反代)\
|
||||
旧版wiki(docker,3000端口,nginx反代)\
|
||||
新网站(TODO:补充部署方式)
|
||||
|
||||
## 服务
|
||||
### 官网
|
||||
运行在docker下
|
||||
### 旧版wiki
|
||||
运行在docker下
|
||||
### 开发组网站
|
||||
由nginx直接代理
|
||||
## Nginx
|
||||
|
||||
网站服务器的服务基本上都是走nginx的,对于服务器nginx的配置,需要注意一些事项:
|
||||
1. 当初安装nginx的时候,用的是lnmp一键安装脚本,这个脚本的配置和普通安装好像有点不一样,nginx的主配置文件在`/usr/local/nginx/conf/nginx.conf`,我修改了配置,使其include了`/etc/nginx/sites-enabled`,如果要添加网站,请修改`sites-available`,并将需要启用的配置链接到`sites-enabled`下,不推荐使用脚本自带的`lnmp`脚本,
|
||||
2. 关于网站的ssl证书,要记得更新,配置文件中的证书和key的路径指向certbot默认存放的路径即可
|
||||
|
||||
|
||||
|
||||
因信息安全,请移步我们的内部仓库访问相关信息
|
||||
:::tip 提示
|
||||
|
||||
记得续费网站
|
||||
|
||||
44
docs/devdocs/09-培训/01-git/01-概览.md
Normal file
44
docs/devdocs/09-培训/01-git/01-概览.md
Normal file
@@ -0,0 +1,44 @@
|
||||
# 概览Git
|
||||
这里是git的一个简短教程
|
||||
## 目录
|
||||
本教程的目录。。。
|
||||
|
||||
1. 介绍-做为版本控制系统的git
|
||||
|
||||
- 什么是版本控制系统(VCS)?
|
||||
- git是如何进行版本控制的?
|
||||
|
||||
2. git的基础概念
|
||||
|
||||
- 新建一个git仓库
|
||||
- 跟踪文件,暂存文件
|
||||
- 提交commit
|
||||
- 分支(branch)介绍
|
||||
- 合并-merge与rebase
|
||||
- cherry-pick
|
||||
- HEAD和相对引用
|
||||
|
||||
3. 远程仓库
|
||||
|
||||
- clone和origin
|
||||
- 远程分支是什么
|
||||
- fetch , pull & push !
|
||||
|
||||
4. 托管平台
|
||||
|
||||
- github
|
||||
- gitlab
|
||||
- gitea
|
||||
|
||||
5. 高级
|
||||
|
||||
- GUI
|
||||
- git-gui
|
||||
- vscode上的一些扩展
|
||||
- lazygit
|
||||
- 自建git服务
|
||||
- gitea
|
||||
- 参考
|
||||
- pro git
|
||||
- learngitbranching.js.org
|
||||
|
||||
1
docs/devdocs/09-培训/01-git/02-介绍-做为版本控制系统的git/01-vcs.md
Normal file
1
docs/devdocs/09-培训/01-git/02-介绍-做为版本控制系统的git/01-vcs.md
Normal file
@@ -0,0 +1 @@
|
||||
# 什么是版本控制系统(VCS)?
|
||||
@@ -0,0 +1 @@
|
||||
# git是如何进行版本控制的?
|
||||
1
docs/devdocs/09-培训/01-git/03-git的基础概念/01-新建一个git仓库.md
Normal file
1
docs/devdocs/09-培训/01-git/03-git的基础概念/01-新建一个git仓库.md
Normal file
@@ -0,0 +1 @@
|
||||
# 新建一个git仓库
|
||||
1
docs/devdocs/09-培训/01-git/03-git的基础概念/02-跟踪文件,暂存文件.md
Normal file
1
docs/devdocs/09-培训/01-git/03-git的基础概念/02-跟踪文件,暂存文件.md
Normal file
@@ -0,0 +1 @@
|
||||
# 跟踪文件,暂存文件
|
||||
1
docs/devdocs/09-培训/01-git/03-git的基础概念/03-提交commit.md
Normal file
1
docs/devdocs/09-培训/01-git/03-git的基础概念/03-提交commit.md
Normal file
@@ -0,0 +1 @@
|
||||
# 提交commit
|
||||
1
docs/devdocs/09-培训/01-git/03-git的基础概念/04-branch.md
Normal file
1
docs/devdocs/09-培训/01-git/03-git的基础概念/04-branch.md
Normal file
@@ -0,0 +1 @@
|
||||
# 分支(branch)介绍
|
||||
@@ -0,0 +1 @@
|
||||
# HEAD和相对引用
|
||||
1
docs/devdocs/09-培训/01-git/03-git的基础概念/05-MergeAndMore.md
Normal file
1
docs/devdocs/09-培训/01-git/03-git的基础概念/05-MergeAndMore.md
Normal file
@@ -0,0 +1 @@
|
||||
# 合并-merge与rebase
|
||||
1
docs/devdocs/09-培训/01-git/04-远程仓库/01-CloneOrigin.md
Normal file
1
docs/devdocs/09-培训/01-git/04-远程仓库/01-CloneOrigin.md
Normal file
@@ -0,0 +1 @@
|
||||
# clone和origin
|
||||
1
docs/devdocs/09-培训/01-git/04-远程仓库/02-remotebranch.md
Normal file
1
docs/devdocs/09-培训/01-git/04-远程仓库/02-remotebranch.md
Normal file
@@ -0,0 +1 @@
|
||||
# 远程分支是什么
|
||||
1
docs/devdocs/09-培训/01-git/04-远程仓库/03-fetchpullpush.md
Normal file
1
docs/devdocs/09-培训/01-git/04-远程仓库/03-fetchpullpush.md
Normal file
@@ -0,0 +1 @@
|
||||
# fetch , pull & push !
|
||||
1
docs/devdocs/09-培训/01-git/05-托管平台/01-github.md
Normal file
1
docs/devdocs/09-培训/01-git/05-托管平台/01-github.md
Normal file
@@ -0,0 +1 @@
|
||||
# github
|
||||
1
docs/devdocs/09-培训/01-git/05-托管平台/02-gitlab.md
Normal file
1
docs/devdocs/09-培训/01-git/05-托管平台/02-gitlab.md
Normal file
@@ -0,0 +1 @@
|
||||
# gitlab
|
||||
1
docs/devdocs/09-培训/01-git/05-托管平台/03-gitea.md
Normal file
1
docs/devdocs/09-培训/01-git/05-托管平台/03-gitea.md
Normal file
@@ -0,0 +1 @@
|
||||
# gitea
|
||||
1
docs/devdocs/09-培训/01-git/06-高级/01-gui.md
Normal file
1
docs/devdocs/09-培训/01-git/06-高级/01-gui.md
Normal file
@@ -0,0 +1 @@
|
||||
# GUI
|
||||
1
docs/devdocs/09-培训/01-git/06-高级/02-selfhosted.md
Normal file
1
docs/devdocs/09-培训/01-git/06-高级/02-selfhosted.md
Normal file
@@ -0,0 +1 @@
|
||||
# 自建Git服务
|
||||
1
docs/devdocs/09-培训/01-git/06-高级/03-references.md
Normal file
1
docs/devdocs/09-培训/01-git/06-高级/03-references.md
Normal file
@@ -0,0 +1 @@
|
||||
# 参考
|
||||
21
docs/devdocs/_后端API服务_/01-概览.md
Normal file
21
docs/devdocs/_后端API服务_/01-概览.md
Normal file
@@ -0,0 +1,21 @@
|
||||
# 后端API服务
|
||||
## 介绍
|
||||
该项目作为网维的统一后端API接口而设计,连接网维的数据库,并提供一系列接口给前端以支持网维日常的业务逻辑,其他开发人员可以直接调用这些接口,从而专注与前端,以便于降低整个系统设计的复杂度
|
||||
|
||||
该项目采用Go语言编写,Web框架采用echo,ORM框架为gorm,
|
||||
## 项目地址
|
||||
https://github.com/ZSCNetSupportDept/zscnetworksupport-api
|
||||
## 构建
|
||||
要想构建该项目,你需要安装`Go`和`make`,在一台linux机器上构建
|
||||
|
||||
输入`make install`即可安装本项目的依赖,而不构建
|
||||
|
||||
输入`make build`即可构建该项目,项目放在`make`文件夹下
|
||||
## 部署
|
||||
只需要把可执行文件放在生产环境下运行即可,本项目可能会提供一些静态文件访问,需要将`static`放在与可执行文件相同的目录下
|
||||
## 配置
|
||||
程序接受,且只接受一个参数,为配置文件的路径,关于配置文件的格式,请参照“配置”一章
|
||||
## 运行
|
||||
运行后,程序会将日志和错误文件输出到stdout中,你可以配置系统服务来使程序开机自启动,将输出定向到日志或者stderr里
|
||||
|
||||
在运行程序之后,你还要配置一些反向代理的软件,来将流量导向程序所监听的端口,你还要定期续期https证书,以保证https访问
|
||||
13
docs/devdocs/_后端API服务_/02-配置.md
Normal file
13
docs/devdocs/_后端API服务_/02-配置.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# 配置
|
||||
# 介绍
|
||||
配置为一个`json`文件,其中,各个字段的定义如下:
|
||||
|
||||
`port`:一个数字,为程序所监听的端口
|
||||
|
||||
`database`:
|
||||
- `Type`:一个字符串,指定了所使用的数据库的类型,需要在`MySQL` `PostgreSQL` `SQLite`中选择一个
|
||||
- `Path`:对于SQLite填写数据库的位置,对于其他的数据库填写URL
|
||||
- `Port`:数据库所监听的端口,SQLite可以不用填,以下也是
|
||||
- `User`:数据库用户名
|
||||
- `name`:数据库名称,
|
||||
- `Password`:数据库密码
|
||||
22
docs/devdocs/_后端API服务_/03-结构.md
Normal file
22
docs/devdocs/_后端API服务_/03-结构.md
Normal file
@@ -0,0 +1,22 @@
|
||||
# 结构
|
||||
仓库项目的结构如下:
|
||||
|
||||
`main.go`:项目程序的起点,从此处开始运行
|
||||
|
||||
`config`:存放了读取配置,提供配置变量相关的代码
|
||||
|
||||
`databases`:提供了连接数据库相关的代码,提供主数据库连接变量(Usingdb)
|
||||
|
||||
`handlers`:为handler的存放地点,一类业务为一个对象,handler作为其方法实现
|
||||
|
||||
`model`:业务所采用的模型,定义了一个业务对象的存储和相关方法
|
||||
|
||||
`use`:在这里注册所有需要提供的API和中间件,程序将使用这里的配置
|
||||
|
||||
`make`:存放了构建所产生的程序
|
||||
|
||||
`static`:存放了静态文件以进行路由
|
||||
|
||||
## 原理
|
||||
当程序运行时:
|
||||
main()将调用sysinit(),读取参数中的配置,将配置记录在全局变量`config.UseConfig`中
|
||||
BIN
docs/wiki/.10-资源.md.kate-swp
Normal file
BIN
docs/wiki/.10-资源.md.kate-swp
Normal file
Binary file not shown.
@@ -1,17 +1,21 @@
|
||||
# 网络维护科wiki首页
|
||||
|
||||
:::tip 提示
|
||||
|
||||
**至手机用户:点击页面左上角的三条杠打开导航栏,以浏览本站**\
|
||||
**推荐使用电脑端访问**
|
||||
|
||||
:::
|
||||
|
||||
## 介绍
|
||||
这里是中山学院网络维护科wiki,记录了网络维护工作的相关知识,wiki的内容都是历代网维的成员整理总结的,你也可以贡献自己的内容
|
||||
|
||||
:::warning 注意
|
||||
|
||||
本wiki还在大量开发中,许多条目可能会不完善或者缺失,仅供开发组组员和正式成员测试参考使用,如果你对wiki的编写和维护感兴趣,可以访问我们的[github源代码仓库](https://github.com/ZSCNetSupportDept/website),具体的细节请联系开发组组长
|
||||
|
||||
:::
|
||||
|
||||
## wiki的内容
|
||||
**wiki基本由以下部分组成:**
|
||||
### 技能
|
||||
@@ -33,3 +37,15 @@ MacOS的修理事项
|
||||
这里是新版wiki,但是旧版wiki依然可用,你可以通过[wiki.zsxyww.com](https://wiki.zsxyww.com) 来访问,上面还有没有迁移的许多旧文章,我们目前在逐步转移这些文章
|
||||
## 贡献
|
||||
如果你想为本wiki添砖加瓦,可以在仓库里PR:[wiki的github仓库](https://github.com/ZSCNetSupportDept/website)
|
||||
|
||||
:::tip 提示
|
||||
|
||||
对于新手,如果wiki不能解决你的问题和其他疑惑,可以随意向组长,科长,api,或者其他人请教,我们也会加油完善wiki的
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
:::
|
||||
|
||||
|
||||
0
docs/wiki/gitignore/.gitignore
vendored
Normal file
0
docs/wiki/gitignore/.gitignore
vendored
Normal file
604
docs/wiki/gitignore/widgets.qss
Normal file
604
docs/wiki/gitignore/widgets.qss
Normal file
@@ -0,0 +1,604 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2022-2024 Megan Conkle <megan.conkle@kdemail.net>
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||
*/
|
||||
|
||||
/******************************************************************************/
|
||||
/* Scrollbars */
|
||||
/******************************************************************************/
|
||||
|
||||
ghostwriter--MarkdownEditor QAbstractScrollArea::corner,
|
||||
ghostwriter--HtmlPreview QAbstractScrollArea::corner,
|
||||
ghostwriter--Sidebar QAbstractScrollArea::corner {
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
ghostwriter--MarkdownEditor QAbstractScrollArea,
|
||||
ghostwriter--HtmlPreview QAbstractScrollArea,
|
||||
ghostwriter--Sidebar QAbstractScrollArea {
|
||||
padding: 3px 3px 0px 3px;
|
||||
margin: 0
|
||||
}
|
||||
|
||||
ghostwriter--Sidebar MarkdownEditor::horizontal,
|
||||
ghostwriter--Sidebar HtmlPreview::horizontal,
|
||||
ghostwriter--Sidebar QScrollBar::horizontal {
|
||||
height: 16px;
|
||||
margin: 5px;
|
||||
border: 0;
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
ghostwriter--MarkdownEditor QScrollBar::vertical,
|
||||
ghostwriter--HtmlPreview QScrollBar::vertical,
|
||||
ghostwriter--Sidebar QScrollBar::vertical {
|
||||
width: 16px;
|
||||
margin: 5px;
|
||||
border: 0;
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
|
||||
ghostwriter--MarkdownEditor QScrollBar::horizontal:hover,
|
||||
ghostwriter--HtmlPreview QScrollBar::horizontal:hover,
|
||||
ghostwriter--Sidebar QScrollBar::horizontal:hover {
|
||||
background-color: #202325;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
ghostwriter--MarkdownEditor QScrollBar::vertical:hover,
|
||||
ghostwriter--HtmlPreview QScrollBar::vertical:hover,
|
||||
ghostwriter--Sidebar QScrollBar::vertical:hover {
|
||||
background-color: #202325;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
ghostwriter--MarkdownEditor QScrollBar::handle:horizontal,
|
||||
ghostwriter--HtmlPreview QScrollBar::handle:horizontal,
|
||||
ghostwriter--Sidebar QScrollBar::handle:horizontal {
|
||||
min-width: 50px;
|
||||
border: 0;
|
||||
background: #444749;
|
||||
border-radius: 3px;
|
||||
|
||||
}
|
||||
|
||||
ghostwriter--MarkdownEditor QScrollBar::handle:horizontal,
|
||||
ghostwriter--HtmlPreview QScrollBar::handle:horizontal,
|
||||
ghostwriter--Sidebar QScrollBar::handle:horizontal {
|
||||
min-width: 50px;
|
||||
border: 0;
|
||||
background: #444749;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
ghostwriter--MarkdownEditor QScrollBar::handle:vertical,
|
||||
ghostwriter--HtmlPreview QScrollBar::handle:vertical,
|
||||
ghostwriter--Sidebar QScrollBar::handle:vertical {
|
||||
min-height: 50px;
|
||||
border: 0;
|
||||
background: #444749;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
ghostwriter--MarkdownEditor QScrollBar::handle:horizontal:hover,
|
||||
ghostwriter--HtmlPreview QScrollBar::handle:horizontal:hover,
|
||||
ghostwriter--Sidebar QScrollBar::handle:horizontal:hover {
|
||||
background: #3daee9;
|
||||
}
|
||||
|
||||
ghostwriter--MarkdownEditor QScrollBar::handle:vertical:hover,
|
||||
ghostwriter--HtmlPreview QScrollBar::handle:vertical:hover,
|
||||
ghostwriter--Sidebar QScrollBar::handle:vertical:hover {
|
||||
background: #3daee9;
|
||||
}
|
||||
|
||||
ghostwriter--MarkdownEditor QScrollBar::add-line,
|
||||
ghostwriter--HtmlPreview QScrollBar::add-line,
|
||||
ghostwriter--Sidebar QScrollBar::add-line,
|
||||
ghostwriter--MarkdownEditor QScrollBar::sub-line,
|
||||
ghostwriter--HtmlPreview QScrollBar::sub-line,
|
||||
ghostwriter--Sidebar QScrollBar::sub-line,
|
||||
ghostwriter--MarkdownEditor QScrollBar::add-page,
|
||||
ghostwriter--HtmlPreview QScrollBar::add-page,
|
||||
ghostwriter--Sidebar QScrollBar::add-page,
|
||||
ghostwriter--MarkdownEditor QScrollBar::sub-page,
|
||||
ghostwriter--HtmlPreview QScrollBar::sub-page,
|
||||
ghostwriter--Sidebar QScrollBar::sub-page,
|
||||
ghostwriter--MarkdownEditor QScrollBar::down-arrow,
|
||||
ghostwriter--HtmlPreview QScrollBar::down-arrow,
|
||||
ghostwriter--Sidebar QScrollBar::down-arrow,
|
||||
ghostwriter--MarkdownEditor QScrollBar::right-arrow,
|
||||
ghostwriter--HtmlPreview QScrollBar::right-arrow,
|
||||
ghostwriter--Sidebar QScrollBar::right-arrow {
|
||||
background: transparent;
|
||||
border: 0
|
||||
}
|
||||
|
||||
/******************************************************************************/
|
||||
/* Menu Bar */
|
||||
/******************************************************************************/
|
||||
|
||||
QMainWindow QMenuBar {
|
||||
color: #bdc3c7;
|
||||
background-color: #151719;
|
||||
font-size: 10pt;
|
||||
spacing: 2px;
|
||||
border: 0px;
|
||||
border-bottom: 1px;
|
||||
border-color: #2c2f31;
|
||||
border-style: solid;
|
||||
padding: 1px 0px 1px 0px;
|
||||
}
|
||||
|
||||
QMainWindow QMenuBar::item {
|
||||
padding: 2px 7px 2px 7px;
|
||||
border: 0px;
|
||||
margin: 2px;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
QMainWindow QMenuBar::item:selected {
|
||||
background-color: #25282c;
|
||||
}
|
||||
|
||||
QMainWindow QMenuBar::item:hover {
|
||||
background-color: #373d42;
|
||||
}
|
||||
|
||||
QMainWindow QMenuBar::item:pressed {
|
||||
background-color: #1f2225;
|
||||
}
|
||||
|
||||
/******************************************************************************/
|
||||
/* Popup menus */
|
||||
/******************************************************************************/
|
||||
|
||||
QMainWindow QMenu,
|
||||
QMenuBar QMenu {
|
||||
color: #bdc3c7;
|
||||
background-color: #1a1d1f;
|
||||
border: 0px;
|
||||
padding: 7px 0px 7px 0px;
|
||||
}
|
||||
|
||||
QMainWindow QMenu::item,
|
||||
QMenuBar QMenu::item {
|
||||
background-color: transparent;
|
||||
padding: 5px 10px 5px 10px;
|
||||
margin: 0px 0px 0px 0px;
|
||||
}
|
||||
|
||||
QMainWindow QMenu::indicator,
|
||||
QMenuBar QMenu::indicator {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
background-color: #25282c;
|
||||
padding: 0px 5px 0px 5px;
|
||||
margin: 0px 5px 0px 5px;
|
||||
}
|
||||
|
||||
QMainWindow QMenu::indicator::unchecked,
|
||||
QMenuBar QMenu::indicator::unchecked {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
background-color: #25282c;
|
||||
border-radius: 2px;
|
||||
border-style: solid;
|
||||
border-width: 1px;
|
||||
border-color: #bdc3c7;
|
||||
margin: 0px 5px 0px 5px;
|
||||
}
|
||||
|
||||
QMainWindow QMenu::indicator::checked,
|
||||
QMenuBar QMenu::indicator::checked {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
background-color: #074051;
|
||||
border-radius: 2px;
|
||||
border-style: solid;
|
||||
border-width: 1px;
|
||||
border-color: #bdc3c7;
|
||||
margin: 0px 5px 0px 5px;
|
||||
}
|
||||
|
||||
QMainWindow QMenu::item:selected,
|
||||
QMenuBar QMenu::item::selected {
|
||||
background-color: #074051;
|
||||
color: #bdc3c7;
|
||||
}
|
||||
|
||||
QMainWindow QMenu::icon,
|
||||
QMenuBar QMenu::icon {
|
||||
border-radius: 2px;
|
||||
border-width: 0px;
|
||||
padding: 1px 3px 1px 3px;
|
||||
margin: 0px 3px 0px 3px;
|
||||
}
|
||||
|
||||
QMainWindow QMenu::icon::checked,
|
||||
QMenuBar QMenu::icon::checked {
|
||||
background-color: #373d42;
|
||||
}
|
||||
|
||||
/******************************************************************************/
|
||||
/* Editor */
|
||||
/******************************************************************************/
|
||||
|
||||
QMainWindow QPlainTextEdit {
|
||||
border: 0;
|
||||
margin: 0;
|
||||
padding: 5px;
|
||||
background-color: #151719;
|
||||
color: #bdc3c7;
|
||||
selection-color: #bdc3c7;
|
||||
selection-background-color: #074051;
|
||||
font-family: Noto Sans Mono;
|
||||
font-size: 15pt;
|
||||
}
|
||||
|
||||
QMainWindow QSplitter::handle {
|
||||
border: 0;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
background-color: #2c2f31;
|
||||
}
|
||||
|
||||
QMainWindow QSplitter::handle:vertical {
|
||||
height: 1px;
|
||||
}
|
||||
|
||||
QMainWindow QSplitter::handle:horizontal {
|
||||
width: 1px;
|
||||
}
|
||||
|
||||
/******************************************************************************/
|
||||
/* Sidebar and Activity Bar */
|
||||
/******************************************************************************/
|
||||
|
||||
/* Sidebar */
|
||||
QMainWindow ghostwriter--Sidebar,
|
||||
QSplitter ghostwriter--Sidebar {
|
||||
border: 0;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
background-color: #151719;
|
||||
}
|
||||
|
||||
ghostwriter--Sidebar QStackedWidget {
|
||||
border: 0;
|
||||
padding: 1;
|
||||
margin: 0;
|
||||
background-color: #151719;
|
||||
border-width: 0px;
|
||||
}
|
||||
|
||||
/* Activity bar tabs */
|
||||
ghostwriter--Sidebar QPushButton[checkable="true"] {
|
||||
icon-size: 22px;
|
||||
min-width: 40px;
|
||||
max-width: 40px;
|
||||
height: 40px;
|
||||
outline: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border: 0;
|
||||
background-color: transparent;
|
||||
color: #8b8f92;
|
||||
border-width: 0px;
|
||||
border-left-width: 3px;
|
||||
border-style: solid;
|
||||
border-color: transparent;
|
||||
border-radius: 0px;
|
||||
}
|
||||
|
||||
ghostwriter--Sidebar QPushButton:checked {
|
||||
border-color: #3daee9;
|
||||
color: #bdc3c7;
|
||||
background-color: #202325;
|
||||
}
|
||||
|
||||
ghostwriter--Sidebar QPushButton:hover {
|
||||
background-color: #202325;
|
||||
}
|
||||
|
||||
ghostwriter--Sidebar QPushButton:checked:hover {
|
||||
border-color: #3daee9;
|
||||
color: #bdc3c7;
|
||||
background-color: #202325;
|
||||
}
|
||||
|
||||
/* Activity bar buttons */
|
||||
ghostwriter--Sidebar QPushButton[checkable="false"] {
|
||||
icon-size: 22px;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
border: 0;
|
||||
border-radius: 5px;
|
||||
background-color: transparent;
|
||||
color: #8b8f92;
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
}
|
||||
|
||||
ghostwriter--Sidebar QPushButton[checkable="false"]:hover {
|
||||
color: #bdc3c7;
|
||||
background-color: #202325;
|
||||
}
|
||||
|
||||
ghostwriter--Sidebar QPushButton[checkable="false"]:pressed {
|
||||
color: #bdc3c7;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
/* Stacked widgets inside sidebar pane */
|
||||
|
||||
ghostwriter--Sidebar QListWidget {
|
||||
outline: none;
|
||||
border: 0;
|
||||
padding: 1;
|
||||
background-color: #151719;
|
||||
color: #bdc3c7;
|
||||
font-size: 11pt;
|
||||
font-weight: normal
|
||||
}
|
||||
|
||||
ghostwriter--Sidebar QListWidget::item {
|
||||
border: 0;
|
||||
padding: 1 0 1 0;
|
||||
margin: 0;
|
||||
background-color: #151719;
|
||||
color: #bdc3c7;
|
||||
font-weight: normal
|
||||
}
|
||||
|
||||
ghostwriter--Sidebar QListWidget::item:selected {
|
||||
border-radius: 0px;
|
||||
color: #bdc3c7;
|
||||
background-color: #074051;
|
||||
}
|
||||
|
||||
ghostwriter--Sidebar QLabel {
|
||||
border: 0;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
background-color: transparent;
|
||||
font-size: 11pt;
|
||||
color: #bdc3c7;
|
||||
}
|
||||
|
||||
/******************************************************************************/
|
||||
/* Status bar */
|
||||
/******************************************************************************/
|
||||
|
||||
QStatusBar {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border-top: 1px solid #2c2f31;
|
||||
border-left: 0;
|
||||
border-right: 0;
|
||||
border-bottom: 0;
|
||||
background: #151719;
|
||||
color: #8b8f92;
|
||||
}
|
||||
|
||||
QStatusBar QLabel {
|
||||
font-size: 11pt;
|
||||
margin: 0px;
|
||||
padding: 5px;
|
||||
border: 0;
|
||||
background: transparent;
|
||||
color: #8b8f92;
|
||||
}
|
||||
|
||||
QStatusBar QToolButton {
|
||||
padding: 5 5 5 5;
|
||||
margin: 0;
|
||||
border: 0;
|
||||
border-radius: 5px;
|
||||
color: #8b8f92;
|
||||
background-color: transparent;
|
||||
font-size: 16px;
|
||||
width: 32px;
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
QStatusBar QToolButton:hover,
|
||||
QStatusBar QToolButton:checked:hover {
|
||||
background-color: #373d42;
|
||||
}
|
||||
|
||||
QStatusBar QToolButton:pressed,
|
||||
QStatusBar QToolButton:checked:pressed {
|
||||
color: #73777a;
|
||||
background-color: #1f2225;
|
||||
}
|
||||
|
||||
QStatusBar QToolButton:flat,
|
||||
QStatusBar QToolButton:checked {
|
||||
background-color: #25282c;
|
||||
}
|
||||
|
||||
QStatusBar QComboBox {
|
||||
height: 22px;
|
||||
border: 0px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
color: #8b8f92;
|
||||
background-color: #151719;
|
||||
font-size: 11pt;
|
||||
}
|
||||
|
||||
QStatusBar QComboBox:hover {
|
||||
border-bottom: 2px solid #3daee9;
|
||||
}
|
||||
|
||||
QStatusBar QListView {
|
||||
padding: 7px 0px 7px 0px;
|
||||
margin: 0px;
|
||||
color: #bdc3c7;
|
||||
background-color: #151719;
|
||||
}
|
||||
|
||||
QStatusBar QListView::item {
|
||||
background-color: transparent;
|
||||
padding: 5px 10px 5px 10px;
|
||||
margin: 0px;
|
||||
}
|
||||
|
||||
QStatusBar QListView::item:selected {
|
||||
background-color: #074051;
|
||||
color: #bdc3c7;
|
||||
}
|
||||
|
||||
QStatusBar QComboBox::drop-down {
|
||||
border: 0;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
height: 20px;
|
||||
width: 20px;
|
||||
}
|
||||
|
||||
QStatusBar QComboBox::down-arrow {
|
||||
border: 0;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
height: 14px;
|
||||
width: 14px;
|
||||
image: url(/tmp/lIaSog.png)
|
||||
}
|
||||
|
||||
QStatusBar QComboBox::drop-down:hover {
|
||||
border-radius: 10px;
|
||||
background-color: #373d42;
|
||||
}
|
||||
|
||||
QStatusBar #leftStatusBarWidget,
|
||||
QStatusBar #midStatusBarWidget,
|
||||
QStatusBar #rightStatusBarWidget {
|
||||
border: 0;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
/******************************************************************************/
|
||||
/* Find and Replace Pane */
|
||||
/******************************************************************************/
|
||||
|
||||
ghostwriter--FindReplace QLabel {
|
||||
font-size: 11pt;
|
||||
margin: 0px;
|
||||
padding: 5px;
|
||||
border: 0;
|
||||
background: transparent;
|
||||
color: #8b8f92;
|
||||
}
|
||||
|
||||
ghostwriter--FindReplace QPushButton {
|
||||
font-size: 16px;
|
||||
padding: 5 5 5 5;
|
||||
margin: 0;
|
||||
border: 0;
|
||||
border-radius: 5px;
|
||||
color: #8b8f92;
|
||||
background-color: transparent;
|
||||
min-width: 16px;
|
||||
}
|
||||
|
||||
ghostwriter--FindReplace QPushButton:pressed {
|
||||
color: #9da2a6;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
ghostwriter--FindReplace QPushButton:hover {
|
||||
color: #ffffff;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
ghostwriter--FindReplace QPushButton:disabled {
|
||||
color: #adb3b6;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
ghostwriter--FindReplace QPushButton[checkable="true"] {
|
||||
color: #8b8f92;
|
||||
background-color: transparent;
|
||||
min-width: 32px;
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
ghostwriter--FindReplace QPushButton[checkable="true"]:disabled,
|
||||
ghostwriter--FindReplace QPushButton:flat:disabled {
|
||||
color: #adb3b6;
|
||||
background-color: #272a2e;
|
||||
}
|
||||
|
||||
ghostwriter--FindReplace QPushButton[checkable="true"]:hover,
|
||||
ghostwriter--FindReplace QPushButton:checked:hover {
|
||||
background-color: #d0d7db;
|
||||
background-color: #373d42;
|
||||
}
|
||||
|
||||
ghostwriter--FindReplace QPushButton[checkable="true"]:pressed,
|
||||
ghostwriter--FindReplace QPushButton:checked:pressed {
|
||||
color: #73777a;
|
||||
background-color: #1f2225;
|
||||
}
|
||||
|
||||
ghostwriter--FindReplace QPushButton:checked {
|
||||
background-color: #25282c;
|
||||
}
|
||||
|
||||
ghostwriter--FindReplace QPushButton:flat {
|
||||
color: #8b8f92;
|
||||
background-color: #25282c;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
ghostwriter--FindReplace QPushButton:flat:hover {
|
||||
color: #d0d7db;
|
||||
background-color: #373d42;
|
||||
}
|
||||
|
||||
ghostwriter--FindReplace QPushButton:flat:pressed {
|
||||
color: #73777a;
|
||||
background-color: #1f2225;
|
||||
}
|
||||
|
||||
ghostwriter--FindReplace QPushButton:flat:disabled {
|
||||
color: #adb3b6;
|
||||
background-color: #272a2e;
|
||||
}
|
||||
|
||||
ghostwriter--FindReplace QPushButton#matchCaseButton,
|
||||
ghostwriter--FindReplace QPushButton#regexButton {
|
||||
font-size: 16px;
|
||||
font-family: default;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
ghostwriter--FindReplace QPushButton#replaceButton,
|
||||
ghostwriter--FindReplace QPushButton#replaceAllButton {
|
||||
font-size: 11pt;
|
||||
font-family: default;
|
||||
}
|
||||
|
||||
ghostwriter--FindReplace QPushButton#findReplaceCloseButton {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
icon-size: 16px;
|
||||
}
|
||||
|
||||
ghostwriter--FindReplace QLineEdit {
|
||||
color: #bdc3c7;
|
||||
background-color: #202325;
|
||||
border: 0px;
|
||||
border-radius: 3px;
|
||||
selection-color: #bdc3c7;
|
||||
selection-background-color: #074051;
|
||||
}
|
||||
|
||||
ghostwriter--FindReplace QLineEdit:focus {
|
||||
border: 1px solid #1d2022;
|
||||
}
|
||||
155
package-lock.json
generated
155
package-lock.json
generated
@@ -4483,10 +4483,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/body-parser": {
|
||||
"version": "1.20.2",
|
||||
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz",
|
||||
"integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==",
|
||||
"license": "MIT",
|
||||
"version": "1.20.3",
|
||||
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz",
|
||||
"integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==",
|
||||
"dependencies": {
|
||||
"bytes": "3.1.2",
|
||||
"content-type": "~1.0.5",
|
||||
@@ -4496,7 +4495,7 @@
|
||||
"http-errors": "2.0.0",
|
||||
"iconv-lite": "0.4.24",
|
||||
"on-finished": "2.4.1",
|
||||
"qs": "6.11.0",
|
||||
"qs": "6.13.0",
|
||||
"raw-body": "2.5.2",
|
||||
"type-is": "~1.6.18",
|
||||
"unpipe": "1.0.0"
|
||||
@@ -4510,7 +4509,6 @@
|
||||
"version": "3.1.2",
|
||||
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
|
||||
"integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">= 0.8"
|
||||
}
|
||||
@@ -4519,7 +4517,6 @@
|
||||
"version": "2.6.9",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
|
||||
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"ms": "2.0.0"
|
||||
}
|
||||
@@ -4527,8 +4524,7 @@
|
||||
"node_modules/body-parser/node_modules/ms": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
|
||||
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
|
||||
"license": "MIT"
|
||||
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
|
||||
},
|
||||
"node_modules/bonjour-service": {
|
||||
"version": "1.2.1",
|
||||
@@ -5204,7 +5200,6 @@
|
||||
"version": "1.0.5",
|
||||
"resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
|
||||
"integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">= 0.6"
|
||||
}
|
||||
@@ -5216,10 +5211,9 @@
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/cookie": {
|
||||
"version": "0.6.0",
|
||||
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz",
|
||||
"integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==",
|
||||
"license": "MIT",
|
||||
"version": "0.7.1",
|
||||
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz",
|
||||
"integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==",
|
||||
"engines": {
|
||||
"node": ">= 0.6"
|
||||
}
|
||||
@@ -5868,7 +5862,6 @@
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
|
||||
"integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">= 0.8"
|
||||
}
|
||||
@@ -5886,7 +5879,6 @@
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
|
||||
"integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">= 0.8",
|
||||
"npm": "1.2.8000 || >= 1.4.16"
|
||||
@@ -6097,8 +6089,7 @@
|
||||
"node_modules/ee-first": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
|
||||
"integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==",
|
||||
"license": "MIT"
|
||||
"integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
|
||||
},
|
||||
"node_modules/electron-to-chromium": {
|
||||
"version": "1.4.812",
|
||||
@@ -6138,10 +6129,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/encodeurl": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
|
||||
"integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
|
||||
"license": "MIT",
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz",
|
||||
"integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==",
|
||||
"engines": {
|
||||
"node": ">= 0.8"
|
||||
}
|
||||
@@ -6416,7 +6406,6 @@
|
||||
"version": "1.8.1",
|
||||
"resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
|
||||
"integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">= 0.6"
|
||||
}
|
||||
@@ -6472,37 +6461,36 @@
|
||||
}
|
||||
},
|
||||
"node_modules/express": {
|
||||
"version": "4.19.2",
|
||||
"resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz",
|
||||
"integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==",
|
||||
"license": "MIT",
|
||||
"version": "4.21.1",
|
||||
"resolved": "https://registry.npmjs.org/express/-/express-4.21.1.tgz",
|
||||
"integrity": "sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==",
|
||||
"dependencies": {
|
||||
"accepts": "~1.3.8",
|
||||
"array-flatten": "1.1.1",
|
||||
"body-parser": "1.20.2",
|
||||
"body-parser": "1.20.3",
|
||||
"content-disposition": "0.5.4",
|
||||
"content-type": "~1.0.4",
|
||||
"cookie": "0.6.0",
|
||||
"cookie": "0.7.1",
|
||||
"cookie-signature": "1.0.6",
|
||||
"debug": "2.6.9",
|
||||
"depd": "2.0.0",
|
||||
"encodeurl": "~1.0.2",
|
||||
"encodeurl": "~2.0.0",
|
||||
"escape-html": "~1.0.3",
|
||||
"etag": "~1.8.1",
|
||||
"finalhandler": "1.2.0",
|
||||
"finalhandler": "1.3.1",
|
||||
"fresh": "0.5.2",
|
||||
"http-errors": "2.0.0",
|
||||
"merge-descriptors": "1.0.1",
|
||||
"merge-descriptors": "1.0.3",
|
||||
"methods": "~1.1.2",
|
||||
"on-finished": "2.4.1",
|
||||
"parseurl": "~1.3.3",
|
||||
"path-to-regexp": "0.1.7",
|
||||
"path-to-regexp": "0.1.10",
|
||||
"proxy-addr": "~2.0.7",
|
||||
"qs": "6.11.0",
|
||||
"qs": "6.13.0",
|
||||
"range-parser": "~1.2.1",
|
||||
"safe-buffer": "5.2.1",
|
||||
"send": "0.18.0",
|
||||
"serve-static": "1.15.0",
|
||||
"send": "0.19.0",
|
||||
"serve-static": "1.16.2",
|
||||
"setprototypeof": "1.2.0",
|
||||
"statuses": "2.0.1",
|
||||
"type-is": "~1.6.18",
|
||||
@@ -6541,10 +6529,9 @@
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/express/node_modules/path-to-regexp": {
|
||||
"version": "0.1.7",
|
||||
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
|
||||
"integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==",
|
||||
"license": "MIT"
|
||||
"version": "0.1.10",
|
||||
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz",
|
||||
"integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w=="
|
||||
},
|
||||
"node_modules/express/node_modules/range-parser": {
|
||||
"version": "1.2.1",
|
||||
@@ -6747,13 +6734,12 @@
|
||||
}
|
||||
},
|
||||
"node_modules/finalhandler": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz",
|
||||
"integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==",
|
||||
"license": "MIT",
|
||||
"version": "1.3.1",
|
||||
"resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz",
|
||||
"integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==",
|
||||
"dependencies": {
|
||||
"debug": "2.6.9",
|
||||
"encodeurl": "~1.0.2",
|
||||
"encodeurl": "~2.0.0",
|
||||
"escape-html": "~1.0.3",
|
||||
"on-finished": "2.4.1",
|
||||
"parseurl": "~1.3.3",
|
||||
@@ -6768,7 +6754,6 @@
|
||||
"version": "2.6.9",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
|
||||
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"ms": "2.0.0"
|
||||
}
|
||||
@@ -6776,8 +6761,7 @@
|
||||
"node_modules/finalhandler/node_modules/ms": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
|
||||
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
|
||||
"license": "MIT"
|
||||
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
|
||||
},
|
||||
"node_modules/find-cache-dir": {
|
||||
"version": "4.0.0",
|
||||
@@ -7011,7 +6995,6 @@
|
||||
"version": "0.5.2",
|
||||
"resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
|
||||
"integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">= 0.6"
|
||||
}
|
||||
@@ -7857,7 +7840,6 @@
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
|
||||
"integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"depd": "2.0.0",
|
||||
"inherits": "2.0.4",
|
||||
@@ -7951,7 +7933,6 @@
|
||||
"version": "0.4.24",
|
||||
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
|
||||
"integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"safer-buffer": ">= 2.1.2 < 3"
|
||||
},
|
||||
@@ -9198,7 +9179,6 @@
|
||||
"version": "0.3.0",
|
||||
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
|
||||
"integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">= 0.6"
|
||||
}
|
||||
@@ -9216,10 +9196,12 @@
|
||||
}
|
||||
},
|
||||
"node_modules/merge-descriptors": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
|
||||
"integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==",
|
||||
"license": "MIT"
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz",
|
||||
"integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==",
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/merge-stream": {
|
||||
"version": "2.0.0",
|
||||
@@ -11026,7 +11008,6 @@
|
||||
"version": "1.6.0",
|
||||
"resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
|
||||
"integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
|
||||
"license": "MIT",
|
||||
"bin": {
|
||||
"mime": "cli.js"
|
||||
},
|
||||
@@ -11297,7 +11278,6 @@
|
||||
"version": "1.13.2",
|
||||
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz",
|
||||
"integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
},
|
||||
@@ -11342,7 +11322,6 @@
|
||||
"version": "2.4.1",
|
||||
"resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
|
||||
"integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"ee-first": "1.1.1"
|
||||
},
|
||||
@@ -12532,12 +12511,11 @@
|
||||
}
|
||||
},
|
||||
"node_modules/qs": {
|
||||
"version": "6.11.0",
|
||||
"resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz",
|
||||
"integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
|
||||
"license": "BSD-3-Clause",
|
||||
"version": "6.13.0",
|
||||
"resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz",
|
||||
"integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==",
|
||||
"dependencies": {
|
||||
"side-channel": "^1.0.4"
|
||||
"side-channel": "^1.0.6"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=0.6"
|
||||
@@ -12609,7 +12587,6 @@
|
||||
"version": "2.5.2",
|
||||
"resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz",
|
||||
"integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"bytes": "3.1.2",
|
||||
"http-errors": "2.0.0",
|
||||
@@ -12624,7 +12601,6 @@
|
||||
"version": "3.1.2",
|
||||
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
|
||||
"integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">= 0.8"
|
||||
}
|
||||
@@ -13516,8 +13492,7 @@
|
||||
"node_modules/safer-buffer": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
|
||||
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
|
||||
"license": "MIT"
|
||||
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
|
||||
},
|
||||
"node_modules/sax": {
|
||||
"version": "1.4.1",
|
||||
@@ -13620,10 +13595,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/send": {
|
||||
"version": "0.18.0",
|
||||
"resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz",
|
||||
"integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
|
||||
"license": "MIT",
|
||||
"version": "0.19.0",
|
||||
"resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz",
|
||||
"integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==",
|
||||
"dependencies": {
|
||||
"debug": "2.6.9",
|
||||
"depd": "2.0.0",
|
||||
@@ -13647,7 +13621,6 @@
|
||||
"version": "2.6.9",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
|
||||
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"ms": "2.0.0"
|
||||
}
|
||||
@@ -13655,20 +13628,25 @@
|
||||
"node_modules/send/node_modules/debug/node_modules/ms": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
|
||||
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
|
||||
"license": "MIT"
|
||||
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
|
||||
},
|
||||
"node_modules/send/node_modules/encodeurl": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
|
||||
"integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
|
||||
"engines": {
|
||||
"node": ">= 0.8"
|
||||
}
|
||||
},
|
||||
"node_modules/send/node_modules/ms": {
|
||||
"version": "2.1.3",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
|
||||
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
|
||||
"license": "MIT"
|
||||
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
|
||||
},
|
||||
"node_modules/send/node_modules/range-parser": {
|
||||
"version": "1.2.1",
|
||||
"resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
|
||||
"integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">= 0.6"
|
||||
}
|
||||
@@ -13783,15 +13761,14 @@
|
||||
}
|
||||
},
|
||||
"node_modules/serve-static": {
|
||||
"version": "1.15.0",
|
||||
"resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz",
|
||||
"integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==",
|
||||
"license": "MIT",
|
||||
"version": "1.16.2",
|
||||
"resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz",
|
||||
"integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==",
|
||||
"dependencies": {
|
||||
"encodeurl": "~1.0.2",
|
||||
"encodeurl": "~2.0.0",
|
||||
"escape-html": "~1.0.3",
|
||||
"parseurl": "~1.3.3",
|
||||
"send": "0.18.0"
|
||||
"send": "0.19.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.8.0"
|
||||
@@ -13817,8 +13794,7 @@
|
||||
"node_modules/setprototypeof": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
|
||||
"integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==",
|
||||
"license": "ISC"
|
||||
"integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
|
||||
},
|
||||
"node_modules/shallow-clone": {
|
||||
"version": "3.0.1",
|
||||
@@ -13889,7 +13865,6 @@
|
||||
"version": "1.0.6",
|
||||
"resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz",
|
||||
"integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"call-bind": "^1.0.7",
|
||||
"es-errors": "^1.3.0",
|
||||
@@ -14104,7 +14079,6 @@
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
|
||||
"integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">= 0.8"
|
||||
}
|
||||
@@ -14521,7 +14495,6 @@
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
|
||||
"integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=0.6"
|
||||
}
|
||||
@@ -14577,7 +14550,6 @@
|
||||
"version": "1.6.18",
|
||||
"resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
|
||||
"integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"media-typer": "0.3.0",
|
||||
"mime-types": "~2.1.24"
|
||||
@@ -14590,7 +14562,6 @@
|
||||
"version": "1.52.0",
|
||||
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
|
||||
"integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">= 0.6"
|
||||
}
|
||||
@@ -14599,7 +14570,6 @@
|
||||
"version": "2.1.35",
|
||||
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
|
||||
"integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"mime-db": "1.52.0"
|
||||
},
|
||||
@@ -14827,7 +14797,6 @@
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
|
||||
"integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">= 0.8"
|
||||
}
|
||||
|
||||
107
src/pages/recruitment.html
Normal file
107
src/pages/recruitment.html
Normal file
@@ -0,0 +1,107 @@
|
||||
<html>
|
||||
<head>
|
||||
<style>
|
||||
form {
|
||||
/* 居中表单 */
|
||||
margin: 0 auto;
|
||||
width: 400px;
|
||||
/* 显示表单的轮廓 */
|
||||
padding: 1em;
|
||||
border: 1px solid #ccc;
|
||||
border-radius: 1em;
|
||||
}
|
||||
|
||||
ul {
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
form li + li {
|
||||
margin-top: 1em;
|
||||
}
|
||||
|
||||
label {
|
||||
/* 确保所有 label 大小相同并正确对齐 */
|
||||
display: inline-block;
|
||||
width: 90px;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
input,
|
||||
textarea {
|
||||
/* 确保所有文本输入框字体相同
|
||||
textarea 默认是等宽字体 */
|
||||
font: 1em sans-serif;
|
||||
|
||||
/* 使所有文本输入框大小相同 */
|
||||
width: 300px;
|
||||
box-sizing: border-box;
|
||||
|
||||
/* 调整文本输入框的边框样式 */
|
||||
border: 1px solid #999;
|
||||
}
|
||||
|
||||
input:focus,
|
||||
textarea:focus {
|
||||
/* 给激活的元素一点高亮效果 */
|
||||
border-color: #aa00ff;
|
||||
}
|
||||
|
||||
textarea {
|
||||
/* 使多行文本输入框和它们的 label 正确对齐 */
|
||||
vertical-align: top;
|
||||
|
||||
/* 给文本留下足够的空间 */
|
||||
height: 5em;
|
||||
}
|
||||
|
||||
.button {
|
||||
/* 把按钮放到和文本输入框一样的位置 */
|
||||
padding-left: 90px; /* 和 label 的大小一样 */
|
||||
}
|
||||
|
||||
button {
|
||||
/* 这个外边距的大小与 label 和文本输入框之间的间距差不多 */
|
||||
margin-left: 0.5em;
|
||||
}
|
||||
</style>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<h1 align=center>中山学院网络维护科招新系统</h1>
|
||||
<form action="/api/recruitment_request" method="post">
|
||||
<ul>
|
||||
<p align=center><b><em>在这里填写你的招新报名信息:</em></b></p>
|
||||
<li>
|
||||
<label for="name">姓名:</label>
|
||||
<input type="text" id="name" name="user_name" required maxlength=10 />
|
||||
</li>
|
||||
<li>
|
||||
<label for="id">学号:</label>
|
||||
<input type="number" id="id" name="id" required maxlength=15 />
|
||||
</li>
|
||||
<li>
|
||||
<label for="tel">电话:</label>
|
||||
<input type="tel" id="tel" name="tel" required maxlength=11 minlength=11 />
|
||||
</li>
|
||||
<li>
|
||||
<label for="mail">邮箱:</label>
|
||||
<input type="email" id="mail" name="user_email" required/>
|
||||
</li>
|
||||
<li class="button">
|
||||
<button type="submit">提交</button>
|
||||
</li>
|
||||
<p align=center><a href=https://zsxyww.com>之前的提交信息有误?点这里修改</a></p>
|
||||
</ul>
|
||||
</form>
|
||||
<message note="这里是后端返回的信息容器">
|
||||
<p align=center textcolor=#aa00ff></p>
|
||||
</message>
|
||||
<footer >
|
||||
<p id=copyright align=center>2024@ZSC Network Support</p>
|
||||
<p id=contact align=center>招新QQ群:</p>
|
||||
</footer>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,3 +1,11 @@
|
||||
# 备忘录
|
||||
**这里是网站开发备忘录,有什么想法,事情,都可以记在这里,善用Markdown功能**
|
||||
- 在正式成员中招募一些人来持续维护wiki
|
||||
|
||||
## 开发组业务
|
||||
报修系统
|
||||
招新系统
|
||||
网站
|
||||
开发组网站(wiki和文档)
|
||||
服务器运维
|
||||
|
||||
|
||||
Reference in New Issue
Block a user