个人笔记新解-Obsidian_obsidian docker-程序员宅基地

技术标签: 生活  工作效率  后端  程序人生  

欢迎关注 “攻城狮Gala”公/ 众 /号 ,每天一起学习,努力成为Web3全栈

自己之前一直在使用为知笔记,体验越来越糟糕 。。。主要有几个原因:

  1. 为知笔记的编辑器很难用,尤其是对md的支持很差;
  2. 最近有备份需求,但是为知笔记新版本竟然去掉导出文件夹功能,对自己的笔记安全存在担心;
  3. 一直在找可以写公众号的方式,至少一键复制到公众号,而为知笔记的使用体验太差了;
  4. 搜索功能可以当做没有,好多次搜索文章没搜出来;
  5. 没有笔记发现和关联功能,不好做笔记整理和知识积累;

经过一段时间调研决定使用新的笔记软件,而且主要格式决定使用markdown。

软件选型

最终决定是:本地笔记软件+线上博客的形式。

本地笔记

Obsidian

这个笔记重点是使用markdown,支持即时预览,同时支持知识管理。

笔记

记笔记是最基本的功能,具体使用文章玩转 Obsidian 01:打造知识循环利器。以markdown为主很好用。

ToDo

详见参考,使用todo插件可以非常简单创建todo。

同步Sync

这个是最痛苦的,因为喜欢折腾,所以收费的官方同步服务是不会使用的- -。我一直有自己的云服务器以及Nas。。。
最开始选择的方案是WebDav,分为向mac+android同步。但是obsidian的三方插件的webdav太差劲了,根本没法用,手机采用foldersync需要设置https才能使用webdav(android升级后必须使用安全的协议I can not connect to a non-HTTPS WebDav server. Why?)。经过长期折腾。。。

最后采用,S3作为存储服务,手机使用foldersync同步,mac使用三方插件Remotely Save

突然发现市面上针对S3的产品还挺多呀,生态丰富!!中间准备使用几个重量的方案,比如nextCloud等,而syncthing也不好用,设备不在一个子网下面,速度感人。。。幸好S3折腾成功了。

用过一段时间S3发现几个问题,首先是笔记的整理,比如重命名、移动位置,无法应用到S3上,导致笔记重复在多个位置。而且还存在一个编辑冲突的问题,如果多设备修改存在冲突怎么办?所以决定改为Git,有三方插件支持。[[使用Git对Obsidian同步]]

网页剪辑

网页剪辑的功能非常好用,主要是对文章可以下载,obsidian是纯粹的markdown的文本记录,所以最好剪辑成markdown的格式,推荐插件markdown-clipper可以直接下载,非常适合obsidian。

表格

其实比较依赖表格做数据区分,obsidian对表格的支持不是很好,目前的实时预览是不支持表格的。所以能不使用表格就不用了,或者可以拉起Typora来编辑表格。

Joplin笔记

因为目前Obsidian的网页剪辑太难用了,所以使用Joplin来替代网页剪辑和本地软件同步的功能,两个都可以用于主力笔记编辑,不过obsidian有知识管理和即时预览功能,Joplin的生态工具更丰富。不过随后都辛苦解决了。目前主用obsidian。

线上博客

线上博客主要是分享文章,之前已经调研过一个博客,使用体验尚可,同时编辑器支持一键复制到公众号和知乎,还是很友好的。开源博客pipe。搭建也比较简单,推荐使用docker搭建。
随后所有的博客都沉淀在pipe和公众号。本地笔记更多是非公开的工作日志内容。

S3服务-MinIO

MinIO是对象服务器,可以兼容aws s3 api,用来做同步中转的,随后再一次性同步回自己的Nas即可,线上S3同步参考RClone

wget https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio
MINIO_ROOT_USER=test MINIO_ROOT_PASSWORD=test ./minio server ./ --console-address ":9001"

会得到如下输出:

API: http://172.22.0.15:9000  http://127.0.0.1:9000 

Console: http://172.22.0.15:9001 http://127.0.0.1:9001 

这个是admin用户,可以直接作为key和secret访问。

  • TLS配置
    为了可以在android和mac同时使用,最好有域名,并且申请好TLS证书,否则无法使用,可以使用nginx代理。

