如何从 Diazo 规则文件中 link 一个 URL inside?

How to link an URL inside the them from the Diazo rules file?

如果在 HTML 模板中设置图像的 URL,则 URL 会更新为主题文件夹中的引用文件。例如,

<img src="image.png" />

替换为:

<img src="http://localhost:8080/mysite/++theme++mytheme-theme/image.png" />

但是,如果我按照重氮规则编写:

<replace css:content="#some-class">
   <div id="#some-class"><img src="image.png" /></div>
</replace>

图片URL没有更新。如何在正确引用图像的地方编写 Diazo 规则。我想在模板 HTML 文件中用 <img src="path/image.png"> 引用此图像。然而,不清楚用什么代替路径。我注意到路径不能是绝对路径,因为它取决于站点域。此外,它不能是相对路径,因为它取决于站点中每个页面的路径。有一个特定的关键字来引用主题文件夹可能会很有用。例如,<img src="$themeFolder/image.png">。是否存在这样的关键字?

您可以在主题的 manifest.cfg 文件中创建 XSLT 参数。只需添加一个节,如:

[theme:parameters]
theme_base_url = string:${portal_state/portal_url}/++theme++mytheme-theme/

然后您可以在您的规则文件中使用它:

<replace css:content="#some-class">
   <div id="#some-class">
     <img><xsl:attribute name="src"><xsl:value-of select='$theme_base_url' />image.png</xsl:attribute></img>
  </div>
</replace>