想做一个本地优先笔记,抄一下 tana 的超级标签,大家有什么建议? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
imchl
V2EX    程序员

想做一个本地优先笔记,抄一下 tana 的超级标签,大家有什么建议?

  •  
  •   imchl 2023-11-27 09:30:14 +08:00 4362 次点击
    这是一个创建于 687 天前的主题,其中的信息可能已经有所发展或是发生改变。

    缘由

    平时使用某本地优先的笔记软件,以前就感觉有丢笔记的迹象,但是最近发现了确凿的丢笔记的证据,因此只能放弃这个软件;在网上找了大半天,都有一些让我放弃的理由:

    • notion:很喜欢它的 database ,但是数据都在云端,有可能某一天 gg
    • tana:喜欢它的 super tag ,但是数据也是在云端,根据网上得到的消息,一年的费用需要 100 刀,我的笔记配不上它
    • obsidian:本地优先,并且格式是比较通用的,但是整个页面的按钮太多了感觉好杂乱,并且各种插件对 markdown 的修改,其实想要迁移也是不方便的

    因此,我萌生了自己做一个笔记软件,按照自己的想法来实现

    大概的思路(抄谁)

    1. tana 的 super tag
    2. notion 的 database

    优先实现 tana 的 super tag ,让我可以用起来,后面再加新的功能

    大概的框架

    1. 前端使用 tauri + react
    2. 后端使用 rust
    3. 数据保存于数据库中( MySQL/SQLite ),默认逻辑删除,提供删除指定时间前数据的功能
    4. 图片、附件等保存在本地/直接上传至 S3
    5. 可以设置定时备份任务,自动进行 sqldump 并且备份图片文件到指定目录

    可能存在的难点

    1. 对前端不熟悉,只是用 React 搭建过几个 demo
    2. 对 Rust 也不熟悉,学过几次,没有实际的项目经验,本人是后端开发,主要使用 Java

    可能的收获

    1. 熟悉前端,并且有实际的经验,不仅仅只是搭个 demo 的程度
    2. Rust 入门
    51 条回复    2023-11-29 14:17:20 +08:00
    QUC062IzY3M1Y6dg
        1
    QUC062IzY3M1Y6dg  
       2023-11-27 09:37:27 +08:00
    ui 设计挺重要,会一眼决定我使用它,建议找个专业的设计师或者抄个比较火的框架
    imchl
        2
    imchl  
    OP
       2023-11-27 09:41:12 +08:00
    @shuxhan 确实,我也是,但是我不擅长这方面,因此只能在实现功能了之后再找人;请问有没有框架推荐的
    Arcturus
        3
    Arcturus  
       2023-11-27 09:43:09 +08:00 via Android
    想问个题外话,是哪一款呢?我也在怀疑我的本地优先笔记软件丢笔记
    imchl
        4
    imchl  
    OP
       2023-11-27 09:46:04 +08:00
    X26U68jE5Q6D0ih0
        5
    X26U68jE5Q6D0ih0  
       2023-11-27 09:49:36 +08:00
    notion 还能 gg 吗?
    imchl
        6
    imchl  
    P
       2023-11-27 09:53:51 +08:00
    @wunaidouzi 不知道啊,反正我的梯子有时候会 GG
    Rsl
        7
    Rsl  
       2023-11-27 10:01:53 +08:00
    我也非常喜欢 tana 的 supertags, 用起来太舒适了
    obsidian 推出 properties 后某种程度上能实现部分 supertags 的效果了, 目前我用起来还算满意
    当然体验还是不如 tana 丝滑, 但没办法我还是优先考虑存本地的
    QUC062IzY3M1Y6dg
        8
    QUC062IzY3M1Y6dg  
       2023-11-27 10:11:55 +08:00
    @imchl #4 之前用过思源,包括官方的同步也会偶尔出错,bug 有点多,后来就转 obsidian 了,用 syncthing 同步从未出过问题
    QUC062IzY3M1Y6dg
        9
    QUC062IzY3M1Y6dg  
       2023-11-27 10:12:45 +08:00
    @imchl #2 说实话我挺喜欢语雀的 ui
    itianjing
        10
    itianjing  
       2023-11-27 10:17:43 +08:00
    可以借鉴下 Standard Notes ,增加多种文件格式不局限于 Markdown ,比如表格、富文本
    imchl
        11
    imchl  
    OP
       2023-11-27 10:19:50 +08:00
    @shuxhan 我是从 obsidian 转到思源的,用不惯 obsidian ,感觉啥都靠插件解决
    imchl
        12
    imchl  
    OP
       2023-11-27 10:20:15 +08:00
    @itianjing 好的,谢谢,我晚点看看
    yumenawei
        13
    yumenawei  
       2023-11-27 10:25:26 +08:00
    再抄个双链和超级块。
    如果真的要实现好,感觉没有个两三年不现实。
    imchl
        14
    imchl  
    OP
       2023-11-27 10:34:11 +08:00
    @yumenawei 所以一开始肯定只实现 tana 的 SuperTag ,用起来先,后面再慢慢迭代
    imchl
        15
    imchl  
    OP
       2023-11-27 10:35:05 +08:00
    @Rsl 可惜 obsidian 不是我的菜,要不就用它了
    LavaC
        16
    LavaC  
       2023-11-27 10:44:08 +08:00
    tana 的 supertag 我一直用不太明白,很容易陷入“笔记的组织结构比笔记多”的陷阱,写什么新东西前都得先考虑下 supertag 的内部结构也挺烦的。
    vsitebon
        17
    vsitebon  
       2023-11-27 11:01:20 +08:00
    说实话,打磨也需要时间的,如果前期只有你一个人在用,没有任何经济收入而且反馈的情况下,很难坚持下去。
    imchl
        18
    imchl  
    OP
       2023-11-27 11:13:30 +08:00
    @vsitebon 业余时间开发,就当学习 rust 了
    pikko
        19
    pikko  
       2023-11-27 11:51:43 +08:00
    @imchl #18 怎样都感觉 rust 这个技术选型比较糟糕,例如 notion 的话看起来应该用不少 nodejs 的,毕竟笔记软件这种强前端体验的,后端选个 rust 总觉得奇奇怪怪的

    https://willacompany.notion.site/Our-Tech-Stack-e2702dddbd9d4dd0a8168d696711d8f5
    QUC062IzY3M1Y6dg
        20
    QUC062IzY3M1Y6dg  
       2023-11-27 11:57:20 +08:00
    @imchl #11 那就是使用习惯不同了 我还挺喜欢插件模式,软件把主要功能做出来就好,不要把功能全部塞进去,扩展的功能可以以插件的形式,这样用户可以根据自己的选择搭配,不至于让整个软件过于臃肿,这样还精简一些。同时自己可以开发各种满足自己需求的插件,这样很爽~~
    piha
        21
    piha  
       2023-11-27 12:37:44 +08:00 via Android
    喜欢简洁的话,推荐 Joplin
    faceair
        22
    faceair  
       2023-11-27 12:50:11 +08:00
    你要不 fork 思源重新设计一下落盘和同步逻辑,彻底解决同步的问题
    imchl
        23
    imchl  
    OP
       2023-11-27 13:11:18 +08:00
    @pikko 其实主要是想着做成客户端,我还想着要不后端直接用 Java 得了,直接做成 web 版,先实现了再说,后面有客户端的需求再翻译成 rust
    Delrin
        24
    Delrin  
       2023-11-27 13:14:04 +08:00 via Android
    可以看眼 logseq?
    imchl
        25
    imchl  
    OP
       2023-11-27 13:18:36 +08:00
    @faceair 我不确定思源后面引入新功能后会不会有新的问题出现,综合思源上的数据历史里面的笔记来分析,至少有两次数据丢失,因此还继续用的话需要我不断投入精力确保我的数据没有问题
    imchl
        26
    imchl  
    OP
       2023-11-27 13:23:55 +08:00
    @Delrin 体验了一下,不是很喜欢,0.9.20 版本有个 bug ,设置成“浅色模式”重启后又给我改回去了
    kuituosi
        27
    kuituosi  
       2023-11-27 13:24:45 +08:00
    后端随便一个语言都是碾压 rust 的,rust 根本不适合 crud
    写代码很慢编译很慢,也没有好的 sql 框架
    rust 比较适合数据库中间件这种基础设施,代码量偏重性能优化上面
    imchl
        28
    imchl  
    OP
       2023-11-27 13:26:11 +08:00
    @piha 但是它的 ui 有点丑
    imchl
        29
    imchl  
    OP
       2023-11-27 13:28:34 +08:00
    @kuituosi 是的,我想着要不直接 java 得了,做成 web 版的
    wanzfind
        30
    wanzfind  
       2023-11-27 13:41:18 +08:00
    借楼问一下,有没有给段落打标签的笔记。想以文章的形式组织多个段落(比如读书的摘抄),每个段落打上不同的标签,然后根据标签全局检索我的摘抄。
    imchl
        31
    imchl  
    OP
       2023-11-27 13:52:56 +08:00
    @wanzfind 你看一下 tana 符不符合你的要求,不过它是大纲类型的笔记软件
    leokun
        32
    leokun  
       2023-11-27 14:04:08 +08:00
    思路是可以的,如果搞出来我肯定会使用的
    不过富文本编辑器会比你想象复杂很多,特别是 database 表格功能
    另外 rust 只有入门水平也不太容易 hold 住整个应用
    相信搞定了收获会很多
    imchl
        33
    imchl  
    OP
       2023-11-27 14:35:56 +08:00
    @leokun 我打算把后端改成 java ,先把东西做出来,后面有需要再切换,避免一开始就上难度,打灭激情
    onnethy
        34
    onnethy  
       2023-11-27 16:06:12 +08:00
    typora+标签+检索做好就行了吧
    pikko
        35
    pikko  
       2023-11-27 17:00:34 +08:00
    @imchl #23 前端做成啥端也不用 rust 吧,负责的文档结构,后端太难写了,nodejs 应该是笔记类软件最优解。部分基础微服务用 java 、rust 、go 都无可厚非。
    sleepm
        36
    sleepm  
       2023-11-27 17:16:36 +08:00
    前端界面 https://tamagui.dev/
    色彩切换,自适应界面,比较有意思
    不过是 typescript ,难度又上升一个高度

    https://github.com/zadam/trilium
    推荐这个笔记
    Lenic
        37
    Lenic  
       2023-11-27 17:30:54 +08:00   1
    @imchl 如果不介意收费的话,DEVONthink 确实不错。我现在是电脑上除了代码,其它所有文件都放在里面了,手机上也有,相当于把整个电脑上的文件,都随身带着,很舒服。
    zyxk
        38
    zyxk  
       2023-11-27 20:31:23 +08:00
    @onnethy 问题是 typora 无法做标签吧,如有麻烦告知一下如何用,谢谢
    Dande1ion
        39
    Dande1ion  
       2023-11-27 20:53:22 +08:00
    支持 supertag ,超级块要不也考虑一下
    imchl
        40
    imchl  
    OP
       2023-11-27 20:59:36 +08:00
    @sleepm 感谢推荐,我试试 trilium 看看
    imchl
        41
    imchl  
    OP
       2023-11-27 21:12:54 +08:00
    @Lenic 这个好像没有 windows 吧,我主要是用 window 系统
    imchl
        42
    imchl  
    OP
       2023-11-27 21:13:32 +08:00
    @Dande1ion 等我先搞出一个先,现在连文件夹都还没建哈哈
    Lenic
        43
    Lenic  
       2023-11-27 23:28:30 +08:00
    @imchl 没有,你要是主要用 Windows 那就没办法了,纯苹果生态的软件,不过好用是真的好用,你能想到的功能基本上都有,可以说是一个水桶应用了。对了,颜值好像不高,看多了也就那样了。
    tntin
        44
    tntin  
       2023-11-27 23:29:10 +08:00
    可以组队吗
    hamsterbase
        45
    hamsterbase  
       2023-11-27 23:35:21 +08:00
    建议看看 CRDT ,这个是本地优先软件的未来。
    imchl
        46
    imchl  
    OP
       2023-11-28 07:35:38 +08:00 via iPhone
    @hamsterbase 嗯,知道这个东西,但是没有深入研究
    imchl
        47
    imchl  
    OP
       2023-11-28 07:38:01 +08:00 via iPhone
    @tntin 好啊,但是我只有业余时间
    tntin
        48
    tntin  
       2023-11-28 08:34:44 +08:00
    @imchl 我也是业余时间,留个联系方式沟通吧
    imchl
        49
    imchl  
    OP
       2023-11-28 09:21:08 +08:00
    @tntin VX: aW1jbmNobA==
    xz93
        50
    xz93  
       2023-11-28 15:00:42 +08:00
    我就用了一年的业余时间学了 Golang 和 React ,并折腾了一个卡片白板笔记软件,可以定义卡片的模板(类似 tana 的 supertag ),可以根据卡片属性筛选、分组等(类似 notion 的 database ),还有白板功能(类似 heptabase ),再用 tauri 套个客户端壳子就可以支持本地离线使用。
    不过做出来也没几个人用 =.=!

    链接: https://i.cardcool.top
    Kikkawa
        51
    Kikkawa  
       2023-11-29 14:17:20 +08:00
    @imchl Appflowy 是纯 Rust ,都多久了,感觉功能还是很少不够用...
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5594 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 08:09 PVG 16:09 LAX 01:09 JFK 04:09
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86