Etiquetas b:eval y b:with de Blogger

b:eval b:with Blogger

Estas etiquetas sirven para evaluar expresiones más complejas, además de que nos permiten realizar otras consultas que normalmente fuera de estas etiquetas no son posibles.


Etiqueta b:eval

Nos permite evaluar una expresión complicada que en una etiqueta <data:name/> no podemos realizar. Su sintaxis es la siguiente:


<b:eval expr='[expresiones]'/>

En el siguiente ejemplo, evaluamos <data:blog.pageName/> y le decimos que si la cantidad de caracteres no es igual a 0, proceda a mostrar el nombre de la pagina, caso contrario, muestra el título del blog.


<b:eval expr='data:blog.pageName.length != 0 ? data:blog.pageName : data:blog.title'/>

En este otro ejemplo seleccionamos la entrada número 7 posts[6], luego buscamos entre sus etiquetas y tomamos la segunda labels[1].


<b:eval expr='data:posts[6].labels[1].name'/>

Para no crear confusión, esto último es igual que en javascript, así que se empieza a contar desde el 0, por ejemplo, para referirnos a la primera entrada, usamos posts[0].


Etiqueta b:with

Nos permite evaluar una expresión complicada y almacenar temporalmente el valor dentro de una variable, que posteriormente podemos usar hasta el cierre de la etiqueta b:with. Su sintaxis es la siguiente:


<b:with var='[nombreData]' value='[expresiones]'>
   <data:nombreData/>
</b:with>

En el siguiente ejemplo, evaluamos <data:blog.pageName/> como lo hicimos para el ejemplo de b:eval, solo que esta vez el resultado lo almacenamos en una variable.


<b:with value='data:blog.pageName.length != 0 ? data:blog.pageName : data:blog.title' var='tituloRelativo'>
   <meta expr:content='data:tituloRelativo' property='og:title'/>
   <title><data:tituloRelativo/></title>
</b:with>

En este otro ejemplo Le damos un nuevo valor al conjunto de datos "posts" y posteriormente lo utilizamos para crear el bucle, el cual filtrará los datos que hemos especificado.


<b:with value='data:posts filter (p => p.author == "Demo-chan")' var='postsChan'>
   <b:loop values='data:postsChan' var='post'>
      <!-- Solo se muestran entradas publicadas por Demo-Chan -->
   </b:loop>
</b:with>

Si tienes alguna pregunta o solicitud no dudes en dejarla en los comentarios, respondo a todos. Si te ha servido esta entrada no olvides compartirla, eso me ayudaria mucho.