跳转到主要内容
mahonghong 提交于 1 July 2015

如果你想知道哪个模板生成了指定元素, 你可以使用 Twig 的 debug 功能. 主题名字旁边也显示了文件的位置.

Twing debugging 可以在 sites/default/services.yml 文件内开启, 将twig.config 下的 debug 变量改为 true. 设置后,请清除缓存.

如果你查看当前页面下的源文件, 你将看到 debug 的输出类似下面 Twing templates 被渲染.

<!-- THEME DEBUG -->
<!-- CALL: theme('block') -->
<!-- FILE NAME SUGGESTIONS:
   * block--system.html.twig
   * block--system-menu-block.html.twig
   * block--system-menu-block--tools.html.twig
   * block--bartik-tools.html.twig
   x block.html.twig
-->
<!-- BEGIN OUTPUT from 'core/modules/block/templates/block.html.twig' -->
<div class="block block-system contextual-region block-menu" id="block-bartik-tools" role="navigation">
 
      <h2>Tools</h2>
    <div data-contextual-id="block:block=bartik_tools:|menu:menu=tools:"></div>

  <div class="content">
    <ul class="menu clearfix"><li class="first collapsed"><a href="/node/add">Add content</a></li>
<li class="last leaf"><a href="/block/add" title="Add custom block">Add custom block</a></li>
</ul>
  </div>
</div>

<!-- END OUTPUT from 'core/modules/block/templates/block.html.twig' -->

下面是比较有用的

<!-- BEGIN OUTPUT from 'core/modules/block/templates/block.html.twig' -->
<!-- END OUTPUT from 'core/modules/block/templates/block.html.twig' -->

所有核心模板都在模块 /core/modules/system 文件夹下, Drupal 8 有一个子目录,名字为 "templates"

在这个文件夹内,我们可以找到所有类型的 模板文件 和 page.html.twig

system
  ...
  |-templates
  |  |-admin-block-content.html.twig
  |  |-admin-block.html.twig
  |  |-admin-page.html.twig
  |  |-block--system-branding-block.html.twig
  |  |-block--system-menu-block.html.twig
  |  |-breadcrumb.html.twig
  ...
  |  |-menu-local-action.html.twig
  |  |-menu-local-task.html.twig
  |  |-menu-local-tasks.html.twig
  |  |-menu.html.twig
  |  |-page.html.twig
  |  |-pager.html.twig
  |  |-progress-bar.html.twig
  ...