jia6y / flomo-to-obsidian

Make Flomo Memos to Obsidian Notes
MIT License
90 stars 2 forks source link

[Feature Request] 模板支持 #30

Open Steven-AA opened 4 months ago

Steven-AA commented 4 months ago

能否按照模板导入flomo,不用太复杂,我只是想添加一些YAML,created_time 之类的,能够用上flomo的实际创建时间,而不是导入的时间。

jia6y commented 4 months ago

关于创建时间,每一条应该是以实际创建时间记录的。您遇到了使用导入时间记录的情况了吗?

image
Steven-AA commented 4 months ago

我想把这个时间写到YAML/Property里面,方便其他插件识别,比如 Thino。

Steven-AA commented 4 months ago

我所期望的笔记内容:

---
id: memoID
createdAt: YYYY/MM/DD HH:mm:ss
---

content

能允许用户自行修改模板可能还是比较麻烦的话,我在尝试自己修改 core.ts 来编译一个我自己用的插件版本。 我有编程基础但还没尝试过ob插件开发相关的内容,目前我还缺少:

您是否方便提供一些指导,关于如何开始开发和调试这一插件相关的方法/文档?

jia6y commented 4 months ago

没问题 :)

  1. clone 这个项目到本地
  2. 打开“终端”进入项目目录
  3. 运行“npm run dev”
  4. 当你做了任何修改,就会自动编译成main.js
  5. 把main.js拷贝到 你当前obsidian vault下的 “.obsidian -> plugins -> flomo importer” 下面替换原来的
  6. 重启Ob就能生效

(Step5 - 还可以先复制一份 flomo importer 为其他名字,例如flomo importer test 啥的,然后把main.js放进去,这样就不影响原来的插件了。)

jia6y commented 4 months ago

文档不是很多,想要开发插件,只能参考官方文档和参考别人写的插件。

jia6y commented 4 months ago

另外你指的memoID是啥? 如果要添加模版内容,加在core.ts第77行就行。

Steven-AA commented 4 months ago

成功了,感谢! 现在Thino 可以正确识别flomo创建的日期了,后续我应该会把笔记第一行的日期去除。 image

            const formattedDateTime = dateTime.replace(/-/g, '/');
            const crypto = require('crypto');
            const id = crypto.randomBytes(12).toString('hex');
……
            res.push({
                "title": title,
                "date": dateTime.split(" ")[0],
                "content": "---\nid: "+ id +"\ncreatedAt: "+ formattedDateTime 
                        +"\ntag: \n  - thino/multi\n---\n\n📅 [[" + dateTime.split(" ")[0] + "]]"+ " " + dateTime.split(" ")[1] + "\n\n" + content,
            })
Steven-AA commented 4 months ago

memoID 会在复制memo链接时出现在链接中 image

Thino 似乎需要这样一个id来追踪卡片,如果没有id, 新的id会被创建且覆盖 createdAt。 因此我想把flomo 的 memoID 拿来做 id。 但是我在导出的html里面没有找到 memoID, 看来是没有办法了。 image

目前用的是随机生成的 id, 缺点大概是每次导入都会重新生成一遍新id, 所有卡片就全重来了,量大了可能每次导入都得混乱一会,等重新识别。

jia6y commented 4 months ago

👍厉害。 网页上的memoID在导出的文件里不存在,所以我在暂时没法获取到。我找时间研究研究。

jia6y commented 4 months ago

memoID可以用时间戳的md5生成,这样每次都一样且不会有重复的了。