1. 8.5.x core/modules/statistics/tests/themes/statistics_test_attached/node.html.twig
  2. 8.5.x core/themes/stable/templates/content/node.html.twig
  3. 8.5.x core/modules/system/tests/themes/test_theme/templates/node.html.twig
  4. 8.5.x core/modules/node/templates/node.html.twig
  5. 8.5.x core/profiles/demo_umami/themes/umami/templates/content/node.html.twig
  6. 8.5.x core/themes/bartik/templates/node.html.twig
  7. 8.5.x core/themes/classy/templates/content/node.html.twig
  8. 8.0.x core/themes/classy/templates/content/node.html.twig
  9. 8.0.x core/themes/bartik/templates/node.html.twig
  10. 8.0.x core/modules/statistics/tests/themes/statistics_test_attached/node.html.twig
  11. 8.0.x core/modules/system/tests/themes/test_theme/templates/node.html.twig
  12. 8.0.x core/themes/stable/templates/content/node.html.twig
  13. 8.0.x core/modules/node/templates/node.html.twig
  14. 8.1.x core/modules/system/tests/themes/test_theme/templates/node.html.twig
  15. 8.1.x core/modules/statistics/tests/themes/statistics_test_attached/node.html.twig
  16. 8.1.x core/modules/node/templates/node.html.twig
  17. 8.1.x core/themes/classy/templates/content/node.html.twig
  18. 8.1.x core/themes/bartik/templates/node.html.twig
  19. 8.1.x core/themes/stable/templates/content/node.html.twig
  20. 8.2.x core/themes/bartik/templates/node.html.twig
  21. 8.2.x core/modules/node/templates/node.html.twig
  22. 8.2.x core/themes/stable/templates/content/node.html.twig
  23. 8.2.x core/modules/statistics/tests/themes/statistics_test_attached/node.html.twig
  24. 8.2.x core/modules/system/tests/themes/test_theme/templates/node.html.twig
  25. 8.2.x core/themes/classy/templates/content/node.html.twig
  26. 8.3.x core/themes/stable/templates/content/node.html.twig
  27. 8.3.x core/modules/statistics/tests/themes/statistics_test_attached/node.html.twig
  28. 8.3.x core/themes/bartik/templates/node.html.twig
  29. 8.3.x core/modules/node/templates/node.html.twig
  30. 8.3.x core/modules/system/tests/themes/test_theme/templates/node.html.twig
  31. 8.3.x core/themes/classy/templates/content/node.html.twig
  32. 8.4.x core/themes/stable/templates/content/node.html.twig
  33. 8.4.x core/modules/node/templates/node.html.twig
  34. 8.4.x core/themes/classy/templates/content/node.html.twig
  35. 8.4.x core/modules/statistics/tests/themes/statistics_test_attached/node.html.twig
  36. 8.4.x core/modules/system/tests/themes/test_theme/templates/node.html.twig
  37. 8.4.x core/themes/bartik/templates/node.html.twig
  38. 8.6.x core/modules/system/tests/themes/test_theme/templates/node.html.twig
  39. 8.6.x core/profiles/demo_umami/themes/umami/templates/content/node.html.twig
  40. 8.6.x core/modules/statistics/tests/themes/statistics_test_attached/node.html.twig
  41. 8.6.x core/themes/bartik/templates/node.html.twig
  42. 8.6.x core/modules/node/templates/node.html.twig
  43. 8.6.x core/themes/classy/templates/content/node.html.twig
  44. 8.6.x core/themes/stable/templates/content/node.html.twig

Default theme implementation to display a node.

