如何在不影响其他小部件文本的情况下更改博客作者的摘要长度?

时间:2019-01-14 04:37:09

标签: html blogger

在此代码中:

<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})' />,以尝试增加帖子摘要中的字符长度。它有效,但是现在我其他小部件中的文本以粗体或斜体显示。如何在不影响网站上其他小部件的情况下更改代码段字符长度?

在替换代码之前发布摘要:

Post snippet before replacing code:

替换代码后的代码段(标题,小部件文本等已更改为斜体):

Post snippet after replacing code:

1 个答案:

答案 0 :(得分:1)

之所以出现此问题,是因为data:post.body数据标签包含了包括HTML在内的帖子的全部内容,而不像data:post.snippetdata:post.longSnippet数据标签在内部将其删除。

即使snippet运算符在确定长度时仅计算文本内容,但没有显式剥离与该内容关联的HTML标记(它仅提供剥离锚点的选项(<a> )标签(通过links选项和<br>标签通过linebreaks选项,但其他标签(如粗体斜体)没有选项)。

在这种情况下,存在一个HTML标记,用于斜体显示文本,由于代码段的字符长度限制,该文本无法正确关闭(在屏幕截图中,我们可以看到帖子内容中的粗体文本正确显示,因为开始和结束标记都包含在代码段长度中)。由于缺少用于使文本变为斜体的结束标记,因此浏览器将代码段之后的所有文本均变为斜体(因为无法弄清楚应在何处停止斜体)

如果代码段长度要求不超过850个字符,则使用data:post.longSnippetdata:post.body更好。以前data:post.longSnippet的字符数限制为300-400,但是现在增加了该限制。将其与snippet运算符结合使用,可以更好地控制字符长度。新的代码段看起来像-

<b:eval expr='snippet(data:post.longSnippet, {length: 650, linebreaks: false, links: false})' />