【问题标题】:How to get the first character from a record not including html如何从不包括html的记录中获取第一个字符
【发布时间】:2016-10-29 00:36:54
【问题描述】:

我正在为 Bolt (CMS) 制作主题,它使用 Twig 引擎。 该网站包含文章,所以我得到这样的文章字段{{ article.body }}

现在我想要实现的是获取文章正文的第一个字母并将其放大,然后正常显示文章正文的其余部分(没有这个第一个字符),您有时会在书中看到这一点。我设法做到了,我成功地改变了第一个角色的风格。

但是,使用 Twig 在文档中提供的大多数功能,我最常得到一个“<p> 标记放在开头.

有没有办法克服这个问题?!我不希望我的客户每次都必须删除&lt;p&gt; 标签。我认为有一种简单的方法可以让正文中没有任何 html 或其他适合我用例的内容。

它目前运行良好的方式:

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

但这取决于文章不以任何 html 开头

【问题讨论】:

    标签: php css twig bolt-cms


    【解决方案1】:

    第一个字母有一个css伪选择器:

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

    这对你有用吗?

    【讨论】:

    • 我实际上遇到了不同的问题。设计部分还可以,所以我的问题是关于 Twig 的。我成功更改了第一个字符的样式,问题是第一个字符可能是 html
    • 啊,好吧——在那种情况下,我无法提供帮助,因为我对树枝和螺栓都不熟悉,抱歉。猜猜这是我的周末研究排序虽然:o)
    【解决方案2】:

    您可以使用striptags 过滤器。例如:

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

    Here 一个工作示例

    希望有帮助

    【讨论】:

    • 我确实看到并尝试过,但是编辑们将如何用 html 格式化他们的文章?
    【解决方案3】:

    如果您使用 CSS,则不需要提取第一个字母,例如

    模板: &lt;div class="dropcap"&gt;{{ article.body }}&lt;/div&gt;

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

    这将改变第一段的第一个字母。

    【讨论】:

      猜你喜欢
      • 2020-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-05
      • 2013-08-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多