a-nano-dust / dust-obsidian-calendar

obsidian 日历插件
MIT License
57 stars 2 forks source link

Templater 模板不生效 #40

Closed a-nano-dust closed 4 months ago

a-nano-dust commented 4 months ago
          我使用的是Templater,模版文件位于根目录下Tempaltes内,完整文件名是日记-tpl.md,我在配置中写入日记-tpl,不会有红色的警示提示,这样配置下,双击生成的还是空白文件。

我的模版含有一些远程拉取随机图片之类的异步方法,是Templater官方文档里有的那种,有影响么。

Originally posted by @nyssance in https://github.com/a-nano-dust/dust-obsidian-calendar/issues/12#issuecomment-2148818232

a-nano-dust commented 4 months ago

能否把你的模板内容发出来,如果涉及私人信息,可以大概写一个能够复现问题示例,方便我排查问题

nyssance commented 4 months ago

日记模板

---
cssclasses:
  - cover
prefer-view: read
created: <% tp.date.now() %>
tags:
  - 日记
  - timeline
  - me
---
![cover](<% tp.user.random_picture() %>)
# <% tp.file.title %>

random_picture 方法在单独的js里

const randam = async (query) => {
    try {
        const response = await fetch(`https://source.unsplash.com/random${query ? "/?" + query : ""}`)
        console.warn(response)
        return response.url
    } catch (error) {
        console.warn(error)
    }
}

module.exports = randam

我推测可能影响的原因,一个是这个图片的随机方法异步造成。一个是<% tp.file.title %> 这句需要先创建日记,然后再获取标题。

nyssance commented 4 months ago

我又测试了下,我放一个没有任何功能的名为test.md模版,模版标题和内容里都不带任何中文,去掉所有函数,还是无法通过模版创建。应该是和Temlater的配合问题么?

a-nano-dust commented 4 months ago

Snipaste_2024-06-08_00-20-31

Snipaste_2024-06-08_00-20-39

Snipaste_2024-06-08_00-20-53

我测试了一下,是正常的。建议你用快捷键 Shift + i 打开控制台,看看有没有报错。令我我测试的时候发现这个拉取图片的代码会有延时,在内容刷新之前,需要确保光标在笔记输入区域内。

nyssance commented 4 months ago

找到问题了。我在官方的日记插件设置了模版位置。在Templater里就不需要设置,其他地方例如Thino也能自动从模板创建日记。但是你的插件,我需要设置Templater里添加一个Folder Templater,给日记文件夹再设置一次才行。

a-nano-dust commented 4 months ago

对,是这样

a-nano-dust commented 4 months ago

对,是这样