Skip to content

Commit

Permalink
feat: 给所有博客添加摘要及相关信息
Browse files Browse the repository at this point in the history
  • Loading branch information
Justin3go committed Jul 27, 2024
1 parent c79e45a commit 2ddae1d
Show file tree
Hide file tree
Showing 71 changed files with 1,536 additions and 43 deletions.
42 changes: 35 additions & 7 deletions docs/.vitepress/theme/components/BlogHome.vue
Original file line number Diff line number Diff line change
@@ -1,19 +1,23 @@
<template>
<template v-for="post in curPosts" :key="post.url">
<h2 :id="post.title">
<h2 :id="post.title" class="post-title">
<a :href="post.url">{{ post.title }}</a>
<a
class="header-anchor"
:href="`#${post.title}`"
:aria-label="`Permalink to &quot;${post.title}&quot;`"
>​</a
>
<div class="post-date">{{ post.date.string }}</div>
</h2>
<div
v-if="post.excerpt"
class="prose dark:prose-invert max-w-none text-gray-500 dark:text-gray-300"
v-html="post.excerpt"
></div>
<t-tag
v-for="tag in post.tags"
class="mr-2"
variant="outline"
shape="round"
>{{ tag }}</t-tag
>
<div v-if="post.excerpt" v-html="post.excerpt"></div>
</template>

<!-- <Pagination /> -->
Expand All @@ -32,6 +36,7 @@
</template>
<script lang="ts" setup>
import { ref, computed } from "vue";
import { useData } from "vitepress";
import {
MessagePlugin,
PaginationProps,
Expand All @@ -48,7 +53,6 @@ const size = searchParams.get("size") || 10;
const current = ref(+page);
const pageSize = ref(+size);
console.log("posts", posts);
const total = ref(posts.length);
const curPosts = computed(() => {
Expand Down Expand Up @@ -83,6 +87,9 @@ const onCurrentChange: PaginationProps["onCurrentChange"] = (
top: 0,
});
};
const { isDark } = useData();
const fontColor = isDark.value ? "white" : "black";
</script>
<style lang="scss" scoped>
/* 去掉.vp-doc li + li的margin-top */
Expand All @@ -93,4 +100,25 @@ const onCurrentChange: PaginationProps["onCurrentChange"] = (
margin-top: 0px;
}
}
.mr-2 {
margin-right: 2px;
}
.post-title {
margin-bottom: 6px;
position: relative;
top: 0;
left: 0;
.post-date {
position: absolute;
top: -26px;
left: -10px;
opacity: .05;
font-size: 32px;
font-weight: 900;
}
}
</style>
2 changes: 1 addition & 1 deletion docs/.vitepress/theme/components/NotesRedirect.vue
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ const route = useRoute();
const { path } = route;
const sideBar = createSideBar();
const firstItemLink = sideBar['/notes/'][0].items[0].link;
const firstItemLink = sideBar['/笔记/'][0].items[0].link;
router.go(firstItemLink);
</script>
Expand Down
4 changes: 3 additions & 1 deletion docs/.vitepress/theme/posts.data.mts
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ interface Post {
time: number
string: string
}
tags: string[]
excerpt: string | undefined
}

Expand All @@ -20,7 +21,8 @@ export default createContentLoader('博客/**/*.md', {
title: frontmatter.title,
url,
excerpt,
date: formatDate(url.substring(4, 14) )
date: formatDate(frontmatter.date),
tags: frontmatter.tags
}))
.sort((a, b) => b.date.time - a.date.time)
}
Expand Down
2 changes: 1 addition & 1 deletion docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ lastUpdated: false
isNoComment: true
isNoBackBtn: true
---
# 最近发布
<!-- # 最近发布 -->

<BlogHome />

Expand Down
20 changes: 20 additions & 0 deletions docs/博客/2020/06/01Java迷宫.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,25 @@
---
title: Java迷宫
date: 2020-06-01
tags:
- Java
- 算法
- 迷宫
- 课程设计
---

# Java迷宫

> 摘要
<!-- DESC SEP -->

笔者在这篇博客中分享了一个Java迷宫的课程设计,详细介绍了迷宫的生成及路径寻找算法。迷宫的生成采用了递归分割法和递归回溯法,前者通过在一个被墙壁围住的区域内随机打通墙壁,形成通路;后者则通过从起点出发,随机选择方向并回退,直到所有可能路径都被探索。路径寻找方面,笔者实现了广度优先算法和深度优先算法,前者确保找到最短路径,而后者则提供了一条可行路径。

