V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
SuperMild
V2EX  ›  分享创造

uglynotes 丑丑笔记(虽然丑,但有三大特色功能)

  •  4
     
  •   SuperMild ·
    ahui2016 · 2021-01-17 11:35:55 +08:00 · 3655 次点击
    这是一个创建于 1411 天前的主题,其中的信息可能已经有所发展或是发生改变。

    uglynotes 丑丑笔记

    一个虽然长得丑,但在功能上有一些特色的笔记软件。

    特色一:历史版本完全保留

    • 用户只管写,不用点击保存;放心大胆修改文章,修改过程会以 “历史版本” 的形式被记录,随时可以找回。
    • 默认每隔 1 分钟产生一个历史版本,该间隔时间可以自由设置。
    • 默认每篇笔记最多拥有 100 个历史版本,该数值也可自由设置。
    • 当产生的历史版本数量超过上限时,最早(最旧)的那个历史版本将被覆盖,依此类推,因此不用担心历史版本太多导致数据库空间浪费。
    • 对于重要的历史版本,用户可点击 “保护” 按钮,受保护的历史版本不会被覆盖。

    特色二:Markdown 内嵌图片

    • 特色一历史版本功能是我在逛 V2EX 的时候看大家讨论笔记软件时获得的灵感,这个特色二也同样是看到有人说起,我才想到做这个功能。
    • 目前我做了一个独立的页面 http://note.ai42.xyz/convert 用来将图片转码,转码后可粘贴到任何 markdown 文件中(不局限于本站,任何支持 markdown 的地方都可以使用),即可让图片直接内嵌在 markdown 文件里。
    • 不需要图床,因此也不用怕图床失效,图片数据就在 markdown 文件里,因此图片永远有效。

    特色三:对标签管理的重新思考

    • 用标签来管理文件,比使用文件夹更科学、更方便好用。但为了照顾用户习惯,很多支持标签的软件都会同时支持文件夹。
    • 但习惯的力量是可怕的,一旦支持文件夹,用户就不会认真对待标签,结果有的文件设了标签,同时有很多文件只是归类到文件夹里,完全没有标签。
    • 对于标签管理系统来说,“有的文件有标签,有的文件没有标签” 是灾难性的,这导致整个标签系统名存实亡,彻底沦有一个可有可无的辅助角色,发挥不出应有的效果。
    • 因此,在本软件中尝试不使用文件夹,只使用标签,并且要求每篇笔记至少要有两个标签。同时提出了一个 “标签组” 的概念,最大限度发挥标签的效果。

    Tag Group (标签组)

    • 每个标签组要求至少包含 2 个标签。
    • 在标签组列表页面,可通过标签组来搜索笔记,也可通过标签组来创建新笔记。
    • 原则上只能通过标签组来创建新笔记,这是为了改变用户习惯,确保每篇笔记都有标签。
    • 下面通过一些例子来说明这样做的好处。

    标签组示例

    我们写笔记,最大的目的是为了日后能轻松找出笔记。在有了 “标签组” 这个高效率管理工具之后,只需要遵从一个简单的原则,即可轻松创建出非常有利于检索的标签组:

    原则:一两个共性标签 + 一两个唯一性标签

    比如:

    • #editor #emacs #快捷键
    • #editor #emacs #org-mode
    • #editor #vim #快捷键
    • #editor #vim #vimrc
    • #操作系统 #Windows #快捷键

    当我们用上述标签组来创建一些笔记后,

    • vim(共性标签) 能找出与 vim 有关的快捷键、vimrc 等笔记
    • org-modevimrc(唯一性标签) 即可直接找出最精确的结果
    • editor(更大范围的共性标签) 又能扩大搜索范围
    • 还可以搜 editor + 快捷键 来找全部编辑器的快捷键而不被 操作系统 的快捷键污染搜索结果

    可见,标签管理很科学,也很易用,我们以前不这样用,是因为在有文件夹的系统里有大量文件没有标签,导致我们每当想通过标签来搜索文件时都心里没底,总觉得有漏网之鱼。

    在规定必须使用标签的系统里,我们可以体验标签管理的真正实力。

    demo 演示版

    • http://note.ai42.xyz (密码 abc)
    • demo 的笔记字数限制、数据库总容量、产生历史版本的间隔时间、自动提交次数上限等,都设置了比较低的数值,实际使用正式版时这些数值都可以自由设置。
    • demo 服务器在美国,一个非常低配的 VPS, 因此访问速度比较慢,这是网络问题不是程序问题。

    关于丑

    • 我对前端界面美化实在不擅长,折腾起来太花时间,就索性不折腾了。没有用任何前端框架,CSS 也尽可能少用,因此是很原始的风格。
    • 主要考虑桌面屏幕,没有做手机屏幕适配,但我试了一下手机使用也……勉强能用。
    • 大体上是前后端分离的,后端只向前端返回 json, 从不返回渲染过的网页,因此有前端能力的朋友们可以轻松改写前端页面。

    开源仓库

    https://github.com/ahui2016/uglynotes

    第 1 条附言  ·  2021-01-18 11:12:58 +08:00
    我手残,正文中图片转码网址我打错了!正确的是这个 http://note.ai42.xyz/converter
    22 条回复    2021-01-20 14:13:49 +08:00
    molezznet
        1
    molezznet  
       2021-01-17 12:15:31 +08:00 via Android
    挺符合个人需求。手机勉强能用,期待全文搜索
    SF
        2
    SF  
       2021-01-17 12:18:52 +08:00 via iPhone
    其实挺不错
    SuperMild
        3
    SuperMild  
    OP
       2021-01-17 14:24:42 +08:00
    @molezz765 全文搜索太耗资源了,所以我没有做,同时我也更希望大家重视标签,用好了标签所有笔记都会井井有条。
    Kilerd
        4
    Kilerd  
       2021-01-17 14:34:56 +08:00
    默认每隔 1 分钟产生一个历史版本,该间隔时间可以自由设置。

    上个 ot 、easysync 、CRDT 协议吧,每次修改都是一次版本。
    zjgsamuel
        5
    zjgsamuel  
       2021-01-17 14:47:57 +08:00
    加油~
    MemoryCorner
        6
    MemoryCorner  
       2021-01-17 15:15:26 +08:00
    哈哈,确实很丑
    SuperMild
        7
    SuperMild  
    OP
       2021-01-17 18:46:56 +08:00
    @Kilerd 感谢建议!这个建议很不错,我研究一下看怎么弄……
    lifetimeporn
        8
    lifetimeporn  
       2021-01-17 18:49:57 +08:00
    这不是丑不丑的问题,这是压根没界面纯文字,只有 Tag 有那么点可怜的样式
    Acoffice
        9
    Acoffice  
       2021-01-17 19:01:36 +08:00 via Android
    建议配置,可以通过 web 页面配置。
    如果不可以,那建议可以动态读取外部配置,指定配置文件路径,方便 docker 来打包。
    ---
    每次修改配置,都要重新编译这也太槽点了
    SuperMild
        10
    SuperMild  
    OP
       2021-01-17 22:53:51 +08:00
    @lifetimeporn 我也想加样式,但加了之后还是丑啊…… 然后肯定要改样式,改来改去都不满意,因此我才放弃了自我……
    SuperMild
        11
    SuperMild  
    OP
       2021-01-17 22:58:21 +08:00
    @Acoffice 谢谢建议!已经改成读取外部配置了,不需要重新编译,但还是需要重启程序。其实那些设置基本上都是一次性的,不用经常改,能偷懒就偷懒了。
    renmu123
        12
    renmu123  
       2021-01-17 23:18:05 +08:00 via Android
    这叫极简,怎么能叫丑 2333 。
    前几天我在思考 md 笔记的时候也考虑到了图片无法直接内嵌进去导致非常依赖图床,大部分的图床又稳定性堪忧。就是一大串字放在 md 末位没那么优雅了,希望之后 md 能拓展一下语法。
    楼主这个点子可以让我们直接在 v 站上发图而不比依赖图床了,我觉得这个一个非常大的进步。
    Acoffice
        13
    Acoffice  
       2021-01-18 08:06:08 +08:00 via Android
    转码网站挂了???可以说说转成什么码了吗? base64 ?
    PayneSeediqBale
        14
    PayneSeediqBale  
       2021-01-18 09:39:52 +08:00
    Markdown 的图片转码还是非常赞的
    woostundy
        15
    woostundy  
       2021-01-18 10:26:29 +08:00
    搞个居中就行了
    SuperMild
        16
    SuperMild  
    OP
       2021-01-18 11:11:33 +08:00
    @Acoffice 多谢反馈!我打错网址了! http://note.ai42.xyz/converter
    SuperMild
        17
    SuperMild  
    OP
       2021-01-18 11:29:21 +08:00
    @Acoffice 关于转码的细节请看源码,我这个是完全在前端用 js 做的转码,不需要后端。
    molezznet
        18
    molezznet  
       2021-01-18 12:16:51 +08:00
    放在 nas 上用了,长期用试试。
    等待有人能适配手机端
    SuperMild
        19
    SuperMild  
    OP
       2021-01-18 12:36:17 +08:00
    @molezz765 感谢支持,先别重度使用,上面有人提到历史版本的改进方法,后续我可能会做稍大点的改动。遇到任何问题可以在这里或者在 github 问我。

    目前的最新版支持 -config 指定配置文件,因此建议你把 settings.json 复制到别的文件夹,后续我发布新版后,想升级可以用以下命令:

    ```
    $ cd uglynotes
    $ git stash
    $ git pull
    $ go build
    $ killall uglynotes
    $ ./uglynotes -config /path/to/settings.json &
    ```
    molezznet
        20
    molezznet  
       2021-01-18 12:55:31 +08:00
    molezznet
        21
    molezznet  
       2021-01-18 15:47:25 +08:00
    用上 -config 了,db 和 setting 都放在另外文件夹了
    SuperMild
        22
    SuperMild  
    OP
       2021-01-20 14:13:49 +08:00
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5509 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 08:44 · PVG 16:44 · LAX 00:44 · JFK 03:44
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.