在此代码中:
<div class='resumo'>
<span><data:post.snippet/>
</span>
</div>
<a class='read-more' expr:href='data:post.url'>Read More</a>
我替换了<data:post.snippet/>
与 <b:eval expr='snippet(data:post.body, {length: 450, linebreaks: false, links: false})' />
尝试增加帖子片段的字符长度。它有效,但现在我其他小部件中的文本是粗体或斜体。如何更改代码片段字符长度而不影响我网站上的其他小部件?
在替换代码之前发布代码片段:
替换代码后发布代码片段(标题、小部件文本等已更改为斜体):
最佳答案
出现此问题的原因是 data:post.body
数据标签包含帖子的全部内容,包括 HTML,这与 data:post.snippet
不同。或data:post.longSnippet
数据标签在内部剥离这些内容。
尽管 snippet
运算符仅在确定长度时计算文本内容,但不会显式剥离与该内容关联的 HTML 标签(它仅提供通过 <a>
选项和 links
标签剥离 anchor ( <br>
) 标签的选项通过linebreaks
选项,但没有其他标签的选项,例如粗体或斜体)。
在这种特殊情况下,存在一个用于将文本斜体化的 HTML 标记,由于代码片段的字符长度限制,该标记无法正确关闭(在屏幕截图中,我们可以观察到帖子内容中的粗体文本由于开始和结束标签包含在片段长度本身内,因此可以正确显示)。由于缺少用于斜体文本的结束标记,浏览器将代码段之后的所有文本都斜体化(因为它无法弄清楚应该在哪里停止斜体化)
如果片段长度要求不超过850个字符,则使用data:post.longSnippet
将是比 data:post.body
更好的选择。以前data:post.longSnippet
最初限制为 300-400 个字符,但现在该限制已增加。将其与 snippet
耦合运算符可以让您更好地控制字符长度。新的代码片段看起来像 -
<b:eval expr='snippet(data:post.longSnippet, {length: 650, linebreaks: false, links: false})' />
关于html - 如何更改博文片段长度而不影响其他小部件文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54175848/