Как получить первый символ из записи, не включая HTML

Я делаю тему для Болта (CMS), и она использует Twig двигатель. Веб-сайт содержит статьи, поэтому я получаю поле статьи, как это {{ article.body }}

Теперь я хотел получить первую букву основной части статьи и сделать ее большой, а затем отобразить остальную часть основной части статьи (без этого первого символа) в обычном режиме, что иногда можно увидеть в книгах. Мне удалось это сделать, и я успешно сменил стиль первого персонажа.

Однако, используя большинство функций, которые Twig предлагает в документации, я чаще всего получаю "<" в качестве первого символа, так как при наборе текста статьи в панели администрирования он автоматически помещает <p> тег к началу.

Есть ли способ преодолеть это?! Я бы не хотел, чтобы мой клиент удалил <p> помечать каждый раз. Я думал, что будет простой способ получить тело без HTML или чего-то другого, подходящего для моего случая использования.

Как это в настоящее время работает прекрасно:

<span class="firstcharacter">{{ article.body[:1] }}</span> {{ article.body[1:] }}</p> 

но это опирается на статью, не начиная с любого HTML

3 ответа

Существует псевдо-селектор css для первой буквы:

.firstcharacter::first-letter{font-size: 50px;}

Будет ли это работать для вас?

Вам не нужно извлекать первую букву, если вы используете CSS, например

Шаблон:<div class="dropcap">{{ article.body }}</div>

CSS:div.dropcap p:first-of-type::first-letter {color: #f00;}

Это изменит первую букву первого абзаца.

Вы можете использовать стриптиз- фильтр. Как пример:

{{ article.body| striptags [:1] }}

Вот рабочий пример

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

Другие вопросы по тегам