IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    借助简悦将网页收藏进Obsidian

    ern发表于 2021-12-28 08:24:45
    love 0

    Obsidian是个完全本地化的工具,除了用来做笔记,拿来做摘要和知识库其实也不错,只要不用担心在线服务的稳定性等问题。另一方面,关注了好几年,抓网页的好工具也就是剪藏(印象笔记)和简悦了,Bear、DevonTHINK虽然也有插件,但是前者的格式转换不太完美,后者的思路是保存WebArchive等,对markdown之类的转换也并不友好。所以几年前抛弃印象笔记后,主要就是依赖简悦,便宜、活儿好。

    对抓网帖来说,要纯本地化的塞进Obsidian,关键就是如何将图片等附件本地化。关联简悦来说,就是导出为TextBundle格式,自带了所有附件。向作者反馈过问题以后,有其他网友给了个挺好的解决思路,结合Hazel的文件夹监控和自动化动作实现整理。为了更契合我自己直接把帖子扔到一个文件夹的习惯,做了一些修改。

    首先,根据需要自己定义简悦的下载文件夹,这一步在简悦·同步助手里设置就行了,我直接定义到Obsidian文档库里。

    第二步,为下载文件夹设置一个Hazel规则,考虑到下载时间,这里设置为1分钟以后触发,并且在最后删除原.textbundle文件。

    第三步,关键是中间执行的脚本:

    string=$1
    
    # 分割成 xxx.textbundle
    temp=${string##*\/}
    
    # 提取文章名 xxx
    article_name=${temp%%.*}
    folder_name=`echo $article_name | sed 's/ //g'`
    
    # Markdown 文件之前的名字
    name_before=$string"/text.markdown"
    
    # 重命名之后的 Markdown 名字
    name_after="$article_name.md"
    
    # 重命名 Markdown
    mv "$name_before" ./"$name_after"
    
    # 重命名文件夹
    mv "$string"/assets attachments/$folder_name
    
    # 得到 info.json的地址
    json=$string"/info.json"
    
    # 删除 info.json
    rm -f $json
    
    # 重命名markdown中附件路径
    sed -i '' -e "s|assets/|attachments/$folder_name/|g" "$name_after"

    简单来说,就是将下载的.textbundle文件打开,其中的markdown文件修改扩展名作为正文;其中附件文件夹assets也统一用文件名命名(剔除空格,避免后续处理麻烦),然后移到文档库的attachments/目录下,实现对所有附件的统一管理。最后为了防止有附件重名导致正文引用错误,批量替换为新的附件路径。

    至此,正文在文档库指定目录下,附件分门别类放到统一附件目录的同名文件夹下。后续只需要根据自己的知识库规范整理就行了。

    已知问题:如果网帖的图片附件是有链接的,也就是转换后类似[![图片名](1.jpg)](链接)这样外面还包一层链接时,最后替换完以后在Obsidian里无法正常预览。

    最后感谢简悦的作者Kenshin,之前他提示Windows平台可以用Quicker做后续处理的时候,我就在琢磨Hazel,这次直接站在热心网友的肩膀上实现了自己的需求。



沪ICP备19023445号-2号
友情链接