欢迎

欢迎来到饯雨 (nRainTd, No Rain Today) 的笔记仓库,这里收录了我平时记录的一些笔记。

Info

由于我自己本地的笔记仓库 (Obsidian) 中的图片等附件是集中存放的,不太好全部上传;所以只上传了一些没有附件或附件放在笔记附近的笔记;其他笔记等我闲下来整理好了再上传。

关于我

1 介绍

我是饯雨,英文昵称 nRainTd,意思是 No Rain Today;一名计算机系在读大学生,一个 CTFer;喜欢开发和网安,目前 (想要) 学习的方向是代码审计 (安全开发)。

2 技术栈

Info

以精通论几乎没有,因此只要接触过的我都列在这吧,(叹息~)

2.1 编程语言

按了解程度递减依次是:

  • Nodejs
  • Golang
  • Python
  • Java
  • PHP
  • C/C++
  • 汇编

2.2 网络安全

  • Web
  • Pentest(Will Know)
  • Misc
  • Re(a little)

关于博客

其实很早 (大概高中),我就梦想拥有自己的博客;但以前太追求完美,一直都想实现一个动态博客,后端得自己写逻辑,前端也不想用现成的博客框架,最多用个 react 之类的通用框架,甚至连组件库都不想用。

至于结果,自然就是隔段时间就头脑风暴,看了好多开发文档、做了很多过度设计的构想,就是从来没开始写过哪怕一行代码。

大一的时候,我开始尝试用 next.js 框架写一个博客;然后我毕竟不是一个生活丰富的人,博客里也没有什么东西可以塞。倒是因为我们网络安全社团的周报制度而积累了不少笔记,所以自然是打算用笔记填充博客。

然而,我的笔记是在 Obsidian 中写的,里面很多拓展标准 markdown 的内容,我不想为了发博客而不用;最后的方案是导出 pdf,然后我在 next.js 里面实现一个客制化的 pdf 渲染器,让 pdf 页面在我的博客表现得和普通文章一样。

于是,一开始我就在基于 pdf.js 写自定义渲染逻辑;致力于抽象出一个 PdfBox 组件,花了大量的功夫。那时候大概一直在解决如下问题:

  1. pdf 无缝无感嵌入网页,使其看起来就跟普通文章一样
  2. pdf 缩放时自动调整分辨率并重新渲染,哪怕放得很大也能看清楚文字的细节
  3. pdf 仅显示页渲染、其他页延迟渲染
  4. pdf 文件分片拉取,分片渲染,解决大文件传输过慢的问题
  5. pdf 文字可复制
  6. 其他一些我不记得的细节

上面几点,有些我解决的挺好,有些则是没解决放弃了;总之写这个浪费大量时间,而博客本身基本只是搭了个框,后来太忙了也没时间去写了。

另外 next.js 也是一个挺奇怪的框架,很多时候都分不清自己写的到底是前端还是后端代码;当时也是看到了 react 官方文档的推荐才去用的它。

后来偶然的机会,大二的时候看到了 nolebase 好像致力于支持 obsidian 的笔记发布为博客,它是 vitepress + 兼容 obsidian 的插件这样的架构,然后 clone 了他们的模板仓库在本地体验了一下,发现并不是特别好用;具体来说,有如下问题:

  1. callout 默认的支持不完整,我在空闲的时间内又没找到可以自定义的地方
  2. 关系图谱还在开发中,双链不支持把笔记当成附件,即 ![[xxx.md]] 不会展开显示。
  3. githubstar 数太少
  4. 当时没太多空闲时间去了解了

然后我又找到了 quartz 4,尝试了一下,对 Obsidian 的支持很完美;唯一的缺点就是太过简约,只能当作笔记仓库 (数字花园) 来用,基本没法拓展成一个像样的博客。

不过这时候我已经没有以前的心气了,算是对自己妥协了;反正搞一个完美的博客也没人看,自己也没太多内容放上去。不如简单搞个笔记站分享分享自己的笔记。

所以,就有了这个笔记仓库的诞生。