跳转至内容
  • 最新
  • 版块
  • 标签
  • 热门
  • 用户
  • 群组
  • 太微中文教程
  • 新插件投票看板
皮肤
  • 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
2 帖子 1 发布者 37 浏览 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 条回复 最后回复
    0
    • 机杼机 离线
      机杼机 离线
      机杼
      编写于 最后由 机杼 编辑
      #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
      回复
      • 在新帖中回复
      登录后回复
      • 从旧到新
      • 从新到旧
      • 最多赞同


      • 登录

      • 没有帐号? 注册

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