El viejo inconveniente del modo «Vista previa» de Blogger
Cuando empleamos la etiqueta data:blog.url en una sentencia condicional para preguntar si nos encontramos en la página principal, su comportamiento no será el esperado en tal caso visualicemos una entrada o una página desde el editor. Para dejarlo más claro, supongamos que tenemos lo siguiente en nuestra plantilla:
<b:if cond='data:blog.url == data:blog.homepageUrl'>
¡HOLA, ESTÁS EN LA PÁGINA PRINCIPAL!
</b:if>
Ese mensaje debería aparecer solo en la página principal de nuestro blog; sin embargo, cuando estemos creando o editando una publicación y vayamos a modo Vista previa, de igual forma lo veremos. Lo anterior se debe a que data:blog.url vale lo mismo que data:blog.homepageUrl en ese caso.
Para parchear el asunto, podemos preguntar si el tipo de página en la que estamos es de tipo index (la página principal es de clase index), ya que la etiqueta que contiene dicho dato siempre arrojará el valor previsto: item para las entradas o static_page para las páginas. Continuando con el ejemplo, ahora quedaría así:
<b:if cond='data:blog.url == data:blog.homepageUrl and data:blog.pageType == "index"'>
¡HOLA, ESTÁS EN LA PÁGINA PRINCIPAL!
</b:if>
Actualización (19/02/18): Gracias a las nuevas etiquetas de Blogger, podemos recurrir a data:view.isPreview para averiguar si nos encontramos en el modo Vista previa:
<b:if cond='data:blog.url == data:blog.homepageUrl and not data:view.isPreview'>
¡HOLA, ESTÁS EN LA PÁGINA PRINCIPAL!
</b:if>

