tamplater模板文件可否拆分后统一在一个文件里引用

遇到的问题

版本:最新,软件与插件都是

问题:Tamplater模板可否模块化配置?比如说一个功能写到一个文件里,然后在另一个文件里进行调用。

预期的效果

比如说我配置一个日记的模板,里面要有日期、天气,等等。我分别给日期、天气写了个Tamplater插件用的模板,然后在生成日记所需的模板中引用这两个模板。
生成日记时,日记插件(核心插件)使用模板插件(核心插件)的模板生成日记,同时Tamplater监控日记文件夹中文件生成,最后成功将日记模板中的命令变成想要的内容。

已尝试的解决方案

Tamplater模板中的内容:

<%*
let 日期选项 = tp.date.now("YYYY[年]MoDo,dddd")
let 日期 = '今天是 ' + 日期选项
-%>

日记模板中的相关内容

<% await tp.file.include('[[库中到Tamplater模板的完整路径]]') %>
<% 日期 %>

论坛里有人提到过可以使用 tp.file.include() ,但是我使用后没有效果。我看了下控制台,里边提示“日期”未定义。
(我在日历里有调用其他模板,其中有一个是获取定位与天气的。在生成日记后,我看了下控制台,发现“日期”未定义这个提示要早于天气模板的调用,看起来感觉就像是先把命令全部执行,然后再看有什么,而不是一条一条执行下来)

另外,引用是可以成功引用的,如果把<% 日期 %>放到Tamplater模板里,那就可以正常输出了。
但我不是很想这么做,因为我是打算按功能来分割模板,一个功能模板里可能会有几个要输出的,但是需要放到不同位置,可能会插入到其他功能模板的输出中间。如果直接放到Tamplater模板中来引用,那就没办法排了。

所以,现阶段这个是不可能的?

这样试试

日期

<%*
let 日期选项 = tp.date.now("YYYY[年]MoDo,dddd")
let 日期 = '今天是 ' + 日期选项
-%>
<% 日期 %>

日记

<%*
let 日期 = function(){return tp.file.include('[[日期]]')}()
-%>
<% 日期 %>
间隔
<% 日期 %>

谢谢,我去试试看

唔,按照你给的方法,我去测试了下,不太符合,按照我所想的,就像是在分开的模板文件中定义了功能(let 日期选项),然后在其他笔记中引用。
也就是说,在被模版引用的模版文件中,是没有 <% 日期 %> 这个的,只有在创建文件时使用的那个模版才有。

另外,我还顺便明白了个事,就是 tamplater 插件似乎会无条件地将所有可执行的、属于 tamplater 的命令,在引用模板时全部执行。我们平时在敲命令时使用的注释符似乎也是会无视。

噢,你是想要按要求调用 日期 或 日期选项 是吗,那这样应该是办不到的,因为无法在两个模板代码之间传递数据。我还以为是想要换个可读性更高的方式调用其他模板。

不是想在两个模版间传递数据,虽然我最开始确实是那样想的。
tp.file.include,这个命令会把其他的笔记塞到创建的文件里。我希望的是 tamplater 把模版中的命令拉过来,然后放着等会用,但 tamplater 把模版拉过来时就直接把命令转换了。

比如说,我在一个笔记里放了这个

<% tp.data.now("") -%>
2333

我想它能够通过 tp.file.include “嵌入”到创建的笔记里,然后执行。但 tamplater 的机制像是把整个模版里的命令扫一遍,然后全部执行。

也就是说,如果我使用了 tp.file.include ,那么嵌入后它就会认为这命令执行完了,该下一个了,然后无视掉被引用过来的模板。但也不是完全无视,tamplater会把引用过来的放到最后去执行,但那时已经晚了。