I’m trying to make the latest news block look better. This is a view, so I use block–views-block–news-block-1.html.twig for my purpose. I wanted to get the raw field value minus tags and encoding in it (something like {{ content.field_name.0 }}
in other twig files). I tried many times and through trial and error finally I wrote this code:
{% set classes = [ 'block', 'block-' ~ configuration.provider|clean_class, 'block-' ~ plugin_id|clean_class, ] %} <div class="container"> <section{{ attributes.addClass(classes) }}> {{ title_prefix }} <h2 class="article_title">District News</h2> {{ title_suffix }} {% block content %} <ul class="content article_list"> {% for row in content['#view'].result %} <li class="article_item"> <div class="article_item-header"> <div class="article_release_date"> {{ content['#view'].field['published_at'].value(row)|date("d.m.Y") }} </div> {{ content['#view'].field['title'].getItems(row) }} </div> <div class="article_description"> {{ content['#view'].field['body'].getItems(row) }} </div> </li> {% endfor %} </ul> {% endblock %} <div class="article_read_more"> <a href="/news">View All</a> </div> </section> </div>
It works – I see the markdown and variables in this block on the main page exactly as I designed them. But I can’t say that it works just perfect because when I go to "Recent log messages" I see errors coming from this twig file. The error message is: User error: "raw" is an invalid render array key in DrupalCoreRenderElement::children() (line 97 of core/lib/Drupal/Core/Render/Element.php)
. When I delete my .html.twig file, the error doesn’t occur anymore. So my question is: What is the correct way to achieve the same markdown without such errors? Maybe my approach is totally wrong and I should change it. Or maybe my approach is correct, but there is a little mistake in my code? Please, help me.