Skip to content

Commit 5ca46da

Browse files
committed
fix: 🐛 修复链接问题
1 parent b9739d3 commit 5ca46da

File tree

9 files changed

+63
-28
lines changed

9 files changed

+63
-28
lines changed

Diff for: .vitepress/config.mts

+12-3
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,20 @@
1+
import { resolve } from "node:path";
12
import { defineConfig } from "vitepress";
23
import { SearchPlugin } from "@ver5/vitepress-plugin-search";
34

45
import markIt from "markdown-it-mark";
5-
import { REPO_URL, OUT_DIR, BASE_NAME, SRC_DOC } from "./const";
6+
import { REPO_URL, SRC_DOC, OUT_DIR, AUTHOR } from "./const";
7+
import { gHLink2JSON } from "./utils";
68
import nav from "./nav";
79
import { books, sidebar } from "./sidebar";
810
import { linkPlugin } from "./plugins/linkPlugin";
911
import { rustCodePlugin } from "./plugins/rustcode/runCodePlugin";
1012
import { imageSizePlugin } from "./plugins/imagePlugin";
1113
import { alignPlugin } from "./plugins/alignPlugin";
1214

15+
const BASE_PATH = gHLink2JSON(REPO_URL).label.replace(AUTHOR, '');
1316

17+
console.log(resolve(__dirname))
1418
// https://vitepress.dev/reference/site-config
1519
export default defineConfig({
1620
lang: "zh-CN",
@@ -22,8 +26,13 @@ export default defineConfig({
2226
],
2327
srcDir: SRC_DOC,
2428
outDir: OUT_DIR,
25-
base: BASE_NAME,
29+
base: BASE_PATH,
2630
vite: {
31+
resolve: {
32+
alias: {
33+
"@vp": resolve(__dirname),
34+
},
35+
},
2736
plugins: [
2837
SearchPlugin({
2938
previewLength: 42,
@@ -66,7 +75,7 @@ export default defineConfig({
6675
copyright: "Copyright © 2023-present ChandlerVer5",
6776
},
6877
editLink: {
69-
pattern: REPO_URL + "edit/main/docs/:path",
78+
pattern: REPO_URL + "/edit/main/docs/:path",
7079
text: "Edit this page on GitHub",
7180
},
7281
// socialLinks: [

Diff for: .vitepress/const.ts

+6-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
/** 定义常量 */
2+
export const SRC_DOC = "docs";
23

3-
export const BASE_NAME = "/rust_study";
44
export const OUT_DIR = "dist";
5-
export const SRC_DOC = "docs";
65

7-
export const REPO_URL = 'https://github.com/ChandlerVer5/rust_study/'
6+
export const AUTHOR = 'uxiew'
7+
8+
export const REPO_URL = 'https://github.com/uxiew/rust_study'
9+
10+
export const RUST_REPO_URL = 'https://github.com/rust-lang/rust'

Diff for: .vitepress/plugins/linkPlugin.ts

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import type MarkdownIt from 'markdown-it'
22
import { normalizeLink } from './utils'
3-
import { BASE_NAME } from '../const'
43

54
export interface Options {
65
books: any[]
@@ -18,7 +17,7 @@ const getRegRules = (text: string) => [
1817
]
1918

2019
function toLinkUrl(raw: string, rule: string, link: string) {
21-
return raw.replace(new RegExp(rule, 'g'), (matchText) => `<a href=${normalizeLink(BASE_NAME + link)}>${matchText}</a>`)
20+
return raw.replace(new RegExp(rule, 'g'), (matchText) => `<a href=${normalizeLink(link)} target="_blank">${matchText}</a>`)
2221
}
2322

2423
/**

Diff for: .vitepress/utils/index.ts

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
2+
3+
export function gHLink2JSON(GH_URL: string) {
4+
return {
5+
"label": GH_URL.replace('https://github.com/', ''),
6+
"url": GH_URL,
7+
}
8+
}

Diff for: LICENSE

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
MIT License
2-
Copyright (c) 2023 ChandlerVer5
2+
Copyright (c) 2023 uxiew
33
Permission is hereby granted, free of charge, to any person obtaining a copy
44
of this software and associated documentation files (the "Software"), to deal
55
in the Software without restriction, including without limitation the rights

Diff for: docs/index.md

+9-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,15 @@
11
# Dive Into Rust!
22

3-
> 项目地址:[ChandlerVer5/rust_study](https://github.com/ChandlerVer5/rust_study/)
3+
<script setup>
4+
import { ref } from 'vue'
5+
import { REPO_URL } from '@vp/const'
6+
import { gHLink2JSON } from '@vp/utils'
47

8+
const repo = ref(gHLink2JSON(REPO_URL))
9+
</script>
10+
11+
> 项目地址:<a :href=repo.url target="_blank">{{repo.label}}</a>
12+
>
513
> 随着作者的学习,持续更新、修正...
614
715
**Rust 是一种低级静态类型的多范式编程语言,专注于安全性和性能**

Diff for: docs/第 1 章 步入Rust的世界(第一部分 基础知识)/1.1 版本和发布策略.md

+20-12
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,34 @@
11
# 1.1 版本和发布策略
22

3-
Rust 编程语言是开源的,编译器的源码位于<https://github.com/rust-lang/rust> 项目中,语言设计和相关讨论位于<https://github.com/rust-lang/rfcs> 项目中。对于想深入研究这门语言的读者来说,这是一个非常好的消息,大家可以通过研读开放的源代码和技术文档了解到很多书本上没有讲解过的知识。任何一个开发者都可以直接给这个项目提 bug,或者直接贡献代码。Rust 项目是完全由开源社区管理和驱动的,社区的氛围非常友好。
3+
<script setup>
4+
import { ref } from 'vue'
5+
import { RUST_REPO_URL } from '@vp/const'
6+
import { gHLink2JSON } from '@vp/utils'
7+
8+
const rustRepo= ref(gHLink2JSON(RUST_REPO_URL))
9+
</script>
10+
11+
Rust 编程语言是开源的,编译器的源码位于 <a :href=rustRepo.url target="_blank">{{rustRepo.label}}</a>,语言设计和相关讨论位于 [rust-lang/rfcs](https://github.com/rust-lang/rfcs) 项目中。对于想深入研究这门语言的读者来说,这是一个非常好的消息,大家可以通过研读开放的源代码和技术文档了解到很多书本上没有讲解过的知识。任何一个开发者都可以直接给这个项目提 bug,或者直接贡献代码。Rust 项目是完全由开源社区管理和驱动的,社区的氛围非常友好。
412

513
Rust 编译器的版本号采用了“语义化版本号”(Semantic Versioning)规划。在这个规则之下,版本格式为:主版本号。次版本号.修订号。版本号递增规则如下。
614

7-
* 主版本号:当你做了不兼容的 API 修改
8-
* 次版本号:当你做了向下兼容的功能性新增
9-
* 修订号:当你做了向下兼容的问题修正
15+
- 主版本号:当你做了不兼容的 API 修改
16+
- 次版本号:当你做了向下兼容的功能性新增
17+
- 修订号:当你做了向下兼容的问题修正
1018

1119
Rust 的第一个正式版本号是 1.0,是 2015 年 5 月发布的。从那以后,只要版本没有出现大规模的不兼容的升级,大版本号就一直维持在“1”,而次版本号会逐步升级。Rust 一般以 6 个星期更新一个正式版本的速度进行迭代。
1220

1321
为了兼顾更新速度以及稳定性,Rust 工具链分为三个发布渠道:
1422

15-
* nightly 版本
16-
* beta 版本
17-
* stable 版本
23+
- nightly 版本
24+
- beta 版本
25+
- stable 版本
1826

19-
| 版本类型 | 描述 |
20-
| --- | --- |
21-
| Nightly | 每天从 develop 的主分支自动创建出来的版本,这个版本包含所有最新功能,但是某些功能存在问题的可能性也更大。因为新功能会首先在这个版本上开启,供用户试用。 |
22-
| Beta | 每六周发布一次。将一些在 nightly 版本中验证过的功能开放给用户使用。它可以被看作 stable 版本的“预发布”版本。 |
23-
| Stable | 正式版,每六周发布一个新版本,一些实验性质的新功能在此版本上无法使用。它也是最稳定、最可靠的版本。stable 版本是保证向前兼容的。 |
27+
| 版本类型 | 描述 |
28+
| -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
29+
| Nightly | 每天从 develop 的主分支自动创建出来的版本,这个版本包含所有最新功能,但是某些功能存在问题的可能性也更大。因为新功能会首先在这个版本上开启,供用户试用。 |
30+
| Beta | 每六周发布一次。将一些在 nightly 版本中验证过的功能开放给用户使用。它可以被看作 stable 版本的“预发布”版本。 |
31+
| Stable | 正式版,每六周发布一个新版本,一些实验性质的新功能在此版本上无法使用。它也是最稳定、最可靠的版本。stable 版本是保证向前兼容的。 |
2432

2533
鼓励开发人员使用稳定版本渠道。但是,Nightly 版本启用了前沿的不稳定功能,某些库和程序可能会需要此功能。您可以通过 rustup 轻松地更改为 Nightly 工具链。
2634

Diff for: docs/第 32 章 项目和模块(第五部分 实用设施)/32.2 项目配置.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -134,8 +134,8 @@ opt-level = 3
134134
## 32.2.1 cargo 配置文件
135135

136136
cargo 也支持配置文件。配置文件可以定制 cargo 的许多行为,就像我们给 git 设置配置文件一样。
137-
类似的,cargo 的配置文件可以存在多份,它们之间有优先级关系。你可以为某个文件夹单独提供一份配置文件, 例如在当前文件夹下的`.cargo/config.toml`文件,也可以提供一个全局的默认配置,为`$HOME/.cargo/config.toml`文件或者不带 `.toml`扩展名的文件。
138-
Cargo 对 `.toml` 扩展名的支持是在 1.39 版本中添加的,已经是首选形式了。如果这两种形式的配置文件都存在,Cargo 将优先使用不带扩展名的文件。
137+
类似的,cargo 的配置文件可以存在多份,它们之间有优先级关系。你可以为某个文件夹单独提供一份配置文件, 例如在当前文件夹下的 `.cargo/config.toml` 文件,也可以提供一个全局的默认配置,为 `$HOME/.cargo/config.toml` 文件或者不带 `.toml`扩展名的文件。
138+
Cargo 对 `.toml` 扩展名的支持是在 1.39 版本中添加的,已经是首选形式了。如果这两种形式的配置文件都存在,Cargo 将优先使用不带扩展名的文件,并打印 warning,所以推荐使用 `onfig.toml` 配置文件
139139

140140
下面是一份配置示例:
141141
```toml

Diff for: docs/第 6 章 数组和字符串/6.1 数组.md

+4-4
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,7 @@ fn main() {
259259

260260
执行结果为:
261261
```txt
262-
100 90 80 70 60 50 40 30 20 10
262+
100 90 80 70 60 50 40 30 20 10
263263
```
264264

265265
在 Rust 中,还有其他的几种 Range,包括
@@ -298,11 +298,11 @@ fn main() {
298298

299299
```txt
300300
Length: 5
301-
1 2 3 4 5
301+
1 2 3 4 5
302302
Length: 3
303-
3 4 5
303+
3 4 5
304304
Length: 2
305-
3 4
305+
3 4
306306
```
307307

308308
第一次打印,内容为整个`arr`的所有区间。第二次打印,是从`arr`的 index 为`2`的元素开始算起,一直到最后。注意数组是从 index 为`0`开始计算的。

0 commit comments

Comments
 (0)