此外,笔者还提供了相关的Java代码,涵盖了迷宫的生成和路径寻找的实现。通过这些代码,读者可以更好地理解和实现迷宫的相关算法,提升编程能力。整体而言,这篇文章不仅帮助读者掌握了迷宫算法,还展示了笔者在算法实现方面的深入思考。

<!-- DESC SEP -->

最近这学期做了一个java迷宫的课程设计,这里代码及其算法逻辑就分享出来。

首先简单的说一下其中我使用的算法(自动生成地图:递归分割法、递归回溯法;寻找路径:深度优先、广度优先算法)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,31 @@
---
title: 使用anaconda中的Prompt配置虚拟环境的常用命令
date: 2020-06-02
tags:
- anaconda
- conda
- 虚拟环境
- 命令行
---

# 使用anaconda中的Prompt配置虚拟环境的常用命令

> 摘要
<!-- DESC SEP -->

笔者在这篇文章中总结了Anaconda中使用命令行配置虚拟环境的常用命令,以便于自己和他人在需要时快速查阅。首先,文章强调了换源的重要性,提供了查看和更改源的命令,以及国内常用镜像源的链接,如清华大学、阿里云等。此外,笔者还介绍了如何创建和激活虚拟环境的步骤,并提供了安装特定包及查看已安装包的命令。具体命令包括:

- 查看源:`conda config --show-sources`
- 创建虚拟环境:`conda create -n python37 python=3.7`
- 激活虚拟环境:`conda activate (你的环境名)`
- 查看虚拟环境列表:`conda env list`
- 查看当前环境中的包:`conda list`

这份总结为用户提供了便利,避免了每次都要搜索的麻烦。

<!-- DESC SEP -->

因为自己目前也记不到这么多命令,每次去配环境的时候都是问度娘复制粘贴,所以就总结了一下常用的conda命令,方便用的时候直接复制;

