0

在 Freemarker 中,我如何创建一个从本身继承的模板继承的模板?

单继承适用于<#nested>标签:

文件base.ftl

<#macro layout>
<html lang="en">
  <head>...</head>
  <body>
    <div>... (navigation bar)</div>
    <div class="container">
      <#nested>
    </div>
  </body>
</html>
</#macro>

文件normalBase.ftl

<#import "base.ftl" as base>

<@base.layout>
  <div class="row">
    <div class="col-md-9">
      ${content.body}
    </div>
    <div class="col-md-3">
       <p>Latest releases</p>
       <ul>....</ul>
    </div>
  </div>
</@base.layout>

我如何把它变成双重继承where useCaseBase.ftlextends normalBase.ftlwhich extends base.ftl

4

1 回答 1

0

这就像一个魅力:

文件base.ftl

<#macro layout>
<html lang="en">
  <head>...</head>
  <body>
    ... // Shared navigation bar
    <div class="container">
      <#nested>
    </div>
    ... // Shared footer
  </body>
</html>
</#macro>

<@layout>
  ${content.body}
</@layout>

文件normalBase.ftl

<#import "base.ftl" as parent>

<#macro layout>
    <@parent.layout>
        <div class="row">
            <div class="col-md-9">
                <#nested>
            </div>
            <div class="col-md-3">
                ... // Shared sidebar
            </div>
        </div>
    </@parent.layout>
</#macro>

<@layout>
    ${content.body}
</@layout>

文件useCaseBase.ftl

<#import "normalBase.ftl" as parent>

<@parent.layout>
    ${content.body}
    ... // Shared content between all use case pages
</@parent.layout>

现在我可以创建设置为或的*.adoc页面,并且它可以工作。jbake-typebasenormalBaseuseCaseBase

于 2021-05-19T08:12:44.800 回答