fortun5
关注
117522 号成员,2023-10-30 17:49:59 加入
54
个人主页 浏览
3h52m
在线时长
  • 思源笔记 从 文件管理器 拖入附件,附件会被用默认方式打开一次

    2023-12-01 16:00

    +1,我在 macOS 上也复现了该问题。2.10.xx 没有该问题。

  • 请求优化 md 语法 ~

    2023-12-01 15:56

    +1,的确不太适用于普通人。要是有个开关能关闭某些 md 语法就好了,尤其是 _~ 作为普通字符还挺常用的

  • 请问参与思源开发有办法能快速入门吗

    2023-11-20 18:40

    方便给个链接或群号吗?没找到。。

  • 请教 SQL 问题:如何使用 SQL 展示指定文档下所有的子文档

    2023-11-20 15:23

    谢谢。之前也试用过 query 挂件,体验不是太好,样式也不够原生,于是就放弃了 。。

  • 请教 SQL 问题:如何使用 SQL 展示指定文档下所有的子文档

    2023-11-20 13:18

    😳 我也是咨询了一圈,没有只提取展示标题的方法。。

  • 请教 SQL 问题:如何使用 SQL 展示指定文档下所有的子文档

    2023-11-20 09:55

    这段 SQL 会把子文档内容全都提取出来吧?不知道能不能只展示标题

  • 求一段列出所有子文档的 SQL

    2023-11-09 21:10

    哦哦,搞岔了,我装的是“文档层级导航”插件。先试了“目录插件”但是发现不能自动更新子文档(提示不推荐),于是就卸掉了。。

    image.png

  • 求一段列出所有子文档的 SQL

    2023-11-08 20:08

    多谢推荐,我也用上了,只是不能显示子文档。。

    另外思源 sql 只能用 select *,不能选择具体 column 的确受限很大啊。Query 插件用起来也不够原生。

  • 反馈 表格内连续输入 | 会出错

    2023-11-08 19:59

    话说既然思源已经用 sy 私有格式了,为啥还纠结于 markdown 的符号呢?类似 |、*、_ 这些都不应该需要转义直接所输入即所得,类似语雀那样的编辑器体验就很好。

  • 导航栏单击打开文档、双击展开子文档

    2023-11-05 00:10

    这段 JS 怎么使用的?

  • 导航栏单击打开文档、双击展开子文档

    2023-11-05 00:06

    赞同,第二个“点图标:给文档换 emoji”真的太恶心了。谁整天给文档换 emoji 呢?这种低频操作的确应该右键或放到更偏僻的地方去。

  • 请问 kmind 和 draw.io 挂件是咋使用的?

    2023-11-04 18:06

    谢谢分享,看起来的确很麻烦,使用 drawio 挂件是不如直接用桌面版或网页版了。

  • 思源笔记书签功能如何使用?

    2023-11-02 11:25

    我也研究了半天,查到这个帖子才知道。每次收藏还需要到属性里去编辑一下,感觉使用成本很高啊。。

  • 请问有 obsidian 迁移思源的工具吗?

    2023-11-02 11:10

    因为凑合用就行,代码比较 ugly,只能参考一下思路吧。主要做了两件事:1)处理了三种 link 形式 [[]] ![]() [](),2)把所有附件都放到了 md 同目录。注意处理前先备份整个 vault。。

    
    import sys
    import re
    import os
    import shutil
    
    pattern_markdown = r'\!\[[^\]]*\]\(([^\)]+)\)'
    pattern_wikilink = r'\!\[\[([^\]]+)\]\]'
    pattern_pdf = r'\[\[([^\]]+)\]\]'
    
    base_path = '/Path/to/Obsidian/vault/assets'
    
    def replace_markdown(matchobj):
        orig = matchobj.group(0)
        image = matchobj.group(1)
        image_dir = os.path.dirname(image)
        image_filename = os.path.basename(image)
        image_description = ''
        ext = os.path.splitext(image_filename)[1]
        if ext not in ('.jpg', '.jpeg', '.png', '.gif', '.pdf', '.svg'):
            if '|' in image_filename:  # format [[a.png|500]]
                rets = image_filename.split('|')
                image_filename = rets[0]
                print('image splited by | ')
            else:
                rets = image_filename.split()
                image_filename = rets[0]  # format ![](a.png "some description")
                image_description = ' '.join(rets[1:])
                print('image splited out description: %s.' % image_description)
        orig_image = os.path.join(image_dir, image_filename)
        orig_path = os.path.join(base_path, orig_image)
        #dest_path = os.path.join('assets', image_filename)
        dest_path = image_filename
        #if not os.path.isdir('assets'):
        #    os.mkdir('assets')
        #if image_dir:
        #    new_dir = os.path.join('assets', image_dir)
        #    if not os.path.isdir(new_dir):
        #        os.mkdir(new_dir)
        #print('rename from %s to %s' % (orig_path, dest_path))
        try:
            shutil.move(orig_path, dest_path)
        except:
            print('failed to move %s!!!' % orig_path)
        output = '![](%s)' % dest_path
        if image_description:
            output += '\n' + image_description
        return output
    
    
    def process(infile):
        outlines = []
        with open(infile, "r") as fp:
            lcnt = 0
            for line in fp:
                lcnt += 1
                if lcnt in (1, 2, 4):  # skip front matter
                    continue
                if line.startswith('[['):
                    ret = re.sub(pattern_pdf, replace_markdown, line)
                else:
                    ret = re.sub(pattern_markdown, replace_markdown, line)
                    ret = re.sub(pattern_wikilink, replace_markdown, ret)
                outlines.append(ret)
        output = "".join(outlines)
        with open(infile, "w") as fp:
            fp.write(output)
    
    
    if __name__ == "__main__":
        infile = sys.argv[1]
        process(infile)
    
    
  • 请问有 obsidian 迁移思源的工具吗?

    2023-11-01 20:08

    花了点时间迁移完了,汇报一下。

    卡点其实主要在图片和附件,只要都保存在相对路径,并且使用标准的 markdown link 就没问题。

    所以用 python 写个脚本,把 link 处理一下,把附件都挪到相对路径,就能一键迁移了。

  • 请问有 obsidian 迁移思源的工具吗?

    2023-10-31 10:23

    收到,谢谢。看起来大家提及的主要痛点就是 wiki link,刚好我在 ob 里基本都是标准的 link 形式,所以这个倒是问题不大。