参考链接:1.[Windows在命令行中使用conda命令创建删除虚拟环境_我才不会害羞的博客-CSDN博客_conda环境管理](https://blog.csdn.net/qq_45855805/article/details/102979213)
Expand Down
17 changes: 17 additions & 0 deletions docs/博客/2021/04/01scrapy爬虫详解.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,22 @@
---
title: scrapy爬虫详解
date: 2021-04-01
tags:
- 爬虫
- scrapy
- 数据爬取
---

# scrapy爬虫详解

> 摘要
<!-- DESC SEP -->

笔者在这篇博客中详细介绍了Scrapy爬虫的基本原理及其运行过程。首先,笔者阐述了爬虫的基本工作流程,包括身份验证、数据请求、数据解析及保存数据的步骤。接着,笔者重点讲解了Scrapy框架的5+2结构组件,包括引擎、调度器、下载器、数据管道、爬虫、中间件等,强调了各组件的功能及其在爬虫工作中的重要性。通过图示,笔者进一步解释了数据从请求到保存的整个流程,让读者对Scrapy的操作有了更深的理解。此外,笔者还提供了安装Scrapy及创建项目的实战指导,鼓励小白用户勇于尝试,最终通过实例和源码链接引导读者深入学习。

<!-- DESC SEP -->

## 爬虫的原理

**废话**:这个月前几天才开学,事比较少,所以就自学了一下scrapy来爬取B站文章以及标题,后面感觉数据不够,就又爬了每篇文章的点赞数以及评论观看投币数等等来做NLP中的训练;
Expand Down
23 changes: 23 additions & 0 deletions docs/博客/2021/04/02TFIDF计算的学习.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,28 @@
---
title: TFIDF计算的学习
date: 2021-04-02
tags:
- TFIDF
- 文本挖掘
- 机器学习
- 自然语言处理
- Python
- Sklearn
- 余弦相似度
---

# TFIDF计算的学习

> 摘要
<!-- DESC SEP -->

笔者在这篇博客中详细介绍了TF-IDF(Term Frequency-Inverse Document Frequency)的计算过程,首先通过转码函数确保文本文件的编码为UTF-8,并读取文件列表。接着,使用正则表达式对文本进行分词,从而建立词典并计算每个词的词频(TF)。随后,笔者构建了TF矩阵,并逐步计算每个词的逆文档频率(IDF),最终合并TF和IDF值以得到TF-IDF值。

此外,笔者也展示了使用Sklearn库来简化TF-IDF的计算过程,并介绍了如何计算文档之间的余弦相似度,以评估它们的相似性。整个过程通过代码示例和数据框展示,使得读者能够直观理解TF-IDF的实现细节及其应用。

<!-- DESC SEP -->

## 转码

### 定义转码函数
Expand Down
23 changes: 23 additions & 0 deletions docs/博客/2021/08/03操作系统内存分配模拟程序.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,28 @@
---
title: 操作系统内存分配模拟程序
date: 2021-08-03
tags:
- 操作系统
- 内存分配
- 模拟程序
- 首次适应算法
- 循环首次适应算法
- 最佳动态分区分配
- 最差动态分区分配
---

# 操作系统内存分配模拟程序

> 摘要
<!-- DESC SEP -->

笔者在这篇博客中实现了一个操作系统内存分配的模拟程序,主要包含内存管理的基本操作和多种分配算法。首先,程序设置了内存的最大容量,并定义了空闲和已分配内存的表格。接着,作者实现了三个主要的内存分配算法:首次适应算法、循环首次适应算法和最佳/最差动态分区分配算法。这些算法通过遍历空闲内存表,寻找合适的内存块进行分配,并在进程完成后回收内存,合并相邻的空闲块以提高内存利用率。

在测试部分,笔者通过一系列分配任务演示了内存分配的过程,并展示了不同算法在内存分配中的效果。最终,程序不仅展示了内存的实时状态,还有效地模拟了操作系统在实际运行中的内存管理策略。

<!-- DESC SEP -->

## 通用配置


Expand Down
25 changes: 25 additions & 0 deletions docs/博客/2021/08/04散列表实现查找.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,30 @@
---
title: 散列表实现查找
date: 2021-08-04
tags:
- Python
- 数据结构
- 散列表
- 查找
- 哈希
- 开放地址法
- 公共溢出法
- 平方取中法
- 除留余数法
---

# 散列表实现查找

> 摘要
<!-- DESC SEP -->

作为一名技术专家,我深入探讨了散列表的实现及其查找过程。文章首先通过Python代码从Excel文件中读取数据,并去除缺失值,最终得到75条企业信息。接着,我实现了两个主要的哈希方法:**平方取中法****除留余数法**,并分别应用开放地址法和公共溢出法解决冲突。

在查找过程中,用户可以选择根据电话号码或企业名称进行搜索。通过对比两种查找方法的平均查找长度(ASL),结果显示开放地址法的效率明显优于公共溢出法,且平方取中法与除留余数法在地址映射的重复性方面表现相似。最终得出的结果表明,数据重复度越高,查找效率越低,开放地址法在存储空间和查找效率之间达成了一种平衡。

<!-- DESC SEP -->

## Library


Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,25 @@
---
title: 2022年了,还是得学圣杯布局与双飞翼布局
date: 2022-02-01
tags:
- 布局
- 圣杯布局
- 双飞翼布局
- 响应式设计
- flex布局
- 浮动布局
---

# 2022年了,还是得学圣杯布局与双飞翼布局

> 摘要
<!-- DESC SEP -->

笔者在这篇文章中探讨了三列布局的多种实现方式,包括绝对定位、flex布局和浮动布局,每种方法都有其优缺点。特别强调了圣杯布局和双飞翼布局,前者通过浮动和负边距的组合,能够将中间列的内容放在最前面,提升页面加载体验。实现圣杯布局时,首先设置BFC父容器的左右padding来为两侧栏预留空间,接着通过负margin和相对定位调整左右栏位置。而双飞翼布局则采用中间列的margin来实现左右栏的保留,简化了父容器的设置。总体而言,这些布局技巧为网页设计提供了灵活的解决方案,尤其在处理响应式设计时的应用。

<!-- DESC SEP -->

## 三列布局的其他实现

定义:三栏布局一般指的是页面中一共有三栏,**左右两栏宽度固定,中间自适应的布局**
Expand Down
21 changes: 21 additions & 0 deletions docs/博客/2022/02/02TypeScript入门.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,26 @@
---
title: TypeScript入门
date: 2023-02-02
tags:
- TypeScript
- JavaScript
- 编程
- 前端
- 类型
---

# TypeScript入门

> 摘要
<!-- DESC SEP -->

笔者在这篇文章中详细介绍了TypeScript的基础知识及其使用方法,帮助初学者跨出学习的第一步。首先,笔者指导读者如何安装TypeScript,并编写和编译简单的“Hello World”程序,强调TypeScript是JavaScript的超集,解决了JavaScript动态类型带来的问题。接着,笔者展示了如何通过`tsconfig.json`配置文件批量编译多个TypeScript文件,提升开发效率。

接下来的部分深入探讨了TypeScript的类型系统,包括基本类型、对象类型、数组、元组和枚举等,强调类型安全的重要性。笔者还介绍了类的概念,包括构造函数、继承、抽象类和接口,展示了如何利用TypeScript的特性提高代码的可读性和可维护性。最后,笔者提到泛型的使用,进一步提升了代码的灵活性。整篇文章旨在让读者快速上手TypeScript,并为后续学习打下坚实基础。

<!-- DESC SEP -->

## 如何使用TS来输出你的HelloWorld呢?

> 这一步对于很多人来说是最简单的一步,也是最难的一步,说简单是因为这确确实实仅是入门的一步,就是一个环境配置,说难则是因为很多人无法跨出这一步,当你跨出这一步之后,你会发现后面的真的学得很快很快,现在,就让我们一起跨出这一步吧~
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,26 @@
---
title: 这道题原来可以用到JS这么多知识点!
date: 2022-02-03
tags:
- JavaScript
- 算法
- 二叉树
- 递归
- DFS
---

# 这道题原来可以用到JS这么多知识点!

> 摘要
<!-- DESC SEP -->

在这篇文章中,笔者探讨了如何解决“二叉树中和为某一值的路径”这一问题。题目要求从二叉树的根节点到叶子节点的路径,其节点值之和需等于给定的 `expectNumber`。为了解决此题,笔者采用了深度优先遍历(DFS)的策略,利用递归来遍历树的每一条路径。

笔者特别强调了两种变量的区别:值变量 `cur` 和引用变量 `arr``cur` 用于存储当前的累加和,而 `arr` 则用于存储当前路径。为了避免在递归中对 `arr` 的修改影响到外部作用域,笔者使用了 ES6 的扩展运算符来复制数组。最终,笔者给出了清晰的代码实现,并附上了注释,确保读者能够理解每一步的逻辑和实现细节。

<!-- DESC SEP -->

## [JZ34 二叉树中和为某一值的路径(二)](https://www.nowcoder.com/practice/b736e784e3e34731af99065031301bca?tpId=13&tqId=23276&ru=/practice/445c44d982d04483b04a54f298796288&qru=/ta/coding-interviews/question-ranking)

### 题目描述
Expand Down
23 changes: 23 additions & 0 deletions docs/博客/2022/02/04git常用操作.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,28 @@
---
title: git常用操作
date: 2022-02-04
tags:
- Git
- 团队开发
- 分支管理
- rebase
- reset
- revert
- cherry-pick
---

# git常用操作

> 摘要
<!-- DESC SEP -->

在这篇文章中,笔者总结了几种常用的 Git 操作,特别是在分支管理和提交合并方面的技巧。

首先,提到使用 `git rebase` 进行分支同步和合并多个提交,这种方式能有效减少冲突并保持提交历史的整洁。其次,介绍了 `git cherry-pick` 的使用,它允许从一个分支挑选特定的提交合并到另一个分支,避免了不必要的合并分叉。此外,笔者强调了 `git reset``git revert` 的区别,前者是直接回退到某个提交,而后者则是通过新增一个反向提交来恢复状态,确保安全性。最后,笔者提到使用标签(tag)来管理版本,方便在生产环境中进行版本控制和回退。这些操作和策略为开发者提供了灵活的版本管理方式。

<!-- DESC SEP -->

## 同步master
+ 而如果feat分支有两个提交,然后直接`git rebase master`,就有可能需要处理两次冲突(假设master分支提交的与feat提交的在同一份文件中),`git add .`,`git rebase --continue`,

Expand Down
Loading

0 comments on commit 2ddae1d

Please sign in to comment.