Available variables:

  • node: The node entity with limited access to object properties and methods. Only method names starting with "get", "has", or "is" and a few common methods such as "id", "label", and "bundle" are available. For example:

    • node.getCreatedTime() will return the node creation timestamp.
    • node.hasField('field_example') returns TRUE if the node bundle includes field_example. (This does not indicate the presence of a value in this field.)
    • node.isPublished() will return whether the node is published or not.

    Calling other methods, such as node.delete(), will result in an exception. See \Drupal\node\Entity\Node for a full list of public properties and methods for the node object.

  • label: The title of the node.
  • content: All node items. Use {{ content }} to print them all, or print a subset such as {{ content.field_example }}. Use {{ content|without('field_example') }} to temporarily suppress the printing of a given child element.
  • author_picture: The node author user entity, rendered using the "compact" view mode.
  • metadata: Metadata for this node.
  • date: Themed creation date field.
  • author_name: Themed author name field.
  • url: Direct URL of the current node.
  • display_submitted: Whether submission information should be displayed.
  • attributes: HTML attributes for the containing element. The attributes.class element may contain one or more of the following classes:

    • node: The current template type (also known as a "theming hook").
    • node--type-[type]: The current node type. For example, if the node is an "Article" it would result in "node--type-article". Note that the machine name will often be in a short form of the human readable label.
    • node--view-mode-[view_mode]: The View Mode of the node; for example, a teaser would result in: "node--view-mode-teaser", and full: "node--view-mode-full".

    The following are controlled through the node publishing options.

    • node--promoted: Appears on nodes promoted to the front page.
    • node--sticky: Appears on nodes ordered above other non-sticky nodes in teaser listings.
    • node--unpublished: Appears on unpublished nodes visible only to site admins.
  • title_attributes: Same as attributes, except applied to the main title tag that appears in the template.
  • content_attributes: Same as attributes, except applied to the main content tag that appears in the template.
  • author_attributes: Same as attributes, except applied to the author of the node tag that appears in the template.
  • title_prefix: Additional output populated by modules, intended to be displayed in front of the main title tag that appears in the template.
  • title_suffix: Additional output populated by modules, intended to be displayed after the main title tag that appears in the template.
  • view_mode: View mode; for example, "teaser" or "full".
  • teaser: Flag for the teaser state. Will be true if view_mode is 'teaser'.
  • page: Flag for the full page state. Will be true if view_mode is 'full'.
  • readmore: Flag for more state. Will be true if the teaser content of the node cannot hold the main body content.
  • logged_in: Flag for authenticated user status. Will be true when the current user is a logged-in member.
  • is_admin: Flag for admin user status. Will be true when the current user is an administrator.

@todo Remove the id attribute (or make it a class), because if that gets rendered twice on a page this is invalid CSS for example: two lists in different view modes.

See also

template_preprocess_node()

1 theme call to node.html.twig
TwigDebugMarkupTest::testTwigDebugMarkup in core/modules/system/src/Tests/Theme/TwigDebugMarkupTest.php
Tests debug markup added to Twig template output.

File

