TWIG Получить первую букву HTML после фильтра Raw

Я знаю, как получить первую букву строки в TWIG

<p>The first letter is {{someString | first}}</p>

С помощью строки HTML, например

<p>This is a sting</p>

Приведенное выше вернет '‹'

Добавление «Raw»/«escape» приводит к тому же результату.

Мне нужно отобразить эту строку как HTML (например, с Raw), но получить первую букву (в приведенном выше случае «T»).

Я использую фильтр в неправильном порядке?

Кто-нибудь знает?

Большое спасибо вперед

@ Ответ Маттео уже близок, но не совсем то, что я хотел. Возможно, я неправильно сформулировал свой вопрос. Извини.

Итак, если бы у меня была такая строка

<p>This is a <strong>string</strong></p>

Использование raw даст

Это строка

Теперь мне действительно нужно получить первую букву (T), чтобы что-то сделать с ней, например, добавить теги вокруг нее.

<span>T</span>his is a <strong>string</string>

сохраняя остальную часть HTML внутри. Стриптэги удаляют все теги в строке и возвращают простую строку без HTML-части. Надеюсь правильно сформулировал.


person R.Damasinoro    schedule 09.09.2016    source источник
comment
Всем привет. Если вы считаете, что ответ @Matteo ответил на ваш вопрос (что, я думаю, так и есть), можете ли вы пометить его как правильный ответ. Спасибо!   -  person Alvin Bunk    schedule 09.09.2016
comment
Это близко, но не совсем то, что я ищу   -  person R.Damasinoro    schedule 10.09.2016
comment
Используйте CSS p::first-letter.   -  person malcolm    schedule 10.09.2016
comment
Можете ли вы щелкнуть edit в своем сообщении и правильно переформулировать свой вопрос в соответствии с вашим комментарием к сообщению @Matteo? Если нет, возможно, опубликовать новый вопрос. Прочитав ваш комментарий, я так и не понял, что вам нужно. Почему String жирным шрифтом - не понятно.   -  person Alvin Bunk    schedule 10.09.2016


Ответы (2)


Вы можете использовать фильтр striptags:

<p>The first letter is {{someString|striptags | first}}</p>

Здесь рабочие решения

Надеюсь, это поможет

person Matteo    schedule 09.09.2016
comment
Это уже отличное начало. Но я, возможно, неправильно сформулировал свой вопрос (очень жаль). На самом деле я имел в виду <p>This is a <b>String</b></p>, я хотел бы получить первую букву и отобразить <b>String </b> жирным шрифтом. Какие стриптэги не позволяют, так как удаляют всю строку html. Есть ли способ удалить только первые теги? - person R.Damasinoro; 10.09.2016

Как насчет этого:

{% set someString = "This is a <strong>String<strong>"%}

<span>{{someString|striptags|first}}</span>{{someString|slice[4:]|raw}}

Вы можете попробовать в twigFiddle: http://twigfiddle.com/pk10ip

person Alvin Bunk    schedule 10.09.2016