Workflow
知识管理 & 博客
浏览网页想要修改时,直接跳到 local repo 里的 heading,改完之后就提交。
这就需要两个 vault,一个 notes
(放在 OneDrive 里同步)以及一个 _post
(用 Git 来 track)。
使用 ^ 来表示次概念已经收录在了笔记中,可以通过搜索获得。这样的好处是:
- 相比于直接链接,这是一种松耦合,当所引用的笔记的位置更改之后,仍然可以被搜索到。
- 一个概念不一定完整对应一块笔记,应该直接链接到概念,而不是笔记。
给博客换域名
记着改 Aliyun OSS 里的防盗链。
博客图片存储
目前不需要使用阿里云图床来做博客的图片存储的,图片和 PDF 统一放到本地,这样的问题就是在博客上只能看到链接,看不到内容,以后博客仅仅作为一个搜索的的工具使用,大量的笔记的附件还是放在本地吧。
画图
使用 draw.io
desktop 画图,然后将画的图存到 GitHub 的 repo 上。
-
app.recraft.ai
: 用来 upscale 图片挺好用的。
There is a plugin named "Excalidraw for obsidian". zsviczian/obsidian-excalidraw-plugin: A plugin to edit and view Excalidraw drawings in Obsidian
如何将网上看到的 PNG 格式的架构图转化为可编辑的格式,这样子改起来更容易?
暂时还没有这么先进的东西。
Blog 整合方案
注意每次安装 docker 以及 typesense 对于 kernel config 的要求,具体请搜索。
目前除了 blogsearch,其他所有的部分比如 blog, scraper 以及 typesense server 都部署在本机上。如果要迁移机器,需要
- 把
utils/typesense/config.json
里的地址改了。 - 把 blogsearch 里 typesense server 的地址改了。
- 为了让 https 网站能够访问 http 服务,需要在 blogsearch 网站里的小盾牌里允许不安全内容。
每次重新 scrape,只需要在 /home/lei/data/tristone13th.github.io
里 git pull
一下然后重新跑一下 scrapper。
为了让我们的 http blog 站点每一次都可以打开 obsidian 而不需要询问,请参考:
此站点正在尝试打开 ,chrome/edge 允许http网站打开url schema-CSDN博客
也可以进行搜索得知。
博客/笔记撰写守则
- ^ 表示笔记库里存在相关的条目,可以搜索。
- @ 表示有类图。
Search Service
Blog search 和 PDF search 在 netlify 上部署:
- https://blogsearch.netlify.app/
- https://pdfsearch.netlify.app/
注意因为访问了我们自己的 server 上 http 的 API,默认浏览器会阻止 https 站点访问 http API,所以我们需要点击小盾牌然后设置为允许不安全内容。
How to build and run:
npm install
npx parcel index.html # to build and serve
npx parcel build index.html # to just build
Then open http://localhost:1234.
Typesense backend
7/5/2024: Now hosted on Google Cloud Run.
Google Cloud Run 支持在容器空闲时 shutdown 机器,所以需要加入 storage volumn 来持久化存储从而支持我们 stateful 的 backend。这是 Google Storage 的价格说明:价格 | Cloud Storage | Google Cloud 是有一定免费额度的。
配置的时候要注意实例数为 0,这样才会自动在 15min 后关掉 container 以节省资源。
Azure 类型选择事务优化,因为写入和读取操作是最便宜的,并且也是根据使用量而非预配来收费。如果要 Container 使用 File Share,需要先在 Container Apps Environment 里创建一个连接。
Azure 文件存储定价 | Microsoft Azure
关掉之后没法 persistent 保存 typesense data,所以我们需要加 storage,有两个选择 Filestore 和 Cloud Storage,这两个看起来都是收费的。Filestore 是 1GB 起用的。
Hosted on Koyeb or Railway.
Railway 上会报错,所以可以选择这个项目:celsiusnarhwal/typesense-railway: Deploy Typesense to Railway with ease. Use version 0.23.0
, 0.24.0
and 25
will crash on railway.app, I don't know why, maybe the docker version is too old? 也可能是因为 docker 是公用内核的,一些内核的特性以及 config 没有打开可能会导致 typesense 无法运行。
Koyeb 和 Selfhost 切换
blogsearch repo:
-
src/app.js
这个文件里的:
nodes: [
{
host: // typesense-tristone13th.koyeb.app 和 localhost 里换
port: // 443 和 8108 粒换
protocol: // https / http
},
]
scraper repo:
- enable 一下 action。
koyeb:
- 重新部署下 typesense 这个库。
绕过 docker 登陆
目前国内可用Docker镜像源汇总(截至2024年8月) - CoderJia
可以手动执行 docker pull
:
docker pull dockerpull.com/typesense/typesense
Typesense scrapper
Run on Github Actions, at 3:00am each day.
ChatGPT
通过 tristone13th/ChatGPT-Web 部署在 Railway 上,URL 是 https://chatgptfortristone13th.up.railway.app/
目前通过 Access Token 的方式而不是 API Key,因为是免费的。
To check the railway usage: [Usage | Railway](https://railway.app/account/usage) |
ChatGPT API usage: https://platform.openai.com/account/usage
为什么不部署在 Vercel 上?因为不会在 Vercel 上起后端服务,改天研究研究,先凑活用,等 upstream 更新 Vercel 的部署方式。
软件/平台选用
Serverless
Name | Price | Service Hosting |
---|---|---|
Netlify | Free | No |
Vercel | Free | No |
Railway | Free | Yes |
Key-mapping tools
Feature | keyd | |
---|---|---|
Application Specific Remapping | Need some config | |
Space/CapsLock as Modifier | 🉑️ | |
Web hosting service
Feature | Netlify | Github Pages | Cloudflare | Vercel |
---|---|---|---|---|
Access from CN | fast | slow | slow | slow |
Resource limit | 300min | No | No | No |
Jekyll build quality | full | full | full | pitfalls |
Input method engine (IME)
Feature | Rime | Microsoft Pinyin | 讯飞 | 搜狗 | Multi |
---|---|---|---|---|---|
CN2EN keep input | 🉑️ | 🉑️ | 🉑️ | 🉑️ | 🉑️ |
Default mode for App | 🉑️ |
Markdown editor/Knowledge management
Feature | Vim | Typora | Obsidian | yn |
---|---|---|---|---|
Vim mode | 🉑️ | 🉑️ | ||
Fold | 🉑️ | 🉑️ | 🉑️ | |
In-place preview | 🉑️ | 🉑️ | ||
Open last place | 🉑️ | 🉑️ | ||
Fuzzy search | 🉑️ | |||
Grammar check |
Note:
- Currently Typora support search in headers, but doesn't support fuzzy search.
- For reference, please see markdown 编辑器测评 | 东瓜瓜的小博客 (gitee.io)
PDF annotator/viewer
Feature | Xodo | Zotero | Drawboard | Sumatra |
---|---|---|---|---|
Search in Annotations | 🉑️ | |||
Search in Outlines | ||||
Search in Bookmarks | ||||
Annotations | 🉑️ | 🉑️ | 🉑️ | |
Outlines | 🉑️ | 🉑️ | ||
Bookmarks | 🉑️ | |||
Smooth Scrolling | 🉑️ |
Windows Manager/Desktop Environment's support for hotkey remapping
Hotkey | ||
---|---|---|
KDE | ||
Note:
- Doesn't need search things right now, because I have https://pdfannotsearch.vercel.app/.
迁移机器
MacOS
在 macos 上取消 command 键的功能:设置 - 键盘 - 键盘快捷键 - 修饰键 - 把修饰键改为无操作。
点击右下角触控板来模拟右键:系统设置 ->触摸板 ->辅助点按。
安装这个软件进行单应用默认输入法配置:Input Source Pro - 自动切换输入法加上适时的提示,让每一次输入都游刃有余,只可惜这个配置没有办法导出,只能每次换机器的时候针对每一个应用重新配置。
国内安装 homebrew
HomebrewCN: Homebrew 国内安装脚本,快速部署 brew ,国内镜像
软件安装
Motrix
agalwood/Motrix: A full-featured download manager.
Motrix + TamperMonkey 脚本可以实现不限速下载百度网盘。
打开百度网盘网页版。
点击红色的“简易下载助手”。
点击生成直链。
按照提示修改 Motrix 的 UserAgent。
将直链复制到 Motrix 中进行下载即可。
同步
Typora 的主题主题更新一下;
RIME 的设置与用户字典同步一下。
Sumatra PDF 的配置文件。
Thunderbird 配置文件可以导出的话导出一下。
Everything 的设置也可以同步一下。
Mobaxterm 的配置同步一下。
配置备忘
Thunderbird
插件
Color Scheme 主题:Agate.
Mailbox Alert:特定文件夹新邮件提醒。
键盘映射
还没有分配的键
可以把一些 Capslock + 标点符号这些映射到 Capslock + 左区字母,这样子其它的软件也可以使用这个键了。
同理,Lalt 也是一样,根本原因在于右区的标点符号太多了。
AHK Tips
如果发现使用 Capslock 映射为 Ctrl 键时,带上了 Shift 键,删除掉 SetStoreCapslockMode(false)
就好。
Neovim & IDE
Neovim 结合 container 环境做开发
第一种情况:代码仓库在 host 上:
可以在 host 上用 Neovim 直接开发,然后把开发代码的路径通过 -v
透传到 container 里面的某一个目录,然后就可以进行编译测试和运行了,这个测试过程可以基于 Neovim 里的 floating terminal,只要在这个 terminal 里面登录了 container 就可以了。
第二种情况:代码仓库在 container 里:
如果代码本身已经在 container 里的文件系统了,那么可以通过:
docker inspect --format='' <容器名或ID>
来查看 container 文件系统在 host 上的位置,那么我们可以把里面的代码仓库放到 Neovim 的 project path 当中就可以很方便地开发了。
Neovim on Windows
Install rg
for telescope.
Instlal Chocolatey Software | Chocolatey - The package manager for Windows choco
for fzf:
choco install mingw
choco install make
配置快速同步(从 Github 本地项目目录到 Windows 配置目录):
rm ~/AppData/Local/nvim
Copy-Item -Path "~/Documents/GitHub/.config/nvim" -Destination "~/AppData/Local/nvim" -Recurse
Build C++ using clang on Windows
Visual Studio 配置方案
注意最好使用英文版的 Visual Studio,本地化之后的 Visual Studio 对于命令的支持不全。
VsVim 可以执行 VS Commands,所有的 command 可以在这里找到:Commands - Visual Studio (Windows) | Microsoft Learn
You can find a complete list of commands and their syntax on the Keyboard page in Tools > Options > Environment > Keyboard
Popular commands: Keyboard shortcuts - Visual Studio (Windows) | Microsoft Learn
为什么这么设计?
为什么博客根目录设置为一个 vault,而不是仅仅是 post 文件夹?
可能是为了 advanced uri 功能更好用一些?说不通,因为是这个格式的:
obsidian://advanced-uri?vault=tristone13th.github.io&openmode=true&filepath=
只需要改成 _posts
就可以了。
为什么要把 blog vault 和 notes vault 合并到一个 vault?
- 因为这样的话只需要保存一份 PDF,使用 PDF++ 打开 PDF backlink 能够正确连接到对应的 PDF。
- 笔记放到博客上更加方便,直接 copy 过去就行了。
- 从博客上打开通过 URI 打开本地笔记更快。
- 即使博客上没有 PDF, 图片也没关系,保存在本地就行了。