diff --git a/.vitepress/config.js b/.vitepress/config.js index e0af23d..3708412 100644 --- a/.vitepress/config.js +++ b/.vitepress/config.js @@ -4,6 +4,11 @@ import mathjax3 from 'markdown-it-mathjax3'; import { main_sidebar, chapter2, chapter3, chapter4, chapter5, chapter6, chapter7, chapter8, chapter9 } from './sidebar.js'; import { nav } from './nav.js'; import PanguPlugin from 'markdown-it-pangu' +import { createWriteStream } from 'node:fs' +import { resolve } from 'node:path' +import { SitemapStream } from 'sitemap' + +const links = [] const customElements = [ 'mjx-container', @@ -152,5 +157,23 @@ export default withMermaid({ }, }, }, + transformHtml: (_, id, { pageData }) => { + if (!/[\\/]404\.html$/.test(id)) + links.push({ + // you might need to change this if not using clean urls mode + url: pageData.relativePath.replace(/((^|\/)index)?\.md$/, '$2'), + lastmod: pageData.lastUpdated + }) + }, + buildEnd: async ({ outDir }) => { + const sitemap = new SitemapStream({ + hostname: 'https://hdu-cs.wiki/' + }) + const writeStream = createWriteStream(resolve(outDir, 'sitemap.xml')) + sitemap.pipe(writeStream) + links.forEach((link) => sitemap.write(link)) + sitemap.end() + await new Promise((r) => writeStream.on('finish', r)) + }, }) diff --git a/.vitepress/nav.js b/.vitepress/nav.js index c15f170..10a4204 100644 --- a/.vitepress/nav.js +++ b/.vitepress/nav.js @@ -15,6 +15,7 @@ export function nav() { { text: '9.计算机网络', link: '9.计算机网络/9.计算机网络' }, ] }, + { text: '博客', link: '/blog/' }, { text: 'Wiki史', link: '/wiki史' }, { text: '友链', items: diff --git a/.vitepress/sidebar.js b/.vitepress/sidebar.js index f300273..607f7f2 100644 --- a/.vitepress/sidebar.js +++ b/.vitepress/sidebar.js @@ -23,8 +23,7 @@ export function main_sidebar() { { text: '1.9问题专题:好想进入实验室', link: '/1.杭电生存指南/1.9问题专题:好想进入实验室' }, { text: '1.10如何读论文', link: '/1.杭电生存指南/1.10如何读论文' }, { text: '1.11陷入虚无主义?进来看看吧', link: '/1.杭电生存指南/1.11陷入虚无主义?进来看看吧' }, - { text: '1.12程序员如何活久一点', link: '/1.杭电生存指南/1.12程序员如何活久一点' }, - { text: '1.13选课原则与抢课技巧', link: '/1.杭电生存指南/1.13选课原则与抢课技巧' }, + { text: '1.12选课原则与抢课技巧', link: '/1.杭电生存指南/1.12选课原则与抢课技巧' }, ] }, { @@ -652,7 +651,6 @@ export function chapter9() { collapsed: false, items: [ { text: '9.计算机网络', link: '/9.计算机网络/9.计算机网络' }, - { text: '9.1链路层', link: '/9.计算机网络/9.1链路层' }, ] } ] diff --git a/.vitepress/theme/font/NotoSansMono-Regular.ttf b/.vitepress/theme/font/NotoSansMono-Regular.ttf new file mode 100644 index 0000000..b7615d8 Binary files /dev/null and b/.vitepress/theme/font/NotoSansMono-Regular.ttf differ diff --git a/.vitepress/theme/font/NotoSansSC-Bold.otf b/.vitepress/theme/font/NotoSansSC-Bold.otf new file mode 100644 index 0000000..172eb67 Binary files /dev/null and b/.vitepress/theme/font/NotoSansSC-Bold.otf differ diff --git a/.vitepress/theme/font/NotoSansSC-Regular.otf b/.vitepress/theme/font/NotoSansSC-Regular.otf new file mode 100644 index 0000000..d350ffa Binary files /dev/null and b/.vitepress/theme/font/NotoSansSC-Regular.otf differ diff --git a/.vitepress/theme/style.css b/.vitepress/theme/style.css index 87ef58a..c3fcf40 100644 --- a/.vitepress/theme/style.css +++ b/.vitepress/theme/style.css @@ -2,10 +2,35 @@ * Customize default theme styling by overriding CSS variables: * https://github.com/vuejs/vitepress/blob/main/src/client/theme-default/styles/vars.css */ -@import url('https://fonts.loli.net/css2?family=Noto+Color+Emoji&family=Noto+Sans+Mono:wght@400;500;600;700&family=Noto+Sans+SC:wght@400;500;700&display=swap'); /** * Colors * -------------------------------------------------------------------------- */ +@font-face { + font-family: 'Noto Color Emoji'; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url(https://gstatic.loli.net/s/notocoloremoji/v25/Yq6P-KqIXTD0t4D9z1ESnKM3-HpFabsE4tq3luCC7p-aXxcn.9.woff2) format('woff2'); + unicode-range: U+200d, U+261d, U+2620, U+2639-263a, U+2665, U+270a-270d, U+2728, U+2763-2764, U+2b50, U+fe0f, U+1f31a-1f31f, U+1f32b, U+1f383, U+1f389, U+1f3fb-1f3ff, U+1f440-1f450, U+1f463-1f465, U+1f479-1f47b, U+1f47d-1f480, U+1f485, U+1f48b-1f48c, U+1f493-1f49f, U+1f4a4-1f4a6, U+1f4a8-1f4ab, U+1f4af, U+1f525, U+1f573, U+1f590, U+1f595-1f596, U+1f5a4, U+1f5e3, U+1f600-1f644, U+1f648-1f64a, U+1f64c, U+1f64f, U+1f90c-1f925, U+1f927-1f92f, U+1f932-1f933, U+1f970-1f976, U+1f978-1f97a, U+1f9a0, U+1f9b4-1f9b7, U+1f9bb, U+1f9be-1f9bf, U+1f9d0, U+1f9e0-1f9e1, U+1fa75-1fa79, U+1fac0-1fac2, U+1fae0-1fae6, U+1fae8, U+1faf0-1faf8; +} + +@font-face { + font-family: 'Noto Sans SC'; + font-weight: 400; + src: url('./font/NotoSansSC-Regular.otf'); +} + +@font-face { + font-family: 'Noto Sans SC'; + font-weight: 700; + src: url('./font/NotoSansSC-Bold.otf'); +} + +@font-face { + font-family: 'Noto Sans Mono'; + font-weight: 400; + src: url('./font/NotoSansMono-Regular.ttf'); +} .dark .vp-doc a,#loading, .dark .vp-doc a>code, .dark .VPNavBarMenuLink.VPNavBarMenuLink:hover, .dark .VPNavBarMenuLink.VPNavBarMenuLink.active, .dark .link.link:hover, .dark .link.link.active, .dark .edit-link-button.edit-link-button, .dark .pager-link .title { color: var(--vp-c-brand-lighter); diff --git a/1.杭电生存指南/1.12程序员如何活久一点.md b/1.杭电生存指南/1.12程序员如何活久一点.md deleted file mode 100644 index 2bbbdcf..0000000 --- a/1.杭电生存指南/1.12程序员如何活久一点.md +++ /dev/null @@ -1,41 +0,0 @@ -# 程序员如何活久一点 -### 1. 术语 - -* ACM: All-Cause Mortality / 全因死亡率 - -### 2. 目标 - -* 稳健地活得更久 - -### 3. 关键结果 - -* 降低66.67%全因死亡率 -* 增加\~20年预期寿命 -* ~~维持多巴胺于中轴~~ - -### 4. 分析 - -* 主要参考:对ACM的学术文献相对较多,可以作为主要参考 -* 增加寿命与ACM关系非线性:显然增加寿命与ACM关系是非线性函数,这里假设 `DeltaLifeSpan=(1/(1+DeltaACM)-1)*10`(DeltaACM为ACM变化值;公式欢迎优化) -* 变量无法简单叠加:显然各个变量之间并不符合独立同分布假设,变量之间的实际影响也并不明确 -* 存在矛盾观点:所有的证据都有文献/研究对应,但注意到:有些文献之间有显著矛盾的观点(如对于碳水摄入比例的矛盾);有些文献存在较大争议(如认为22点前睡觉会提升43%全因死亡率) -* 研究仅表达相关:所有文献表明的更多是相关而非因果,在阅读时要考虑文献是否充分证明了因果 —— 如某文献表明了日均>=7000步的人有显著低的全因死亡率。但步数少的人可能包含更多长期病患,如果没有合理的排除这块数据,那此文献调查失真 - -### 5. 行动 - -* 输入 - * 固体:吃白肉(-11%\~-3% ACM)、蔬果为主(-26%\~-17% ACM),多吃辣(-23% ACM),多吃坚果(-27%\~-4% ACM),*少吃蛋黄(否则+7% ACM/0.5颗/天)(存在争议)*,中量碳水、多吃植物蛋白(-10% ACM),少吃超加工食物(-62%\~-18%) - * 液体:喝咖啡(-22%\~-12% ACM),喝牛奶(-17%\~-10% ACM),喝茶(-15%\~-8% ACM),少喝或不喝甜味饮料(否则每天一杯+7% ACM,+多巴胺),戒酒或每周100g(纯酒精量(g)=饮酒量(ml)×酒精浓度(%)×酒精密度0.8g/ml)内(否则+\~50% ACM,无上限) - * 气体:不吸烟(否则+~50% ACM,-12\~-11年寿命) - * 光照:晒太阳(-~40% ACM) - * 药物:二甲双胍(糖尿病人相比正常人可以+3年)、复合维生素(-8%癌症风险)、亚精胺(-60%\~-30% ACM)、葡萄糖胺(-39% ACM) -* 输出 - * 运动:每周3次45分钟挥拍运动(-47% ACM) - * 日常:刷牙(-25% ACM) - * 睡眠:每天睡7小时全因死亡率最低;且22-24点间最好,*早睡+43% ACM,晚睡+15% ACM(存在争议)* -* 上下文 - * 体重:减肥(-54% ACM) - -::: tip 🧑‍🍳 -全文 [程序员延寿指南 | A programmer's guide to live longer](https://github.com/geekan/HowToLiveLonger) -::: diff --git a/1.杭电生存指南/1.13选课原则与抢课技巧.md b/1.杭电生存指南/1.12选课原则与抢课技巧.md similarity index 100% rename from 1.杭电生存指南/1.13选课原则与抢课技巧.md rename to 1.杭电生存指南/1.12选课原则与抢课技巧.md diff --git a/2.高效学习/2.2优雅的使用工具.md b/2.高效学习/2.2优雅的使用工具.md index 6589dfa..828385f 100644 --- a/2.高效学习/2.2优雅的使用工具.md +++ b/2.高效学习/2.2优雅的使用工具.md @@ -34,7 +34,7 @@ wget http://ftp.gnu.org/gnu/coreutils/coreutils-8.32.tar.xz tar -xJf coreutils-8.32.tar.xz cd coreutils-8.32/ # Download patch -wget https://raw.githubusercontent.com/jarun/advcpmv/master/advcpmv-0.8-8.32.patch +wget https://ghproxy.com/https://raw.githubusercontent.com/jarun/advcpmv/master/advcpmv-0.8-8.32.patch # Patching display with process bar patch -p1 -i advcpmv-0.8-8.32.patch # Compile then install diff --git a/7.网络应用开发/7.1.2.1基础部分.md b/7.网络应用开发/7.1.2.1基础部分.md index e157ba4..637eecc 100644 --- a/7.网络应用开发/7.1.2.1基础部分.md +++ b/7.网络应用开发/7.1.2.1基础部分.md @@ -148,10 +148,9 @@ https://www.runoob.com/http/http-intro.html #### 补充资料: -- [《互联网时代》纪录片](https://www.bilibili.com/video/BV1DU4y147XR/) - 与 HTTP 没什么关系,但给当时的我带来极大的震撼和触动。互联网是人类连接的重要一步,是对人类自由、平等、互通之理念长达半个世纪的深刻贯彻。 - - +- [《互联网时代》纪录片](https://www.bilibili.com/video/BV1uE411o7UW/) - 与 HTTP 没什么关系,但给当时的我带来极大的震撼和触动。互联网是人类连接的重要一步,是对人类自由、平等、互通之理念长达半个世纪的深刻贯彻。 + > 原本稀薄的得以聚合,曾经蜷曲的得以伸展,容易被忽略的得以显现,可能被排斥的获得接纳:孤独的不再孤独,卑微的不再卑微,每一个生命绽放的声音,从来没有像这样韵味深长。 diff --git a/9.计算机网络/9.计算机网络.md b/9.计算机网络/9.计算机网络.md index 41e32e3..14e73de 100644 --- a/9.计算机网络/9.计算机网络.md +++ b/9.计算机网络/9.计算机网络.md @@ -8,7 +8,7 @@ 本讲义的计算机网络部分共分为5个章节 -## 计网速通 +## 计算机网络速通 虽然名字看起来像是考前抱佛脚的章节,但他速通的并不是计网这一课程,是做简单Web开发所必须具备的计网知识。 @@ -16,29 +16,31 @@ 上面提到“应用层和传输层”,或许你现在还不知道计算机网络的五层结构(也有其他划分,但是该划分利于学习),这也没关系,在本章节,可以暂时也不需要知道。 -而计算机网络这一课程其实往往并不太会涉及到这一块内容,或许网络开发和协议分析一类的选修课程会讲解这一部分内容? +计算机网络这一课程其实往往并不太会涉及到这一块内容,或许网络开发一类的选修课程会讲解这一部分内容。 -## 计网基础 +## 计算机网络基础 -这里是计算机网络课程的重点内容,并且适当地做出一些拓展,尽量让大家对计算机网络拥有一个完整且合理自洽的知识图谱。 +这里是计算机网络课程的重点内容,并且适当地做出一些拓展,使其更贴近于现行互联网,尽量让大家对计算机网络拥有一个完整且合理自洽的知识图谱。 写这篇讲义的我本人非常注重知识的自洽,就比如说计网的整个体系,他确实很庞大也需要这么庞大来解决全球的网络问题。 我认为如果你的知识并不能够自洽,那么在你的脑海中这其实就是异常的,不自然的,需要拐弯子才能想明白的。反之,在你的脑海中自洽的知识你是很容易理清其中逻辑的而且不容易忘,因为此时你会觉得“他就该这样,不然呢?”。 -在这个章节我们会从物理层开始自底向上地介绍计算机网络,直到讲解完传输层,不是自顶向下哈,这里选择的是教材的反方向。两个方向其实都有他的道理,自底向上是符合历史逻辑的,毕竟得先有下层的支持才会有上层。 +在这个章节我们会从物理层开始自底向上地介绍计算机网络,直到讲解完传输层,自底向上是符合历史逻辑的,得先有下层的支持才会有上层。 ## 路由与交换 -路由与交换的理论知识,并不涉及实践,其实大家也没这个需求,就不做过多的讲解了。 +路由与交换的理论知识,并不涉及实践主要应付考试,但为了追求知识体系完整,会比考试内容稍多,但都是理解性质的。其实大家一般也没这个需求,除非专门做运维或者类似方向的开发,大伙都不需要了解具体怎么搭建网络,不会做过多的原理性讲解了。 -如果你确实有在真实世界中部署路由协议的需求,请移步路由佬入门指南或者拿好你的设备并考虑加入DN11。 +如果你确实有在真实世界中搭建网络的需求,请移步路由佬入门指南或者拿好你的设备并考虑加入DN11。 -主要讨论一下路由器,交换机,各种路由协议和他们工作的位置,还有NAT,最终把这些东西排排好,给大家一个完整的互联网模型(对比真实互联网做了一些简化,但该有的协议和设备都会有) +这里主要讨论一下路由器,交换机,各种路由协议和他们工作的位置,还有NAT,最终把这些东西排排好,给大家一个完整的互联网模型(对比真实互联网做了一些简化,但该有的协议类型都会有) ## 隧道和代理 -其实到现在互联网的全图景已经差不多讲解完了,但除此之外隧道和代理也是计算机网络中重要的一部分,他们工作的比较高的层却提供着更低层次的功能(其实路由协议很多也这样)。 +其实到现在一个理想化的互联网全图景已经差不多讲解完了,现在要正式完全脱离计算机网络这一课程的范畴了。 + +隧道和代理也是计算机网络中重要的一部分,他们工作的比较高的层却提供着更低层次的功能(其实路由协议很多也这样)。 前面讲解到,通过配置路由协议可以进行路由交换完成组网,但这仅仅可用于物理设备,如果两台路由器之间并没有网线的直接连接,那么我们的路由协议根本无法工作。 @@ -61,3 +63,49 @@ 有这样的一个群体,我们普遍称呼他们为“路由佬”,他们便是这样一群,沉迷于配网的一群人。 本章节存在的意义和前面的章节不同,并非是教学,而是劝人快去配网,非常重实践,上面讨论的都是简化模型,理想模型,学习模型,再往下就是实验性网络和真实互联网了,这其实已经脱离了该讲义的宗旨了,所以只会概述概述概述。 +## 画个饼先 + +```mermaid + graph LR + 计算机网络 --> 计算机网络速通 + 计算机网络 --> 计算机网络基础 + 计算机网络 --> 路由与交换 + 计算机网络 --> 隧道与代理 + 计算机网络 --> 路由佬入门指南 + 计算机网络基础 ---> 物理层 + 计算机网络基础 ---> 链路层 + 计算机网络基础 ---> 网络层 + 计算机网络基础 ---> 传输层 + 计算机网络基础 ---> DNS与应用层概述 + 路由与交换 ---> 路由设备 + 路由与交换 ---> 路由协议 + 路由与交换 ---> NAT + 路由与交换 ---> 真实互联网概述 + 隧道与代理 ---> GRE + 隧道与代理 ---> WireGuard + 隧道与代理 ---> L2TP/IPSec + 隧道与代理 ---> 正向代理 + 隧道与代理 ---> 反向代理 + 路由佬入门指南 ---> openwrt/ikuai/ros/vyos 介绍 + 路由佬入门指南 ---> 主路由,旁路由,单臂路由 以及 All in boom + 路由佬入门指南 ---> 双节点异地组网,以 WireGuard 为例 + 路由佬入门指南 ---> 多节点高可用网络概论,以 OSPF over WireGuard 为例 + 路由佬入门指南 ---> 大规模实验性网络概论 + 路由佬入门指南 ---> 走得更深入... + 链路层 ---> 数据帧/MAC/CRC + 链路层 ---> PPP + 链路层 ---> ARP + 网络层 ---> IP地址 + 网络层 ---> 子网/掩码/CIDR + 网络层 ---> IPv6概述 + 传输层 ---> 端口 + 传输层 ---> UDP + 传输层 ---> TCP概述 + 传输层 ---> TCP握手挥手 + 传输层 ---> TCP滑动窗口 + 传输层 ---> TCP拥塞控制 + 路由协议 ---> RIP + 路由协议 ---> OSPF + 路由协议 ---> 自治域与BGP概述 + +``` diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 7c31dd3..27fcef1 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -158,4 +158,39 @@ Fork 本仓库,然后在你的仓库中进行修改,修改完成后在本仓 ``` :::tip 语法自查 https://mermaid.js.org + ::: + +3. 代码分块 + + ``` + ::: code-group + + ```sh [npm] + $ npm install -D vitepress + ``` + + ```sh [pnpm] + $ pnpm add -D vitepress + ``` + + ```sh [yarn] + $ yarn add -D vitepress + ``` + + ::: + ``` + ::: code-group + + ```sh [npm] + $ npm install -D vitepress + ``` + + ```sh [pnpm] + $ pnpm add -D vitepress + ``` + + ```sh [yarn] + $ yarn add -D vitepress + ``` + ::: \ No newline at end of file diff --git a/blog/index.md b/blog/index.md new file mode 100644 index 0000000..3838745 --- /dev/null +++ b/blog/index.md @@ -0,0 +1,30 @@ +--- +title: Blogs +footer: false +editLink: false +aside: false +next: false +lastUpdated: false +sidebar: false +--- + + + +# Friends + + + +--- + +# Recent Posts + + + +在GitHub上修改关注列表 diff --git a/components/Blogger.vue b/components/Blogger.vue new file mode 100644 index 0000000..af9f78a --- /dev/null +++ b/components/Blogger.vue @@ -0,0 +1,51 @@ + + + + + \ No newline at end of file diff --git a/components/BloggerItem.vue b/components/BloggerItem.vue new file mode 100644 index 0000000..25655e3 --- /dev/null +++ b/components/BloggerItem.vue @@ -0,0 +1,239 @@ + + + + + \ No newline at end of file diff --git a/components/Pagination.vue b/components/Pagination.vue new file mode 100644 index 0000000..3994a14 --- /dev/null +++ b/components/Pagination.vue @@ -0,0 +1,149 @@ + + + + + + + diff --git a/components/PostItem.vue b/components/PostItem.vue new file mode 100644 index 0000000..e04c1c5 --- /dev/null +++ b/components/PostItem.vue @@ -0,0 +1,222 @@ + + + + + \ No newline at end of file diff --git a/components/PostList.vue b/components/PostList.vue new file mode 100644 index 0000000..727dbb4 --- /dev/null +++ b/components/PostList.vue @@ -0,0 +1,247 @@ + + + + + + diff --git a/package-lock.json b/package-lock.json index 40643ff..9c5bbec 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,8 @@ "@jupyterlab/theme-light-extension": "^4.0.3", "@vueuse/core": "^10.2.1", "markdown-it": "^13.0.1", - "markdown-it-pangu": "^1.0.2" + "markdown-it-pangu": "^1.0.2", + "sitemap": "^7.1.1" }, "devDependencies": { "@mermaid-js/mermaid-mindmap": "^9.3.0", @@ -1377,6 +1378,11 @@ "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==", "dev": true }, + "node_modules/@types/node": { + "version": "17.0.45", + "resolved": "https://registry.npmmirror.com/@types/node/-/node-17.0.45.tgz", + "integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==" + }, "node_modules/@types/prop-types": { "version": "15.7.5", "resolved": "https://registry.npmmirror.com/@types/prop-types/-/prop-types-15.7.5.tgz", @@ -1392,6 +1398,14 @@ "csstype": "^3.0.2" } }, + "node_modules/@types/sax": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/@types/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-pSAff4IAxJjfAXUG6tFkO7dsSbTmf8CtUpfhhZ5VhkRpC4628tJhh3+V6H1E+/Gs9piSzYKT5yzHO5M4GG9jkw==", + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/scheduler": { "version": "0.16.3", "resolved": "https://registry.npmmirror.com/@types/scheduler/-/scheduler-0.16.3.tgz", @@ -1742,6 +1756,11 @@ "integrity": "sha512-lEm8mt52to2fT8GhciPCGeCXACSz2UwIN4X2e2LJSnZ5uAbn2/dsYdOmUXq0AtWS5cpAupysIneExOgH0Vd2TQ==", "dev": true }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmmirror.com/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" + }, "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmmirror.com/argparse/-/argparse-2.0.1.tgz", @@ -3516,6 +3535,11 @@ "postcss": "^8.3.11" } }, + "node_modules/sax": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, "node_modules/scheduler": { "version": "0.23.0", "resolved": "https://registry.npmmirror.com/scheduler/-/scheduler-0.23.0.tgz", @@ -3567,6 +3591,24 @@ "vscode-textmate": "^8.0.0" } }, + "node_modules/sitemap": { + "version": "7.1.1", + "resolved": "https://registry.npmmirror.com/sitemap/-/sitemap-7.1.1.tgz", + "integrity": "sha512-mK3aFtjz4VdJN0igpIJrinf3EO8U8mxOPsTBzSsy06UtjZQJ3YY3o3Xa7zSc5nMqcMrRwlChHZ18Kxg0caiPBg==", + "dependencies": { + "@types/node": "^17.0.5", + "@types/sax": "^1.2.1", + "arg": "^5.0.0", + "sax": "^1.2.4" + }, + "bin": { + "sitemap": "dist/cli.js" + }, + "engines": { + "node": ">=12.0.0", + "npm": ">=5.6.0" + } + }, "node_modules/slick": { "version": "1.12.2", "resolved": "https://registry.npmmirror.com/slick/-/slick-1.12.2.tgz", @@ -5568,6 +5610,11 @@ "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==", "dev": true }, + "@types/node": { + "version": "17.0.45", + "resolved": "https://registry.npmmirror.com/@types/node/-/node-17.0.45.tgz", + "integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==" + }, "@types/prop-types": { "version": "15.7.5", "resolved": "https://registry.npmmirror.com/@types/prop-types/-/prop-types-15.7.5.tgz", @@ -5583,6 +5630,14 @@ "csstype": "^3.0.2" } }, + "@types/sax": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/@types/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-pSAff4IAxJjfAXUG6tFkO7dsSbTmf8CtUpfhhZ5VhkRpC4628tJhh3+V6H1E+/Gs9piSzYKT5yzHO5M4GG9jkw==", + "requires": { + "@types/node": "*" + } + }, "@types/scheduler": { "version": "0.16.3", "resolved": "https://registry.npmmirror.com/@types/scheduler/-/scheduler-0.16.3.tgz", @@ -5816,6 +5871,11 @@ "integrity": "sha512-lEm8mt52to2fT8GhciPCGeCXACSz2UwIN4X2e2LJSnZ5uAbn2/dsYdOmUXq0AtWS5cpAupysIneExOgH0Vd2TQ==", "dev": true }, + "arg": { + "version": "5.0.2", + "resolved": "https://registry.npmmirror.com/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" + }, "argparse": { "version": "2.0.1", "resolved": "https://registry.npmmirror.com/argparse/-/argparse-2.0.1.tgz", @@ -7293,6 +7353,11 @@ "postcss": "^8.3.11" } }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, "scheduler": { "version": "0.23.0", "resolved": "https://registry.npmmirror.com/scheduler/-/scheduler-0.23.0.tgz", @@ -7335,6 +7400,17 @@ "vscode-textmate": "^8.0.0" } }, + "sitemap": { + "version": "7.1.1", + "resolved": "https://registry.npmmirror.com/sitemap/-/sitemap-7.1.1.tgz", + "integrity": "sha512-mK3aFtjz4VdJN0igpIJrinf3EO8U8mxOPsTBzSsy06UtjZQJ3YY3o3Xa7zSc5nMqcMrRwlChHZ18Kxg0caiPBg==", + "requires": { + "@types/node": "^17.0.5", + "@types/sax": "^1.2.1", + "arg": "^5.0.0", + "sax": "^1.2.4" + } + }, "slick": { "version": "1.12.2", "resolved": "https://registry.npmmirror.com/slick/-/slick-1.12.2.tgz", diff --git a/package.json b/package.json index c996506..7448d20 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,8 @@ "@jupyterlab/theme-light-extension": "^4.0.3", "@vueuse/core": "^10.2.1", "markdown-it": "^13.0.1", - "markdown-it-pangu": "^1.0.2" + "markdown-it-pangu": "^1.0.2", + "sitemap": "^7.1.1" }, "devDependencies": { "@mermaid-js/mermaid-mindmap": "^9.3.0",