注意MinIO不支持http/2,千万别再代理配置的时候打开http/2,我折腾好久,差点折在这。。。

  • foldersync配置
    建立账户使用如下配置,注意自定义端点的/要保留。随后在同步设置时选择对应的bucket文件夹。
Access key ID: test
Secret access key: test
自定义端点:https://s3.xxxxx.com/
区域:随便选一个
  • Remotely Save配置
    配置结束,check一下如果成功,可以配置定期备份。
S3Endpoint:https://s3.xxxxx.com
S3Region: us
S3AccessKeyID: test
S3SecretAccessKey: test
S3BucketName: bj

图床

图床对于笔记来说也很重要的,随后复制到线上或者转到公众号有一个图床可以方便复制笔记。研究图床使用,可以参考这个,使用picGo来上传到图床,就是我的S3服务器了。

picGo默认不支持S3,需要从插件市场搜索下载,然后S3的配置需要注意,对于MinIO必须打开PathStyleAccess,而且为了随后可以访问,需要在自定义域名设置为S3 Url + bucket,比如https://s3.test.com/images,设置错误无法正常预览图片。

笔记导出

笔记导出就是在和闭源软件做斗争,为知笔记有点恶心了,新版本很难导出。

在调研时发现,为知对于私有部署是可以使用官方提供的迁移工具的,感兴趣可以研究下。

旧版Win客户端导出

使用4.13.33的为知win客户端,只支持单个文件的md导出,不支持批量,但是我的笔记有500多篇。。。根本不可能单个导出,而且还没有快捷键,操作一个md的导出复杂和耗时不敢想象。

经过搜索,发现很多人都是导出为html作为数据备份,如果html可以满足需求的话,使用该版本分别对文件夹导出即可。

还有一个信息,该版本的客户端将所有笔记保存在文档/My Knowledge/data/user目录下,所有的笔记是可以zip方式解压,然后看到资源文件和html。

Memocast客户端

随后搜索到Memocast,是重写为知笔记的客户端,而且支持批量导出md,简直福音。但是最后使用效果导出后图片的路径是Memocast://xxxx,开玩笑么。。。随后看github的issue作者已经解决了,但是需要进一步反馈问题或者调试代码。

使用OpenAPI

为知笔记提供了OpenAPI来查看和编辑笔记,Memocast也是类似方式,服务说明及登录笔记接口介绍了如何登录获取Token,如何查询文件夹文档,下载html,下载资源(图片)等接口。

对于为知笔记来说,所有的笔记保存为html,所以下载后需要做转换。

通过Postman的接口测试发现完全可行,那么就可以编程导出了。具体的代码。html转md的库使用html-to-markdown,案例代码在这

如何使用?按照下面提示输入账户和密码,然后设置导出的文件夹即可。

go install github.com/GalaIO/wiz_export@latest
wiz_export --output './' --userId 'xx' --password 'xx' --folders '/日记/,/工作/'

目前从为知导出的脚本有几个问题,有空再解决 #TODO :
1.对于新版本生成的笔记,导出会显示版本过低
2.对于某些md转换的链接,脚本匹配错误,没有下载图片资源
-3.附件资源未下载,随后检查并下载全部的附件资源

Obsidian指北

如何调试

obsidian底层还是一个前端,当出现软件异常,可以直接打开调试看插件或者obsidian的报错即可,windows和linux使用Ctrl-Shift-I ,macOS是cmd-opt-I

增加Banner

安装插件Banners即可,在unsplash搜你喜欢的图,然后输出命令/banner找到add banner from clipboard就快速添加到md头信息。同时cmd+e可以预览效果。

双向连接

有一篇不错的文章,介绍为什么使用MOC,以及有什么作用。用来管理笔记和积累知识体系很重要。

看板

obsidian有一个三方插件,非常简单创建看板用来管理进度或者任务。[[Obsidian看板指北]]

大纲

可以在核心插件中打开大纲的功能,在右侧栏显示笔记大纲,功能很好用。

笔记漫游

可以在核心插件中打开笔记漫游,随机查看历史笔记,是一个不错的笔记发现功能。

模板

可以在核心插件中打开模板功能,设置模板文件夹,我这里是新建Templates文件夹作为模板目录,随后通过左侧栏使用模板,快速创建格式固定的笔记,比如任务、学习笔记等等。更多设置参考

