diff --git a/blog/Web的历史3️⃣-Web应用.md b/blog/Web的历史3️⃣-Web应用.md
index 7e07df4..7ea42d4 100644
--- a/blog/Web的历史3️⃣-Web应用.md
+++ b/blog/Web的历史3️⃣-Web应用.md
@@ -224,7 +224,10 @@ SPA因为需要初始化大量JavaScript程序,对于网络连接或者设备
---
-JavaScript并不是天生开发复杂应用的语言,所以SPA框架提供了那么多的机制,来把这个为简单脚本设计的语言变成一个足够开发可靠Web应用的语言,尽管一层一层的嵌套拖慢了性能,但是Web的性能瓶颈通常不在于计算而是I/O,再加上互联网所谓"敏捷开发"的风气,导致了前端基本几天就要推出新技术,眼花缭乱层出不穷,但是这些技术底层都是差不多的。重要的是不要被各种宣传迷惑了认知,而要认清它们的本质。
+JavaScript并不是天生开发复杂应用的语言,所以SPA框架提供了那么多的机制,来把这个为简单脚本设计的语言变成一个足够开发可靠Web应用的语言,尽管一层一层的嵌套拖慢了性能,但是Web的性能瓶颈通常不在于计算而是I/O,加上业界大环境的各种因素,导致了前端基本几天就要推出新技术,眼花缭乱层出不穷,但是这些技术底层都是差不多的。重要的是不要被各种宣传迷惑了认知,而要认清它们的本质。
+
+
+> "JavaScript Fatigue",图源[Auth0博客](https://auth0.com/blog/how-to-manage-javascript-fatigue/)
## JavaScript全栈
### Node.js
diff --git a/blog/_2025-8-11-给纯新手的快速入门指南v2.md b/blog/_2025-8-11-给纯新手的快速入门指南v2.md
new file mode 100644
index 0000000..11389c6
--- /dev/null
+++ b/blog/_2025-8-11-给纯新手的快速入门指南v2.md
@@ -0,0 +1 @@
+# 给纯新手的网维快速入门指南-v2
diff --git a/docs/wiki/.gitignore b/docs/wiki/.gitignore
deleted file mode 100644
index 1c0c60c..0000000
--- a/docs/wiki/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-./gitignore
diff --git a/docs/wiki/01-首页.md b/docs/wiki/01-首页.md
index 9c51099..61ab1a2 100644
--- a/docs/wiki/01-首页.md
+++ b/docs/wiki/01-首页.md
@@ -3,11 +3,9 @@ import DocsCardList from '@site/src/components/wiki_menu/index';
# 网络维护科wiki
-你好呀!
+你好!欢迎访问中山学院网络维护科wiki,这里力求记录网络维护工作的累积经验📝
-这里是中山学院网络维护科wiki,记录了我们网络维护工作的知识📝
-
-wiki的内容都是历代网维的成员整理总结的,欢迎你[贡献自己的内容!](https://github.com/ZSCNetSupportDept/website/tree/master/docs/wiki)
+wiki的内容都由历代网维的成员整理总结,在GitHub上开源。欢迎你[贡献自己的内容!](https://github.com/ZSCNetSupportDept/website/tree/master/docs/wiki)
:::tip 提示
@@ -16,10 +14,13 @@ wiki的内容都是历代网维的成员整理总结的,欢迎你[贡献自己
:::
## 目录
-☝🏻🤓*不知道从哪里看起?看看我们的[快速入门指南](/blog/2024/09/27/给纯新手的网维快速入门指南)!*
+☝🏻🤓*不知道从哪里看起?可以先看[快速入门指南](/blog/2024/09/27/给纯新手的网维快速入门指南)!*
-## 旧wiki
-旧版wiki也将保持长期开放😛点击[这里](https://wiki.zsxyww.com) 来访问;上面还有没有迁移的许多旧文章,我们目前在逐步迁移它们!
+## 关于
+1. 本站是新版wiki,在界面上对旧版wiki做了一次升级。但是在内容上新的wiki并不是完全基于旧版wiki而来,所以有的内容只在旧版有,这里没有。虽然开发组正在逐步迁移,不过为了方便大家查看,旧版wiki也将保持长期开放,点击[这里](https://wiki.zsxyww.com) 来访问。
+
+2. wiki的内容属于网维内部的秘密信息,请不要随便外传,谢谢!
+
diff --git a/docs/wiki/03-技能/02-网络相关/01-寻线器-介绍.md b/docs/wiki/03-技能/02-网络相关/01-寻线器-介绍.md
index 89db802..97cfd70 100644
--- a/docs/wiki/03-技能/02-网络相关/01-寻线器-介绍.md
+++ b/docs/wiki/03-技能/02-网络相关/01-寻线器-介绍.md
@@ -1,5 +1,5 @@
# 寻线器-介绍
-介绍寻线器的原理和用处,这个工具是你成为网络工程师的第一步!
+介绍寻线器的原理和用处,它是你成为网络工程师的基础
## 介绍
任何网络连接的最底层基础都是物理设备,如果网线,配线架或交换机这些物理设备本身出现了问题,我们网维也是要负责维修的。
@@ -8,10 +8,10 @@
想象一下,在楼层机房密密麻麻的机柜和桥架中,面对着上百根外观一模一样的网线,如果没有标签指示端口对应的床位的话,我们该如何快速找到一根网线的两端?或者,当怀疑网络连接不稳定是网线本身的问题时,我们又该如何快速判断线缆内部的通断情况?
-这时,一个功能强大但操作简单的工具——寻线仪,就成了我们解决问题的关键。本文将作为一篇入门指南,帮助大家快速了解寻线仪的工作原理,并熟练掌握其在网络维修中的核心用法。
+这时,一个功能强大但操作简单的工具——寻线仪,就成了我们解决问题的关键。我们会帮助大家快速了解寻线仪的工作原理,并熟练掌握其在网络维修中的核心用法。
## 认识寻线器
### 原理
-寻线仪,也常被称为查线器或线路追踪器,它就像是网线的“听诊器”。一套标准的寻线仪通常包含两个核心部件:
+寻线仪,也常被称为查线器或线路追踪器,一套标准的寻线仪通常包含两个核心部件:
- **发射器** (Emitter/Transmitter): 它产生一个特定频率的信号,并将其发射到目标线缆中。
diff --git a/docs/wiki/gitignore/.gitignore b/docs/wiki/gitignore/.gitignore
deleted file mode 100644
index e69de29..0000000
diff --git a/docs/wiki/gitignore/widgets.qss b/docs/wiki/gitignore/widgets.qss
deleted file mode 100644
index 6c98b64..0000000
--- a/docs/wiki/gitignore/widgets.qss
+++ /dev/null
@@ -1,604 +0,0 @@
-/*
- * SPDX-FileCopyrightText: 2022-2024 Megan Conkle
- *
- * 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;
-}
diff --git a/static/img/blog/comic.png b/static/img/blog/comic.png
new file mode 100644
index 0000000..0a74843
Binary files /dev/null and b/static/img/blog/comic.png differ