Actualización: Blogger ya provee una forma nativa de implementar los resumenes de artículos, por favor referirse a laayuda de blogger. Si bien el hack que aquí se describe permite lograrlo también, al ya haber una forma natural de hacerlo, es preferible utilizar ésta que moverle al código.
Escrito originalmente por Ramani, en su blog Hackosphere. El ejemplo de su uso en este blog lo pueden ver aquí.
La página principal de tu blog generalmente muestra todo el contenido de cada unos de tus posts. Si estos son mayores a 2 párrafos, tus visitantes se verán en dificultades para encontrar rápidamente algún tema de interés para ellos dado que van a necesitar desplazarse hacia abajo en la página. Aquí es donde los post con resúmenes expandibles ayudaban en el viejo blogger. Este hack sirve al mismo propósito para el nuevo blogger y aún más! Esto es, la página principal sólo mostrara los resúmenes de los posts y cuando den click en "leer más", el post completo aparecerá en la página principal (vista Peekabo)!! He recibido algunas solicitudes para crear dicho hack y me las he arreglado para echarlo a andar. Más tarde, Hans lo mejoró agregando una liga para "Mostrar Resumen" con el cual se puede colapsar nuevamente un post expandido para mostrar sólo el resumen. Juntos, también hicimos que la liga "Leer Más" se mostrara únicamente para aquellos posts que tienen resumen. Este es un hack fantástico, pero necesitas tener cuidado al modificar tu template. Si no estás familiarizado con HTML, recomiendo de sobremanera que obtengas ayuda de alguien que lo conozca mientras aplicas este hack. Aquí están los pasos a seguir.
Paso 1.
Encuentra la etiqueta </head> en tu template y agrega todo el código que se muestra a continuación antes de ella.
<b:if cond='data:blog.pageType != "item"'>
<script type="text/javascript">
var fade = false;
function showFull(id) {
var post = document.getElementById(id);
var spans = post.getElementsByTagName('span');
for (var i = 0; i < spans.length; i++) {
if (spans[i].id == "fullpost") {
if (fade) {
spans[i].style.background = peekaboo_bgcolor;
Effect.Appear(spans[i]);
} else spans[i].style.display = 'inline';
}
if (spans[i].id == "showlink")
spans[i].style.display = 'none';
if (spans[i].id == "hidelink")
spans[i].style.display = 'inline';
}
}
function hideFull(id) {
var post = document.getElementById(id);
var spans = post.getElementsByTagName('span');
for (var i = 0; i < spans.length; i++) {
if (spans[i].id == "fullpost") {
if (fade) {
spans[i].style.background = peekaboo_bgcolor;
Effect.Fade(spans[i]);
} else spans[i].style.display = 'none';
}
if (spans[i].id == "showlink")
spans[i].style.display = 'inline';
if (spans[i].id == "hidelink")
spans[i].style.display = 'none';
}
post.scrollIntoView(true);
}
function checkFull(id) {
var post = document.getElementById(id);
var spans = post.getElementsByTagName('span');
var found = 0;
for (var i = 0; i < spans.length; i++) {
if (spans[i].id == "fullpost") {
spans[i].style.display = 'none';
found = 1;
}
if ((spans[i].id == "showlink") && (found == 0))
spans[i].style.display = 'none';
}
}
</script>
<style>
#fullpost {
display:none;
}
</style>
</b:if>
N. de Tr. La imagen previa muestra la ruta para acceder al HTML del template. Considerar hacer un respaldo del template previo a su modificación, seleccionando la liga Download Full Template. Idealmente, a efectos de probar cambios que puedan alterar el diseño o funcionalidad de nuestro blog, crear un blog de prueba.
Paso 2
N. de Tr. Para poder encontrar el Includable en el template será necesario palomear el checkbox con la leyenda Expand Widget Templates como se aprecia en la imagen. La ubicación dependerá de la plantilla que hayamos seleccionado para nuestro blog. La advertencia aplica para el caso mostrado en la imagen, lo que aplica es simplemente agregar lo que está en rojo e ignorar los códigos previos, que podrán variar de acuerdo a la plantilla de nuestro blog. De acuerdo a nuestras preferencias, podemos también cambiar las leyendas Read More y Summary Only para que indiquen lo que al gusto de cada quien convenga.
Encuentra el includable llamado 'post' y copia y pega los cambios mostrados en rojo de lo que se muestra a continuación (Debes tener mucho cuidado para evitar errores. Date cuenta que la palabra "uncustomized-post-template" puede no aparecer en tu template, pero no hay problema por ello.):
<b:includable id='post' var='post'><div class='post uncustomized-post-template' expr:id='"post-" + data:post.id'> <a expr:name='data:post.id'/> lt;b:if cond='data:post.title'> <h3 class='post-title'> <b:if cond='data:post.url'> <a expr:href='data:post.url'><data:post.title/></a> <b:else/> <data:post.title/> </b:if> </h3> </b:if> <div class='post-header-line-1'/> <div class='post-body'> <b:if cond='data:blog.pageType == "item"'> <p><data:post.body/></p> <b:else/> <style>#fullpost {display:none;}</style> <p><data:post.body/></p> <span id='showlink'> <p><a href='javascript:void(0);' expr:onclick='"javascript:showFull(\"post-" + data:post.id + "\");"'>Leer Más...</a></p> </span> <span id='hidelink' style='display:none'> <p><a href='javascript:void(0);' expr:onclick='"javascript:hideFull(\"post-" + data:post.id + "\");"'>Sólo Sumario...</a></p> </span> <script type='text/javascript'> checkFull("post-" + "<data:post.id/>"); </script> </b:if>
<div style='clear: both;'/> <!-- clear for photos floats -->
Para encontrar el Includable, puedes hacer una búsqueda por el término id="post". Si no te es posible encontrarlo, posiblemente no hayas expandido el template. Selecciona el checkbox con la etiqueta "Expand Widget Templates", que se encuentra justo arriba del código del template, para expandir este y mostrar más código.
Paso 3
Selecciona la pestaña Settings->Formatting (Cofiguración/Formato), hecho lo cual encontrarás en la parte inferior un cuadro de texto para que especifíques el "Post Template" (Plantilla de entrada). Copia y pega estas líneas a dicho cuadro de texto y guarda la configuración. (Por favor NO las teclees tu mismo dado que pudiera se que se introduzcan algunos espacios que causen que la funcionalidad se pierda).
Escribe tu resumen aquí. <span id="fullpost"> Escribe el resto de tu post aquí. </span>
Ahora cada que crees un nuevo post, se te va a indicar claramente dónde debes escribir el resumen y dónde agregar el resto del post. Es importante asegurarse de que la etiqueta </span> mostrada arriba se encuentra al final de tu post. Para asegurar esto, utiliza la pestaña "Edit HTML" (Edición HTML) en lugar de la pestaña "Compose" (Componer) cuando escribar tu post. Después de teclearlo, puedes regresar al modo "Compose" y modificar la tipografía y colores. Cabe mencionar que también puedes dividir algunos (o todos) tus posts anteriores para que tengan un resumen, para lo cual tendrás que editarlos. La liga "Leer más" aparecerá sólo para aquéllos posts que se hayan dividido de esta manera.
N. de Tr. Se agregó imagen para mostrar donde se debe realizar el cambio.
Esto es lo que Ramani pide a cambio:
Si estás visitando mi blog por primera vez, no te pierdas de otras cosas interesantes que ofrezco:
- Un blog de tipo Digg para compartir y promver tu blog - bvibes.com
- Un template bastante rápido basado en AJAX - Neo
Notas Importantes:
- Nota 1: Por favor no olvides agrear una liga a Hackosphere en tu sidebar. Eso es la única cosa que espero a cambio :)
- Nota 2: Si quisieras incorporar algunos efectos especiales de aparecer/desaparecer para este hack, lo puedes tener incorporando unos cuantos cambios descritos en este otro post.
- Nota 3. Si quisieras que la liga "Leer más" te llevara a la página del post en ligar de expandirlo en la página principal, utiliza este otro hack.
- Nota 4. Si seleccionas la liga "Entradas anteriores", la liga "Leer más" pudiera aparecer aún para aquellos posts para los cuales no se ha incorporado el hack. Este es un problema conocido aún sin solución.




