3

我有一个my_macro.html定义,目前看起来像这样:

<!--
  templateType: "none"
  isAvailableForNewContent: false
-->


{% macro video_card(background_image, video_link) %}

    <div class="videoCard" style="background-image: url({{ background_image }});">
      <a class="button--play" id="play-video"></a>
      <h1>test</h1>
    </div>

{% endmacro %}

在 HubSpot 中custom module,我正在尝试使用此宏。我有以下内容:

{% import '/website/assets/hubl/my_macros.html' as macros %}

<div class="hero">
  <div class="hero__video">
    {{ macros.video_card }} <!-- this is where I'm trying to print markup -->
  </div>
</div>

但是,在我应该期待标记的输出中,我看到以下消息:

com.hubspot.jinjava.lib.fn.MacroFunction@9d25d51

不确定为什么?我遵循了此处定义import的文档和my_macro.html文件名结构。

4

2 回答 2

0

对于任何想知道的人,在自定义模块中使用宏的正确方法是:

{% from '/website/assets/hubl/my_macros.html' import videoCard %}

它的用法是:

{{ video_card('image.jpg') }}

于 2021-03-10T19:44:31.463 回答
0

您的宏有 2 个参数video_card(background_image, video_link),但在您的模板中

{{ macros.video_card }} <!-- this is where I'm trying to print markup -->

你忘了传递任何参数?

它应该是:

{{ macros.video_card('bg-image.png', 'video.mp4') }}
于 2021-02-24T18:47:43.267 回答