【问题标题】:Freemarker templates double inheritence (child extends parent extends grandparent)Freemarker 模板双重继承(子继承父继承祖父)
【发布时间】:2021-05-19 07:46:57
【问题描述】:

在 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>

如何将其转换为 双重继承,其中 useCaseBase.ftl 扩展 normalBase.ftl 扩展 base.ftl

【问题讨论】:

    标签: freemarker jbake


    【解决方案1】:

    这就像一个魅力:

    文件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>
    

    现在我可以创建jbake-type 设置为basenormalBaseuseCaseBase*.adoc 页面,并且可以正常工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-21
      • 2015-11-25
      • 2012-05-03
      • 1970-01-01
      • 2012-03-17
      • 2023-03-27
      • 2018-08-18
      • 2015-03-14
      相关资源
      最近更新 更多