31 comments:
traté de seguir tus indicaciones, pero tuve 2 problemas. 1.- no encontré settings y formatting y 2.- al intentar guardar la plantilla señala un error con respecto a head
Hice todo y me resultó parcialmente, veo el link y el resumen pero el link no funciona y no me muestra el contenido completo
alguna idea?
@Pía
Settings es la segunda pestaña, al lado de la que se activa cuando creas un nuevo post (voy a actualizar el post con imágenes para clarificar). Del error, necesitaría conocer el texto para poder identificar la causa.
@Tierra Santa
Entré a tu blog y funciona, probablemente sea alguna opción del navegador que estás utilizando.
Lo ideal sería crear un nuevo blog de prueba para validar los cambios.
Tengo la costumbre de agradecer a quienes me ayudan. Por eso les doy muchísimas gracias.
Además voy a dar unos pequeños tips para enriquecer estos consejos:
1.- Donde dice:"(Debes tener mucho cuidado para evitar errores. Date cuenta que la palabra "uncustomized-post-template" puede no aparecer en tu template, pero no hay problema por ello.):"
Yo le agregaría al final: "...pero no hay problema por ello simplemente no coloques esa línea de códigos.)"
2.- Donde dice Settings Formating al traducirlo es: Configuración -> Formato, y al final, está Plantilla de Entrada. (Para quienes no entienden la función de esto, tengan en cuenta que: Esto es simple y llanamente para que no tengas que reescribir estos códigos para cada entrada que hagas. Ojo, cuando escribas las nuevas entradas, hazlas en "edición html")
3.- Hay un paso que faltaría agregar, para ello es bueno seguir las indicaciones en: http://help.blogger.com/bin/answer.py?answer=42049
Saludos, Jan
Después de mucho buscar, ha sido el primer sitio que he encontrado con una solución para no añadir el enlace a todos los post's, sino solamente a los que deben tenerlo.
¡Gracias!
Mil gracias!! Después de mil vueltas logré hacerlo...ahora loq ue no logro es cómo hacer para editar mis entradas anteriores...le agrego los respectivos spans, siguiendo tus pasos pero los post me quedan como si nada...cómo hago? Por otro lado me parece un cartelito que dice "read more" y mi blog es en español, cómo hago para cambiar esto?
Mil gracias de nuevo!
@Dibujo Técnico. Ya se incorporaron algunas de tus sugerecias como notas al post, gracias por contribuir.
@Tomás Mallafre. Que bien que funciona, gracias por la liga de vuelta.
@GaBynette. Se actualizó el post indicando donde se pueden modificar las leyendas. Para los posts previos, debiera funcionar, habría que asegurarse que los cambios se hacen en modo html.
si te mando mi plantilla me podrias decir donde tengo que modificar?
si te mando mi codigo podrias indicarme donde tengo que hacer los cambios porfa?
Pues estoy muy triste....no pude hacerlo por mas que lo intente...Lo bueno es que l intente en un blog de pruebas.
Te agradeceria mucho la ayuda =( ya que me interesa muchisimo.
Espero y sea posible que me puedas ayudar.... no puedo hacerlo.
Hola, he intentado pegar el código. Lo pegue en su totalidad, pero me daba un fallo, fui quitando partes y probando, y se que la parte que me da fallo es la primera, todo lo del script. El error que me pone es el siguiente:
"No se ha podido analizar su plantilla, porque no está bien formada. Asegúrese de que todos los elementos XML se han cerrado correctamente.
Mensaje de error de XML: The content of elements must consist of well-formed character data or markup."
El codigo esta bien copiado, ya que es literal de aqui, y también de otras webs a las que les funciona este codigo. ¿A qué puede ser debido? El blog en cuestión es: http://blogdesuperheroesbeta.blogspot.com/
Gracias
@Álvaro Hice pruebas con un blog para tal fin y el asunto era debido a ciertos valores dentro el script (<,>,&) que no estaban "escapados" y causaban problemas con la plantilla. Ya se corrigió en el post, trata de copiar nuevamente lo del primer paso y debe ya funcionar.
Gracias am0x ;)
Ahora tengo otra duda. Yo en mi blog tenía puesto que para ocultar el texto se usase span class="fullpost", y aquí se usa span id="fullpost", por lo que tendría que editar todas mis noticias. ¿Hay alguna forma de poner entradas ampliables que usen el class="fullpost"?? Espero que pueda ayudarme. Gracias.
@Álvaro. Sería cuestión de modificar el código javascript para considerarlo, en cuanto tenga un rato libre lo reviso y lo documento.
Muchas gracias por la información. Me ha sido de mucha utilidad y he conseguido hacerlo de modo óptimo.
Un saludo.
wenas, mira, al copiar y pegar el codigo del paso 1, me tira error, pero no especifica cual es el error ni nada, simplemente me pide q lo reporte y q miraran de solucionarlo -.-''
weno, gracias de antemano.
saludos
@Luis. Qué bien, no hace mucho que se hicieron ajustes y los había validado en un blog de prueba, y que bueno que para otros funciona bien.
@mad. Intenta nuevamente, a veces ese error se presenta en blogger al hacer ciertas cosas y se resuelve intentando nuevamente. Recuerda intentar en un blog de prueba antes de liberarlo ya a tu blog en uso.
hola am0x,
bueno, en primer lugar grácias por tus aportaciones. Luego comentarte que conseguí implementar el hack perfectamente, pero observé que con Explorer no funciona correctamente. Lo instalé con Mozilla, que sí funciona... no sé a que será debido...
si puedes hacer alguna averiguación te lo agradeceré.
un abrazo.
en mi plnatilla no encuentro lo de includable...
alguna idea?
pedon, ya encontré, no habia:
"Expand Widget Templates"
es cierto con firefosx da error y com moxila si funciona. ojala y puedas echar la mano en verdad que te estaria mu agradecido
GRACIAS !!!!!! Funciona y muy bien!!!!
Diana
Gracias
Segui tus indicaciones y funciona muy bien. Pero, tengo una pregunta.
Como puedo hacer eso com mis "post" anteriores.
Mil Gracias
"malgrat confidencial said...
hola am0x,
bueno, en primer lugar grácias por tus aportaciones. Luego comentarte que conseguí implementar el hack perfectamente, pero observé que con Explorer no funciona correctamente. Lo instalé con Mozilla, que sí funciona... no sé a que será debido...
"
He utilizado este código de post expandibles en mis blogs. Como no suelo usar el explorer por casualidad me he dado cuenta hace poco que los usuarios de explorer no pueden ver la página principal porque el expandible hace dos cosas bajo explorer:
1- No permite cargar todas las entradas de la página principal
2- No permite cargar las columnas laterales cuando se visualizan varias entradas a la vez.
Yo no uso explorer pero hay mucha gente que todavía lo hace y no puede tener una visualización correcta por eso. Es una pena porque el desplegable es muy práctico, pero causa problemas serios a los usuarios del explorer.
¿Alguien sabría de alguna solución para que pudiese usarse con el internet explorer?
gracias y saludos
Hola Gracias por la ayuda que nos dan a los que no entendemos mucho.
Te cuento que realicé lo que vos indicás y ahora en cada entrada me permite colocar un resumen y sale la palabra ver más. Pero cuando hago clic en ver más me tira error.
Te doy mi blog para que lo veas, quizás te das cuenta qué sucede.
http://ticsenviviblog.blogspot.com/
Mil gracias
Viviana
@Viviana
No veo que se esté incluyendo lo indicado en el paso 1, que es la parte que se encarga de mostrar ocultar el resto del texto los posts. Validar que la sintaxis sea la misma de la primera y última línea, donde se incluye el if
Hola. Sólo era para avisarte que la segunda parte del código no se puede ver.
Saludos
Gracias bLuEs. Lo que estaba haciendo era tomar referencia directa del servidor de Ramani, màs ya no està en lìnea la informaciòn. Ya modifiquè el post para mostrar aquì directamente el còdigo.
ESO ESTA MUY DURO ,NO LOGRO ENCONTAR ESO DE INCLUDE EN MI PLANTILLA..SIGO INTENTANDO
@Locos: En el template debes palomear el checkbox de expand widgets. Esta indicación está en el artículo, pero más abajo, ya lo subí para que sea de más ayuda.
Publicar un comentario en la entrada
Todo vale, menos spam. Los comentarios son moderados para asegurar que yo los revise, así que puede pasar un tiempo entre que lo ingresen y que pueda yo entrar a verlos antes de publicarlos.