David K
David K

Reputation: 148

Output contents of label array in Blogger expression

I'm attempting to generate the labels of a blog post within the post container as classes, like so:

<div expr:class='"post hentry grid-item" + (data:post.labels any (l => l.name !="" : " " + l.name)' itemprop='blogPost' itemscope='itemscope' itemtype='http://schema.org/BlogPosting'>

Help would be greatly appreciated!

Upvotes: 1

Views: 188

Answers (1)

Prayag Verma
Prayag Verma

Reputation: 5651

As Lambda expressions in Blogger generate arrays(in some cases boolean and numbers as well) as their results, we need some way to iterate over that array. We can use a b:loop tag for that. Also, as we can't include a b:loop tag in class attribute (otherwise the Blogger's XML parser will show errors) therefore escaping the HTML and including the b:loop tag is one of the way. The code will look like -

&lt;div class='post hentry grid-item <b:loop var="labelName" values="data:post.labels" ><b:eval expr='data:labelName.name + " " ' /></b:loop>' itemprop='blogPost' itemscope='itemscope' itemtype='http://schema.org/BlogPosting'&gt;
&lt;/div&gt;

Upvotes: 1

Related Questions