1
0
mirror of https://github.com/142vip/408CSFamily.git synced 2026-02-03 02:23:38 +08:00

feat: 移除eslint相关配置,引入@antfu/eslint-config,统一约束风格

This commit is contained in:
142vip.cn
2024-09-25 15:16:40 +08:00
parent e792ed40b2
commit 9303820456
134 changed files with 10220 additions and 1804 deletions

View File

@@ -1,6 +0,0 @@
node_modules
.github
.idea
.dockerignore
.gitignore

View File

@@ -1,169 +0,0 @@
module.exports = {
env: {
browser: true,
es2021: true
},
extends: [
'plugin:vue/essential',
'standard'
],
parserOptions: {
ecmaVersion: 12,
parser: '@typescript-eslint/parser',
sourceType: 'module'
},
plugins: [
'vue',
'@typescript-eslint'
],
rules: {
'no-unused-vars': 0,
'arrow-spacing': [2, {
before: true,
after: true
}], // 箭头函数中的箭头前后加空格
'block-spacing': [2, 'always'], // 花括号内前后加空格
'brace-style': [2, '1tbs', {
allowSingleLine: true
}], // 允许单行方法
'comma-dangle': [2, 'never'], // 在对象、数组文字中不使用尾随逗号
'comma-spacing': [2, {
before: false,
after: true
}], // 逗号后空格
'comma-style': [2, 'last'], // 对象、数组元素同一行后面加逗号
'constructor-super': 2, // 派生类的构造函数必须调用super()
curly: [2, 'multi-line'], // 方法体多行不允许省略花括号
'dot-location': [2, 'property'], // 点与属性在同一行
'eol-last': 2, // 在非空文件的末尾强制使用至少一个换行符
'generator-star-spacing': [2, {
before: true,
after: true
}], // 生成器函数前后加空格
'handle-callback-err': [2, '^(err|error)$'], // err的错误回调必须处理
'key-spacing': [2, {
beforeColon: false,
afterColon: true
}], // 对象字面亮键和冒号之间存在空格
'keyword-spacing': [2, {
before: true,
after: true
}],
'new-cap': [2, {
newIsCap: true,
capIsNew: false
}], // 构造函数首字母大写
'no-class-assign': 2, // 禁止修改类申明的变量
'no-cond-assign': 2, // 禁止条件表达式中出现赋值操作符
'no-const-assign': 2, // 禁止修改 const 声明的变量
'no-delete-var': 2, // 禁止删除变量
'no-dupe-args': 2, // 禁止 function 定义中出现重名参数
'no-dupe-class-members': 2, // 禁止类成员中出现重复的名称
'no-dupe-keys': 2, // 禁止对象字面量中出现重复的 key
'no-duplicate-case': 2, // 禁止出现重复的 case 标签
'no-empty-character-class': 2, // 禁止在正则表达式中使用空字符集
'no-empty-pattern': 2, // 禁止使用空解构模式
'no-eval': 2, // 禁用 eval()
'no-ex-assign': 2, // 禁止对 catch 子句的参数重新赋值
'no-extend-native': 2, // 禁止扩展原生类型
'no-extra-bind': 2, // 禁止不必要的函数绑定
'no-extra-boolean-cast': 2, // 禁止不必要的布尔转换
'no-extra-parens': [2, 'functions'], // 禁止不必要的括号
'no-fallthrough': 2, // 禁止 case 语句落空
'no-func-assign': 2, // 禁止对 function 声明重新赋值
'no-implied-eval': 2, // 禁止使用类似 eval() 的方法
'no-inner-declarations': [2, 'functions'], // 禁止在嵌套的块中出现function 声明
'no-invalid-regexp': 2, // 禁止 RegExp 构造函数中存在无效的正则表达式字符串
'no-irregular-whitespace': 2, // 禁止不规则的空白
'no-iterator': 2, // 禁用 __iterator__ 属性
'no-label-var': 2, // 不允许标签与变量同名
'no-labels': [2, {
allowLoop: false,
allowSwitch: false
}], // 禁用标签语句
'no-lone-blocks': 2, // 禁用不必要的嵌套块
'no-multi-spaces': 2, // 禁止使用多个空格
'no-multi-str': 2, // 禁止使用多行字符串
'no-multiple-empty-lines': [2, {
max: 2
}], // 禁止出现多行空行
'no-global-assign': 2, // 禁止对原生对象或只读的全局对象进行赋值
'no-unsafe-negation': 2, // 禁止对关系运算符的左操作数使用否定操作符
'no-new-object': 2, // 禁用 Object 的构造函数
'no-new-require': 2, // 禁止调用 require 时使用 new 操作符
'no-new-wrappers': 2, // 禁止对 StringNumber 和 Boolean 使用 new 操作符
'no-obj-calls': 2, // 禁止把全局对象作为函数调用
'no-octal': 2, // 禁用八进制字面量
'no-octal-escape': 2, // 禁止在字符串中使用八进制转义序列
'no-path-concat': 2, // 禁止对 __dirname 和 __filename 进行字符串连接
'no-proto': 2, // 禁用 __proto__ 属性
'no-redeclare': 2, // 禁止多次声明同一变量
'no-regex-spaces': 2, // 禁止正则表达式字面量中出现多个空格
'no-return-assign': [2, 'except-parens'], // 禁止在 return 语句中使用赋值语句
'no-self-assign': 2, // 禁止自我赋值,禁止自身比较
'no-sequences': 2, // 禁用逗号操作符
'no-shadow-restricted-names': 2, // 禁止将标识符定义为受限的名字
'func-call-spacing': 2, // 要求或禁止在函数标识符和其调用之间有空格
'no-sparse-arrays': 2, // 禁用稀疏数组
'no-this-before-super': 2, // 禁止在构造函数中,在调用 super() 之前使用 this 或 super
'no-trailing-spaces': 2, // 禁用行尾空格
'no-undef-init': 2, // 禁止将变量初始化为 undefined
'no-unexpected-multiline': 2, // 禁止出现令人困惑的多行表达式
'no-unmodified-loop-condition': 2, // 禁用一成不变的循环条件
'no-unneeded-ternary': [2, {
defaultAssignment: false
}], // 禁止可以在有更简单的可替代的表达式时使用三元操作符
'no-unreachable': 2, // 禁止在 return、throw、continue 和 break 语句之后出现不可达代码
'no-unsafe-finally': 2, // 禁止在 finally 语句块中出现控制流语句
'no-useless-call': 2, // 禁止不必要的 .call() 和 .apply()
'no-useless-computed-key': 2, // 禁止在对象中使用不必要计算属性
'no-useless-constructor': 2, // 禁用不必要的构造函数
'no-useless-escape': 0, // 禁用不必要的转义字符
'no-whitespace-before-property': 2, // 禁止属性前有空白
'no-with': 2, // 禁用 with 语句
'one-var': [2, {
initialized: 'never'
}], // 强制函数中的变量要么一起声明要么分开声明
'operator-linebreak': [2, 'after', {
overrides: {
'?': 'before',
':': 'before'
}
}], // 强制操作符使用一致的换行符
'padded-blocks': [2, 'never'], // 要求或禁止块内填充
quotes: [2, 'single', {
avoidEscape: true,
allowTemplateLiterals: true
}], // 强制使用一致的反勾号、双引号或单引号
'semi-spacing': [2, {
before: false,
after: true
}], // 强制在块之前使用一致的空格
'space-before-blocks': [2, 'always'], // 强制在块之前使用一致的空格
'space-before-function-paren': [2, 'never'], // 强制在 function的左括号之前使用一致的空格
'space-in-parens': [2, 'never'], // 强制在圆括号内使用一致的空格
'space-infix-ops': 2, // 要求操作符周围有空格
'space-unary-ops': [2, {
words: true,
nonwords: false
}], // 强制在一元操作符前后使用一致的空格
'template-curly-spacing': [2, 'never'], // 禁止模板字符串中的嵌入表达式周围空格的使用
'use-isnan': 2, // 要求使用 isNaN() 检查 NaN
'valid-typeof': 2, // 强制 typeof 表达式与有效的字符串进行比较
'wrap-iife': [2, 'any'], // 要求 IIFE(立即执行函数) 使用括号括起来
'prefer-const': 2, // 要求使用 const 声明那些声明后不再被修改的变量
'object-curly-spacing': [2, 'always', {
objectsInObjects: false
}], // 强制在大括号中使用一致的空格
'array-bracket-spacing': [2, 'never'], // 强制数组方括号中使用一致的空格
/* 非强制 */
camelcase: [0, {
properties: 'always'
}], // 对属性名称强制使用驼峰样式
'no-array-constructor': 2, // 禁止使用 Array 构造函数创建数组
'no-caller': 2, // 禁止使用 arguments.caller 和 arguments.callee
'no-console': 'off', // 禁用console
'no-control-regex': 0// 禁止在正则表达式中使用控制字符
}
}

View File

@@ -1,8 +1,8 @@
## CD交付流水线
## - 部署到Github Pages
## - 部署到Vercel托管平台
## - 发布新的Github Release
## 参考资料https://v2.vuepress.vuejs.org/zh/guide/deployment.html#github-pages
# # CD交付流水线
# # - 部署到Github Pages
# # - 部署到Vercel托管平台
# # - 发布新的Github Release
# # 参考资料https://v2.vuepress.vuejs.org/zh/guide/deployment.html#github-pages
name: CD
on:
@@ -11,7 +11,7 @@ on:
- next
workflow_dispatch:
## vercel 环境变量
# # vercel 环境变量
env:
VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }}
VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }}
@@ -23,9 +23,9 @@ permissions:
id-token: write
jobs:
## 部署到Github-Pages
# # 部署到Github-Pages
deploy-github:
name: "部署到Github-Pages"
name: 部署到Github-Pages
runs-on: ubuntu-latest
environment:
name: github-pages
@@ -72,9 +72,9 @@ jobs:
id: deployment
uses: actions/deploy-pages@v4
## 部署到vercel平台
# # 部署到vercel平台
deploy-vercel:
name: "部署到Vercel平台"
name: 部署到Vercel平台
runs-on: ubuntu-latest
if: github.repository == '142vip/408CSFamily'
@@ -86,23 +86,23 @@ jobs:
# “最近更新时间” 等 git 日志相关信息,需要拉取全部提交记录
fetch-depth: 0
## 注意: 这里的操作时间vercel平台配置的命令拉取下来执行
# # 注意: 这里的操作时间vercel平台配置的命令拉取下来执行
- name: Pull Vercel Environment Information
run: npm i -g vercel && vercel pull --yes --environment=production --token=${{ secrets.VERCEL_TOKEN }}
## 执行vercel平台配置的命令
# # 执行vercel平台配置的命令
- name: Build Project Artifacts
run: vercel build --prod --token=${{ secrets.VERCEL_TOKEN }}
## dist文件同步到vercel平台
# # dist文件同步到vercel平台
- name: Deploy Project Artifacts to Vercel
run: vercel deploy --prebuilt --prod --token=${{ secrets.VERCEL_TOKEN }}
## 版本发布
# # 版本发布
release:
name: "Github版本发布"
name: Github版本发布
runs-on: ubuntu-latest
## 主库master、next且执行release更新时执行
# # 主库master、next且执行release更新时执行
if: github.repository == '142vip/408CSFamily' && startsWith(github.event.head_commit.message, 'chore(release):')
steps:
@@ -113,7 +113,7 @@ jobs:
# “最近更新时间” 等 git 日志相关信息,需要拉取全部提交记录
fetch-depth: 0
### 打成压缩包
# ## 打成压缩包
- name: Create Zip Package
run: |
zip -r 408CSFamily.zip . \
@@ -137,12 +137,12 @@ jobs:
release_name: v${{ steps.releaseVersion.outputs.version }}
body: |
Release ${{ steps.releaseVersion.outputs.version }}
### Features
### Bug Fixes
## 更新资源
# # 更新资源
- name: Upload Resource Assets
uses: actions/upload-release-asset@latest
env:
@@ -153,7 +153,6 @@ jobs:
asset_name: 408CSFamily.zip
asset_content_type: application/zip
# Deploy-ESC:
# name: "部署到ESC服务器"
# needs: install-init

View File

