間違い探し!どこかが間違っている!?

こんにちは。
ぴころじーの竹川です。
突然なんだ!?と思われるかもしれません。
先の技術者ブログ、
【レビュー】SJCAM SJ8 Pro アクションカメラを使ってみた!夜のざらつき検証
にて発覚しました。インシデントレベルは緊急対応すべき不具合です(笑)
技術者ブログのコード(Twig Template)にミスがあり、埋め込んだはずの動画が表示されない。CKEditor5の設定も何もかも正しいのに、なぜか表示されない。もちろん、CKEditor5で編集しているときは表示されます。公開画面で表示されない。なんで?どーして?と3時間余り調べに調べまくって解決したので、自分の覚えとして残しておこうと思いまして、このような形にしました!
なお、動画の埋め込み方法は、Drupalが推奨しているメディアライブラリを使用する方法です。
CKEditor5では、Embed mediaを使います。(CKEditor5の設定で、下のほうにあるEmbed mediaフィルタを有効にし、適用順を上のほうにあげます。私の場合は上から2番目です。)
以下は、技術者ブログのTwig Templateコードです。いたって普通で簡単なものです。しかし、このコードには致命的な誤りがあったのです!私はこれで一つ賢くなりました・・・。
{% set title = convert_to_hankaku(node.title.value) %}
{% set body = convert_to_hankaku(node.body.value) %}
{% set header_image = node.field_image.entity.fileuri|image_style('rectangle_960_540') %}
{% set affiliates = node.field_affiliates %}
{% set created = node.created.value|date('Y年m月d日') %}
{% set changed = node.changed.value|date('Y年m月d日') %}
<div class="blog">
<div class="blog__header">
<h2>{{ title }}</h2>
<div class="blog__header__meta">
<span>投稿日: {{ created }}</span>
{% if created != changed %}
<span>更新日: {{ changed }}</span>
{% endif %}
</div>
<div class="blog__header__header-image">
<img src="{{ header_image }}" alt="{{ title }}">
</div>
</div>
<div class="blog__body">
{{ body|raw }}
</div>
<div class="blog__affiliates">
{% if affiliates|length %}
{% for i, affiliate in affiliates %}
{% set url = affiliate.entity.field_link.uri %}
{% set product_name = affiliate.entity.field_product_name.value %}
{% set image = affiliate.entity.field_image.entity.fileuri|image_style('square_256_256') %}
{% set shop_name = select_list_label(affiliate.entity.field_shop_name) %}
<div class="blog__affiliates__affiliate">
<a href="{{ url }}" target="_blank" rel="nofollow">
<div class="blog__affiliates__affiliate__shop-name">
{{ shop_name }}
</div>
<div class="blog__affiliates__affiliate__image">
<img src="{{ image }}" alt="{{ product_name }}">
</div>
{% if product_name is not empty %}
<div class="blog__affiliates__affiliate__product-name">
{{ product_name|length > 14 ? product_name|slice(0, 14) ~ '…' : product_name }}
</div>
{% endif %}
</a>
</div>
{% endfor %}
{% endif %}
</div>
</div>
上記のコードには、一つだけ致命的な誤りがあります。それはどこでしょう?
ヒントは、冒頭の悩んでいるところです!
また、コードの中に、convert_to_hankaku()、select_list_label()という関数があります。前者は、Twig TemplateからPHPを呼び出して、全角数字記号を半角に変換する関数です。後者は、選択リストから選択したラベルを取得する関数です。
持ち時間は10分です。さぁどうぞ!
答えはこちらです。↓
2行目
{% set body = convert_to_hankaku(node.body.processed) %}
valueは生の値を取得するため、body|rawでレンダリングすると、<drupal-media>を<video>にフィルタ処理できないようです。対策として、processedを使うと、それ自体がフィルタ済みの値を取得するので、きちんと表示される、ということです。