Función @attr para Blogger

Función utilitaria diseñada para agregar o remover múltiples atributos HTML sobre un elemento padre de forma centralizada. Permite compactar la lógica del tema, evitando la repetición extensa de etiquetas <b:attr> al construir componentes complejos.

Esta función forma parte del proyecto Hamlet. Puedes revisar el código fuente en GitHub.

Definición de la función

<b:includable id='@attr'>
  <b:comment>
  Add or remove multiple attributes
  @author zkreations
  @param {Array[Array]} data - Array of attribute name-value pairs
  </b:comment>
  <b:if cond='data:'>
    <b:loop values='data:' var='i'>
      <b:attr expr:name='data:i[0]' expr:value='data:i[1]'/>
    </b:loop>
  <b:else/>
    <b:comment render='true'>Parameter [data] is required.</b:comment>
  </b:if>
</b:includable>

Especificación de Parámetros

Parámetro Tipo Descripción
data Array[] Matriz de pares nombre-valor. Define los atributos a procesar.

Modo de uso

Para implementar esta función, añade el fragmento en los marcados predeterminados (<b:defaultmarkups type='Common'>) de tu tema.

data

Recibe un objeto de matrices donde se define el comportamiento de los atributos. En Blogger, una matriz se puede estructurar utilizando llaves { } o corchetes [ ] dentro de la expresión de datos.

Si la matriz interna contiene un segundo valor (índice 1), el atributo se agregará o reemplazará con dicho contenido. Si solo se define el primer valor (índice 0), el atributo indicado se removerá por completo del elemento HTML padre.

<footer class='another'>
  <b:include data='{["id","foo"],["class","foo"]}' name='@attr'/>
</footer>
<footer id='foo' class='foo'></footer>
<footer id='example' class='another'>
  <b:include data='{["id"],["class"]}' name='@attr'/>
</footer>
<footer></footer>