Skip to content

Commit 698a216

Browse files
committed
Merge branch 'main' of https://github.com/yJader/JinBlog
2 parents ddbfb0c + d329db4 commit 698a216

File tree

1,740 files changed

+5510
-203706
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,740 files changed

+5510
-203706
lines changed

.gitignore

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
/docs/test
2-
/.vscode
3-
/.obsidian
2+
.vscode
3+
.obsidian
44
.DS_Store
55

66
# 虚拟环境
7-
/blog
7+
/blog
8+
9+
# build
10+
site/

TODOList.md

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,32 @@
11
# 博客搭建 TODOList
22

3+
## 便捷管理
4+
5+
通过symlink在docs中创建链接, 链接到笔记文件夹
6+
平时在笔记文件夹中编辑, 在完成一段后回到Blog仓库进行格式检查(同时反映到笔记原文件上), commit, push
7+
8+
- Q: 在我的多设备环境下, 链接是否会带来一些bug?(如git存储链接而非链接背后的实际文件)
9+
310
## 格式显示bug
11+
12+
- [x] [高亮](#高亮): 已集成到tools/transferMD/transfer.py
13+
- [x] [LaTeX显示](#LaTeX显示): 已集成到tools/transferMD/transfer.py
414
- [ ] 配置到action中
15+
16+
---
17+
518
### 高亮
19+
620
- 编写一个脚本, 将`==text==`语法修改为 html`<mark>text</mark>`, 并配置 github action
721
- 原因: 高亮语法(`==text==`)在 PyMdown 中存在 bug
822

923
### LaTeX显示
24+
1025
- 修复类似`$ ax+b $`中因为`$`前后有空格导致的 latex 渲染出错
1126
- 修复方式: `\$(.*?)\$`匹配 latex, 用`${$1}$`替换
1227
- mark: $$会被上面的匹配, 记得排除掉
1328
- note: 问题发现: latex框格渲染有些问题
29+
1430
```
1531
# 渲染错误
1632
text
@@ -28,6 +44,7 @@
2844
2945
text
3046
```
47+
3148
- note1: 暂时还不能处理 text$$text$$text 中有换行符的情况, 但是这种不应该出现, 手动修复吧
3249
- 但是修复了LaTeX段中的换行符, 将`\n+`替换为`\n`
3350

@@ -65,10 +82,11 @@ $$
6582
![image-20240623131634016](./TODOList.assets/image-20240623131634016.png)
6683

6784
### 跳转失效
85+
6886
问题: 类似`[泳道图](# 2.1.3 泳道图 ※)`的跳转语法失效
6987

7088
问题原因: 标准markdown语法会转换标题中的符号, 而mkdocs(或者说Python Markdown 渲染引擎)似乎更极端(直接删掉了中文, 只保留英文), 因此标题跳转不可用
7189

7290
解决方案: 暂无
7391

74-
- 或许这个应该算渲染引擎的bug, 毕竟改我heading又不该引用
92+
- 或许这个应该算渲染引擎的bug, 毕竟改我heading又不改引用

docs/assests/jade_light.svg

Lines changed: 1 addition & 0 deletions
Loading

docs/blog/index.md

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1 @@
1-
# 博客随笔
2-
3-
平时记的一些暂时不知道怎么分类的小玩意
1+
# Blog

docs/blog/posts/mkdocs踩坑记录.md

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ categories:
66
- 踩坑记录
77
comments: true
88
---
9+
# mkdocs踩坑记录
910

1011
# MkDocs踩坑记录
1112

@@ -161,6 +162,58 @@ test
161162
1. 不要熬夜改 bug, 会变得神志不清
162163
2. 早该上 StackoverFlow 搜的 QAQ
163164

165+
## 博客(blog/posts)引用图片资源出错
166+
167+
### 问题描述
168+
169+
在presentation.md中, 我为了节约空间, 引用了fzu_cs_course/毕业设计/FZU-SINTEF-Beamer-Template.assets/preview_page-0001.jpg等图片
170+
文件树如下
171+
172+
```text
173+
docs
174+
├── blog
175+
│ ├── index.md
176+
│ └── posts
177+
│ └── presentation.md
178+
└── fzu_cs_course
179+
└── 毕业设计
180+
└── FZU-SINTEF-Beamer-Template.assets
181+
├── preview_page-0001.jpg
182+
└── ...
183+
```
184+
185+
在presentation.md使用的相对路径引用为`../../fzu_cs_course/毕业设计/FZU-SINTEF-Beamer-Template.assets/preview_page-0001.jpg`
186+
但是部署到服务器后, 图片无法显示
187+
188+
### 分析
189+
190+
检查编译出的`site/blog`可以发现文件夹结构发生了改变
191+
192+
```text
193+
site
194+
├── blog
195+
│ └── presentation.html # 没有posts文件夹了
196+
└── fzu_cs_course
197+
└── 毕业设计
198+
└── FZU-SINTEF-Beamer-Template.assets
199+
├── preview_page-0001.jpg
200+
└── ...
201+
```
202+
203+
最终导致了相对路径解析出错
204+
205+
### 解决方案
206+
207+
用onerror事件来处理, 在解析错误时更换为正确的相对路径
208+
209+
```html
210+
<img src="../../fzu_cs_course/毕业设计/FZU-SINTEF-Beamer-Template.assets/preview_page-0001.jpg"
211+
alt="Beamer Template Preview Page 1"
212+
width="45%"
213+
onerror="this.onerror=null;this.src='../fzu_cs_course/毕业设计/FZU-SINTEF-Beamer-Template.assets/preview_page-0001.jpg'"
214+
/>
215+
```
216+
164217
## Blog 配置
165218

166219
[Mkdocs Material 使用记录 - shafish.cn](https://shafish.cn/blog/mkdocs/#14-blog)

docs/blog/posts/presentation.md

Lines changed: 131 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,131 @@
1+
---
2+
date:
3+
created: 2024-06-09
4+
updated: 2025-11-13
5+
description: 使用纯文本制作演示文稿的优缺点及工具推荐
6+
categories:
7+
- 杂项
8+
comments: true
9+
---
10+
<!-- markdownlint-disable MD033 -->
11+
# Plain Text is All You Need (for Presentations)
12+
13+
面对课程汇报 / 学术报告 / 组会等场景, 使用演示文稿进行Presentation是常见的方式
14+
15+
但是使用PowerPoint / Keynote等软件制作的演示文稿, 往往会有以下问题:
16+
17+
- 操作复杂, 需要学习软件的使用 (虽然大家信息课都学习过)
18+
- 跨平台兼容差 (经常要导出为pdf)
19+
- 富文本文稿, 不利于版本控制&同步
20+
- **LLM支持不够好**
21+
22+
此时使用纯文本(Plain Text)来制作是一个不错的选择
23+
<!-- more -->
24+
但是同样有一定缺点
25+
26+
- 不易编辑:
27+
- 导出为PDF后, 需要重新编辑源文件才能修改内容
28+
- 不能像PPT那样即时&可视化地修改配图(流程图)和图片位置
29+
30+
## 编写
31+
32+
### LaTeX-Beamer
33+
34+
LaTeX-[Beamer包](https://zh.wikipedia.org/zh-cn/Beamer_(LaTeX))是一个基于LaTeX的演示文稿制作工具, 导出为PDF
35+
36+
**优点**:
37+
38+
- **模板丰富, 可定制**: 可以通过修改模板和样式来定制演示文稿的外观
39+
- [overleaf: LaTeX templates and examples — Beamer](https://www.overleaf.com/gallery/tagged/beamer)
40+
- **版本控制**: 使用文本文件编写, 方便使用Git等版本控制工具进行管理
41+
- **跨平台**: LaTeX-Beamer可以在任何支持LaTeX的操作系统上运行, 生成的PDF文件可以在任何PDF阅读器上查看
42+
- **数学公式**: 支持LaTeX的数学公式, 适合需要展示复杂公式的场景
43+
44+
**缺点**:
45+
46+
- 环境配置较为复杂, 编译较慢
47+
- 使用overleaf等在线编辑器可以简化配置, 但是如果用的是普通版, 很容易编译超时
48+
- 语法较为繁琐, 需要学习LaTeX语法
49+
- 但是不动模板, 只修改内容上手还是很快的
50+
51+
- 不支持动画效果, 只能通过切换幻灯片来实现
52+
53+
#### Beamer模板推荐
54+
55+
- [SINTEF Presentation](https://www.overleaf.com/latex/templates/sintef-presentation/jhbhdffczpnx)
56+
- [College Beamer](https://github.com/liu-qilong/college-beamer): 基于SINTEF Presentation修改, 适配了不同学校的模板合集
57+
- [FZU-SINTEF-Beamer-Template](https://github.com/yJader/FZU-SINTEF-Beamer-Template): 基于SINTEF Presentation修改, 适配了福州大学的模板, 我在毕设答辩最终选择这个模板进行演示
58+
59+
<p align="center">
60+
<img src="../../fzu_cs_course/毕业设计/FZU-SINTEF-Beamer-Template.assets/preview_page-0001.jpg" alt="Beamer Template Preview Page 1" width="45%" onerror="this.onerror=null;this.src='../fzu_cs_course/毕业设计/FZU-SINTEF-Beamer-Template.assets/preview_page-0001.jpg'"/>
61+
<img src="../../fzu_cs_course/毕业设计/FZU-SINTEF-Beamer-Template.assets/preview_page-0019.jpg" alt="Beamer Template Preview Page 19" width="45%" onerror="this.onerror=null;this.src='../fzu_cs_course/毕业设计/FZU-SINTEF-Beamer-Template.assets/preview_page-0019.jpg'"/>
62+
</p>
63+
<p align="center">
64+
<img src="../../fzu_cs_course/毕业设计/FZU-SINTEF-Beamer-Template.assets/preview_page-0012.jpg" alt="Beamer Template Preview Page 12" width="45%" onerror="this.onerror=null;this.src='../fzu_cs_course/毕业设计/FZU-SINTEF-Beamer-Template.assets/preview_page-0012.jpg'"/>
65+
<img src="../../fzu_cs_course/毕业设计/FZU-SINTEF-Beamer-Template.assets/preview_page-0002.jpg" alt="Beamer Template Preview Page 2" width="45%" onerror="this.onerror=null;this.src='../fzu_cs_course/毕业设计/FZU-SINTEF-Beamer-Template.assets/preview_page-0002.jpg'"/>
66+
</p>
67+
<p align="center">
68+
<img src="../../fzu_cs_course/毕业设计/FZU-SINTEF-Beamer-Template.assets/preview_page-0020.jpg" alt="Beamer Template Preview Page 20" width="45%" onerror="this.onerror=null;this.src='../fzu_cs_course/毕业设计/FZU-SINTEF-Beamer-Template.assets/preview_page-0020.jpg'"/>
69+
<img src="../../fzu_cs_course/毕业设计/FZU-SINTEF-Beamer-Template.assets/preview_page-0021.jpg" alt="Beamer Template Preview Page 21" width="45%" onerror="this.onerror=null;this.src='../fzu_cs_course/毕业设计/FZU-SINTEF-Beamer-Template.assets/preview_page-0021.jpg'"/>
70+
</p>
71+
<p align="center">
72+
<img src="../../fzu_cs_course/毕业设计/FZU-SINTEF-Beamer-Template.assets/preview_page-0026.jpg" alt="Beamer Template Preview Page 26" width="45%" onerror="this.onerror=null;this.src='../fzu_cs_course/毕业设计/FZU-SINTEF-Beamer-Template.assets/preview_page-0026.jpg'"/>
73+
</p>
74+
75+
### Typst-touying
76+
77+
> [**touying: A powerful package for creating presentation slides in Typst.**](https://typst.app/universe/package/touying/)
78+
79+
typst与LaTeX相似, 都是基于纯文本的排版系统, 使用rust编写, 很好地解决的LaTeX编译慢&语法冗长且复杂的问题
80+
81+
**缺点**:
82+
83+
- 尽管简化了语法, 但是LaTeX在科研界更常用, 额外多学一个有些没必要了...
84+
- 模板相对LaTeX较少
85+
86+
### Markdown-Marp
87+
88+
!!! note
89+
强烈推荐, 快速完成PPT, 应付汇报专用
90+
91+
Marp是一个基于Markdown的演示文稿制作工具, 具有以下优点:
92+
93+
- **简单易用**: 使用Markdown语法编写, 上手快, 适合快速制作演示文稿
94+
- **跨平台**: Marp for VS Code可以在任何支持VSCode的操作系统上运行, 生成的HTML和PDF文件可以在任何浏览器和PDF阅读器上查看
95+
- **版本控制**: 使用文本文件编写, 方便使用Git等版本控制工具进行管理
96+
- **便于LLM生成和编辑**: 没有在Markdown和html语法上做过多改造, LLM可以很好地理解和生成
97+
98+
面对高强度的交流汇报需求, 我现在也迁移到了Marp, 搭配上Awesome-Marp模板后, 能达到Beamer模板的效果
99+
100+
#### 模板推荐
101+
102+
- [Awesome Marp](https://github.com/favourhong/Awesome-Marp): 原始的Awesome Marp模板, 但是官方使用的是有衬线字体, 感觉不适合演示
103+
- [Awesome Marp XMU](https://github.com/yJader/Awesome-Marp-XMU): 基于Awesome Marp修改, 修复了一些bug, 同时适配了厦门大学的模板
104+
105+
## 放映方式
106+
107+
### 基于PDF的演讲者视图
108+
109+
放映工具:
110+
111+
1. **MacOS用户限定**:使用 [Présentation.app](http://iihm.imag.fr/blanch/software/osx-presentation)
112+
2. 使用基于Python的 [pympress](https://github.com/Cimbali/pympress)
113+
114+
演讲者视图:
115+
116+
- 对于beamer: 使用`\pdfnote{"备注内容"}`添加备注
117+
- 对于Marp: 参考[Apply metadata and presenter notes to PDF \#369](https://github.com/marp-team/marp-cli/pull/369), 使用`<!-- 演讲内容 -->`添加备注, 并在导出时添加`--pdf-notes`参数
118+
- 注: 对于Marp for VS Code, 需要在设置中开启`markdown.marp.pdf.noteAnnotations`选项
119+
120+
### 转为PowerPoint
121+
122+
- 将PDF转为纯图的PowerPoint
123+
- 可以使用我编写的 [pdf2pptx脚本](https://github.com/yJader/pdf2pptx) 或其他类似工具
124+
- 将生成的PDF转换为PowerPoint格式,利用PowerPoint的演讲者模式显示备注
125+
126+
- 针对Marp, 可以直接选择导出为PowerPoint格式
127+
- 使用`<!-- 演讲内容 -->`可以添加备注, 导出为pptx时会自动识别并添加到备注中
128+
129+
备注: Marp 不能直接通过VS Code放映, sad :(
130+
> <https://github.com/marp-team/marp-vscode/issues/87>
131+
> We understand requests for this feature, but since the Marp for VS Code extension is primary designed for previewing the appearance of slides, currently there are no plans to work on this by Marp team. We are very cautious about doing that because it could potentially cause scope creep.

docs/blog/posts/调试理论.md

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -23,15 +23,14 @@ comments: true
2323
- 99.9999% 是自己的问题
2424
- 有亿点点概率是编译器错了 (但你可以知道)
2525
- 有亿点点点点概率是处理器错了 (你也可以知道)
26+
<!-- more -->
2627

2728
### 公理 2:**未测代码永远是错的**
2829

2930
- 未反复测试过的代码都是错的
3031
- 快速地测试→测试框架&&测试用例
3132
- 你以为最不可能出 bug 的地方,往往 bug 就在那躺着
3233

33-
<!-- more -->
34-
3534
## Why is there bug?
3635

3736
> 每个鏖战的夜晚都会发出的怒吼QAQ
@@ -91,7 +90,7 @@ comments: true
9190

9291
- printf → 自定义 log 的 trace
9392
- 灵活可控、能快速定位问题大概位置、适用于大型软件
94-
- 用多个log将程序的运行状态分隔, 进行bug定位
93+
- 用多个log将程序的运行状态分隔, 进行bug定位
9594
- 无法精确定位、大量的 logs 管理起来比较麻烦
9695
- gdb → 指令/语句级 trace
9796
- 精确、指令级定位、任意查看程序内部状态
@@ -108,8 +107,6 @@ comments: true
108107
3. 我们能从状态机的运行中从易到难得到什么信息?
109108
4. 如何二分检查这些信息和 error 之间的关联?
110109

111-
112-
113110
## 调试一切
114111

115112
### Computer world: 一切皆可调试
@@ -155,8 +152,8 @@ UNIX 世界里你做任何事情都是在**<mark>编程</mark>**
155152

156153
- **出错原因报告不准确**
157154
- 也可能是没看懂
158-
- 对于大型项目(如Spring)更是这样, 对于一种Failure有多种可能的Fault, 当STFW时, 很可能会搜到多种不相干的Fault:disappointed:
159-
- 这个时候把这些报错信息丢给LLM不失为一个好选择:smile:
155+
- 对于大型项目(如Spring)更是这样, 对于一种Failure有多种可能的Fault, 当STFW时, 很可能会搜到多种不相干的Fault:disappointed:
156+
- 这个时候把这些报错信息丢给LLM不失为一个好选择:smile:
160157
- **程序执行的过程看不到**
161158
- 那我们想办法 “看到” 状态机的执行过程就好了!
162159

@@ -176,7 +173,7 @@ UNIX 世界里你做任何事情都是在**<mark>编程</mark>**
176173
- (这看起来是用 `perror()` 打印出来的!)
177174
- 问题分析
178175
- `#include` = 复制粘贴,自然会经过路径解析
179-
- 明明 `/usr/include/x86_64-linux-gnu/sys/cdefs.h` 是存在的 (`man 1 locate`)
176+
- 明明 `/usr/include/x86_64-linux-gnu/sys/cdefs.h` 是存在的 (`man 1 locate`)
180177

181178
##### 两种方法
182179

@@ -248,8 +245,6 @@ UNIX 世界里你做任何事情都是在**<mark>编程</mark>**
248245
>
249246
> 如果一个系统在有限的范围(有限的大小或配置)内对某个特定属性没有反例(即错误或漏洞),那么它在更大的范围内也不太可能有反例。
250247
251-
252-
253248
### 调试理论:推论 (3)
254249

255250
#### 需求 → 设计 → 代码 → Fault → <font style="color:blue">Error → Failure</font>
@@ -266,6 +261,3 @@ UNIX 世界里你做任何事情都是在**<mark>编程</mark>**
266261
>
267262
> - **简单到无懈可击**:第一种方法是设计一个极其简单明了的系统,简单到没有任何明显的缺陷或漏洞
268263
> - **复杂到难以察觉缺陷**:第二种方法是创建一个如此复杂和深奥的设计,以至于缺陷并不明显
269-
270-
271-
1.07 MB
Loading
1.03 MB
Loading

0 commit comments

Comments
 (0)