core/modules/node/templates/node.html.twig
View source
  1. {#
  2. /**
  3. * @file
  4. * Default theme implementation to display a node.
  5. *
  6. * Available variables:
  7. * - node: The node entity with limited access to object properties and methods.
  8. * Only method names starting with "get", "has", or "is" and a few common
  9. * methods such as "id", "label", and "bundle" are available. For example:
  10. * - node.getCreatedTime() will return the node creation timestamp.
  11. * - node.hasField('field_example') returns TRUE if the node bundle includes
  12. * field_example. (This does not indicate the presence of a value in this
  13. * field.)
  14. * - node.isPublished() will return whether the node is published or not.
  15. * Calling other methods, such as node.delete(), will result in an exception.
  16. * See \Drupal\node\Entity\Node for a full list of public properties and
  17. * methods for the node object.
  18. * - label: The title of the node.
  19. * - content: All node items. Use {{ content }} to print them all,
  20. * or print a subset such as {{ content.field_example }}. Use
  21. * {{ content|without('field_example') }} to temporarily suppress the printing
  22. * of a given child element.
  23. * - author_picture: The node author user entity, rendered using the "compact"
  24. * view mode.
  25. * - metadata: Metadata for this node.
  26. * - date: Themed creation date field.
  27. * - author_name: Themed author name field.
  28. * - url: Direct URL of the current node.
  29. * - display_submitted: Whether submission information should be displayed.
  30. * - attributes: HTML attributes for the containing element.
  31. * The attributes.class element may contain one or more of the following
  32. * classes:
  33. * - node: The current template type (also known as a "theming hook").
  34. * - node--type-[type]: The current node type. For example, if the node is an
  35. * "Article" it would result in "node--type-article". Note that the machine
  36. * name will often be in a short form of the human readable label.
  37. * - node--view-mode-[view_mode]: The View Mode of the node; for example, a
  38. * teaser would result in: "node--view-mode-teaser", and
  39. * full: "node--view-mode-full".
  40. * The following are controlled through the node publishing options.
  41. * - node--promoted: Appears on nodes promoted to the front page.
  42. * - node--sticky: Appears on nodes ordered above other non-sticky nodes in
  43. * teaser listings.
  44. * - node--unpublished: Appears on unpublished nodes visible only to site
  45. * admins.
  46. * - title_attributes: Same as attributes, except applied to the main title
  47. * tag that appears in the template.
  48. * - content_attributes: Same as attributes, except applied to the main
  49. * content tag that appears in the template.
  50. * - author_attributes: Same as attributes, except applied to the author of
  51. * the node tag that appears in the template.
  52. * - title_prefix: Additional output populated by modules, intended to be
  53. * displayed in front of the main title tag that appears in the template.
  54. * - title_suffix: Additional output populated by modules, intended to be
  55. * displayed after the main title tag that appears in the template.
  56. * - view_mode: View mode; for example, "teaser" or "full".
  57. * - teaser: Flag for the teaser state. Will be true if view_mode is 'teaser'.
  58. * - page: Flag for the full page state. Will be true if view_mode is 'full'.
  59. * - readmore: Flag for more state. Will be true if the teaser content of the
  60. * node cannot hold the main body content.
  61. * - logged_in: Flag for authenticated user status. Will be true when the
  62. * current user is a logged-in member.
  63. * - is_admin: Flag for admin user status. Will be true when the current user
  64. * is an administrator.
  65. *
  66. * @see template_preprocess_node()
  67. *
  68. * @todo Remove the id attribute (or make it a class), because if that gets
  69. * rendered twice on a page this is invalid CSS for example: two lists
  70. * in different view modes.
  71. *
  72. * @ingroup themeable
  73. */
  74. #}
  75. <article{{ attributes }}>
  76. {{ title_prefix }}
  77. {% if not page %}
  78. <h2{{ title_attributes }}>
  79. <a href="{{ url }}" rel="bookmark">{{ label }}</a>
  80. </h2>
  81. {% endif %}
  82. {{ title_suffix }}
  83. {% if display_submitted %}
  84. <footer>
  85. {{ author_picture }}
  86. <div{{ author_attributes }}>
  87. {% trans %}Submitted by {{ author_name }} on {{ date }}{% endtrans %}
  88. {{ metadata }}
  89. </div>
  90. </footer>
  91. {% endif %}
  92. <div{{ content_attributes }}>
  93. {{ content }}
  94. </div>
  95. </article>

Related topics

Comments

soorepalli’s picture

node--type-[type]: The current node type. For example, if the node is an "Article" it would result in "node--type-article". Note that the machine name will often be in a short form of the human readable label.

Node Template: node--type-[type] is not working
ex: node--type-article.html.twig

Template naming: node--article.html.twig is working fine.
ex: node--article.html.twig

more info: https://www.drupal.org/docs/8/theming/twig/twig-template-naming-conventions

nehapandya55’s picture

Thanks for correction for me Template naming: node--article.html.twig is working fine.

ronit29’s picture

Can any one of u tell me where to put the node.html twig.
For example we placed the node--tpl.php in themes>theme_name>templates in D7. But whats the folder structure for D8

Nuuou’s picture

@ronit29, template files can be placed anywhere within your custom theme. Nothing is enforced in terms of directory structure. I'd recommend looking at some of the Core themes to get an idea of directory structure (classy, stable, bartik, etc.).