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](/img/blog/comic.png) +> "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