@@ -1,7 +1,7 @@
## 代码CI快速集成流水线lint、fix、build
# # 代码CI快速集成流水线lint、fix、build
name: CI
## 触发条件
# # 触发条件
on:
# 提PR到next分支触发CI
pull_request:
@@ -15,7 +15,7 @@ on:
workflow_dispatch:
schedule:
- cron: "0 0 1 * *"
- cron: '0 0 1 * *'
# 环境变量
env:
@@ -23,12 +23,11 @@ env:
REGISTRY: registry.cn-hangzhou.aliyuncs.com
UserName: 142vip
jobs:
Base-Build:
name: "基础编译构建"
name: 基础编译构建
runs-on: ubuntu-latest
## 主库且拉取PR时触发
# # 主库且拉取PR时触发
if: github.repository == '142vip/408CSFamily' && github.event_name == 'pull_request'
permissions:
actions: read
@@ -48,22 +47,22 @@ jobs:
with:
version: 9.6.0
## 安装Node环境
# # 安装Node环境
- name: Install Node.js
uses: actions/setup-node@v3
with:
node-version: 18.18.0
## 缓存
cache: 'pnpm'
# # 缓存
cache: pnpm
## 下载依赖,并执行初始化脚本:钩子函数、思维导图构建
# # 下载依赖,并执行初始化脚本:钩子函数、思维导图构建
- name: Install Dependencies
run: |
./scripts/ci
- name: Code LintFix
run: |
./scripts/lint
pnpm lint
- name: Build Site
run: |
@@ -74,9 +73,9 @@ jobs:
pnpm build:proxy
Build-Docker-Image:
name: "构建Docker镜像"
name: 构建Docker镜像
runs-on: ubuntu-latest
## 主库且tag更新时执行
# # 主库且tag更新时执行
if: github.repository == '142vip/408CSFamily' && startsWith(github.event.head_commit.message, 'chore(release):')
permissions:
actions: read
@@ -109,14 +108,12 @@ jobs:
run: |
./scripts/ci
## 构建支持domain
# # 构建支持domain
- name: Build To Dist
run: |
./scripts/bundle build
pnpm build
## 快速构建并推送
# # 快速构建并推送
- name: Push Docker Image
run: |
./scripts/bundle image_faster
./scripts/bundle

View File

@@ -6,7 +6,7 @@ on:
branches:
- next
schedule:
- cron: "30 7 * * 3"
- cron: '30 7 * * 3'
jobs:
analyze:
@@ -33,4 +33,4 @@ jobs:
uses: github/codeql-action/autobuild@v2
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2
uses: github/codeql-action/analyze@v2

11
.gitignore vendored
View File

@@ -14,9 +14,8 @@ typings/
.next
.nuxt
dist
.cache/
docs/.vuepress/.cache/
docs/.vuepress/.temp/
docs/.vuepress/dist/
/.husky/
/.vercel/
docs/.vuepress/.cache
docs/.vuepress/.temp
docs/.vuepress/dist
.husky
.vercel

View File

@@ -3,8 +3,8 @@
* 参考: https://www.npmjs.com/package/lint-staged#configuration
*/
module.exports = {
"*.{js,ts,md}": [
"./scripts/lint --fix",
"./scripts/mark-map"
]
}
'*.{js,ts,md}': [
'./scripts/lint --fix',
// "./scripts/mark-map"
],
}

View File