设置模板的几个变量,日期:{ {date}},时间{ {time}},标题{ {title}}。[[Obsidian模板指北]]

其他玩法与插件

可以自行搜索,网上对于obsidian的用法还是很多的。比如这篇

快捷键

梳理下自己使用的快捷键,这里面根据自己的习惯对快捷键进行了修改,大家可以做个参考。

快捷键 功能 备注
cmd+. 插入代码块
cmd+e 预览和编辑模式切换
cmd+w 关闭当前文件
cmd+q 关闭当前程序
cmd+o 选择历史浏览的文件
cmd+p 打开命令面板
cmd+1 使用默认程序打开当前文件
cmd+2 插入模板
cmd+3 固定当前tab页
cmd+4 使用笔记漫游
cmd+t 新增编辑当前TODO任务
cmd+s 保存当前文件
cmd+opt+i 打开调试模式
cmd+l 快速添加超链接
# 快速添加标签
[[ 快速添加双链
> 快速添加引用
- 快速添加列表
cmd+, 快速添加引用
cmd+; 快速添加文字加粗 123
cmd+shift+f 启动全局文件搜索
cmd+f 本地文件搜索
cmd+' 文本斜体 123
cmd+; + cmd+' 文本加粗斜体 123
cmd+enter 快速创建列表、checkbox切换
cmd+/ 文本高亮 123
cmd+[ 快速插入双链
cmd+opt+-> 切到下一个笔记
cmd+opt+<- 切到上一个笔记

总结

折腾还是很累的,不过很有成就感。新的笔记记录非常方便,除了表格没之前灵活意外,其他的功能都满足我的需求。而且笔记关联可以让我更好的拆分想法,进行管理。同时看板功能非常好用,可以用于日常任务管理。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Web3Stack/article/details/123638469

智能推荐

从MIF文件直接读取道路数据-程序员宅基地

文章浏览阅读344次。stringfile=@"C:\Inetpub\wwwroot\SSWeb\node\Road.MIF";//载入数据,使用绝对路径(单独制作的综合节点图层)StreamReadersr=newStreamReader(file);stringnextLine,sTmp;longnTmp,mTmp;..._mif路网数据

为什么要用Python来处理数据分析_用python处理数据的意义是什么-程序员宅基地

文章浏览阅读947次。如果你对数据分析有所了解,一定听说过一些亲民的工具如Excel、Tableau、PowerBI等,都能成为数据分析的得力助手。但它们的不足也是显而易见的:操作繁琐,复用性差,功能相对局限单一。怎么解决呢?——PythonPython有很多优点,如果你能很好的运用到工作中,会发现工作效率大大提升,涨薪也是再正常不过的事情。Python优点一:“流程可控,工作高效”举个例子,Excel做分析..._用python处理数据的意义是什么

Openlayer加载WFS图层及C#编写ASP.net代理解决跨域问题,好长的题目-程序员宅基地

文章浏览阅读283次。NND,openlayers跨域访问geoserver居然要用到代理,貌似Felx就不用,用C#编写代理网上普遍是这样的: public class GeoServerProxy1 : IHttpHandler { public void ProcessRequest(HttpContext context) { ..._asp.net 引入 openlayers

SEC7120: 在 Access-Control-Allow-Origin 标头中未找到源_sec7120 无法支持-程序员宅基地

文章浏览阅读7.6k次。SEC7120: 在 Access-Control-Allow-Origin 标头中未找到源 https://b.test.com。SCRIPT7002: XMLHttpRequest: 网络错误 0x80070005, 拒绝访问。SEC7119: https://api.test.com/api/product/single/queryPageRecommendProductPop?typeId=图文 的 XMLHttpRequest 需要飞行前 CORS。SEC7118: https://api._sec7120 无法支持

kubrnetes集群管理系列之pod详解(三)_集群和pod的关系-程序员宅基地

文章浏览阅读585次。k8s集群的最重要的管理工作都是围绕着pods这个资源来进行的,可以说是最根本的东西,没有之一,pods的地位可以简单理解为docker里的容器,但和容器又有所不同(当然是有所不同了嘛,要不干嘛还叫pods,直接叫容器得了,不是更方便???),因此,在进行管理工作前,我们需要明确pods到底是什么玩意,能干什么,为什么要用它,然后才是对pods的增删改查等等这些具体的管理工作了。pod是一组并置的容器,代表了Kubernetes中的基本构建模 块。在实际应用中我们并不会单独部署容器,更多的是针对组pod 的_集群和pod的关系

笔记——idea修改相关配置(字节码,SDK)的版本_idea修改项目sdk-程序员宅基地

文章浏览阅读3.1k次,点赞4次,收藏4次。1,file→setting中的Java Compiler内,设置项目字节码版本和目标字节码版本。(目标字节码版本在点击maven中刷新时,会被还原成1.5,还没解决。)2,file→project structure→project中,设置SDK以及语言等级This SDK is default for all project modules.对于所有项目模块,这个SDK都是默认的。A module specific SDK can be configured for each of the m_idea修改项目sdk

随便推点

影视处理计算机配置,影视后期制作电脑配置需要什么-程序员宅基地

文章浏览阅读3.4k次。说起电脑配置大家应该都不陌生,配置直译文是配备布置的意思,就是把缺少的不足并且设置好。在这里我们说到的是影视后期制作电脑配置,这是关于影视后期制作的电脑配置,是专门对于后期制作中的电脑的配置方法,下面我们就系统的看一下。电脑配置:主板:映泰 Hi-Fi Z87W,大板,Z87芯片组,4条DDR3插槽,2条显卡插槽,¥699。CPU:酷睿i7-4770K ,最新Haswell架构 第四代i7,四核八..._做视频需要电脑什么配置

Android 自定义漂亮的Seekbar样式_android seekbar 覆盖线条-程序员宅基地

文章浏览阅读2.9k次,点赞2次,收藏18次。Android自定义漂亮的Seekbar样式Seekbar通常用于与用户有交互的操作,便于拖拉进度,显示当前进度,当然一个漂亮的seekbar无疑会增加许多用户体验性,下面我就通过一个实例,展示一下怎么自定义一个漂亮的seekbar.一、Seekbar的属性:android:max[integer]//设置拖动条的最大值android:progress[integer]//设置当前的进度值andro_android seekbar 覆盖线条

Java(TM) 已被阻止,因为它已过时并且需要更新_已阻止java,因为它已过时并且需要更新-程序员宅基地

文章浏览阅读1.9w次,点赞2次,收藏3次。1、问题原因Internet Explorer (IE) 提供了一项新的安全功能,称为 ActiveX 控件阻止,用来检查 IE插件的版本是否为最新版本,如果不是最新版本,则要求用户升级组件。如果此功能发现 Java 已过时,则将阻止应用程序或 Web 页的加载,并且将提供更新 Java 的选项。2、解决方案建议您先更新 Java,然后再允许应用程序运行。单击更新并下载最新_已阻止java,因为它已过时并且需要更新

elasticsearch得分设置以及分词器不同层次定义_elasticsearch 分词词性权重-程序员宅基地

文章浏览阅读1k次。GET _cat/indicesGET hotel/_searchGET /_search{ "query": { "constant_score": { "filter": { "term": { "lvg_mc": "酒店" } }, "boost": 1.2 } }}DELETE /my_index PUT /my_index{ "settings": { "numbe_elasticsearch 分词词性权重

RPI.GPIO使用手册_rpi.gpio用法-程序员宅基地

文章浏览阅读1.6w次,点赞5次,收藏71次。目录(?)[+]RPiGPIO模块基本使用导入模块引脚编号方式设置一个通道输入输出设置多个通道的输出清空GPIO 输入上拉或者下拉电阻测试输入轮询中断与边沿检测线程回调开关去抖GPIO 输出设置RPiGPIO设置为高电平输出设置低电平输出同时设置多个通道的输出清空PWM脉冲宽度调制1.RPi.GPIO模块基本使用导入模_rpi.gpio用法

JavaMail发送邮件和附件(源码)-程序员宅基地

文章浏览阅读8.6k次。JavaMail是Sun发布的处理电子邮件的应用程序接口,它预置了一些最常用的邮件传送协议的实现方法,并且提供了很容易的方法去调用它们。JavaMail是Sun发布的应用程序接口,所以目前它还没有被JDK包含。因此你需要从Sun的官方网站上下载到JavaMail类文件包。除此之外还需要Sun的JAF(JavaBeans Activation Framework ),否则JavaMail将不能运行。

推荐文章

热门文章

相关标签