跳转至内容
  • 最新
  • 版块
  • 标签
  • 热门
  • 用户
  • 群组
  • 太微中文教程
  • 新插件投票看板
皮肤
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(不使用皮肤)
  • 不使用皮肤
折叠
太微中文论坛icon

太微中文展示

  1. 首页信息流
  2. 版块
  3. 讨论
  4. TiddlyWiki与Obsidian,我全都要

TiddlyWiki与Obsidian,我全都要

已定时 已固定 已锁定 已移动 讨论
插件obsidian
5 帖子 3 发布者 173 浏览 1 关注中
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • 机杼机 离线
    机杼机 离线
    机杼
    写于 最后由 机杼 编辑
    #1

    最近我重新搞了下博客,用Obsidian写MD文件,用hugo搭建。后面我想到,为什么不能用Obsidian编辑md,然后转换成TiddlyWiki可识别的模式呢?

    TiddlyWiki是支持md文件的,但TiddlyWiki与市场上大多数支持md的笔记软件不太一样,TiddlyWiki是把属性保存在meta文件中的。类似于下面这种形式。meta文件的内容就是常见的键值对,属性值的内容。而Obsidian则是把属性值存放在MD文件自身的YAML格式上。这一点是写在Obsidian核心里的。而为了绕过这一点,我的思路也很简单,当插件检测到用户正在使用Obsidian编辑md文件时,把meta里的内容复制到md文件上,而当用户编辑完成时,则把编辑之后的yaml内容移动到meta文件中并在md文件里删除yaml内容。因为每次只要面对一个或少数几个md文件,性能上应该没什么压力。

    测试.md
    测试.md.meta
    
    ---
    tags: TiddlyWiki
    ---
    

    Link Preview Image
    GitHub - dongrentianyu/tiddlywiki-meta-sync: 在Obsidian中编辑md文件,并保留TiddlyWiki格式

    在Obsidian中编辑md文件,并保留TiddlyWiki格式. Contribute to dongrentianyu/tiddlywiki-meta-sync development by creating an account on GitHub.

    favicon

    GitHub (github.com)

    目前已开源,只需要到仓库里,看一下安装方式就好。整个插件完全是由Grok写的,想改代码可以看一下自己改,

    展示

    6d102e37-156f-49b0-9ac5-99fd711d82de-939b218e6ddc4507062fd1ed245349a.png

    6209353b-d001-42d6-b0c4-8480e3c181f9-bca22f80033544b5732cf8dd12e09d5.png

    6e608d25-050c-47bc-9b8f-56c49245afd0-06298c97ae0ba755b50dc06626a0db4.png

    43e55e4d-9ac3-4224-93cc-18e8cbd73834-3be01dffef10bf9cc6b89376e700083.png

    好处

    这样就可以实现,TiddlyWiki和Obsidian,我全都要。在Obsidian里,完全可以和正常的Obsidian一样进行编辑安装插件。但注意无法使用像dataview这种插件,因为其是读取yaml格式的。Obsidian负责编辑文件,而TiddlyWiki负责数据库和前端展示。因为TiddlyWiki的筛选器语法真的比dataview要简单很多,且扩展性更强。

    同理,这个思路还可以用在其它软件上。如果你会使用Emacs,也可以进行相应的操作,无非是把md文件换成org文件,在代码层面应该是不难做到这种事情的。emacs的org-roam自带一个数据库加载,在编辑时加载会非常方便。TiddlyWiki在这里重点需要负责的内容只有前端展示。

    那为什么要搞得这么复杂呢?

    也很简单,因为如果不依赖这些软件,完全自己去写代码和数据的话,工作量会非常大。对于非程序员群体来说很不友好。上述方案至少还能跑得通。

    其次是可以方便在TiddlyWiki里对接AI功能。借助Obsidian的生态,AI正常在Obsidian里生产文章,一编辑就保存到TiddlyWiki的数据库了。非常方便,也不用担心TiddlyWiki一直没有AI功能而搞不定了。

    注意事项

    • Obsidian中不支持纯数字标签,但TiddlyWiki是支持,因而在使用Obsidian编辑TiddlyWiki的md文件时,应注意这一点。
      • 这个也是写在Obsidian核心里的,很难绕过。
    • TiddlyWiki不允许重名,而Obsidian允许在不同的文件夹下重名。因而插件有检测机制,检测在当前Obsidian库中存在重名文件时,便会出现弹窗提醒更改。
      • 但同样有个问题。我使用Obsidian的库是挂载在tiddlers文件夹外部,插件无法检测到tiddlers内部的文件。需要注意。
    • Obsidian会实时检测到MD文件的修改。且可以在TiddlyWiki中修改和编辑MD文件。但反过来则不行,在Obsidian进行编辑后的MD文件,TiddlyWiki需要重启才能读取到。
      • 太记最近好像有做检测外部修改文件然后重启的功能,但目前还是实验性的。
    • 插件有进行转换的功能,但好像没写好。
      • 技术好的可以再加功能。直接提pr或者联系我开仓库权限,或者写好了发个评论我去下载。
    1 条回复 最后回复
    1
    • 机杼机 离线
      机杼机 离线
      机杼
      写于 最后由 机杼 编辑
      #2

      简要写一下我的挂载路径。

      tiddlers\
      tiddlers\TW-Obsidian
      tiddlers\TW-Obsidian\tiddlywiki.files
      TW-Obsidian
      TW-Obsidian\.obsidian
      TW-Obsidian\ROOT
      TW-Obsidian\ROOT\测试.md
      TW-Obsidian\ROOT\测试.md.meta
      

      简单来说,即把Obsidian编辑存在的文件夹放在tiddlers同级的外层,而不放在里面。不放在里面是因为会加载像.obsidian这个带有插件等其它文件性质的文件夹。而后面把所有文件全都放进ROOT文件夹中也是如此。因为我们不想把.obsidian也挂载进去。

      tiddlywiki.files 文件本质上是一个纯文本的json文件。我是按上面的路径进行配置的,并增加了isEditableFile属性,使得可以在TiddlyWiki中进行编辑md文件,并修改原文件。不然的话,在TiddlyWiki里编辑过后会在tiddlers文件夹中生成同名文件。

      {
        "directories": [
          {
            "path": "../../TW-Obsidian/ROOT",
            "isEditableFile": true
          }
        ]
      }
      

      最后记得在.gitignore文件中新增一行,避免对这些插件内容进行跟踪,当然如果你想使用git进行多端同步的话,也可以不排除。

      # 排除掉Obsidian相关的插件设置
      TW-Obsidian/.obsidian/
      
      1 条回复 最后回复
      0
      • K 离线
        K 离线
        king0billy
        编写于 最后由 编辑
        #3

        看完你写的文字, TiddlyWiki比obsidian的优势只在筛选器语法上了吗?

        机杼机 1 条回复 最后回复
        0
        • linonetwoL 离线
          linonetwoL 离线
          linonetwo
          编写于 最后由 编辑
          #4

          还有开源开放,obsidian 闭源的,想改什么都没法改,比如很多界面框架是不让定制的。现在有 ai,想要什么只要开源就指哪打哪了。

          1 条回复 最后回复
          1
          • K king0billy

            看完你写的文字, TiddlyWiki比obsidian的优势只在筛选器语法上了吗?

            机杼机 离线
            机杼机 离线
            机杼
            编写于 最后由 编辑
            #5

            @king0billy

            那肯定不是。TiddlyWiki与Obsidian各有所长,各有不同的使用场景,还是要看不同的需求。我提出这个方案只是为了满足在TiddlyWiki里能正常加载Obsidian编辑的MD文件。因为Obsidian的流行,导致很多MD编辑器也是使用YAML格式的。

            TiddlyWiki擅长的是筛选器和筛选器带来的微件,以及由微件带来的自定义用户界面。这些都是Obsidian或其它任何软件无法实现的。至少我搜寻过太多软件很少能做到这一点。尤其是深度结合HTML和css的,大多数还要写lua脚本,然后实现一个原生但简陋的功能。比如sliver bullet。

            我最近有打算在五一假期或者什么时候一个大长假的时候,重新设计自己的TiddlyWiki界面。一个功能繁杂但也许能满足我需要的。

            再比如,我之前应该也有在论坛发过,那种借助太记可以实现同一个wiki,多个不同展示界面同时访问的那种功能。这也是Obsidian或其它软件无法实现的。他们有标签页,但其实两者不是一个东西。

            88e7bbb5-be02-4eba-b687-d609e4c1cb3a-image.png

            现在上班了,时间不多,但有时候还是会用周末写一下。比如这里标题下面那些按钮就是我自己写的。

            c64d54d6-d490-4967-8644-225f5cd7186a-image.png

            点击 可以切换不同的展示方式,且有另一个背景颜色提示。


            这里还要再说回来,如果会JS,那TiddlyWiki也好,Obsidian也好,两者都有很大的扩展空间,甚至Obsidian会更大一点。但关键是,什么是你需要的。每个人需求不一样,对应场景不一样。对笔记软件的看法也不一样。

            比如我现在迫切想用上MWS,因为我始终担心nodejs版本的TiddlyWiki存储性能不够。不足以支撑未来庞大的数据量。

            1 条回复 最后回复
            0
            回复
            • 在新帖中回复
            登录后回复
            • 从旧到新
            • 从新到旧
            • 最多赞同


            • 登录

            • 没有帐号? 注册

            • 登录或注册以进行搜索。
            Powered by NodeBB Contributors
            • 第一个帖子
              最后一个帖子
            0
            • 最新
            • 版块
            • 标签
            • 热门
            • 用户
            • 群组
            • 太微中文教程
            • 新插件投票看板