@@ -3,73 +3,73 @@
* 规则参考https://github.com/updownpress/markdown-lint/tree/master/rules
*/
module.exports = {
"default": true,
"MD001": false,
"MD003": {
"style": "atx"
default: true,
MD001: false,
MD003: {
style: 'atx',
},
"MD004": {
"style": "dash"
MD004: {
style: 'dash',
},
"MD013": false,
"MD024": {
"allow_different_nesting": true
MD013: false,
MD024: {
allow_different_nesting: true,
},
"MD025": {
"front_matter_title": ""
MD025: {
front_matter_title: '',
},
"MD033": {
"allowed_elements": [
"br",
"template",
"script",
"style",
"ArtPlayer",
"AudioPlayer",
"AutoCatalog",
"Badge",
"BiliBili",
"Catalog",
"CodePen",
"DemoProject",
"FontIcon",
"HighlightPanel",
"ProjectLink",
"PDF",
"Replit",
"Share",
"SiteInfo",
"StackBlitz",
"XiGua",
"VidStack",
"VideoPlayer",
"YouTube",
"AppearanceSwitch",
"HopeIcon",
"FlowChartPlayground",
"IconDisplay",
"KatexPlayground",
"PrintButton",
"ThemeColorPicker",
"ToggleFullScreenButton",
"ToggleRTLButton",
"div",
"a",
"p",
"img",
"table",
"strong",
"sub"
]
MD033: {
allowed_elements: [
'br',
'template',
'script',
'style',
'ArtPlayer',
'AudioPlayer',
'AutoCatalog',
'Badge',
'BiliBili',
'Catalog',
'CodePen',
'DemoProject',
'FontIcon',
'HighlightPanel',
'ProjectLink',
'PDF',
'Replit',
'Share',
'SiteInfo',
'StackBlitz',
'XiGua',
'VidStack',
'VideoPlayer',
'YouTube',
'AppearanceSwitch',
'HopeIcon',
'FlowChartPlayground',
'IconDisplay',
'KatexPlayground',
'PrintButton',
'ThemeColorPicker',
'ToggleFullScreenButton',
'ToggleRTLButton',
'div',
'a',
'p',
'img',
'table',
'strong',
'sub',
],
},
"MD035": {
"style": "---"
MD035: {
style: '---',
},
"MD036": false,
"MD040": false,
"MD045": false,
"MD041": false,
"MD042": false,
"MD046": false,
"MD049": false
MD036: false,
MD040: false,
MD045: false,
MD041: false,
MD042: false,
MD046: false,
MD049: false,
}

View File

@@ -7,22 +7,22 @@ module.exports = {
header: '# Release history\n\nAll notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.\n\n<!-- #region recent-alpha -->\n',
releaseCommitMessageFormat: 'chore(release): publish v{{currentTag}}',
types: [
{type: 'feat', section: 'Features'},
{type: 'feature', section: 'Features'},
{type: 'fix', section: 'Bug Fixes'},
{type: 'perf', section: 'Performance Improvements'},
{type: 'revert', section: 'Reverts'},
{type: 'docs', section: 'Documentation', hidden: true},
{type: 'style', section: 'Styles', hidden: true},
{type: 'chore', section: 'Miscellaneous Chores', hidden: true},
{type: 'refactor', section: 'Code Refactoring', hidden: true},
{type: 'test', section: 'Tests', hidden: true},
{type: 'build', section: 'Build System', hidden: true},
{type: 'ci', section: 'Continuous Integration', hidden: true}
{ type: 'feat', section: 'Features' },
{ type: 'feature', section: 'Features' },
{ type: 'fix', section: 'Bug Fixes' },
{ type: 'perf', section: 'Performance Improvements' },
{ type: 'revert', section: 'Reverts' },
{ type: 'docs', section: 'Documentation', hidden: true },
{ type: 'style', section: 'Styles', hidden: true },
{ type: 'chore', section: 'Miscellaneous Chores', hidden: true },
{ type: 'refactor', section: 'Code Refactoring', hidden: true },
{ type: 'test', section: 'Tests', hidden: true },
{ type: 'build', section: 'Build System', hidden: true },
{ type: 'ci', section: 'Continuous Integration', hidden: true },
],
skip: {
bump: true,
commit: true,
tag: true
}
tag: true,
},
}

View File

@@ -48,6 +48,7 @@
</div>
<!-- #region quick-start -->
## 写最前面
`408CSFamily` 我的理解是408计算机专业课”全家桶“而408相信考研er都知道计算机考研专业课代码在最新的高校计算机研究生招考中已经越来越多的学校改考408。可见408所涉及到的专业课举足轻重的地位不论是在考研或者找工作我相信408的专业基础必定是难以避免的所以话不多说、形势复杂唯一能做的就是不停的学习、巩固基础知识加油
@@ -76,10 +77,10 @@
### 电子书PDF
- 数据结构2019: <https://pan.baidu.com/s/18x8AIfOkZxz197eY7HLRMg> 密码: euja
- 计算机组成原理2019: <https://pan.baidu.com/s/1DiOBJMt9ZnZ6GK4CRCETJg> 密码: wic5
- 计算机网络2019: <https://pan.baidu.com/s/1mmIZDugwY5YyytzIJoGQFw> 密码: dpkb
- 操作系统2019: <https://pan.baidu.com/s/1gzuUqq09xqi8wQ8JJRF69g> 密码: o9b3
- 数据结构2019: <https://pan.baidu.com/s/18x8AIfOkZxz197eY7HLRMg> 密码: euja
- 计算机组成原理2019: <https://pan.baidu.com/s/1DiOBJMt9ZnZ6GK4CRCETJg> 密码: wic5
- 计算机网络2019: <https://pan.baidu.com/s/1mmIZDugwY5YyytzIJoGQFw> 密码: dpkb
- 操作系统2019: <https://pan.baidu.com/s/1gzuUqq09xqi8wQ8JJRF69g> 密码: o9b3
### 学习视频
@@ -113,9 +114,9 @@
- [线性表的链式表示之双链表](https://mp.weixin.qq.com/s/2R4ZKTSALaR5kVe04UY_Xg)
- [线性表的链式表示之循环链表](https://mp.weixin.qq.com/s/BbDFhNl018UQAAc7g2PIMg)
- [线性表的链式表示之静态链表](https://mp.weixin.qq.com/s/JYabNgsHQnEcuJmwOwEB6g)
- [顺序表和链表的比较](https://mp.weixin.qq.com/s?__biz=MzU3MTUxOTIwMw==&amp;mid=2247485537&amp;idx=1&amp;sn=7e40e933d96b3b68187ecdd9b022e165&amp;chksm=fcdfb1edcba838fbe23eb3b463a55b1ee160cd7dea53c54200838ba85f3230c2b9accdf5a05b&token=1697862929&lang=zh_CN#wechat_redirect)
- [存储结构的选取](https://mp.weixin.qq.com/s?__biz=MzU3MTUxOTIwMw==&amp;mid=2247485549&amp;idx=1&amp;sn=4b7091696c40874a7dcfc682ca18db61&amp;chksm=fcdfb1e1cba838f7e611341fe3b6f3c45fc6efcdce18e79be244a349c87a8e6abcbbd33c250c&token=1697862929&lang=zh_CN#rd)
- [零碎知识补充](https://mp.weixin.qq.com/s?__biz=MzU3MTUxOTIwMw==&amp;mid=2247485549&amp;idx=2&amp;sn=5282cd006b6c33e4bfe992298602e053&amp;chksm=fcdfb1e1cba838f743a335bad530cf415eef57a417b807257d8ed6983047c2d57d5552b34cb0&token=1697862929&lang=zh_CN#rd)
- [顺序表和链表的比较](https://mp.weixin.qq.com/s?__biz=MzU3MTUxOTIwMw==&mid=2247485537&idx=1&sn=7e40e933d96b3b68187ecdd9b022e165&chksm=fcdfb1edcba838fbe23eb3b463a55b1ee160cd7dea53c54200838ba85f3230c2b9accdf5a05b&=1697862929&=zh_CN#wechat_redirect)
- [存储结构的选取](https://mp.weixin.qq.com/s?__biz=MzU3MTUxOTIwMw==&mid=2247485549&idx=1&sn=4b7091696c40874a7dcfc682ca18db61&chksm=fcdfb1e1cba838f7e611341fe3b6f3c45fc6efcdce18e79be244a349c87a8e6abcbbd33c250c&=1697862929&=zh_CN#rd)
- [零碎知识补充](https://mp.weixin.qq.com/s?__biz=MzU3MTUxOTIwMw==&mid=2247485549&idx=2&sn=5282cd006b6c33e4bfe992298602e053&chksm=fcdfb1e1cba838f743a335bad530cf415eef57a417b807257d8ed6983047c2d57d5552b34cb0&=1697862929&=zh_CN#rd)
### 栈
@@ -173,7 +174,7 @@
> 参考资料:
>
> - 《计算机操作系统》 第四版 汤小丹、梁红兵、汤子瀛著
> - 《计算机操作系统》 第四版 汤小丹、梁红兵、汤子瀛著
> - 《操作系统-王道考研》 2019 王道论坛
### 系统概述
@@ -214,7 +215,7 @@
> 参考资料:
>
> - 《计算机组成原理》 第二版 唐朔飞
> - 《计算机组成原理》 第二版 唐朔飞
> - 《计算机组成原理-王道考研》 2019 王道论坛
### 计算机引论
@@ -272,7 +273,7 @@
> 参考资料:
>
> - 《计算机网络-第七版》 谢希仁著.
> - 《计算机网络-第七版》 谢希仁著.
> - 《计算机网络-王道考研》 2019 王道论坛.
### 体系机构
@@ -323,24 +324,25 @@
<!-- #endregion quick-start -->
[//]: # (宣传内容)
[//]: # '宣传内容'
<!-- #region we-media -->
## 赞赏列表
以下排名不分先后, **赞赏过的一定要微信跟我说呀!!!!!!**
以下排名不分先后, **赞赏过的一定要微信跟我说呀!!!!!!**
<div>
<a href="https://github.com/ChiefPing" target="_blank" style="margin: 5px">
<img
src="https://avatars2.githubusercontent.com/u/34122068?s=460&v=4"
src="https://avatars2.githubusercontent.com/u/34122068?s=460&v=4"
alt="ChiefPing"
style="border-radius:5px;" width="50px"
/>
</a>
<a href="https://github.com/xiaoliuxin" target="_blank" style="margin: 5px">
<img
src="https://avatars2.githubusercontent.com/u/60652527?s=460&v=4"
src="https://avatars2.githubusercontent.com/u/60652527?s=460&v=4"
alt="xiaoliuxin"
style="border-radius:5px;" width="50px"
/>
@@ -440,4 +442,4 @@
交流/加群/互看朋友圈、**聊天/提问/建议/提需求** 可以在公众号直接**私信**,有时间即会回复,偶尔的延迟和疏漏还请小伙伴们谅解,蟹蟹。
<!-- #endregion we-media -->
<!-- #endregion we-media -->

View File

@@ -20,7 +20,8 @@ function binaryInsertSort(arr, len) {
if (arr[mid] <= temp) {
// 右侧
lowIndex = mid + 1
} else {
}
else {
// 左侧
highIndex = mid - 1
}
@@ -35,10 +36,8 @@ function binaryInsertSort(arr, len) {
return arr
}
// 测试用例
const dealArr = [5, 2, 7, 3, 18, 8, 12, 1]
console.log('插入排序前:', dealArr)
const sortResult = binaryInsertSort(dealArr, 7)
console.log('插入排序后:', sortResult)

View File

@@ -19,7 +19,6 @@ function QuickSort(arr, low, high) {
return arr
}
/**
*
* 寻找数组中的基准pivot使得左侧元素全部小于等于pivot右侧元素全部大于等于pivot
@@ -47,7 +46,6 @@ function Partition(arr, low, high) {
return low
}
const initArr = [2, 18, 6, 25, 19, 4, 8, 3, 7]
console.log(`快速排序处理前:${initArr}`)
const quickSortResult = QuickSort(initArr, 0, 8)

View File

@@ -34,7 +34,6 @@ function specialStraightInsertSort(arr, len, increment, groupIndex) {
for (let eleStartIndex = groupIndex + increment; eleStartIndex < len; eleStartIndex += increment) {
// 此时eleStartIndex为直接插入排序的比较元素
// 直接插入排序中的哨兵元素【重要】
const temp = arr[eleStartIndex]
let j
@@ -49,13 +48,11 @@ function specialStraightInsertSort(arr, len, increment, groupIndex) {
return arr
}
const dealArr = [5, 8, 2, 16, 3, 9, 1]
console.log('插入排序前:', dealArr)
const sortResult = shellSort(dealArr, 7)
console.log('插入排序后:', sortResult)
/**
* 简化的希尔排序
* - 返回已排序号的数组,从小到大
@@ -77,7 +74,6 @@ function shellSortBetter(arr) {
return arr
}
console.log('简化shellSortBetter希尔排序前', dealArr)
const sortResultBetter = shellSortBetter(dealArr)
console.log('简化shellSortBetter希尔排序后', sortResultBetter)

View File

@@ -30,5 +30,3 @@ console.log('插入排序前:', dealArr)
const sortResult = straightInsertSort(dealArr, 7)
console.log('插入排序后:', sortResult)

View File

@@ -20,7 +20,8 @@ function binaryInsertSort(arr, len) {
if (arr[mid] <= temp) {
// 右侧
lowIndex = mid + 1
} else {
}
else {
// 左侧
highIndex = mid - 1
}
@@ -35,10 +36,8 @@ function binaryInsertSort(arr, len) {
return arr
}
// 测试用例
const dealArr = [5, 2, 7, 3, 18, 8, 12, 1]
console.log('插入排序前:', dealArr)
const sortResult = binaryInsertSort(dealArr, 7)
console.log('插入排序后:', sortResult)

View File

@@ -19,7 +19,6 @@ function QuickSort(arr, low, high) {
return arr
}
/**
*
* 寻找数组中的基准pivot使得左侧元素全部小于等于pivot右侧元素全部大于等于pivot
@@ -47,7 +46,6 @@ function Partition(arr, low, high) {
return low
}
const initArr = [2, 18, 6, 25, 19, 4, 8, 3, 7]
console.log(`快速排序处理前:${initArr}`)
const quickSortResult = QuickSort(initArr, 0, 8)

View File

@@ -34,7 +34,6 @@ function specialStraightInsertSort(arr, len, increment, groupIndex) {
for (let eleStartIndex = groupIndex + increment; eleStartIndex < len; eleStartIndex += increment) {
// 此时eleStartIndex为直接插入排序的比较元素
// 直接插入排序中的哨兵元素【重要】
const temp = arr[eleStartIndex]
let j
@@ -49,13 +48,11 @@ function specialStraightInsertSort(arr, len, increment, groupIndex) {
return arr
}
const dealArr = [5, 8, 2, 16, 3, 9, 1]
console.log('插入排序前:', dealArr)
const sortResult = shellSort(dealArr, 7)
console.log('插入排序后:', sortResult)
/**
* 简化的希尔排序
* - 返回已排序号的数组,从小到大
@@ -77,7 +74,6 @@ function shellSortBetter(arr) {
return arr
}
console.log('简化shellSortBetter希尔排序前', dealArr)
const sortResultBetter = shellSortBetter(dealArr)
console.log('简化shellSortBetter希尔排序后', sortResultBetter)

View File

@@ -30,5 +30,3 @@ console.log('插入排序前:', dealArr)
const sortResult = straightInsertSort(dealArr, 7)
console.log('插入排序后:', sortResult)

View File

@@ -20,7 +20,8 @@ function binaryInsertSort(arr, len) {
if (arr[mid] <= temp) {
// 右侧
lowIndex = mid + 1
} else {
}
else {
// 左侧
highIndex = mid - 1
}
@@ -35,10 +36,8 @@ function binaryInsertSort(arr, len) {
return arr
}
// 测试用例
const dealArr = [5, 2, 7, 3, 18, 8, 12, 1]
console.log('插入排序前:', dealArr)
const sortResult = binaryInsertSort(dealArr, 7)
console.log('插入排序后:', sortResult)

View File

@@ -3,7 +3,7 @@
* 给定一个数组,按照从小到大或从大到小排序,打印排序前后结果对比
* 编程语言TypeScript
*/
function BubbleSort(arr:Array<number>):number[] {
function BubbleSort(arr: Array<number>): number[] {
// 获取数组长度
const len = arr.length
@@ -33,10 +33,14 @@ function BubbleSort(arr:Array<number>):number[] {
return arr
}
interface SwitchValue {
a: number
b: number
}
/**
* 将两个变量数值交换
*/
function switchValue(params:{ a: number, b: number }):{a:number, b:number} {
function _switchValue(params: SwitchValue) {
const { a: newB, b: newA } = params
return { a: newA, b: newB }
}

View File

@@ -19,7 +19,6 @@ function QuickSort(arr, low, high) {
return arr
}
/**
*
* 寻找数组中的基准pivot使得左侧元素全部小于等于pivot右侧元素全部大于等于pivot
@@ -47,7 +46,6 @@ function Partition(arr, low, high) {
return low
}
const initArr = [2, 18, 6, 25, 19, 4, 8, 3, 7]
console.log(`快速排序处理前:${initArr}`)
const quickSortResult = QuickSort(initArr, 0, 8)

View File

@@ -34,7 +34,6 @@ function specialStraightInsertSort(arr, len, increment, groupIndex) {
for (let eleStartIndex = groupIndex + increment; eleStartIndex < len; eleStartIndex += increment) {
// 此时eleStartIndex为直接插入排序的比较元素
// 直接插入排序中的哨兵元素【重要】
const temp = arr[eleStartIndex]
let j
@@ -49,13 +48,11 @@ function specialStraightInsertSort(arr, len, increment, groupIndex) {
return arr
}
const dealArr = [5, 8, 2, 16, 3, 9, 1]
console.log('插入排序前:', dealArr)
const sortResult = shellSort(dealArr, 7)
console.log('插入排序后:', sortResult)
/**
* 简化的希尔排序
* - 返回已排序号的数组,从小到大
@@ -77,7 +74,6 @@ function shellSortBetter(arr) {
return arr
}
console.log('简化shellSortBetter希尔排序前', dealArr)
const sortResultBetter = shellSortBetter(dealArr)
console.log('简化shellSortBetter希尔排序后', sortResultBetter)

View File

@@ -30,5 +30,3 @@ console.log('插入排序前:', dealArr)
const sortResult = straightInsertSort(dealArr, 7)
console.log('插入排序后:', sortResult)

View File

@@ -3,5 +3,5 @@
* 参考https://commitlint.js.org
*/
module.exports = {
extends: ['@commitlint/config-conventional']
extends: ['@commitlint/config-conventional'],
}

View File

@@ -1,6 +1,6 @@
###
### 408CSFamily服务ip范围 172.30.0.100
###
# ##
# ## 408CSFamily服务ip范围 172.30.0.100
# ##
version: '2'
services:
408CSFamily:
@@ -9,14 +9,14 @@ services:
restart: on-failure
hostname: 408CSFamily
ports:
- "7000:80"
- '7000:80'
networks:
net:
ipv4_address: 172.30.0.100
## 创建桥接网络
# # 创建桥接网络
networks:
## 桥接网络名称配合文件前缀最后为dev_test_env_net 参考https://www.jianshu.com/p/d70c61d45364
# # 桥接网络名称配合文件前缀最后为dev_test_env_net 参考https://www.jianshu.com/p/d70c61d45364
net:
driver: bridge
# external: true
@@ -24,5 +24,5 @@ networks:
driver: default
config:
- subnet: 172.30.0.0/24
## 网关
gateway: 172.30.0.1
# # 网关
gateway: 172.30.0.1

View File

@@ -5,60 +5,38 @@
注意
- 使用ClientOnly内置组件只在客户端加载避免依赖构建出错
-->
<template>
<div class="x-mind-container">
<!-- xmind思维导图管理器 -->
<div id="x-mind-manager-container">
</div>
<div class="btn-container">
<button id="openLocalBtn" @click="handleOpenLocalBtnClick">打开本地</button>
<button id="zoomScaleBtn" @click="handleZoomScaleRevertBtnClick">还原缩放</button>
<div class="select">
<select v-model="xmindIndex">
<option v-for="(xmind, index) in xmindFileList" :key="index" :value="index">
{{ xmind }}
</option>
</select>
</div>
</div>
</div>
</template>
<script>
import mapData from "../public/mark-map/index.json"
import {XMindEmbedViewer} from "xmind-embed-viewer";
import { XMindEmbedViewer } from 'xmind-embed-viewer'
import mapData from '../public/mark-map/index.json'
console.log(111, XMindEmbedViewer)
export default {
data() {
return {
viewer: {},
xmindIndex: 0,
xmindFileList: [],
xmindFile: mapData.length > 0 ? mapData[0].xMindPath : '../mark-map/操作系统发展历程.xmind',
}
},
/**
* 监听下来列表变更
*/
watch: {
xmindIndex: async function (newIndex, oldVal) {
const {xMindPath} = mapData[newIndex]
async xmindIndex(newIndex, _oldVal) {
const { xMindPath } = mapData[newIndex]
// 打开指定
const xmindResponse = await fetch(xMindPath)
const data = await xmindResponse.arrayBuffer()
this.viewer.setZoomScale(100)
this.viewer.load(data)
}
},
data() {
return {
viewer: {},
xmindIndex: 0,
xmindFileList: [],
xmindFile: mapData.length > 0 ? mapData[0].xMindPath : '../mark-map/操作系统发展历程.xmind'
}
},
},
created() {
this.xmindFileList = mapData.map(({name}) => name)
this.xmindFileList = mapData.map(({ name }) => name)
},
mounted() {
(async () => {
@@ -71,10 +49,10 @@ export default {
region: 'cn',
styles: {
width: '100%',
minHeight: "600px",
minHeight: '600px',
height: 'auto',
maxHeight: '1200px'
}
maxHeight: '1200px',
},
})
})()
},
@@ -87,7 +65,7 @@ export default {
const fileSelector = document.createElement('input')
fileSelector.style.display = 'none'
document.body.appendChild(fileSelector)
await new Promise(resolve => {
await new Promise((resolve) => {
fileSelector.setAttribute('type', 'file')
fileSelector.setAttribute('accept', '.xmind')
fileSelector.addEventListener('change', () => {
@@ -113,13 +91,34 @@ export default {
async handleZoomScaleRevertBtnClick() {
this.viewer.setFitMap()
},
}
},
}
</script>
<template>
<div class="x-mind-container">
<!-- xmind思维导图管理器 -->
<div id="x-mind-manager-container" />
<div class="btn-container">
<button id="openLocalBtn" @click="handleOpenLocalBtnClick">
打开本地
</button>
<button id="zoomScaleBtn" @click="handleZoomScaleRevertBtnClick">
还原缩放
</button>
<div class="select">
<select v-model="xmindIndex">
<option v-for="(xmind, index) in xmindFileList" :key="index" :value="index">
{{ xmind }}
</option>
</select>
</div>
</div>
</div>
</template>
<style scoped>
.btn-container {
margin: 50px 0;
text-align: center;
@@ -146,7 +145,7 @@ export default {
}
.select:before {
content: "";
content: '';
position: absolute;
width: 0;
height: 0;
@@ -206,7 +205,4 @@ button:hover {
background-image: -ms-linear-gradient(top, #2079b0, #eb94d0);
text-decoration: none;
}
</style>

View File

@@ -1,42 +1,56 @@
import pluginsConfig from "./config/plugins.config";
import themeConfig from "./config/theme.config";
import {defineUserConfig} from "vuepress";
import {fileURLToPath} from 'node:url'
import {path} from "@vuepress/utils";
import {name} from "../../package.json"
// @ts-ignore
import { fileURLToPath } from 'node:url'
import process from 'node:process'
import { defineUserConfig } from 'vuepress'
import { path } from '@vuepress/utils'
import { name } from '../../package.json'
import themeConfig from './config/theme.config'
import pluginsConfig from './config/plugins.config'
const __dirname = path.dirname(fileURLToPath(import.meta.url))
/**
* 用于区分base路径是否nginx代理
*/
function getSiteBase(): '/' | `/${string}/` {
// 用于区分base路径是否nginx代理
const PROXY_DOMAIN = process.env.PROXY_DOMAIN || false
return PROXY_DOMAIN ? `/${name}/` : '/'
}
/**
* 用户自定义配置
* 注意:
* - 环境变量中的PROXY_DOMAIN字段用于区分是否nginx代理
*/
export default defineUserConfig({
title: "计算机408全家桶",
description: "磨刀不误砍柴工,读完硕士再打工",
title: '计算机408全家桶',
description: '磨刀不误砍柴工,读完硕士再打工',
// 用于区分base路径是否nginx代理
base: process.env.PROXY_DOMAIN ? `/${name}/` : `/`,
base: getSiteBase(),
port: 4200,
head: [
// vercel统计 相关配置
[
'script', {type: 'text/javascript', src: '/_vercel/insights/script.js'}
'script',
{ type: 'text/javascript', src: '/_vercel/insights/script.js' },
],
[
"link", {rel: "icon", href: "/408_favicon.ico"}
'link',
{ rel: 'icon', href: '/408_favicon.ico' },
],
// 百度统计
[
'script', {}, `
'script',
{},
`
var _hmt = _hmt || [];
(function() {
var hm = document.createElement("script");
hm.src = "https://hm.baidu.com/hm.js?3515cc46ae60747b778140f0e5e22dfe";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();`
]
})();`,
],
],
// 配置永久链接参考https://v2.vuepress.vuejs.org/zh/reference/frontmatter.html#permalink
// permalink: "/:year/:month/:day/:slug",
@@ -59,8 +73,8 @@ export default defineUserConfig({
},
// md doc formatter headerDepth
headers: {
level: [2, 3, 4]
}
level: [2, 3, 4],
},
},
// 主题配置
...themeConfig,
@@ -68,4 +82,3 @@ export default defineUserConfig({
...pluginsConfig,
shouldPrefetch: false,
})

View File

@@ -1,4 +1,4 @@
import {name, version, authorInfo} from "../../../package.json"
import { authorInfo, name, version } from '../../../package.json'
export const FOOTER_HTML_INFO = `
<div>
@@ -28,59 +28,59 @@ export const copyright = `
export const AUTHOR_INFO = {
name: authorInfo.name,
email: authorInfo.email,
url: authorInfo.homePages
url: authorInfo.homePages,
}
export const NotFoundMsgList = [
"徒留我孤单在湖面成双。",
"就让回忆永远停在那里。",
"天青色等烟雨,而我在等你。",
"我用无悔,刻永世爱你的碑。",
"终有一天,我有属于我的天。",
"你想说的想给的,我全都知道。",
"我顶着大太阳,只想为你撑伞。",
"海鸟跟鱼相爱,只是一场意外。",
"那已风化千年的誓言,一切又重演。",
"下降的速度太快,来不及踏上未来。",
"我原谅不了我,就请你当作我已不在。",
"琴声何在,生死难猜,用一声去等待。",
"我戒不掉她的微笑,洋溢幸福的味道。",
"缺氧过后的爱情,粗心的眼泪事多余。",
"过往的欢乐是否褪色,想问你怎么舍得。",
"繁华如三千东流水,我只取一瓢爱了解。",
"唱反调是我的本性,出其不意是我的个性。",
"没有你在我有多难熬,没有你烦我有烦恼。",
"梦在远方,化成一缕香,随风飘散你的模样。",
"最美的不是下雨天,是曾与你躲过雨的屋檐。",
"初恋的颜色我牵着你的手经过种麦芽糖的山坡。",
"而我已经分不清,你是友情,还是错过的爱情。",
"也许时间是一种解药,也是我现在所服下的毒药。",
"能不能给我一首歌的时间,紧紧的把那拥抱变成永远。",
"如果邪恶是华丽残酷的乐章,它的终场我会亲手写上。",
"我知道共同的默契很重要,那骄傲才不会寂寞得很无聊。",
"想回到过去,试着让故事继续,至少不再让你离我而去。",
"如果我遇见你是一个悲剧,我想我这辈子注定一个人演戏。",
"请不要把分手当作你的请求,我知道坚持要走是你受伤的藉口。",
"我想就这样牵着你的手不放开,爱能不能够永远单纯没有悲哀。",
"翻着我们的照片,想念若隐若现,去年的冬天,我们笑得很甜。",
"风筝在阴天搁浅,想念还在等待救援,我拉着线复习你给的温柔。",
"整个画面是你,想你想的睡不着,我的快乐是你,想你想的都会笑。",
"酸酸的空气,嗅出我们的距离,一幕锥心的结局,像呼吸般无法停息。",
"我害怕你心碎没人帮你擦眼泪,别离开身边,拥有你我的世界才能完美。",
"有谁能比我知道,你的温柔象羽毛,秘密躺在我怀抱,只有你能听得到。",
"看着那白色的蜻蜓在空中忘了前进,还能不能重新编织,脑海中起毛球的记忆。",
"为你弹奏萧邦的夜曲,纪念我死去的爱情,而我为你隐姓埋名,在月光下弹琴。",
"我会发着呆然后忘记你,接着紧紧闭上眼,想着那一天会有人代替,让我不再想念你",
"乘着风游荡在蓝天边,一片云掉落在我面前,捏成你的形状,随风跟着我,一口一口吃掉忧愁。",
"听妈妈的话别让她受伤,想快快长大才能保护她,美丽的白发幸福总发芽,天使的魔法温暖中慈祥。",
"断了的弦再怎么连,我的感觉你已听不见,你的转变像断掉的弦,再怎么接音都不对,你的改变我能够分辨。",
"思绪不断阻挡着回忆播放,盲目的追寻仍然空空荡荡,灰蒙蒙的夜晚睡意又不知躲到哪去,一转身孤单已躺在身旁。",
"从前从前有个人爱你很久,但偏偏风渐渐把距离吹得好远,好不容易又能再多爱一天,但故事的最后你好像还是说了拜拜。",
"谁在用琵琶弹奏一曲东风破,枫叶讲故事染色结局我看透,篱笆外的古道我牵着你走过,荒烟蔓草的年头就连分手都很沉默。",
"我一路向北,离开有你的季节,你说你好累,已无法再爱上谁。风在山路吹,过往的画面全都是不对,细数惭愧,我伤你几回。",
"雨下整夜我的爱溢出就像雨水,窗台蝴蝶像诗里纷飞的美丽章节。我接着写把永远爱你写进诗的结尾,你是我唯一想要的了解。",
"缓缓飘落的枫叶像思念,为何挽回要赶在冬天来之前,爱你穿越时间,两行来自秋末的眼泪,让爱渗透了地面我要的只是你在我身边。",
"我陪你走到最后,能不能别想太多,会不会手牵着手,晚一点再到尽头,你说不该再相见只为了瞬间,谢谢你让我听见因为我在等待永远。",
"天灰灰会不会,让我忘了你是谁,累不累睡不睡,单影无人相依偎,夜越黑梦违背,有谁肯安慰,我的世界将被摧毁也许颓废也是另一种美。",
"我知道你我都没有错,只是忘了怎么退后,信誓旦旦给的承诺,全被时间扑了空。我知道我们都没有错,只是放手会比较好过,最美的爱情回忆里待续。",
'徒留我孤单在湖面成双。',
'就让回忆永远停在那里。',
'天青色等烟雨,而我在等你。',
'我用无悔,刻永世爱你的碑。',
'终有一天,我有属于我的天。',
'你想说的想给的,我全都知道。',
'我顶着大太阳,只想为你撑伞。',
'海鸟跟鱼相爱,只是一场意外。',
'那已风化千年的誓言,一切又重演。',
'下降的速度太快,来不及踏上未来。',
'我原谅不了我,就请你当作我已不在。',
'琴声何在,生死难猜,用一声去等待。',
'我戒不掉她的微笑,洋溢幸福的味道。',
'缺氧过后的爱情,粗心的眼泪事多余。',
'过往的欢乐是否褪色,想问你怎么舍得。',
'繁华如三千东流水,我只取一瓢爱了解。',
'唱反调是我的本性,出其不意是我的个性。',
'没有你在我有多难熬,没有你烦我有烦恼。',
'梦在远方,化成一缕香,随风飘散你的模样。',
'最美的不是下雨天,是曾与你躲过雨的屋檐。',
'初恋的颜色我牵着你的手经过种麦芽糖的山坡。',
'而我已经分不清,你是友情,还是错过的爱情。',
'也许时间是一种解药,也是我现在所服下的毒药。',
'能不能给我一首歌的时间,紧紧的把那拥抱变成永远。',
'如果邪恶是华丽残酷的乐章,它的终场我会亲手写上。',
'我知道共同的默契很重要,那骄傲才不会寂寞得很无聊。',
'想回到过去,试着让故事继续,至少不再让你离我而去。',
'如果我遇见你是一个悲剧,我想我这辈子注定一个人演戏。',
'请不要把分手当作你的请求,我知道坚持要走是你受伤的藉口。',
'我想就这样牵着你的手不放开,爱能不能够永远单纯没有悲哀。',
'翻着我们的照片,想念若隐若现,去年的冬天,我们笑得很甜。',
'风筝在阴天搁浅,想念还在等待救援,我拉着线复习你给的温柔。',
'整个画面是你,想你想的睡不着,我的快乐是你,想你想的都会笑。',
'酸酸的空气,嗅出我们的距离,一幕锥心的结局,像呼吸般无法停息。',
'我害怕你心碎没人帮你擦眼泪,别离开身边,拥有你我的世界才能完美。',
'有谁能比我知道,你的温柔象羽毛,秘密躺在我怀抱,只有你能听得到。',
'看着那白色的蜻蜓在空中忘了前进,还能不能重新编织,脑海中起毛球的记忆。',
'为你弹奏萧邦的夜曲,纪念我死去的爱情,而我为你隐姓埋名,在月光下弹琴。',
'我会发着呆然后忘记你,接着紧紧闭上眼,想着那一天会有人代替,让我不再想念你',
'乘着风游荡在蓝天边,一片云掉落在我面前,捏成你的形状,随风跟着我,一口一口吃掉忧愁。',
'听妈妈的话别让她受伤,想快快长大才能保护她,美丽的白发幸福总发芽,天使的魔法温暖中慈祥。',
'断了的弦再怎么连,我的感觉你已听不见,你的转变像断掉的弦,再怎么接音都不对,你的改变我能够分辨。',
'思绪不断阻挡着回忆播放,盲目的追寻仍然空空荡荡,灰蒙蒙的夜晚睡意又不知躲到哪去,一转身孤单已躺在身旁。',
'从前从前有个人爱你很久,但偏偏风渐渐把距离吹得好远,好不容易又能再多爱一天,但故事的最后你好像还是说了拜拜。',
'谁在用琵琶弹奏一曲东风破,枫叶讲故事染色结局我看透,篱笆外的古道我牵着你走过,荒烟蔓草的年头就连分手都很沉默。',
'我一路向北,离开有你的季节,你说你好累,已无法再爱上谁。风在山路吹,过往的画面全都是不对,细数惭愧,我伤你几回。',
'雨下整夜我的爱溢出就像雨水,窗台蝴蝶像诗里纷飞的美丽章节。我接着写把永远爱你写进诗的结尾,你是我唯一想要的了解。',
'缓缓飘落的枫叶像思念,为何挽回要赶在冬天来之前,爱你穿越时间,两行来自秋末的眼泪,让爱渗透了地面我要的只是你在我身边。',
'我陪你走到最后,能不能别想太多,会不会手牵着手,晚一点再到尽头,你说不该再相见只为了瞬间,谢谢你让我听见因为我在等待永远。',
'天灰灰会不会,让我忘了你是谁,累不累睡不睡,单影无人相依偎,夜越黑梦违背,有谁肯安慰,我的世界将被摧毁也许颓废也是另一种美。',
'我知道你我都没有错,只是忘了怎么退后,信誓旦旦给的承诺,全被时间扑了空。我知道我们都没有错,只是放手会比较好过,最美的爱情回忆里待续。',
]

View File

@@ -1,73 +1,73 @@
import {ThemeLocaleData} from "vuepress-theme-hope";
import {NotFoundMsgList} from "./constant.config";
import type { ThemeLocaleData } from 'vuepress-theme-hope'
import { NotFoundMsgList } from './constant.config'
/**
* 支持中文
* 参考https://theme-hope.vuejs.press/zh/config/i18n.html
*/
const localCN: ThemeLocaleData = {
lang: "zh-CN",
lang: 'zh-CN',
navbarLocales: {
langName: "简体中文",
selectLangAriaLabel: "选择语言",
langName: '简体中文',
selectLangAriaLabel: '选择语言',
},
metaLocales: {
author: "作者",
date: "写作日期",
origin: "原创",
views: "访问量",
category: "分类",
tag: "标签",
readingTime: "阅读时间",
words: "字数",
toc: "标题大纲",
prev: "上一页",
next: "下一页",
lastUpdated: "上次编辑于",
contributors: "贡献者",
editLink: "编辑此页",
print: "打印",
author: '作者',
date: '写作日期',
origin: '原创',
views: '访问量',
category: '分类',
tag: '标签',
readingTime: '阅读时间',
words: '字数',
toc: '标题大纲',
prev: '上一页',
next: '下一页',
lastUpdated: '上次编辑于',
contributors: '贡献者',
editLink: '编辑此页',
print: '打印',
},
blogLocales: {
article: "文章",
articleList: "文章列表",
category: "分类",
tag: "标签",
timeline: "时间轴",
timelineTitle: "昨日不在",
all: "全部",
intro: "个人介绍",
star: "收藏",
article: '文章',
articleList: '文章列表',
category: '分类',
tag: '标签',
timeline: '时间轴',
timelineTitle: '昨日不在',
all: '全部',
intro: '个人介绍',
star: '收藏',
},
paginationLocales: {
prev: "上一页",
next: "下一页",
navigate: "跳转到",
action: "前往",
errorText: "请输入 1 到 $page 之前的页码!",
prev: '上一页',
next: '下一页',
navigate: '跳转到',
action: '前往',
errorText: '请输入 1 到 $page 之前的页码!',
},
outlookLocales: {
themeColor: "主题色",
darkmode: "外观",
fullscreen: "全屏",
themeColor: '主题色',
darkmode: '外观',
fullscreen: '全屏',
},
encryptLocales: {
iconLabel: "文章已加密",
placeholder: "输入密码",
remember: "记住密码",
errorHint: "请输入正确的密码",
iconLabel: '文章已加密',
placeholder: '输入密码',
remember: '记住密码',
errorHint: '请输入正确的密码',
},
routeLocales: {
skipToContent: "跳至主要內容",
notFoundTitle: "访问的页面不存在",
skipToContent: '跳至主要內容',
notFoundTitle: '访问的页面不存在',
notFoundMsg: NotFoundMsgList,
back: "返回上一页",
home: "进入首页",
openInNewWindow: "新窗口打开",
back: '返回上一页',
home: '进入首页',
openInNewWindow: '新窗口打开',
},
}
@@ -75,5 +75,5 @@ const localCN: ThemeLocaleData = {
* 自定义语言,支持文案
*/
export const langConfig = {
"/": localCN
'/': localCN,
}

View File

@@ -4,62 +4,62 @@
export const navbar = [
{
text: '首页',
link: '/'
link: '/',
},
{
text: "数据结构",
link: "/manuscripts/ds"
text: '数据结构',
link: '/manuscripts/ds',
},
{
text: "操作系统",
link: "/manuscripts/os"
text: '操作系统',
link: '/manuscripts/os',
},
{
text: "计算机组成原理",
link: "/manuscripts/ccp"
text: '计算机组成原理',
link: '/manuscripts/ccp',
},
{
text: "计算机网络",
link: "/manuscripts/cn"
text: '计算机网络',
link: '/manuscripts/cn',
},
{
text: '思维导图',
link: "/manuscripts/mark-map/ds-map.html",
link: '/manuscripts/mark-map/ds-map.html',
},
{
text: "了解更多",
text: '了解更多',
children: [
{
text: '变更记录',
link: '/manuscripts/changelog.md'
link: '/manuscripts/changelog.md',
},
{
text: '网站动态',
link: '/manuscripts/big-event-history.md'
link: '/manuscripts/big-event-history.md',
},
{
text: "自媒体",
text: '自媒体',
children: [
{
text: "公众号文章",
link: "/manuscripts/wechat-list.md"
text: '公众号文章',
link: '/manuscripts/wechat-list.md',
},
]
],
},
{
text: "外链",
text: '外链',
children: [
// {
// text: '常用网站',
// link: '/manuscripts/frequent-site-link.md'
// },
{
text: "RoadMap计划",
link: "https://142vip-cn.feishu.cn/share/base/view/shrcnpso8R4vCid01wmg66hFjae"
}
]
text: 'RoadMap计划',
link: 'https://142vip-cn.feishu.cn/share/base/view/shrcnpso8R4vCid01wmg66hFjae',
},
],
},
],
},
];
]

View File

@@ -1,6 +1,6 @@
import {searchProPlugin} from "vuepress-plugin-search-pro";
import {path} from "@vuepress/utils";
import {registerComponentsPlugin} from "@vuepress/plugin-register-components";
import { searchProPlugin } from 'vuepress-plugin-search-pro'
import { path } from '@vuepress/utils'
import { registerComponentsPlugin } from '@vuepress/plugin-register-components'
/**
* 插件配置
@@ -21,13 +21,13 @@ export default {
customFields: [
{
getter: (page: any) => page.frontmatter.category,
formatter: "分类:$content",
formatter: '分类:$content',
},
{
getter: (page) => page.frontmatter.tag,
formatter: "标签:$content",
getter: page => page.frontmatter.tag,
formatter: '标签:$content',
},
],
}),
]
}
],
}

View File

@@ -1,16 +1,16 @@
import {dsSidebar} from "../../manuscripts/ds/ds.sidebar";
import {cppSidebar} from "../../manuscripts/ccp/cpp.sidebar";
import {cnSidebar} from "../../manuscripts/cn/cn.sidebar";
import {MarkMapSidebar} from "../../manuscripts/mark-map/mark-map.sidebar";
import {osSidebar} from "../../manuscripts/os/os.sidebar";
import { dsSidebar } from '../../manuscripts/ds/ds.sidebar'
import { cppSidebar } from '../../manuscripts/ccp/cpp.sidebar'
import { cnSidebar } from '../../manuscripts/cn/cn.sidebar'
import { MarkMapSidebar } from '../../manuscripts/mark-map/mark-map.sidebar'
import { osSidebar } from '../../manuscripts/os/os.sidebar'
/**
* 侧边导航栏设置
*/
export const sidebar = {
"/manuscripts/ds": dsSidebar,
"/manuscripts/os": osSidebar,
"/manuscripts/ccp": cppSidebar,
"/manuscripts/cn": cnSidebar,
"/manuscripts/mark-map": MarkMapSidebar
}
'/manuscripts/ds': dsSidebar,
'/manuscripts/os': osSidebar,
'/manuscripts/ccp': cppSidebar,
'/manuscripts/cn': cnSidebar,
'/manuscripts/mark-map': MarkMapSidebar,
}

View File

@@ -1,8 +1,8 @@
import {AUTHOR_INFO, copyright, FOOTER_HTML_INFO} from "./constant.config";
import {hopeTheme} from "vuepress-theme-hope";
import {langConfig} from "./lang.config";
import {navbar} from "./navbar";
import {sidebar} from "./sidebar";
import { hopeTheme } from 'vuepress-theme-hope'
import { AUTHOR_INFO, FOOTER_HTML_INFO, copyright } from './constant.config'
import { langConfig } from './lang.config'
import { navbar } from './navbar'
import { sidebar } from './sidebar'
/**
* hope主题配置
@@ -12,7 +12,7 @@ import {sidebar} from "./sidebar";
export default {
theme: hopeTheme({
locales: langConfig,
darkmode: "disable",
darkmode: 'disable',
// 支持全屏
// fullscreen: true,
// 纯净模式
@@ -20,21 +20,21 @@ export default {
print: false, // 打印按钮
hostname: 'https://408.142vip.cn',
author: AUTHOR_INFO,
favicon: "/408_favicon.ico",
logo: "/408_logo.png",
navbar: navbar,
favicon: '/408_favicon.ico',
logo: '/408_logo.png',
navbar,
// 导航栏布局
navbarLayout: {
start: ["Brand"],
center: ["Links"],
end: ["Language", "Search", "Repo", "Outlook",]
start: ['Brand'],
center: ['Links'],
end: ['Language', 'Search', 'Repo', 'Outlook'],
},
sidebar: sidebar,
sidebar,
// sidebar: "heading",
// 主题布局选项
repo: "https://github.com/142vip/408CSFamily",
logoDark: "/408_logo.png",
repo: 'https://github.com/142vip/408CSFamily',
logoDark: '/408_logo.png',
// 博客配置
// blog: {
@@ -74,20 +74,21 @@ export default {
// 启用图片大小
imgSize: true,
playground: {
presets: ["ts", "vue"],
presets: ['ts', 'vue'],
},
// 是否启用幻灯片
revealjs: ["highlight", "math", "search", "notes", "zoom"],
revealjs: ['highlight', 'math', 'search', 'notes', 'zoom'],
stylize: [
{
matcher: "Recommended",
replacer: ({tag}) => {
if (tag === "em")
matcher: 'Recommended',
replacer: ({ tag }) => {
if (tag === 'em') {
return {
tag: "Badge",
attrs: {type: "tip"},
content: "Recommended",
};
tag: 'Badge',
attrs: { type: 'tip' },
content: 'Recommended',
}
}
},
},
],
@@ -110,28 +111,28 @@ export default {
// 参考https://theme-hope.vuejs.press/zh/guide/markdown/components.html
components: {
components: [
"ArtPlayer",
"AudioPlayer",
"Badge",
"BiliBili",
"CodePen",
"PDF",
"Replit",
"Share",
"SiteInfo",
"StackBlitz",
'ArtPlayer',
'AudioPlayer',
'Badge',
'BiliBili',
'CodePen',
'PDF',
'Replit',
'Share',
'SiteInfo',
'StackBlitz',
// "VidStack",
"VideoPlayer",
"XiGua",
"YouTube",
'VideoPlayer',
'XiGua',
'YouTube',
],
},
copyCode: {
showInMobile: true
showInMobile: true,
},
feed: {
json: true,
},
},
})
}
}),
}

View File

@@ -1,40 +1,74 @@
<!DOCTYPE html>
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Markmap</title>
<style>
* {
margin: 0;
padding: 0;
}
#mindmap {
display: block;
width: 100vw;
height: 100vh;
}
</style>
<link rel="stylesheet" href="https://unpkg.com/@highlightjs/cdn-assets@11.8.0/styles/default.min.css"><link rel="stylesheet" href="https://unpkg.com/markmap-toolbar@0.15.4/dist/style.css">
</head>
<body>
<svg id="mindmap"></svg>
<script src="https://unpkg.com/d3@7.8.5/dist/d3.min.js"></script><script src="https://unpkg.com/markmap-view@0.15.4/dist/browser/index.js"></script><script src="https://unpkg.com/markmap-toolbar@0.15.4/dist/index.js"></script><script>(r => {
setTimeout(r);
})(() => {
const {
markmap,
mm
} = window;
const toolbar = new markmap.Toolbar();
toolbar.attach(mm);
const el = toolbar.render();
el.setAttribute('style', 'position:absolute;bottom:20px;right:20px');
document.body.append(el);
})</script><script>((getMarkmap, getOptions, root, jsonOptions) => {
const markmap = getMarkmap();
window.mm = markmap.Markmap.create('svg#mindmap', (getOptions || markmap.deriveOptions)(jsonOptions), root);
})(() => window.markmap,null,{"type":"heading","depth":0,"payload":{"lines":[1,2]},"content":"计算机组成原理","children":[{"type":"fence","depth":1,"content":"<pre><code class=\"language-mindmap\">root(计算机组成原理)\n (引论)\n (数据的表示和运算)\n (储存系统)\n (指令系统)\n (中央处理器)\n (总线)\n (输入输出系统)\n</code></pre>\n","children":[],"payload":{"lines":[3,13]}},{"type":"heading","depth":1,"payload":{"lines":[16,17]},"content":"引论","children":[]},{"type":"heading","depth":1,"payload":{"lines":[18,19]},"content":"数据的表示和运算","children":[]},{"type":"heading","depth":1,"payload":{"lines":[20,21]},"content":"存储系统","children":[]},{"type":"heading","depth":1,"payload":{"lines":[22,23]},"content":"指令系统","children":[]},{"type":"heading","depth":1,"payload":{"lines":[24,25]},"content":"中央处理器","children":[]},{"type":"heading","depth":1,"payload":{"lines":[26,27]},"content":"总线","children":[]},{"type":"heading","depth":1,"payload":{"lines":[28,29]},"content":"输入输出系统","children":[]},{"type":"heading","depth":1,"payload":{"lines":[30,31]},"content":"一些总结","children":[]}]},null)</script>
</body>
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
<title>Markmap</title>
<style>
* {
margin: 0;
padding: 0;
}
#mindmap {
display: block;
width: 100vw;
height: 100vh;
}
</style>
<link rel="stylesheet" href="https://unpkg.com/@highlightjs/cdn-assets@11.8.0/styles/default.min.css" />
<link rel="stylesheet" href="https://unpkg.com/markmap-toolbar@0.15.4/dist/style.css" />
</head>
<body>
<svg id="mindmap"></svg>
<script src="https://unpkg.com/d3@7.8.5/dist/d3.min.js"></script>
<script src="https://unpkg.com/markmap-view@0.15.4/dist/browser/index.js"></script>
<script src="https://unpkg.com/markmap-toolbar@0.15.4/dist/index.js"></script>
<script>
;((r) => {
setTimeout(r)
})(() => {
const { markmap, mm } = window
const toolbar = new markmap.Toolbar()
toolbar.attach(mm)
const el = toolbar.render()
el.setAttribute('style', 'position:absolute;bottom:20px;right:20px')
document.body.append(el)
})
</script>
<script>
;((getMarkmap, getOptions, root, jsonOptions) => {
const markmap = getMarkmap()
window.mm = markmap.Markmap.create('svg#mindmap', (getOptions || markmap.deriveOptions)(jsonOptions), root)
})(
() => window.markmap,
null,
{
type: 'heading',
depth: 0,
payload: { lines: [1, 2] },
content: '计算机组成原理',
children: [
{
type: 'fence',
depth: 1,
content:
'<pre><code class="language-mindmap">root(计算机组成原理)\n (引论)\n (数据的表示和运算)\n (储存系统)\n (指令系统)\n (中央处理器)\n (总线)\n (输入输出系统)\n</code></pre>\n',
children: [],
payload: { lines: [3, 13] },
},
{ type: 'heading', depth: 1, payload: { lines: [16, 17] }, content: '引论', children: [] },
{ type: 'heading', depth: 1, payload: { lines: [18, 19] }, content: '数据的表示和运算', children: [] },
{ type: 'heading', depth: 1, payload: { lines: [20, 21] }, content: '存储系统', children: [] },
{ type: 'heading', depth: 1, payload: { lines: [22, 23] }, content: '指令系统', children: [] },
{ type: 'heading', depth: 1, payload: { lines: [24, 25] }, content: '中央处理器', children: [] },
{ type: 'heading', depth: 1, payload: { lines: [26, 27] }, content: '总线', children: [] },
{ type: 'heading', depth: 1, payload: { lines: [28, 29] }, content: '输入输出系统', children: [] },
{ type: 'heading', depth: 1, payload: { lines: [30, 31] }, content: '一些总结', children: [] },
],
},
null,
)
</script>
</body>
</html>

View File

@@ -1,40 +1,73 @@
<!DOCTYPE html>
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Markmap</title>
<style>
* {
margin: 0;
padding: 0;
}
#mindmap {
display: block;
width: 100vw;
height: 100vh;
}
</style>
<link rel="stylesheet" href="https://unpkg.com/@highlightjs/cdn-assets@11.8.0/styles/default.min.css"><link rel="stylesheet" href="https://unpkg.com/markmap-toolbar@0.15.4/dist/style.css">
</head>
<body>
<svg id="mindmap"></svg>
<script src="https://unpkg.com/d3@7.8.5/dist/d3.min.js"></script><script src="https://unpkg.com/markmap-view@0.15.4/dist/browser/index.js"></script><script src="https://unpkg.com/markmap-toolbar@0.15.4/dist/index.js"></script><script>(r => {
setTimeout(r);
})(() => {
const {
markmap,
mm
} = window;
const toolbar = new markmap.Toolbar();
toolbar.attach(mm);
const el = toolbar.render();
el.setAttribute('style', 'position:absolute;bottom:20px;right:20px');
document.body.append(el);
})</script><script>((getMarkmap, getOptions, root, jsonOptions) => {
const markmap = getMarkmap();
window.mm = markmap.Markmap.create('svg#mindmap', (getOptions || markmap.deriveOptions)(jsonOptions), root);
})(() => window.markmap,null,{"type":"heading","depth":0,"payload":{"lines":[1,2]},"content":"计算机网络","children":[{"type":"fence","depth":1,"content":"<pre><code class=\"language-mindmap\">root(计算机网络)\n (体系机构)\n (物理层)\n (数据链路层)\n (网络层)\n (传输层)\n (应用层)\n</code></pre>\n","children":[],"payload":{"lines":[3,12]}},{"type":"heading","depth":1,"payload":{"lines":[15,16]},"content":"体系结构","children":[]},{"type":"heading","depth":1,"payload":{"lines":[17,18]},"content":"物理层","children":[]},{"type":"heading","depth":1,"payload":{"lines":[19,20]},"content":"数据链路层","children":[]},{"type":"heading","depth":1,"payload":{"lines":[21,22]},"content":"网络层","children":[]},{"type":"heading","depth":1,"payload":{"lines":[23,24]},"content":"传输层","children":[]},{"type":"heading","depth":1,"payload":{"lines":[25,26]},"content":"应用层","children":[]},{"type":"heading","depth":1,"payload":{"lines":[27,28]},"content":"一些总结","children":[]}]},null)</script>
</body>
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
<title>Markmap</title>
<style>
* {
margin: 0;
padding: 0;
}
#mindmap {
display: block;
width: 100vw;
height: 100vh;
}
</style>
<link rel="stylesheet" href="https://unpkg.com/@highlightjs/cdn-assets@11.8.0/styles/default.min.css" />
<link rel="stylesheet" href="https://unpkg.com/markmap-toolbar@0.15.4/dist/style.css" />
</head>
<body>
<svg id="mindmap"></svg>
<script src="https://unpkg.com/d3@7.8.5/dist/d3.min.js"></script>
<script src="https://unpkg.com/markmap-view@0.15.4/dist/browser/index.js"></script>
<script src="https://unpkg.com/markmap-toolbar@0.15.4/dist/index.js"></script>
<script>
;((r) => {
setTimeout(r)
})(() => {
const { markmap, mm } = window
const toolbar = new markmap.Toolbar()
toolbar.attach(mm)
const el = toolbar.render()
el.setAttribute('style', 'position:absolute;bottom:20px;right:20px')
document.body.append(el)
})
</script>
<script>
;((getMarkmap, getOptions, root, jsonOptions) => {
const markmap = getMarkmap()
window.mm = markmap.Markmap.create('svg#mindmap', (getOptions || markmap.deriveOptions)(jsonOptions), root)
})(
() => window.markmap,
null,
{
type: 'heading',
depth: 0,
payload: { lines: [1, 2] },
content: '计算机网络',
children: [
{
type: 'fence',
depth: 1,
content:
'<pre><code class="language-mindmap">root(计算机网络)\n (体系机构)\n (物理层)\n (数据链路层)\n (网络层)\n (传输层)\n (应用层)\n</code></pre>\n',
children: [],
payload: { lines: [3, 12] },
},
{ type: 'heading', depth: 1, payload: { lines: [15, 16] }, content: '体系结构', children: [] },
{ type: 'heading', depth: 1, payload: { lines: [17, 18] }, content: '物理层', children: [] },
{ type: 'heading', depth: 1, payload: { lines: [19, 20] }, content: '数据链路层', children: [] },
{ type: 'heading', depth: 1, payload: { lines: [21, 22] }, content: '网络层', children: [] },
{ type: 'heading', depth: 1, payload: { lines: [23, 24] }, content: '传输层', children: [] },
{ type: 'heading', depth: 1, payload: { lines: [25, 26] }, content: '应用层', children: [] },
{ type: 'heading', depth: 1, payload: { lines: [27, 28] }, content: '一些总结', children: [] },
],
},
null,
)
</script>
</body>
</html>

File diff suppressed because one or more lines are too long

View File

@@ -27,4 +27,4 @@
"xMindPath": "../mark-map/cn.xmind",
"mdPath": "../mark-map/cn-map.md"
}
]
]

View File

@@ -1,40 +1,72 @@
<!DOCTYPE html>
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Markmap</title>
<style>
* {
margin: 0;
padding: 0;
}
#mindmap {
display: block;
width: 100vw;
height: 100vh;
}
</style>
<link rel="stylesheet" href="https://unpkg.com/@highlightjs/cdn-assets@11.8.0/styles/default.min.css"><link rel="stylesheet" href="https://unpkg.com/markmap-toolbar@0.15.4/dist/style.css">
</head>
<body>
<svg id="mindmap"></svg>
<script src="https://unpkg.com/d3@7.8.5/dist/d3.min.js"></script><script src="https://unpkg.com/markmap-view@0.15.4/dist/browser/index.js"></script><script src="https://unpkg.com/markmap-toolbar@0.15.4/dist/index.js"></script><script>(r => {
setTimeout(r);
})(() => {
const {
markmap,
mm
} = window;
const toolbar = new markmap.Toolbar();
toolbar.attach(mm);
const el = toolbar.render();
el.setAttribute('style', 'position:absolute;bottom:20px;right:20px');
document.body.append(el);
})</script><script>((getMarkmap, getOptions, root, jsonOptions) => {
const markmap = getMarkmap();
window.mm = markmap.Markmap.create('svg#mindmap', (getOptions || markmap.deriveOptions)(jsonOptions), root);
})(() => window.markmap,null,{"type":"heading","depth":0,"payload":{"lines":[1,2]},"content":"操作系统","children":[{"type":"fence","depth":1,"content":"<pre><code class=\"language-mindmap\">root(操作系统)\n (系统概述)\n (进程管理)\n (进程管理)\n (文件管理)\n (输入、输出管理)\n</code></pre>\n","children":[],"payload":{"lines":[3,11]}},{"type":"heading","depth":1,"payload":{"lines":[14,15]},"content":"引论","children":[]},{"type":"heading","depth":1,"payload":{"lines":[16,17]},"content":"进程管理","children":[]},{"type":"heading","depth":1,"payload":{"lines":[18,19]},"content":"内存管理","children":[]},{"type":"heading","depth":1,"payload":{"lines":[20,21]},"content":"一些总结","children":[]},{"type":"heading","depth":1,"payload":{"lines":[22,23]},"content":"I/O管理","children":[]},{"type":"heading","depth":1,"payload":{"lines":[24,25]},"content":"文件管理","children":[]}]},null)</script>
</body>
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
<title>Markmap</title>
<style>
* {
margin: 0;
padding: 0;
}
#mindmap {
display: block;
width: 100vw;
height: 100vh;
}
</style>
<link rel="stylesheet" href="https://unpkg.com/@highlightjs/cdn-assets@11.8.0/styles/default.min.css" />
<link rel="stylesheet" href="https://unpkg.com/markmap-toolbar@0.15.4/dist/style.css" />
</head>
<body>
<svg id="mindmap"></svg>
<script src="https://unpkg.com/d3@7.8.5/dist/d3.min.js"></script>
<script src="https://unpkg.com/markmap-view@0.15.4/dist/browser/index.js"></script>
<script src="https://unpkg.com/markmap-toolbar@0.15.4/dist/index.js"></script>
<script>
;((r) => {
setTimeout(r)
})(() => {
const { markmap, mm } = window
const toolbar = new markmap.Toolbar()
toolbar.attach(mm)
const el = toolbar.render()
el.setAttribute('style', 'position:absolute;bottom:20px;right:20px')
document.body.append(el)
})
</script>
<script>
;((getMarkmap, getOptions, root, jsonOptions) => {
const markmap = getMarkmap()
window.mm = markmap.Markmap.create('svg#mindmap', (getOptions || markmap.deriveOptions)(jsonOptions), root)
})(
() => window.markmap,
null,
{
type: 'heading',
depth: 0,
payload: { lines: [1, 2] },
content: '操作系统',
children: [
{
type: 'fence',
depth: 1,
content:
'<pre><code class="language-mindmap">root(操作系统)\n (系统概述)\n (进程管理)\n (进程管理)\n (文件管理)\n (输入、输出管理)\n</code></pre>\n',
children: [],
payload: { lines: [3, 11] },
},
{ type: 'heading', depth: 1, payload: { lines: [14, 15] }, content: '引论', children: [] },
{ type: 'heading', depth: 1, payload: { lines: [16, 17] }, content: '进程管理', children: [] },
{ type: 'heading', depth: 1, payload: { lines: [18, 19] }, content: '内存管理', children: [] },
{ type: 'heading', depth: 1, payload: { lines: [20, 21] }, content: '一些总结', children: [] },
{ type: 'heading', depth: 1, payload: { lines: [22, 23] }, content: 'I/O管理', children: [] },
{ type: 'heading', depth: 1, payload: { lines: [24, 25] }, content: '文件管理', children: [] },
],
},
null,
)
</script>
</body>
</html>

View File

@@ -1,10 +1,10 @@
// 参考https://theme-hope.vuejs.press/zh/guide/interface/code-theme.htm
// 浅色主题
$code-light-them: "coldark-cold";
$code-light-them: 'coldark-cold';
// 深色主题
$code-dark-theme: "atom-dark";
$code-dark-theme: 'atom-dark';
// 主题色
//$theme-colors: #2196f3, #f26d6d, #3eaf7c, #fb9b5f;
//$theme-colors: #2196f3, #f26d6d, #3eaf7c, #fb9b5f;

View File

@@ -63,8 +63,8 @@
--code-ln-wrapper-width: 3.5rem;
// font vars
--font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen,
Ubuntu, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif;
--font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Fira Sans',
'Droid Sans', 'Helvetica Neue', sans-serif;
--font-family-code: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
// layout vars
@@ -77,7 +77,6 @@
--homepage-width: 960px;
}
// plugin-docsearch
.DocSearch {
--docsearch-primary-color: var(--c-brand);
@@ -106,7 +105,6 @@
--medium-zoom-bg-color: var(--c-bg);
}
// plugin-pwa-popup
.pwa-popup {
--pwa-popup-text-color: var(--c-text);

View File

@@ -4,4 +4,4 @@ $theme-color: #6184e8;
//$sidebar-width: 20rem;
//$sidebar-mobile-width: 16rem;
//$content-width: 75rem;
$home-page-width: 80rem;
$home-page-width: 80rem;

View File

@@ -7,29 +7,29 @@ permalink: /manuscripts/big-event-history.html
```mermaid
%%{
init: {
init: {
'theme': 'forest',
"fontFamily": "monospace"
}
}
}%%
timeline
title 408CSFamily时间轴
2015 : 刚上学
2015 : 刚上学
: 接触计算机
: 学习CS专业知识
2019 : 初识408 <br> 年轻人别草率
2020 : 武汉疫情解封 <br> 萌生念头,创建仓库
2020 : 武汉疫情解封 <br> 萌生念头,创建仓库
: 代号408CSFamily
2021 : 更新停滞期
: 内容存在被抄袭风险 <br> 替换原有MIT协议
: 内容存在被抄袭风险 <br> 替换原有MIT协议
: 更新部分算法代码
: 项目结构调整、优化
2022 : 引入Vuepress框架大改造
: 支持自动发版、部署 <br> Release版本下载
: 全新出发,网站上线 <br> 域名408.142vip.cn
2023 : 分学科梳理文档
: 基于Hope主题优化UI
: 增加思维导图

View File

@@ -5,17 +5,17 @@ export const cppSidebar = [
children: [
{
text: '发展历程',
link: '发展历程.md'
link: '发展历程.md',
},
{
text: '系统层次结构',
link: '系统层次结构.md'
link: '系统层次结构.md',
},
{
text: '性能指标',
link: '性能指标.md'
}
]
link: '性能指标.md',
},
],
},
{
text: '数据的表示和运算',
@@ -23,25 +23,25 @@ export const cppSidebar = [
children: [
{
text: '数制和编码',
link: '数制和编码.md'
link: '数制和编码.md',
},
{
text: '定点数',
link: '定点数.md'
link: '定点数.md',
},
{
text: '浮点数',
link: '浮点数.md'
link: '浮点数.md',
},
{
text: '算数逻辑单元',
link: '算数逻辑单元.md'
link: '算数逻辑单元.md',
},
{
text: '一些总结',
link: '一些总结.md'
}
]
link: '一些总结.md',
},
],
},
{
text: '存储系统',
@@ -49,37 +49,37 @@ export const cppSidebar = [
children: [
{
text: '存储器介绍',
link: '存储器介绍.md'
link: '存储器介绍.md',
},
{
text: '存储器的层次化结构',
link: '存储器的层次化结构.md'
link: '存储器的层次化结构.md',
},
{
text: '随机存储器',
link: '随机存储器.md'
link: '随机存储器.md',
},
{
text: '主存和CPU',
link: '主存和CPU.md'
link: '主存和CPU.md',
},
{
text: '双端口RAM和多模块存储器',
link: '双端口RAM和多模块存储器.md'
link: '双端口RAM和多模块存储器.md',
},
{
text: '高速缓冲存储器',
link: '高速缓冲存储器.md'
link: '高速缓冲存储器.md',
},
{
text: '虚拟存储器',
link: '虚拟存储器.md'
link: '虚拟存储器.md',
},
{
text: '一些总结',
link: '一些总结.md'
}
]
link: '一些总结.md',
},
],
},
{
text: '指令系统',
@@ -87,21 +87,21 @@ export const cppSidebar = [
children: [
{
text: '指令格式',
link: '指令格式.md'
link: '指令格式.md',
},
{
text: '寻址方式',
link: '寻址方式.md'
link: '寻址方式.md',
},
{
text: '指令集',
link: '指令集.md'
link: '指令集.md',
},
{
text: '一些总结',
link: '一些总结.md'
}
]
link: '一些总结.md',
},
],
},
{
text: '中央处理器',
@@ -109,29 +109,29 @@ export const cppSidebar = [
children: [
{
text: 'CPU的基本介绍',
link: 'CPU的基本介绍.md'
link: 'CPU的基本介绍.md',
},
{
text: '指令执行过程',
link: '指令执行过程.md'
link: '指令执行过程.md',
},
{
text: '数据通路',
link: '数据通路.md'
link: '数据通路.md',
},
{
text: '控制器',
link: '控制器.md'
link: '控制器.md',
},
{
text: '指令流水线',
link: '指令流水线.md'
link: '指令流水线.md',
},
{
text: '一些总结',
link: '一些总结.md'
}
]
link: '一些总结.md',
},
],
},
{
text: '总线',
@@ -139,25 +139,25 @@ export const cppSidebar = [
children: [
{
text: '总线介绍',
link: '总线介绍.md'
link: '总线介绍.md',
},
{
text: '总线仲裁',
link: '总线仲裁.md'
link: '总线仲裁.md',
},
{
text: '总线的操作和定时',
link: '总线的操作和定时.md'
link: '总线的操作和定时.md',
},
{
text: '总线标准',
link: '总线标准.md'
link: '总线标准.md',
},
{
text: '一些总结',
link: '一些总结.md'
}
]
link: '一些总结.md',
},
],
},
{
text: '输入输出系统',
@@ -165,24 +165,24 @@ export const cppSidebar = [
children: [
{
text: '基本概念',
link: '基本概念.md'
link: '基本概念.md',
},
{
text: '外部设备',
link: '外部设备.md'
link: '外部设备.md',
},
{
text: '输入输出接口',
link: '输入输出接口.md'
link: '输入输出接口.md',
},
{
text: '输入输出方式',
link: '输入输出方式.md'
link: '输入输出方式.md',
},
{
text: '一些总结',
link: '一些总结.md'
}
]
}
link: '一些总结.md',
},
],
},
]

View File

@@ -62,5 +62,5 @@ permalink: /manuscripts/ccp.html
## 参考资料
- 《计算机组成原理》 第二版 唐朔飞
- 《计算机组成原理》 第二版 唐朔飞
- 《计算机组成原理-王道考研》 2019 王道论坛

View File

@@ -2,6 +2,7 @@
title: 一些总结
permalink: /manuscripts/ccp/cpu/summary.html
---
# 一些总结
努力赶稿中,等等我呀...

View File

@@ -2,6 +2,7 @@
title: 指令执行过程
permalink: /manuscripts/ccp/cpu/instruct-line.html
---
# 指令流水线
努力赶稿中,等等我呀...

View File

@@ -2,6 +2,7 @@
title: 控制器
permalink: /manuscripts/ccp/cpu/controller.html
---
# 控制器
努力赶稿中,等等我呀...

View File

@@ -2,6 +2,7 @@
title: 数据通路
permalink: /manuscripts/ccp/cpu/data-pathways.html
---
# 数据通路
努力赶稿中,等等我呀...

View File

@@ -2,6 +2,7 @@
title: 数据通路
permalink: /manuscripts/ccp/store-memory/summary.html
---
# 一些总结
努力赶稿中,等等我呀...

View File

@@ -2,6 +2,7 @@
title: 主存和CPU
permalink: /manuscripts/ccp/store-memory/cpu-storage.html
---
# 主存和CPU
努力赶稿中,等等我呀...

View File

@@ -2,6 +2,7 @@
title: 双端口RAM和多模块存储器
permalink: /manuscripts/ccp/store-memory/ram-storage.html
---
# 双端口RAM和多模块存储器
努力赶稿中,等等我呀...

View File

@@ -2,6 +2,7 @@
title: 存储器介绍
permalink: /manuscripts/ccp/store-memory/storage-introduce.html
---
# 存储器介绍
努力赶稿中,等等我呀...

View File

@@ -2,6 +2,7 @@
title: 随机存储器
permalink: /manuscripts/ccp/store-memory/ram.html
---
# 随机存储器
努力赶稿中,等等我呀...

View File

@@ -2,6 +2,7 @@
title: 一些总结
permalink: /manuscripts/ccp/bus/summary.html
---
# 一些总结
努力赶稿中,等等我呀...

View File

@@ -2,6 +2,7 @@
title: 总线介绍
permalink: /manuscripts/ccp/bus/introduce.html
---
# 总线介绍
努力赶稿中,等等我呀...

View File

@@ -2,6 +2,7 @@
title: 总线仲裁
permalink: /manuscripts/ccp/bus/bus-quorum.html
---
# 总线仲裁
努力赶稿中,等等我呀...

View File

@@ -2,6 +2,7 @@
title: 总线标准
permalink: /manuscripts/ccp/bus/bus-standard.html
---
# 总线标准
努力赶稿中,等等我呀...

View File

@@ -2,6 +2,7 @@
title: 总线的操作和定时
permalink: /manuscripts/ccp/bus/operate-schedule.html
---
# 总线的操作和定时
努力赶稿中,等等我呀...

View File

@@ -2,6 +2,7 @@
title: 寻址方式
permalink: /manuscripts/ccp/directive-system/address-method.html
---
# 寻址方式
努力赶稿中,等等我呀...

View File

@@ -2,6 +2,7 @@
title: 总线介绍
permalink: /manuscripts/ccp/directive-system/directive-style.html
---
# 指令格式
努力赶稿中,等等我呀...

View File

@@ -2,6 +2,7 @@
title: 指令集
permalink: /manuscripts/ccp/directive-system/directive-collection.html
---
# 指令集
努力赶稿中,等等我呀...

View File

@@ -2,6 +2,7 @@
title: 一些总结
permalink: /manuscripts/ccp/data-represent-compute/summary.html
---
# 一些总结
努力赶稿中,等等我呀...

View File

@@ -2,6 +2,7 @@
title: 定点数
permalink: /manuscripts/ccp/data-represent-compute/fixed-number.html
---
# 定点数
努力赶稿中,等等我呀...

View File

@@ -2,6 +2,7 @@
title: 数制和编码
permalink: /manuscripts/ccp/data-represent-compute/number-coding.html
---
# 数制和编码
努力赶稿中,等等我呀...

View File

@@ -2,6 +2,7 @@
title: 浮点数
permalink: /manuscripts/ccp/data-represent-compute/float-number.html
---
# 浮点数
努力赶稿中,等等我呀...

View File

@@ -2,6 +2,7 @@
title: 发展历程
permalink: /manuscripts/ccp/ccp-introduction/develop.html
---
# 发展历程
努力赶稿中,等等我呀...

View File

@@ -2,6 +2,7 @@
title: 性能指标
permalink: /manuscripts/ccp/ccp-introduction/performance-metrics.html
---
# 性能指标
努力赶稿中,等等我呀...

View File

@@ -2,6 +2,7 @@
title: 系统层次结构
permalink: /manuscripts/ccp/ccp-introduction/system-layer-info.html
---
# 系统层次结构
努力赶稿中,等等我呀...

View File

@@ -2,6 +2,7 @@
title: 基本概念
permalink: /manuscripts/ccp/in-out/base-concept.html
---
# 基本概念
努力赶稿中,等等我呀...

View File

@@ -2,6 +2,7 @@
title: 外部设备
permalink: /manuscripts/ccp/in-out/outer-equipment.html
---
# 外部设备
努力赶稿中,等等我呀...

View File

@@ -2,6 +2,7 @@
title: 输入输出接口
permalink: /manuscripts/ccp/in-out/io-interface.html
---
# 输入输出接口
努力赶稿中,等等我呀...

View File

@@ -2,6 +2,7 @@
title: 算数逻辑单元
permalink: /manuscripts/ccp/in-out/io-model.html
---
# 输入输出方式
努力赶稿中,等等我呀...

View File

@@ -2,6 +2,7 @@
title: 变更记录
permalink: /manuscripts/changelog.html
---
# 变更记录
该文件包含 `408CSFamily` 仓库和网站所有显着更改。

View File

@@ -5,13 +5,13 @@ export const cnSidebar = [
children: [
{
text: '基本介绍',
link: '1.引论.md'
link: '1.引论.md',
},
{
text: '体系结构与参考模型',
link: '2.体系结构与参考模型.md'
}
]
link: '2.体系结构与参考模型.md',
},
],
},
{
text: '物理层',
@@ -19,21 +19,21 @@ export const cnSidebar = [
children: [
{
text: '通信基础',
link: '1.通信基础.md'
link: '1.通信基础.md',
},
{
text: '传输介质',
link: '2.传输介质.md'
link: '2.传输介质.md',
},
{
text: '物理层设备',
link: '3.物理层设备.md'
link: '3.物理层设备.md',
},
{
text: '一些总结',
link: '4.总结.md'
}
]
link: '4.总结.md',
},
],
},
// {
// text: '数据链路层',
@@ -122,22 +122,22 @@ export const cnSidebar = [
children: [
{
text: '提供的服务',
link: '1.提供的服务.md'
link: '1.提供的服务.md',
},
{
text: 'UDP协议',
link: '2.UDP协议.md'
link: '2.UDP协议.md',
},
{
text: 'TCP协议',
link: '3.TCP协议.md'
link: '3.TCP协议.md',
},
{
text: '一些总结',
link: '4.总结.md'
}
]
}
link: '4.总结.md',
},
],
},
// {
// text: '应用层',
// prefix: '应用层',

View File

@@ -3,7 +3,6 @@ title: 计算机网络
permalink: /manuscripts/cn.html
---
# 计算机网络
![打好基础推荐学习这本](./images/cn-base.png)

View File

@@ -2,6 +2,7 @@
title: UDP协议
permalink: /manuscripts/cn/trans-port-layer/udp.html
---
# UDP协议
努力赶稿中,等等我呀...

View File

@@ -2,6 +2,7 @@
title: TCP协议
permalink: /manuscripts/cn/trans-port-layer/tcp.html
---
# TCP协议
努力赶稿中,等等我呀...

View File

@@ -2,6 +2,7 @@
title: DNS
permalink: /manuscripts/cn/application-layer/dns.html
---
# DNS
努力赶稿中,等等我呀...

View File

@@ -2,6 +2,7 @@
title: FTP
permalink: /manuscripts/cn/application-layer/ftp.html
---
# FTP
努力赶稿中,等等我呀...

View File

@@ -2,6 +2,7 @@
title: HTTP
permalink: /manuscripts/cn/application-layer/http.html
---
# HTTP
努力赶稿中,等等我呀...

View File

@@ -2,6 +2,7 @@
title: 电子邮件
permalink: /manuscripts/cn/application-layer/email.html
---
# 电子邮件
努力赶稿中,等等我呀...

View File

@@ -2,6 +2,7 @@
title: 组帧
permalink: /manuscripts/cn/data-link-layer/framing.html
---
# 组帧
努力赶稿中,等等我呀...

View File

@@ -2,6 +2,7 @@
title: 差错控制
permalink: /manuscripts/cn/data-link-layer/error-control.html
---
# 差错控制
努力赶稿中,等等我呀...

View File

@@ -2,6 +2,7 @@
title: 通信设备
permalink: /manuscripts/cn/data-link-layer/equipment.html
---
# 通信设备
努力赶稿中,等等我呀...

View File

@@ -2,6 +2,7 @@
title: 传输介质
permalink: /manuscripts/cn/physical-layer/transmission-medium.html
---
# 传输介质
努力赶稿中,等等我呀...

View File

@@ -2,6 +2,7 @@
title: 一些总结
permalink: /manuscripts/cn/network-layer/summary.html
---
# 一些总结
努力赶稿中,等等我呀...

View File

@@ -6,17 +6,17 @@ export const dsSidebar = [
children: [
{
text: '基本概念',
link: '1.基本概念.md'
link: '1.基本概念.md',
},
{
text: '三要素',
link: '2.三要素.md'
link: '2.三要素.md',
},
{
text: '算法和算法评价',
link: '3.算法和算法评价.md'
}
]
link: '3.算法和算法评价.md',
},
],
},
{
text: '线性表',
@@ -25,21 +25,21 @@ export const dsSidebar = [
children: [
{
text: '基础概念和操作',
link: '1.基础概念和操作.md'
link: '1.基础概念和操作.md',
},
{
text: '顺序表示',
link: '2.顺序表示.md'
link: '2.顺序表示.md',
},
{
text: '链式表示',
link: '3.链式表示.md'
link: '3.链式表示.md',
},
{
text: '一些总结',
link: '4.总结.md'
}
]
link: '4.总结.md',
},
],
},
{
text: '栈',
@@ -48,17 +48,17 @@ export const dsSidebar = [
children: [
{
text: '基本概念和操作',
link: '1.栈的基本概念和基本操作.md'
link: '1.栈的基本概念和基本操作.md',
},
{
text: '顺序存储结构',
link: '2.栈的顺序存储结构.md'
link: '2.栈的顺序存储结构.md',
},
{
text: '链式存储结构',
link: '3.栈的链式存储结构.md'
}
]
link: '3.栈的链式存储结构.md',
},
],
},
{
text: '队列',
@@ -67,20 +67,21 @@ export const dsSidebar = [
children: [
{
text: '基本概念和操作',
link: '4.队列的基本概念和操作.md'
}, {
link: '4.队列的基本概念和操作.md',
},
{
text: '顺序存储结构',
link: '5.队列的顺序存储结构.md'
link: '5.队列的顺序存储结构.md',
},
{
text: '链式存储结构',
link: '6.队列的链式存储结构.md'
link: '6.队列的链式存储结构.md',
},
{
text: '栈VS队列补充',
link: '7.栈VS队列补充.md'
}
]
link: '7.栈VS队列补充.md',
},
],
},
// {
// text: '串',
@@ -174,29 +175,29 @@ export const dsSidebar = [
children: [
{
text: '基本概念',
link: '1.基本概念.md'
link: '1.基本概念.md',
},
{
text: '顺序查找',
link: '2.顺序查找.md'
link: '2.顺序查找.md',
},
{
text: '折半查找',
link: '3.折半查找.md'
link: '3.折半查找.md',
},
{
text: 'B树和B+树',
link: '4.B树和B+树.md'
link: '4.B树和B+树.md',
},
{
text: '散列表',
link: '5.散列表.md'
link: '5.散列表.md',
},
{
text: '一些总结',
link: '6.总结.md'
}
]
link: '6.总结.md',
},
],
},
{
text: '排序',
@@ -205,36 +206,36 @@ export const dsSidebar = [
children: [
{
text: '基本概念',
link: '1.基本概念.md'
link: '1.基本概念.md',
},
{
text: '插入排序',
link: '2.插入排序.md'
link: '2.插入排序.md',
},
{
text: '交换排序',
link: '3.交换排序.md'
link: '3.交换排序.md',
},
{
text: '选择排序',
link: '4.选择排序.md'
link: '4.选择排序.md',
},
{
text: '归并排序',
link: '5.归并排序.md'
link: '5.归并排序.md',
},
{
text: '基数排序',
link: '6.基数排序.md'
link: '6.基数排序.md',
},
{
text: '外部排序',
link: '7.外部排序.md'
link: '7.外部排序.md',
},
{
text: '一些总结',
link: '8.总结.md'
}
]
}
link: '8.总结.md',
},
],
},
]

View File

@@ -2,6 +2,7 @@
title: KMP算法
permalink: /manuscripts/ds/string/kmp.html
---
# KMP算法
努力赶稿中,等等我呀...

View File

@@ -2,6 +2,7 @@
title: 图的存储
permalink: /manuscripts/ds/graph/store.html
---
# 图的存储
努力赶稿中,等等我呀...

View File

@@ -2,6 +2,7 @@
title: 图的遍历
permalink: /manuscripts/ds/graph/traverse.html
---
# 图的遍历
努力赶稿中,等等我呀...

View File

@@ -2,6 +2,7 @@
title: 图的应用
permalink: /manuscripts/ds/graph/apply.html
---
# 图的应用
努力赶稿中,等等我呀...

View File

@@ -2,6 +2,7 @@
title: 一些总结
permalink: /manuscripts/ds/graph/summary.html
---
# 总结
努力赶稿中,等等我呀...

View File

@@ -1,8 +1,8 @@
---
title: 基础概念
#description:
#description:
permalink: /manuscripts/ds/introduction-basic-concepts.html
head:
head:
- [meta, { name: 数据结构 , content: 基础概念 }]
---

View File

@@ -1,8 +1,8 @@
---
title: 数据结构三要素
#description:
#description:
permalink: /manuscripts/ds/introduction-three-elements.html
head:
head:
- [meta, { name: 数据结构 , content: 数据结构三要素 }]
---

View File

@@ -1,8 +1,8 @@
---
title: 算法和算法评价
#description:
#description:
permalink: /manuscripts/ds/introduction-algorithm-evaluation.html
head:
head:
- [meta, { name: 数据结构 , content: 算法和算法评价 }]
---
@@ -16,7 +16,7 @@ root(算法和算法评价)
(可行性)
(输入)
(输出)
(算法的评价)
(时间复杂度)
(空间复杂度)
@@ -71,8 +71,6 @@ int test(n) {
.....
}
```
在这个简单的函数里

View File

@@ -2,6 +2,7 @@
title: 交换排序
permalink: /manuscripts/ds/sort-algorithm/swap-sort.html
---
# 交换排序
努力赶稿中,等等我呀...

View File

@@ -2,6 +2,7 @@
title: 选择排序
permalink: /manuscripts/ds/sort-algorithm/select-sort.html
---
# 选择排序
努力赶稿中,等等我呀...

View File

@@ -2,6 +2,7 @@
title: 归并排序
permalink: /manuscripts/ds/sort-algorithm/merge-sort.html
---
# 归并排序
努力赶稿中,等等我呀...

View File

@@ -2,6 +2,7 @@
title: 外部排序
permalink: /manuscripts/ds/sort-algorithm/outer-sort.html
---
# 外部排序
努力赶稿中,等等我呀...

View File

@@ -2,6 +2,7 @@
title: 一些总结
permalink: /manuscripts/ds/sort-algorithm/summary.html
---
# 总结
努力赶稿中,等等我呀...

Some files were not shown because too many files have changed in this diff Show More