Os tutoriais e templates aqui apresentados são voltados para os Modelos de layout (lançados em 2006). A eficácia das dicas aqui apresentadas não foram testadas nos novos modelos de templates do Blogger (2010).

Template Manchete

Segue o mesmo modelo do Template Oggi, sem o slide, com o último post publicado em destaque:



Siga as instruções para o Template Oggi para hospedar as imagens do template e alterar o tamanho das imagens dos resumos automáticos. Para usar o menu horizontal, crie páginas e arraste o gadget páginas para o local determinado abaixo do cabeçalho.
Não é possível retirar os resumos deste template sem quebrar o layout original. Qualquer alteração no modelo é por sua conta e risco.

A redistribuição deste template só está autorizada ao site BTemplates e os créditos não devem ser removidos.

Para fazer o download do arquivo zipado clique aqui
Leia Mais

Template Oggi

Às vezes, passeando pela net, um detalhe que me chama a atenção pode ser fonte de inspiração para criar um novo template. Foi o caso deste post no Gem@ Blog, onde a Gema nos ensina a colocar este belo slide criado por Soh Tanaka. 


Slide

O slide é automático e o script necessário para fazê-lo funcionar já se encontra dentro do código html, não havendo necessidade de hospedagem. Tudo que é preciso fazer é criar banners de 790px x 286px, hospedar a imagem, copiar a url fornecida e colocar neste trecho do código html, onde está indicado em vermelho:

<div class='window'>
<div class='image_reel'>
<a href='url do post 1'><img alt='titulo' src='url da imagem do banner 1'/></a>

<a href='url do post 2'><img alt='titulo' src='url da imagem do banner 2'/></a>

<a href='url do post 3'><img alt='titulo' src='url da imagem do banner 3'/></a>

<a href='url do post 4'><img alt='titulo' src='url da imagem do banner 4'/></a>
</div>
</div>

Onde está em verde, coloque a url do post para onde o banner deve apontar e onde está titulo, dê um titulo para a imagem.

Imagens

As imagens que compõem o template devem ser hospedadas por você, no seu servidor de preferência (pode ser ImageShack, Photobucket, TinyPic, etc) e a url  gerada (Direct Link) deve ser colocada onde está indicado no código. Por exemplo, a imagem crosscol.png - busque dentro do código do template (use Ctrl+F para facilitar a busca) este nome, que deve aparecer entre parênteses. Coloque dentro dos parênteses a url da imagem crosccol.png hospedada.

Ex:
Está assim no código do template:

#crosscol{
margin: 3px auto 0px;
height:auto;
background:url(crosscol.png)  repeat-x;
border: 1px solid #e0e0e0;
}

Deve ficar assim depois de hospedar a imagem e copiar a url gerada (Direct Link):

#crosscol{
margin: 3px auto 0px;
height:auto;
background:url(http://i43.tinypic.com/depklu.png)  repeat-x;
border: 1px solid #e0e0e0;
}

Os locais onde as imagens devem ser colocadas são (pela ordem que aparecem no código):

.post li, body, #crosscol, .sidebar a, .sidebar a:visited, .footer a, .footer a:visited e .paging, #showlink

Obs: O banner que segue junto com as outras imagens não deve ser hospedado, serve apenas como exemplo das medidas que devem ser utilizadas.

Na página inicial os posts apresentam-se resumidos automaticamente, bem como nas páginas dos marcadores e arquivos:

Página dos Marcadores

O menu horizontal é apropriado para receber o gadget Páginas. Crie as páginas que deseja exibir e arraste o gadget para o local indicado:


Acima do cabeçalho há um  pequeno menu à esquerda que também deve ser editado no código do template:

<!-- Menu Esquerda -->

<ul class='left'>
<li><a href='url aqui'>Home</a></li>
<li><a href='url aqui'>Sobre</a></li>
<li><a href='url aqui'>Templates</a></li>
<li><a href='url aqui'>Contato</a></li>
</ul>

<!-- Menu Direita -->

<ul class='right'>
<li><a class='rss' expr:href='data:blog.homepageUrl + &quot;feeds/posts/default&quot;'>Posts</a></li>
<li><a class='rss' expr:href='data:blog.homepageUrl + &quot;feeds/comments/default&quot;'>Comments</a></li>
<li><a class='rss' expr:href='data:blog.homepageUrl + &quot;feeds/posts/default&quot;'>Feeds</a></li>
</ul>

<!-- Fim dos Menus -->
</div>

Note que o menu à direita é automático; não altere nenhum código dele.

Os créditos do ícone usado nos itens da sidebar são do Blog Perfume

Para fazer o Download do Template Oggi em pasta zipada clique aqui

E antes que me perguntem:

*Não é possível alterar as dimensões do slide
*Para alterar o texto do link Ler Mais, expanda os códigos do template e use o Ctrl+F para fazer a busca, como mostra a imagem abaixo:


Escreva Ler Mais na caixinha que se abre e clique em Próximo e automaticamente o trecho a ser modificado aparecerá destacado.

Para alterar as dimensões das imagens nos resumos, procure por:

<script type='text/javascript'>
var thumbnail_mode = &quot;float&quot; ;
summary_noimg = 320;
summary_img = 170;
img_thumb_height = 110;
img_thumb_width = 98;
</script>

altere o valor (110) onde está em vermelho para a altura e o valor (98) em verde para alterar a largura da miniatura da imagem. O valor na linha azul refere-se ao número de caracteres mostrados no resumo quando não há imagem a ser exibida e o número na linha roxa refere-se ao número de caracteres mostrados quando há imagem no resumo.

Não é possível retirar o slide ou os resumos sem quebrar completamente a estrutura do template original. Qualquer alteração  é por sua conta e risco :)

EDIT 25/03/10 : Havia um erro no código do template que já foi corrigido. Para os que fizeram o download do código antes desta data, por favor, procurem o seguinte trecho no código do template:

#main-wrapper{
float:left;
margin-left 6px;
width: 796px;}
#Blog1{float:left;margin:0px;padding: 0px;width:796px; clear:both;}

e troquem por:

#main-wrapper{
float:right;
margin-right: 6px;
width: 796px;}
#Blog1{float:left;margin:0px;padding: 0px;width:796px; clear:both;}

Para os que baixarem desta data em diante, o código já está ok.
Edit 31/03/10 - Correções no código para o navegador Internet Explore foram feitas.


Edit 10/04/10 - Respondendo a diversos comentários: a imagem do link Leia Mais é a mesma do Menu e deverá ser colocada em #showlink

A distribuição deste template só está autorizada ao site BTemplates e os créditos não devem ser removidos.
Leia Mais

Novos modelos de templates nativos do Blogger

Acabei de ver a novidade, que provavelmente está disponivel, por enquanto, apenas para quem usa o Blogger in Draft (o blog de 'testes' do Blogger). Para acessar o Blogger in Draft e ficar por dentro das novidades, faça o login por esta página: http://draft.blogger.com/

Para ver os novos modelos de templates, vá na aba Layout e verá à direita o link Designer do Modelo, como mostra a imagem:

Uma nova tela irá se abrir com opções de modelos separados por autor, além de outros recursos muito interessantes:


Além de trocar o seu template, você poderá, clicando em Layout, escolher o tipo de modelo que deseja: uma coluna lateral, duas, footer dividido, nenhuma sidebar e assim por diante:


Clicando em Plano de fundo você altera as cores do layout:


Em Avançado você poderá determinar o estilo de cada seção do seu template em separado: um estilo para o título do post, outros para a sidebar, etc:


Depois de fazer todas as modificações basta clicar em Aplicar ao Blog e as alterações serão salvas.

Eu ainda estou aqui 'brincando' com a novidade que, confesso, foi a que mais me empolgou dentre todas as novidades que o Blogger nos ofereceu nos últimos meses.

Agora fica fácil criar um modelo exclusivo, não? Aproveitem!

Edit: Para saber mais (em inglês):  The Blogger Template Designer. Dica da @maryynett

E melhor explicado nos blogs: UsuarioCompulsivo, Ferramentas Blog e Dicas Blogger

Nunca faça modificações diretamente no seu blog 'oficial'. Crie um blog de testes para isso. Não deixe de fazer backup dos seus posts e template periodicamente. Evite dores de cabeça!
Leia Mais

Olá

Olá!


depois de mais de duas semanas de indecisão, mudei o template do TNB hoje e conto com a visita dos leitores do feed, agradecendo sugestões e comentários. Por falar em comentários, eles estão novamente abertos, mas não se esqueça de dar uma olhada no que já foi respondido, antes de fazer sua pergunta.


O ano aqui começa agora. Neste mês o TNB completa 3 anos de vida e já é hora de organizar o conteúdo, criar um FAQ e arrumar os templates. Alguns novos serão publicados nos próximos dias, outros desaparecerão. Conto com a paciência de todos, mais uma vez.


Agradeço todos aqueles que me enviaram mensagens neste período de ausência, externando simpatia pelo blog e saudades das publicações.


Em breve publicarei o resultado de algumas experiências que fiz com as novidades propostas pelo Blogger.


abraços!
Leia Mais

E então é Natal...



 Desejo à todos vocês Boas Festas e um ano de 2010 maravilhoso, capaz de deixar excelentes recordações para 2011. Agradeço a companhia, as mensagens que recebi através do formulário de contato, os elogios, as críticas e principalmente a generosidade de vocês com esta aprendiz. Que no próximo ano possamos todos nos 'encontrar' novamente através desta maravilha que é a Internet e  que esta experiência continue a ser tão bacana.

Abraços e até 2010!
Leia Mais

Template Outubro


Com um certo atraso publico o Template Outubro.
Contém menu horizontal, resumos automáticos de postagens e posts relacionados.
Para editar os links do menu, procure por este trecho e coloque a url onde indicado, substituindo o que está em negrito:

<div id='header-right'>
<ul>
<li class='home'><a href='http://templateoutubrotnb.blogspot.com/'>Home</a></li>
<li class='tab'><a href='http://templateoutubrotnb.blogspot.com/'>Sobre</a></li>
<li class='tab'><a href='http://templateoutubrotnb.blogspot.com/'>Fotos</a></li>
<li class='tab'><a href='http://templateoutubrotnb.blogspot.com/'>Contato</a></li>

EDIT: existe um erro no código que faz com que a paginação (links Postagens Recentes, Postagens Antigas) apareçam acima dos resumos. Para arrumar, procure por: #blog-pager e acrescente a linha abaixo:

#blog-pager {
text-align: center;
clear:both;
}

Obs: novo link para download em 21/10/10
Leia Mais

Como dividir o cabeçalho do Blogger

 Atenção: Este tutorial aplica-se aos Modelos de Layout (lançados em 2006). Se você procura o mesmo tutorial para os novos modelos (Designer do Modelo - 2010) leia este tutorial.

Atendendo pedidos, vou explicar como dividir o cabeçalho do blog para que possa acomodar outro widget ao lado do título e abaixo do mesmo. Lembrando que todos os tutoriais aqui publicados usam o template Mínima do Blogger como base; templates já modificados podem não apresentar o resultado esperado.
Este é o método que eu uso, vocês podem encontrar outros tutoriais que expliquem de maneira diferente, ok?

Primeiro vamos entender o cabeçalho original, no HTML:

<div id='header-wrapper'>
<b:section class='header' id='header' maxwidgets='1' showaddelement='no'>
<b:widget id='Header1' locked='true' title='Header Dividido TNB (Cabeçalho)' type='Header'/>
</b:section>
</div>

Perceba que existe uma Div (bloco) no alto da página de nome (ID) 'header-wrapper' que recebe um widget de nome Header1 dentro de uma seção  header. Header1 é um widget como qualquer outro elemento que você adiciona em sua sidebar por exemplo, e que não se perde a cada troca de template por que está trancado (locked='true'). O que precisamos fazer é estabelecer que a seção header não ocupe a área total de header-wrapper para dar espaço a uma nova seção. Faremos isso no CSS. Procure por:

#header-wrapper {
width:660px;
margin:0 auto 10px;
border:1px solid $bordercolor;
}

Neste trecho do CSS está contido o estilo para toda div header-wrapper. Veja que a largura total desta div é de 660px. Você pode aumentar esta largura (não sem antes aumentar a largura de Outer-Wrapper, que é a Div maior que engloba todas as outras). O que vou fazer primeiramente é estabelecer que Outer-wrapper tenha 990px de largura:

#outer-wrapper {
width: 990px;
margin:0 auto;
padding:10px;
text-align:$startSide;
font: $bodyfont;
}

Feito isso, aumento a largura de header-wrapper para 980px de largura:

#header-wrapper {
  width:980px;
  margin:0 auto 10px;
  border:1px solid $bordercolor;
  }

Agora que a Div header-wrapper está apta para conter duas seções, vou dar uma largura para header e determinar que flutue à esquerda (para que a nova seção se apresente à direita do título do blog):

#header {
  margin: 5px;
  border: 1px solid $bordercolor;
  text-align: left;
  float:left;
  width:40%;
  color:$pagetitlecolor;
}

Em seguida crio uma nova  seção que ocupará o lado direito de header-wrapper e que receberá o novo widget; vou chamá-la de #header-right:

#header-right{
margin: 5px;
border: 1px solid $bordercolor;
text-align: left;
float:right;
width:56%;

color:$pagetitlecolor;
}

Bom, sabemos que apenas com CSS não se cria nada, ele serve apenas para dar estilo, portanto iremos criar a nova seção no HTML:

<div id='header-wrapper'>
<b:section class='header' id='header' maxwidgets='1' showaddelement='no'>
<b:widget id='Header1' locked='true' title='Header Dividido TNB (Cabeçalho)' type='Header'/>
</b:section>
<b:section class='header-right' id='header-right' maxwidgets='1' showaddelement='yes'/>

</div>

Pronto, já temos o nosso cabeçalho dividido em dois. Salve e vá até a página Layout, deve ficar assim:


Se você deseja que a nova seção possa receber mais de um widget, basta apagar o trecho maxwidgets='1' ou aumentar o número de 1 para quantos widgets deseja que ele receba.

Mas Ariane, eu quero colocar um widget ao lado do título e um baixo, ocupando todo o espaço do header-wrapper, tem como? Tem sim. Novamente vamos criar uma nova seção que chamaremos #header-bottom. Vamos estabelecer primeiro o estilo e depois acrescentamos o código HTML:

#header-bottom {
width:100%; /*veja que a largura é total*/

margin:0 auto 0px; /*não há flutuação, está alinhado ao centro*/
}


e no HTML:

<div id='header-wrapper'>
<b:section class='header' id='header' maxwidgets='1' showaddelement='no'>
<b:widget id='Header1' locked='true' title='Header Dividido TNB (Cabeçalho)' type='Header'/>
</b:section>
<b:section class='header-right' id='header-right' maxwidgets='1' showaddelement='yes'/>

<div style='clear:both'/>
<b:section class='header-bottom' id='header-bottom' maxwidgets='1' showaddelement='yes'/>

</div>

A linha <div style='clear:both'/> abaixo das duas primeiras seções serve para 'empurrar' a nova seção (header-bottom) para baixo, caso contrário ela ficaria acima das outras e bagunçaria todo o layout. Salve e veja como deve ficar na página Layout:


E então eu fiquei muito feliz de conseguir dividir meu cabeçalho e coloquei lá um banner do Adsense de 468x60 na seção da direita e um de 790x90 na seção de baixo e ficou assim:

Aff Ariane, ficou feinho...não tem como deixar o banner alinhado no centro? Tem, claro que sim. O que fizemos até agora foi dar estilo para as seções que recebem os novos widgets, mas não determinamos como os widgets devem se comportar dentro destas seções, certo?
Vou então determinar que o widget que ocupa a seção #header-bottom apareça alinhado ao centro, com um espaçamento para o topo de 5px:

#header-bottom  .widget{text-align:center; padding-top:5px;}

Acrescento ainda uma cor no background de #header e obtenho este resultado:

Melhorou um pouco, não? Claro que estou apenas usando um exemplo bem básico para que você tenha uma noção, depois é com a criatividade de cada um. Você também pode centralizar o widget que ocupa a seção #header-right, da seguinte maneira:

#header-right .width{text-align:center} /*o banner ocupará o centro da seção*/

Supondo que você queira colocar em #header-bottom uma lista de links (ou marcadores) para que se apresente como um menu horizontal, acrescente no CSS:

#header-bottom ul{
margin: 0 0 0;
padding: 0 0 0;}

#header-bottom li{
float:left;
list-style-type:none;
}

#header-bottom li a{
display:block;
padding:0 20px; /*espaçamento entre os títulos*/
font-size:0.9em; /*tamanho da fonte*/
font-weight:normal;
text-decoration:none;
color: #000000; /*cor do link*/
}

#header-bottom a:hover{
color:#000000; /*cor do link no quando passa o mouse sobre*/
text-decoration:none;}

O resultado é este (acrescentei também uma borda em #header-wrapper e um background em #header-bottom  valor #ccc):


É isso ;)
Leia Mais

Como colocar links no menu

Muitas pessoas me perguntam como colocar links nos menus dos templates que baixam aqui e em outros blogs. Outra pergunta que me fazem muito é que link colocar no menu. Então vamos por partes.
Se você baixou um template que tem a opção de menu horizontal, saiba que há duas maneiras distintas de editar os links:

Editar através do html.

Este tipo exige que os links sejam colocados diretamente no código html do menu. A estrutura do código de um menu é bastante semelhante ao exemplo abaixo:

<div id='menu'>
<ul>
<li><a href='url do link aqui'>Home</a></li>
<li><a href='url do link aqui'>Sobre</a></li>
<li><a href='url do link aqui'>Fotos</a></li>
<li><a href='url do link aqui'>Contato</a></li>
</ul>
</div>

Entre  <div id='menu'> e </div> encontra-se o conteúdo do bloco ou seja, uma lista, que se inicia em <ul> e termina com </ul> . Entre cada um dos <li> e </li> deve ser colocado o link de destino e onde está Home, Sobre, Fotos, etc, o nome que aparecerá no menu (destino do link).
Mas, que links colocar no menu? Você pode colocar o link de um post específico (criar um post sobre você ou seu trabalho e colocar em Sobre ou ainda um formulário de contato em um post e nomear Contato) para dar a impressão de páginas, por exemplo. Para obter o link de um post específico, basta clicar sobre o título do post e ir em Copiar Link. Se o post não tiver título, basta copiar o endereço que aparece no seu navegador quando está na página do post. Você pode ainda linkar um marcador específico como faço aqui no blog (em Templates). Basta clicar com o botão direito do mouse sobre determinado marcador de sua lista e copiar o link.

Editar através do gadget Lista de Links.

Em muitos dos templates que disponibilizo deixo para que o menu seja editado através do gadget Lista de Links. Para isso, basta ir em Layout, clicar em Adicionar Elemento de Página e escolher a opção Lista de links:


Em Novo Url do Site coloque o link de destino e em Novo Nome do Site o nome que aparecerá no menu. Clique em Adicionar Link e continue colocando os outros links que deseja que apareçam no menu.


Não coloque título em sua lista!
Tendo terminado sua lista, disponha os links na ordem que deseja que apareçam, da esquerda para a direita no menu, clicando nas flechinhas que direcionam para cima e para baixo (para cima o link fica à esquerda, para baixo à direita).


Clique em Salvar e arraste o gadget para o espaço destinado ao menu, geralmente à direita do cabeçalho ou abaixo dele.

Mas como saber que tipo de edição há em cada template? Bom, geralmente o autor dá uma pista de como editar o menu, mas se ele esquecer (e eu sempre esqueço...) procure no código do seu template algo semelhante a primeira lista (HTML) e se não houver nada assim, edite uma Lista de Links e arraste para o local que seja mais obviamente indicado para mostrar um menu e visualize para ter certeza de que arrastou para o local correto.
Leia Mais

Link para o final de semana VIII

A novidade que o Blogger traz esta semana é o avatar nos comentários. Semana passada foi o Jump Break (o 'Leia Mais' nativo do Blogger: isso mesmo, chega de gambiarras!). Como um monte de gente tratou das novidades, não vou me repetir aqui, prefiro indicar os posts sobre esses e outros assuntos:

Jump Break – o hack “Leia mais” do Blogger - Dicas Blogger
Ativando as fotos/avatares nos comentários do Blogger - IceBreaker
Avatar/Fotos nos Comentários do Blogger - Ferramentas Blog
Personalizando o avatar nos comentários - htmhelen
Ativando foto nos comentários e Correções - Códigos Blog


e outros assuntos:
Comentários e Conversa no blog com Google Conversation Element - Mamanunes
Imagen y enlace en la firma del post para varios autores - El Escaparate de Rosa
O que é Cache e Requisições HTTP? - Bloggersphera
border-radius - Gema Blog
Hablando de la propiedad Float - Vagabundia

e alguns links que guardei no Twitter esta semana (sim, uso o Twitter também para guardar links):
Best Sites to Download Free Patterns
Over 5000 FREE Adobe Photoshop Brushes
11 Classic CSS Techniques Made Simple with CSS3
25 High-Quality Calligraphy Fonts
Os 20 experimentos mais bizarros da história
100 anos de efeitos especiais
Yo quiero ser un Blog Star

Bom final de semana! ;)
Leia Mais

Template Impressões

template blogger

Template com menu horizontal e uma sidebar.
Para editar os links do menu horizontal, procure o seguinte trecho do código do template:

<div id='navigation'>
<ul>
<li class='home'><a href='http://riscoserasuras.blogspot.com/'>Home</a></li>
<li class='tab'><a href=''>Sobre</a></li>
<li class='tab'><a href=''>Imagens</a></li>
<li class='tab'><a href=''>Contato</a></li>
</ul>
Substitua a url em negrito pela url do seu blog e coloque as outras url's que desejar.

Obs: As imagens utilizadas neste template, por serem grandes, tornam o carregamento da página um tanto lento. Este problema pode ser contornado hospedando as imagens no seu próprio blog. 

1- Crie uma nova postagem e acrescente todas as imagens que acompanham o código do template. Deixe a imagem como grande:

2- Coloque todas as imagens neste post e salve o post como rascunho.

3- Clique em Editar HTML e copie a url da imagem:


4- Cole a url no local correspondente no código do template. Por exemplo, a imagem body background deve ser colocada em :

body {
 background:url(http://4.bp.blogspot.com/_YGpl3rQPSzI/SqXYfLn4NHI/AAAAAAAAN0g/4QIzInK6ssQ/s320/back.png)  repeat;

 Algumas imagens aparecem duas vezes, no formato png e gif e devem ser colocadas na ordem em que se apresentam. Por exemplo, em .top há dois backgrounds, desta maneira:

background: url(aqui coloque a imagem top 1)  no-repeat top center;
_background: url(aqui coloque a imagem top 2)  no-repeat bottom center;

Atenção! O link copiado será mais ou menos como o mostrado abaixo, no entanto a parte em vermelho deve ser apagada:

http: //3.bp.blogspot.com/_YGpl3rQPSzI/Sq63cwTvbZI/AAAAAAAAN7c/AYGWsJGOq1c/s1600-h/bottom+1.png

Edit 09/04/2010 - Resolvido o problema dos links no menu para IE7.
Para quem baixou o template antes desta data, a correção é feita deixando os códigos abaixo como se apresentam:


#nav{
position: relative;
margin: 0px auto 0;
padding: 0 0 0;
height:35px;
width: 960px;
line-height:2.0em;
}

#nav ul{
position: absolute;
z-index:1000;
margin: 0px 0px 0px;
padding: 0 0 0;}
Leia Mais

Template Pin-Up

template pin-up blogger


O template contém:

- Menu superior à direita. Para editar os links do menu superior (Menu1) procure o seguinte trecho no código do template, apague o que está em negrito e coloque o seu link no lugar:

<!-- Inicio Menu1 -->
<div id='menu1'>
<ul>
<li><a expr:href='data:blog.homepageUrl'>Home</a></li>
<li><a expr:href='data:blog.homepageUrl + &quot;feeds/posts/default&quot;' title='Subscribe to Content via RSS'>Feed</a></li>
<li><a href='http://twitter.com/_Ariane_' title='Twitter'>Twitter</a></li>
<li><a href='http://template122.blogspot.com/2009/02/contato.html' title='Contato'>Contato</a></li>
</ul>
</div>
<!-- Fim do Menu1 -->

- Menu horizontal abaixo do cabeçalho. Para editar os links do Menu2, procure o seguinte trecho do código do template:

<!-- Inicio do Menu2 -->
<div id='subscribe'>
<ul>
<li class='link1'><a herf=''>Categorias</a></li>
<li class='link2'><a href=''>Fotos</a></li>
<li class='link3'><a href=''>Arquivos</a></li>
<li class='link4'><a href=''>Sites</a></li>
</ul>
</div>
<!-- Fim Menu -->

Coloque os links entre as aspas após href=

- Resumos automáticos de postagens com miniatura das imagens utilizadas;
- Sidebar dividida em duas colunas;
- Footer dividido em 3 colunas;
- Posts Relacionados nas páginas internas.

Para configurar o Feed no rodapé da postagem, cliquem em Expandir Modelo de Widget e procurem pelo seguinte trecho (use o Ctrl+F para facilitar):

Assine o <a href='coloque aqui a url do seu FEED' title='RSS Feed'>Feed</a>


Podem usar e modificar à vontade, peço apenas a gentileza de não retirarem os créditos, ok?

Bom final de semana! :)

Obs: novo link para download em 21/10/10
Leia Mais

Mostrar os Marcadores e Arquivos como listas

tutorial blogger


Por padrão, quando se clica em um Marcador ou mês do arquivo no Blogger, ele exibe todos os posts  relacionados completos, o que acredito que não ajuda muito na busca do leitor, principalmente se você tem muitos posts em uma categoria/mês. Porém é possível determinar que, clicando em um marcador ou mês do arquivo, surjam apenas os títulos dos posts, ordenados cronologicamente (faça um teste e clique em qualquer marcador aqui do TNB). Eu já expliquei como fazer isso no post Melhorando a apresentação dos marcadores e arquivos  mas o que não expliquei ainda é como dar estilo à lista, nem como retirar a data que aparece ao lado do título.

Conforme o tutorial, deve-se substituir <b:include data='post' name='post'> por:

<b:if cond='data:blog.pageType != "static_page"'>
<b:if cond='data:blog.homepageUrl != data:blog.url'>
<b:if cond='data:blog.pageType != "item"'>
<a expr:href='data:post.url'>
<data:post.title/></a><br/>
<b:else/>
<b:include data='post' name='post'/>
</b:if>
<b:else/>
<b:include data='post' name='post'/>
</b:if>
<b:else/>
<b:include data='post' name='post'/>
</b:if>

Mas, para que seja possível dar estilo à lista de títulos, ao invés de substituir pelo código acima, substitua por:

<b:if cond='data:blog.pageType != "static_page"'>
<b:if cond='data:blog.homepageUrl != data:blog.url'>
<b:if cond='data:blog.pageType != "item"'>
<div id='titulos'><ul><li>
<a expr:href='data:post.url'><data:post.title/></a>
</li></ul>
</div>


<b:else/>
<b:include data='post' name='post'/>
</b:if>
<b:else/>
<b:include data='post' name='post'/>
</b:if>
<b:else/>
<b:include data='post' name='post'/>
</b:if>

Agora para dar estilo à lista, acrescente no CSS (acima da tag ]]></b:skin>):

#titulos{ /*estilo para o espaço ocupado pela lista */
margin:6px 0px;
background:#fff;
padding:6px;
border:1px solid #e3e2e3}

#titulos ul{ /*estilo da lista */
margin:0px;
list-style-type:none;
background:#eeeded;
padding:3px;}

#titulos li{ /* estilo para cada item da lista */
background: #fff ;
padding:15px 0px 3px 40px;
font-weight:bold}

Para que a data não apareça nestas listas, procure pelo código da data dos posts, que é:

<b:if cond='data:post.dateHeader'>
<h2 class='date-header'><data:post.dateHeader/></h2>
</b:if>


e substitua por:

<b:if cond='data:blog.homepageUrl == data:blog.url'>
<b:if cond='data:post.dateHeader'>
<div class='date-header'><data:post.dateHeader/></div>
</b:if>

<b:else/>
<b:if cond='data:blog.pageType == &quot;item&quot;'>
<b:if cond='data:post.dateHeader'>
<div class='date-header'><data:post.dateHeader/></div>
</b:if></b:if></b:if>

O que fazemos é colocar a data em uma condicional para a home e não sendo a página home, que apareça nas páginas internas (o que exclui as páginas de arquivos e marcadores).
Leia Mais

Hospedar JavaScript no Google Site

Através do Twitter, Pizcos avisou que é possível hospedar JavaScipt no Google Site e BanakaBanaka fez um post à respeito, explicando como hospedar os scripts. Eu mesma testei e o slide aqui do blog está funcionando com os scripts hospedados por lá.

1- Crie um site no Google Site:


2- Clique em criar página:


3- Escolha a opção Arquivos, dê um nome à nova página e escolha a opção Colocar Página no Nível Superior:

4- Clique em Adicionar Arquivo, procure o arquivo JavaScript no seu computador e clique em Fazer Upload:

 

5- Clique com o botão direito do mouse sobre o nome do arquivo e escolha copiar link:


6- O link deve ser parecer com este: http:// sites.google.com/site/meuscodigos73/scripts/jquery%282%29.js?attredirects=0.
Exclua do link o trecho em vermelho e coloque no blog (acima da tag </head> ) desta maneira:

<script src='http://sites.google.com/site/codigos1673/scripts2/s3Slider.js' type='text/javascript'/>
Por enquanto tudo está funcionando perfeitamente e esta é uma ótima opção para hospedar scripts depois que o Google Pages fechou suas portas.Esperamos que desta vez não aconteça o mesmo.
Leia Mais

Como fazer um template para o Blogger VI - Post

Continuando a série de artigos sobre Como criar um template para o Blogger, nesta sexta parte mostrarei uma idéia geral sobre as colunas do template Mínima e como dar estilo ao post.

Antes, vamos recapitular um pouco do conteúdo da primeira parte:

Um documento HTML se compõe da seguinte estrutura básica:
<html>
<head>
cabeçalho: aqui está contido o estilo da página - CSS
<head/>
<body>
corpo - aqui está contida a estrutura da página, seus elementos.
</body>
</html>
O código CSS, que dá estilo à página, começa com : <b:skin><![CDATA[/* e sua tag de fechamento é ]]></b:skin>. Tudo o que estiver contido entre estas duas tags refere-se ao estilo da página (aparência) e não à sua estrutura. Não é possível criar um novo elemento (uma coluna, por exemplo) com CSS. O CSS irá apenas determinar a aparência deste bloco, deste elemento.
Imediatamente após o fechamento da tag do CSS, encontra-se </head>, fechando o cabeçalho da página e imediatamente após </head> está <body>, dando início ao corpo do documento:



Se entre <head> e </head> está contido o estilo da página com o código CSS, entre <body> e </body> encontra-se a estrutura do template.

Visão do conteúdo de body no template Mínima (sem expandir modelo de widget):

<body>

<div id='outer-wrapper'>
<div id='wrap2'>

<!-- skip links for text browsers -->
<span id='skiplinks' style='display:none;'>
<a href='#main'>skip to main </a> |
<a href='#sidebar'>skip to sidebar</a>
</span>

<div id='header-wrapper'>
<b:section class='header' id='header' maxwidgets='1' showaddelement='no'>
<b:widget id='Header1' locked='true' title='Toda Cute (Cabeçalho)' type='Header'/>
</b:section>
</div>

<div id='content-wrapper'>

<div id='crosscol-wrapper' style='text-align:center'>
<b:section class='crosscol' id='crosscol' showaddelement='no'/>
</div>
<div id='main-wrapper'>
<b:section class='main' id='main' showaddelement='no'>
<b:widget id='Blog1' locked='true' title='Postagens no blog' type='Blog'/>
</b:section>
</div>
<div id='sidebar-wrapper'>
<b:section class='sidebar' id='sidebar' preferred='yes'>
<b:widget id='Followers1' locked='false' title='Seguidores' type='Followers'/>
<b:widget id='BlogArchive1' locked='false' title='Arquivo do blog' type='BlogArchive'/>
<b:widget id='Profile1' locked='false' title='Quem sou eu' type='Profile'/>
</b:section>
</div>

</div> <!-- end content-wrapper -->

<div id='footer-wrapper'>
<b:section class='footer' id='footer'/>
</div>

</div>

</div> <!-- end outer-wrapper -->
</body>

</html>

Colori as tags de abertura e fechamento das divs principais para que possam perceber a 'hierarquia', ou ainda, como alguns blocos estão contidos em outros. Entre <body> e </body> a maior div que engloba todas as outras é outer-wrapper, seguida de wrap2 (que não tem estilo definido no CSS) e dentro destes 2 blocos encontra-se:

<!-- skip links for text browsers -->
<span id='skiplinks' style='display:none;'>
<a href='#main'>skip to main </a> |
<a href='#sidebar'>skip to sidebar</a>
</span>

Skiplinks são links com âncoras que levam diretamente para o conteúdo da página, pulando qualquer outro menu ou links que possam existir entre o topo da página e os textos, ou sidebar. É uma alternativa para quem tem deficiência visual e usa um leitor de tela. Você pode obter informações detalhadas sobre Skip Navigation aqui. No template Mínima o trecho style='display:none' esconde estes links e para que apareçam em seu blog, basta deletar este mesmo trecho.
Cabeçalho
O trecho do HTML que corresponde ao cabeçalho da página é este:
<div id='header-wrapper'>
<b:section class='header' id='header' maxwidgets='1' showaddelement='no'>
<b:widget id='Header1' locked='true' title='Toda Cute (Cabeçalho)' type='Header'/>
</b:section>
</div>
O correspondente no CSS é #header-wrapper, #header-inner, #header, #header h1 (título do blog), #header a, #header a:hover (links do cabeçalho - título) , #header .description (descrição do blog)

Content-Wrapper - Esta é a div que engloba as colunas do post e sidebar do blog. No template Mínima não há estilo para content-wrapper. Se você quiser dar algum estilo à esta div terá que acrescentar no CSS:

#content-wrapper{ ....estilo......}

Crosscol-wrapper
<div id='crosscol-wrapper' style='text-align:center'>
<b:section class='crosscol' id='crosscol' showaddelement='no'/>
</div>

Esta é uma div que fica acima das colunas e que também não tem estilo definido no CSS, apenas dentro do código html, em style='text-align:center' (que centraliza qualquer widget). Para fazer com que esta div apareça na página Layout e possa receber um widget, troque onde está no por yes e salve a modificação. Para dar estilo a crosscol-wrapper, acrescente no CSS:

#crosscoll-wrapper {....estilo...}

Main-wrapper, coluna do post
<div id='main-wrapper'>
<b:section class='main' id='main' showaddelement='no'>
<b:widget id='Blog1' locked='true' title='Postagens no blog' type='Blog'/>
</b:section>
</div>
Main-wrapper é a div que recebe o widget Blog1, o widget de postagens do Blogger. Para que a div main-wrapper possa receber outros widgets, troque no por yes e será possível acrescentar widgets antes ou depois dos posts. Para destrancar o widget de posts (pois ele é fixo no template), troque onde está locked='true' por locked='false' e você poderá arrastar os posts para a sidebar, por exemplo. Não que mover os posts para a sidebar possa ser interessante, mas este é mais um dado que se pode anotar: para destrancar (e remover) um widget fixo (muitos templates convertidos e modificados vem com widgets fixas), basta trocar true por false.

O correspondente no CSS para a div main-wrapper é este trecho do código:
#main-wrapper {
width: 410px;
float: $startSide;
word-wrap: break-word; /* fix for long text breaking sidebar float in IE */
overflow: hidden; /* fix for long non-text content breaking IE sidebar float */
}
Entre { e } você poderá acrescentar os estilos que deseja para a coluna de postagem, como background, largura, borda, flutuação (lembrando: float:left, a coluna flutua à esquerda - float:right, a coluna flutua à direita). Todo estilo aqui determinado servirá para a coluna, para a div que recebe o widget de posts (Blog1).

Blog1

Blog1 é o widget fixo em main-wrapper que engloba tudo o que contém o post, da data do artigo à post-footer, o rodapé da postagem, além dos comentários. Para conhecer todas as divs e classes contidas em Blog1 é preciso clicar em Expandir Modelo de Widget, quando todos os códigos 'ocultos' se revelam (o que geralmente desespera um pouco na primeira vez).

Ultimamente muitos códigos novos tem surgido nos templates do Blogger (pelo menos no Mínima, que é o que acompanho), por isso, eu realmente não sei tudo sobre as funções de cada um deles. Também não tenho como explicar aqui cada linha do código que se revela ao expandir o widget, por isso farei um resumo. Daqui em diante sugiro que você acompanhe o texto ao mesmo tempo que observa os códigos que serão mencionados. Crie um blog de testes, escolha o template Mínima, vá em Editar HTML e clique em Expandir Modelo de Widget. Vá procurando a localização dos códigos mencionado. Mostrarei o código html de determinados elementos e seu correspondente no CSS.

Data da postagem - HTML:

<b:if cond='data:post.dateHeader'>
<h2 class='date-header'><data:post.dateHeader/></h2>
</b:if>

Data da Postagem - CSS

h2.date-header {
margin:1.5em 0 .5em;}
e
h2 {
margin:1.5em 0 .75em;
font-size:15px;
line-height: 1.4em;
text-transform:capitalize;
letter-spacing:.2em;
color:$sidebarcolor;}

Para o que não for especificado em h2.date-header valerá o que consta em h2.

Título do Post - HTML

<b:if cond='data:post.title'>
<h3 class='post-title entry-title'>
<b:if cond='data:post.link'>
<a expr:href='data:post.link'><data:post.title/></a>
<b:else/>
<b:if cond='data:post.url'>
<a expr:href='data:post.url'><data:post.title/></a>
<b:else/>
<data:post.title/>
</b:if>
</b:if>
</h3>
</b:if>

Título do Post -CSS

.post h3 {
margin:.25em 0 0;
padding:0 0 4px;
font-size:140%;
font-weight:normal;
line-height:1.4em;
color:$titlecolor;
}

.post h3 a, .post h3 a:visited, .post h3 strong {
display:block;
text-decoration:none;
color:$titlecolor;
font-weight:normal;
}

.post h3 strong, .post h3 a:hover {
color:$textcolor;
}

Como o título do post é um link, no CSS você encontra estilo para o título (post h3), para o título- link no estado normal (.post a...) e para o título-link no estado hover (quando passa o cursor do mouse sobre).

Post - HTML

<div class='post-body entry-content'>
<data:post.body/>
<div style='clear: both;'/> <!-- clear for photos floats -->
</div>

Post- CSS

.post { /* área ocupada pelo post, o que inclue a data, título, texto e post-footer */
margin:.5em 0 1.5em;
border-bottom:1px dotted $bordercolor;
padding-bottom:1.5em;
}

.post-body { /* estilo para o texto, área ocupada apenas pelo texto */
margin:0 0 .75em;
line-height:1.6em;
}

.post-body blockquote { /* estilo das citações /*
line-height:1.3em;
}

.post img { /* estilo das imagens do post */
padding:4px;
border:1px solid $bordercolor;
}

Post-Footer - HTML

tag de abertura:
<div class='post-footer'>

tag de fechamento:
</div>

Post-Footer - CSS

.post-footer {
margin: .75em 0;
color:$sidebarcolor;
text-transform:uppercase;
letter-spacing:.1em;
font: $postfooterfont;
line-height: 1.4em;
}

A div class Post-Footer engloba:

Autor do Post - HTML:

<span class='post-author vcard'>
<b:if cond='data:top.showAuthor'>
<data:top.authorLabel/>
<span class='fn'><data:post.author/></span>
</b:if>
</span>

Não há estilo no CSS. Para dar estilo ao link do autor do texto, acrescente no CSS:

.post-author{...aqui os estilos....}

Data do Post - HTML

<span class='post-timestamp'>
<b:if cond='data:top.showTimestamp'>
<data:top.timestampLabel/>
<b:if cond='data:post.url'>
<a class='timestamp-link' expr:href='data:post.url' rel='bookmark' title='permanent link'><abbr class='published' expr:title='data:post.timestampISO8601'><data:post.timestamp/></abbr></a>
</b:if>
</b:if>
</span>

Data do Post - CSS

Não há estilo para a data no template Mínima. Acrescente no CSS:

.timestamp-link{ .... estilo .....}

Link Comentários - HTML

<span class='post-comment-link'>
<b:if cond='data:blog.pageType != &quot;item&quot;'>
<b:if cond='data:post.allowComments'>
<a class='comment-link' expr:href='data:post.addCommentUrl' expr:onclick='data:post.addCommentOnclick'><b:if cond='data:post.numComments == 1'>1 <data:top.commentLabel/><b:else/><data:post.numComments/> <data:top.commentLabelPlural/></b:if></a>
</b:if>
</b:if>
</span>

Link Comentários - CSS

.comment-link {
margin-$startSide:.6em;
}

Marcadores - HTML

<span class='post-labels'>
<b:if cond='data:post.labels'>
<data:postLabelsLabel/>
<b:loop values='data:post.labels' var='label'>
<a expr:href='data:label.url' rel='tag'><data:label.name/></a><b:if cond='data:label.isLast != &quot;true&quot;'>,</b:if>
</b:loop>
</b:if>
</span>

Marcadores - CSS

Acrescente no CSS:
.post-labels{ ....estilo ....}

Não vou me estender para além destes elementos ou o post ficará enorme e também confuso, com excesso de informações. Para os outros elementos elaborarei novos tutoriais.

Agora que você conhece o significado destes códigos do HTML, poderá modificar suas posições no template de acordo com sua vontade. Basta selecionar, por exemplo, todo o trecho do html referente aos marcadores, recortar e colar abaixo do trecho para o título do post. Faça diversas experiências, modificando as posições dos códigos e acrescentando estilos diversos (como backgrounds coloridos) para cada um, aumentando a visibilidade do espaço que cada um ocupa na coluna main-wrapper. O interessante é destacar cada item com imagens diferentes, por exemplo, um background para os títulos dos posts e um ícone para os marcadores. Se você destacar um trecho, colar em outro local e receber uma mensagem de erro ou ser impedido de visualizar o blog, provavelmente você nã destacou o trecho completo (que deve ir de <span...> até </span>).

Para colocar um pequeno ícone ao lado de qualquer link (como marcadores ou o link comentários), basta acrescentar no CSS:

.post-labels{background: url(link da imagem do ícone)   no-repeat bottom left; padding-left:20px; } (para o ícone aparecer à esquerda do link)

para modificar a posição do link comentários:

.comment-link{float:right} o link aparecerá à direita no final do post.

Você pode ainda dar estilo às listas que criar nos seus textos:

.post ul{ ....estilo ....}
.post li{....estilo .....}


item de uma lista no post com imagem como marcador:

.post li {background: url(link da imagem ) no-repeat center left; padding-left:20px;} (a imagem aparecerá à esquerda do item, como eu uso aqui no meu blog).


Exemplo1 :


(clique para ampliar a imagem)

Neste exemplo eu coloquei uma imagem na coluna #main-wrapper (uma imagem que se repete indefinidamente) e uma cor para o background de post, ficando assim o código:

#main-wrapper {
  width: 700px;
  background: url(http://i30.tinypic.com/kcm36a.jpg)  repeat;
  border: 2px solid $bordercolor;
  float: $startSide;
  word-wrap: break-word; /* fix for long text breaking sidebar float in IE */
  overflow: hidden;     /* fix for long non-text content breaking IE sidebar float */
  }

.post {
  margin:15px 10px;
  background: #f5f5f5;
  padding:1.5em;
  border: 4px solid #c373a4
  }
Veja que em post eu estipulei uma margin de 15px para o topo e para a base (o que afasta um post do outro e cria o efeito de 'caixas' onde os posts aparecem), além de uma margem de 10px para a esquerda e direita, o que possibilita visualizar a imagem de fundo colocada em main-wrapper. Se a margem de post for 0 (margin:0px) o efeito é completamente diferente:


Veja que sem margin, o background de main-wrapper não pode ser visto nas laterais do post e um texto aparece imediatamente após o outro, sem nenhum espaço.

Note também que em .post, padding afasta o conteúdo (texto) das bordas:

.post {
  margin:15px 10px;
  background: #f5f5f5;
  padding:1.5em;
  border: 4px solid #c373a4
  }

Padding com um valor 0em ficaria assim:



Exemplo2: degrade (gradiente) no background de main-wrapper:

 

#main-wrapper {
width: 700px;
background: #fff url(http://i25.tinypic.com/29cph8n.jpg) repeat-x;
border: 2px solid $bordercolor;
float: $startSide;

Veja que neste exemplo, criei uma imagem dregrade rosa/branco, que se repete na horizontal (repeat-x) e antes do link da imagem coloquei o valor da cor (#fff - branco) do final da imagem:




Use a criatividade e crie estilos diferentes para #main-wrapper e para .post, além dos elementos contidos em Blog1. Recomendo o site do Maujor para aprender noções de CSS e dar estilo aos links e blocos.

Leia também:

Diferença entre margin e padding
Leia Mais

isFirstPost - Exemplo 2


Continuando o post anterior, explicarei aqui como deixar o seu blog como o Exemplo 2. Neste exemplo, os posts aparecem resumidos na página inicial e em formato de lista nos marcadores e arquivos (como uso aqui no meu blog). Além disso, usei jQuery no primeiro post, que esconde e revela parte do conteúdo sem sair da página.
Como lembrar nunca é demais, lá vai o conselho da titia: Nunca faça modificações diretamente no seu blog 'oficial'. Crie um blog de  testes para isso, evitando desesperos e dores de cabeça.
Atenção: se você seguiu o tutorial anterior e colocou os códigos para o Exemplo 1, substitua tudo pelo que se segue:

1- Clique em Expandir Modelo de Widget, procure por <b:include data='post' name='post'/> e substitua por:

<b:if cond='data:post.isFirstPost'>
<b:if cond='data:blog.homepageUrl == data:blog.url'>

<div id='first'>
<b:if cond='data:post.title'>
<h1 class='post-title entry-title'>
<b:if cond='data:post.link'>
<a expr:href='data:post.link'><data:post.title/></a>
<b:else/>
<b:if cond='data:post.url'>
<a expr:href='data:post.url'><data:post.title/></a>
<b:else/>
<data:post.title/>
</b:if>
</b:if>
</h1>
</b:if>

<p><data:post.body/></p>

<br/>
<span class='commentlink'>
<b:if cond='data:blog.pageType != &quot;item&quot;'>
<b:if cond='data:post.allowComments'>
<a class='comment-link' expr:href='data:post.addCommentUrl' expr:onclick='data:post.addCommentOnclick'><b:if cond='data:post.numComments == 1'>1 <data:top.commentLabel/><b:else/><data:post.numComments/> <data:top.commentLabelPlural/></b:if></a>
</b:if>
</b:if>
</span>
</div>

<b:else/>

<b:if cond='data:blog.pageType == &quot;item&quot;'>
<b:include data='post' name='post'/>
</b:if>

<b:else/>

<b:if cond='data:blog.homepageUrl != data:blog.url'>
<b:if cond='data:blog.pageType != &quot;item&quot;'>
<div id='first'>
<ul><li><a expr:href='data:post.url'><data:post.title/></a></li></ul>
</div></b:if></b:if></b:if>

<b:else/>

<b:if cond='data:blog.homepageUrl != data:blog.url'>
<b:if cond='data:blog.pageType != &quot;item&quot;'>

<div id='titulos'><ul><li>
<a expr:href='data:post.url'><data:post.title/></a></li></ul>
</div>

<b:else/>

<b:include data='post' name='post'/>
</b:if>
<b:else/>
<b:include data='post' name='post'/>
</b:if>

</b:if>

O que fiz aqui foi basicamente isso: Se a condição for o primeiro post na home page, o post aparecerá dentro da div First, exibindo título, texto e link para comentários, caso contrário, os posts aparecem normalmente nas páginas internas. E ainda, se for diferente das páginas internas e diferente da home page, o primeiro post deve aparecer em forma de lista ( <ul><li><a expr:href='data:post.url'><data:post.title/></a></li></ul> ). Se os posts não estiverem contidos em First (ou seja, todos os outros posts), também devem, nestas condições, aparecer em forma de lista (<div id='titulos'><ul><li>
<a expr:href='data:post.url'><data:post.title/></a></li></ul>
</div>) e fora de todas estas condições, os posts devem aparecer normalmente.

Provavelmente existe uma maneira mais simples e enxuta de organizar estas condições (e espero mesmo que sim!) mas confesso que passei muitas horas até conseguir organizar os códigos desta maneira e foi a única sequência lógica que realmente funcionou comigo. Prometo que assim que descobrir uma maneira mais simples ou direta de dispor as condicionais, volto aqui e explico para vocês.

Salve as modificações. Se você está começando agora, siga os passos do primeiro tutorial  para ver como aplicar o hack de resumos automáticos e esconder as informações de post-footer e data dos resumos, além do estilo para os resumos da página inicial. Lembre-se de modificar as medidas para que acompanhem a largura do primeiro post.

Se você já seguiu anteriormente o primeiro tutorial, a diferença aqui é que os estilos para First (tanto na página inicial quanto nas listas) serão colocados abaixo da tag ]]></b:skin>, dentro de uma condicional:

Estilo para First em forma de lista:

<style>
<b:if cond='data:blog.homepageUrl != data:blog.url'>
<b:if cond='data:blog.pageType != &quot;item&quot;'>
#first{margin:6px 0px;background:#fff;padding:6px;border:1px solid #e3e2e3; clear:both;}
#first ul{margin:0px;list-style-type:none;background:#eeeded;padding:3px;}
#first li{background: #fff;padding:15px 0px 3px 40px;font-weight:bold}
</b:if></b:if></style>

<style>

Aqui estilo para First na home page:

<b:if cond='data:blog.homepageUrl == data:blog.url'>
#first{ /* altere os estilos da forma que achar melhor */
float: left;
margin: 0px 0px 10px 5px;
width: 580px;
text-align:justify;
padding:0px 12px 12px;
font-size: 14px;
line-height: 1.4em;
font-family: &#39;Trebuchet MS&#39;;
color: #3b3b3b;
border-top: 1px solid #E9E9E9;
border-left: 1px solid #E9E9E9;
border-right: 2px solid #E9E9E9;
border-bottom: 2px solid #E9E9E9;
background: #f8f8f8
}
#first h1 {margin: 10px 0 0 0; padding: 3px 20px 6px 20px;font-size: 24px;font-family: Verdana;color:#fff;border-bottom:1px dotted #aeb4af} /* estilo para o título */

#first h1 a{margin: 0px auto; padding: 0px;font-size: 24px;font-family: &#39;Palatino Linotype&#39;;font-weight:normal;color:#e71ea7;letter-spacing:1px; } /* estilo para o título */

#first img{margin: 0 5px 5px 0px;padding: 5px; background: #fff; border: 1px solid #dfc8d1; float:left;width: 150px;height:180px; } /* estilo para as imagens em first-post */
#first .commentlink{float:right} /* estilo para o link de comentários */

#first .date-header{float:right} /* estilo para a data */

</b:if></style>

Agora acima de ]]></b:skin> os estilos para a div 'títulos' que apresenta os outros posts em forma de lista nos arquivos e marcadores:

#titulos{margin:10px 0px 6px;background:#fff;padding:6px;border:1px solid #e3e2e3} /* estilo para a div */
#titulos ul{margin:0px;list-style-type:none;background:#eeeded;padding:3px;} /* estilo para a lista */
#titulos li{background: #fff;padding:15px 0px 3px 40px;font-weight:bold} /* estilo para os itens da lista */

Para ver o resultado, entre neste blog e clique em algum marcador ou no mês de julho dos arquivos.

Para colocar o efeito de revelar/esconder no primeiro post, siga este tutorial   no Empório Digital. O efeito também aparecerá nos posts internos, não apenas na página inicial.

O exemplo 3 dispensa um novo tutorial, pois a diferença está apenas na medida dos posts resumidos, que ocupa toda a largura da coluna, ao contrário do exemplo dois, onde cada resumo ocupa metade da medida, ficando dispostos lado a lado.
Leia Mais

isFirstPost - um estilo diferente para o primeiro post


Uma nova condicional do Blogger chamou minha atenção dois meses atrás, mas só agora tive tempo de fazer alguns testes com ela: a condicional isFirstPost.

A tag <b:if cond='data:post.isFirstPost'> é uma condição para o primeiro post visível de uma página, seja a página inicial ou de arquivos/marcadores. Percebendo isso, vislumbrei a possíbilidade de destacar o primeiro post da home (coisa que queria muito  há bastante tempo, o que me levou a fazer as experiências mais escabrosas com o pobre Mínima antes da nova tag :D ), diferenciando-o dos demais.
Para que vocês possam entender logo do que estou falando, segue 3 exemplos com os testes que fiz nos últimos dias:

Exemplo 1
Exemplo 2
Exemplo 3

Vou ensinar primeiro o método mais simples para destacar o primeiro post. Quero lembrar antes que qualquer experiência deve ser feita sempre em um blog de testes, nunca faça nenhuma modificação diretamente em seu blog oficial.

Vá em Editar HTML e clique em Expandir Modelo de Widget. Procure pelo seguinte trecho do código:

<b:include data='post' name='post'/>

Substitua o trecho pelo seguinte código:
<b:if cond='data:post.isFirstPost'>
<b:if cond='data:blog.homepageUrl == data:blog.url'>

<div id='first'>

<b:if cond='data:post.title'>
<h3 class='post-title entry-title'>
<b:if cond='data:post.link'>
<a expr:href='data:post.link'><data:post.title/></a>
<b:else/>
<b:if cond='data:post.url'>
<a expr:href='data:post.url'><data:post.title/></a>
<b:else/>
<data:post.title/>
</b:if>
</b:if>
</h3>
</b:if>

<div class='first-body'>
<p><data:post.body/></p>
</div>

<div class='post-footer'>
<span class='post-comment-link'>
<b:if cond='data:blog.pageType != &quot;item&quot;'>
<b:if cond='data:post.allowComments'>
<a class='comment-link' expr:href='data:post.addCommentUrl' expr:onclick='data:post.addCommentOnclick'><b:if cond='data:post.numComments == 1'>1 <data:top.commentLabel/><b:else/><data:post.numComments/> <data:top.commentLabelPlural/></b:if></a>
</b:if>
</b:if>
</span>
</div>
</div>

<b:else/>
<b:include data='post' name='post'/>
</b:if>

<b:else/>
<b:include data='post' name='post'/>
</b:if>

O que eu fiz foi criar uma nova div (#first) e colocá-la sob duas condicionais, isFirstPost e homepageUrl, ou seja, ela só é válida para o primeiro post da home page. Dentro da div First inseri o título e o link para os comentários.
Fora das condições especificadas, os posts devem aparecer normalmente.

Para dar estilo a First, acrescente no CSS (acima da tag ]]></b:skin>):

#first{ /* aqui especificações para a div first */
margin: 0px 0px 10px 0px;
padding:0px;
float:left;
background: #111;
border: 1px solid #1b1b1b;
}

.first-body{/* Aqui especificações para o text do post */
margin: 0px;
padding: 10px 10px;
line-height:1.5em;
text-align:justify;
color:#ccc;
}

#first h3{ /* Aqui estilo para o título do post */
display:block;
margin: 10px auto;
width: 95%;
font-size: 19px;
padding: 0px 0px 4px 0px;
font-family: 'Palatino Linotype';
text-align:center;
line-height:1.4em;
color: #f5f5f5 }

#first h3 a, #first h3 a:visited{color:#fff} /* cor do título */
#first h3 a:hover{color:#fff} /* cor do título no estado hover */

.first-body img{ /* estilo para as imagens */
padding:10px;
background:#fff;
border: 1px solid #333}

#first .comment-link{ /* estilo para o link comentários */
float:right;
padding: 0px 5px 15px 0px}

Este é o procedimento básico e o resultado é este: Exemplo Básico.

Partindo do princípio básico, mostrarei como conseguir o efeito dos 3 exemplos que coloquei no início do post:

Exemplo 1

Obs: Para este exemplo trabalhei com as seguintes medidas:
#Outer-wrapper width:990px;
#main-wrapper width: 780px;
#sidebar-wrapper width: 200px;

No exemplo 1, apliquei o hack de resumo automático de postagens, menos no primeiro post. Para conseguir este efeito é preciso que primeiro você aplique o código para os resumos automáticos, que você encontra neste post do BloggerSphera. O arquivo JavaScript que deve ser hospedado, pode ser colocado diretamente no código do template da seguinte maneira:

<script type='text/javascript'>
//<![CDATA[
// <!-- Summary Posts with thumbnails for Blogger/Blogspot version 3.0 (C)2008 by Anhvo -->
// <!-- http://www.vietwebguide.com/ -->
// <!-- See the tutorial (in portuguese) to install on http://bloggersphera.blogspot.com -->
function removeHtmlTag(strx,chop){
if(strx.indexOf("<")!=-1)
{
var s = strx.split("<");
for(var i=0;i<s.length;i++){
if(s[i].indexOf(">")!=-1){
s[i] = s[i].substring(s[i].indexOf(">")+1,s[i].length);
}
}
strx = s.join("");
}
chop = (chop < strx.length-1) ? chop : strx.length-2;
while(strx.charAt(chop-1)!=' ' && strx.indexOf(' ',chop)!=-1) chop++;
strx = strx.substring(0,chop-1);
return strx+'...';
}

function createSummaryAndThumb(pID){
var div = document.getElementById(pID);
var imgtag = "";
var img = div.getElementsByTagName("img");
var summ = summary_noimg;
if(img.length>=1) {
if(thumbnail_mode == "float") {
imgtag = '<span style="float:left; padding:0px 10px 5px 0px;"><img src="'+img[0].src+'" width="'+img_thumb_width+'px" height="'+img_thumb_height+'px"/></span>';
summ = summary_img;
} else {
imgtag = '<div style="padding:5px" align="center"><img style="max-width:'+img_thumb_width+'px; max-height:'+img_thumb_height+'px;" src="'+img[0].src+'" /></div>';
summ = summary_img;
}
}

var summary = imgtag + '<div>' + removeHtmlTag(div.innerHTML,summ) + '</div>';
div.innerHTML = summary;
}
//]]>
</script>

Feita a instalação do hack de resumos automáticos, vá em Editar HTML, clique em Expandir Modelo de Widget e faça os passos para o Exemplo Básico e salve as modificações. Agora coloque os estilos para os resumos na página inicial, abaixo de ]]></b:skin>:

<b:if cond='data:blog.pageType != &quot;item&quot;'>
<style>

.post{
width:185px;
height:240px;
margin:0px 10px 23px 0px;
float:left;
overflow:hidden;
padding:10px;
line-height:1.4em;
font-size:13px;
color: $textcolor;
background: url(http://i31.tinypic.com/2llg4jr.jpg) no-repeat top left;}

.post h3{
margin:0px;
padding:0px 0 5px 0px;
line-height:1.4em;
color:$titlecolor;
letter-spacing:1px;
border:none;
font-size: 15px;
background: url(http://i25.tinypic.com/ra2lub.jpg) repeat-x bottom left }

.post h3 a, .post h3 a:visited, .post h3 strong{
display:block;
text-decoration:none;
color:$titlecolor;
font-weight:normal;
border:none; padding:0 0 0}

.date-header{display:none}

.post img{ border:none}

.post-body{padding: 0px; margin:0px;line-height:1.4em;}

#showlink{padding: 5px 10px 0 0; float:right;}

</style>
</b:if>

Não se esqueça de especificar um número baixo de caracteres para os resumos, ou o texto sairá do espaço. Neste exemplo eu usei a seguinte numeração:

<script type='text/javascript'>
var thumbnail_mode = &quot;float&quot; ;
summary_noimg = 220;
summary_img = 120;
img_thumb_height = 100;
img_thumb_width = 100;
</script>


Agora, acima da tag ]]></b:skin> coloque o estilo para o FirstPost, como no Exemplo Básico, mas com width:540px;

#first{
width: 540px;
margin: 0px 15px 10px 0px;
padding:0px;
float:left;
background: #111;
border: 1px solid #1b1b1b;
clear:both
}

Agora, para que o post-footer (tudo o que vai no rodapé do post, como nome do autor, marcadores, etc) não apareça nos resumos, procure o seguinte trecho:

<div class='post-footer'>

e acrescente logo abaixo dele:
<b:if cond='data:blog.pageType == &quot;item&quot;'>

e para fechar a condicional, procure por este trecho e acrescente o que está em vermelho:

<div class='post-footer-line post-footer-line-3'>    
........

</div>
</b:if>
</div>
</div>
Para que as datas só apareçam nas páginas internas e não interfiram com os resumos, busque por este trecho e acrescente o que está em vermelho:

<b:if cond='data:blog.pageType == &quot;item&quot;'>
<b:if cond='data:post.dateHeader'>
<h2 class='date-header'><data:post.dateHeader/></h2>
</b:if>
</b:if>

Neste Exemplo 1 os posts aparecerão resumidos na Home Page, na lista de Marcadores e na lista de Arquivos.


Para que este post não se estenda demais, amanhã explicarei como proceder para obter o efeito do Exemplo 2 e Exemplo 3.
Leia Mais

Customizando gadget de Lista de Blogs

Uma das opções de gadgets oferecidas pelo Blogger é a Lista de Blogs, que facilita muito a divulgação de blog amigos/recomendados/parceiros, na sidebar.

 
Você pode optar por mostrar a lista em ordem alfabética ou por blogs atualizados mais recentemente, o número de blogs a serem apresentados na lista e os detalhes que serão mostrados, como o ícone de cada blog, título do post mais recente, um pequeno resumo deste post, miniatura da imagem utilizada no último post e a data da atualização. Ao clicar em adicionar à lista, você deve escolher os blogs a serem apresentados, seja adicionando a url de cada um ou a lista dos blogs que acompanha ou mesmo incrições do Google Reader.


Tudo muito fácil, rápido e simples. No entanto o resultado pode não ser o esperado pois a formatação da lista  não acompanha as determinações para as listas da sidebar e as fontes podem se apresentar muito maiores do que o desejado.

Customizei uma lista de blogs, que pode ser vista aqui na sidebar e optei por não mostrar os ícones nem a miniatura da imagem do último post.

A lista está contida na div BlogList1_container e a classe é blog-list-container.

#BlogList1_container - todo o gadget Lista de Blogs
.blog-list-container ul - classe da lista de blogs
#BlogList1_blogs li - cada item da lista
#BlogList1_blogs li:hover - cada item da lista no estado hover
.blog-title a:link, .blog-title a:visited - título dos blogs
.blog-title a:hover - títulos dos blogs no estado hover
#BlogList1_container .blog-content - conteúdo de cada item da lista
.item-content - espaço ocupado por cada resumo apresentado
.item-title a:link, .item-title a:visited - título do último post apresentado
.item-title a:hover - título do último post no estado hover
.item-snippet - cada resumo apresentado
.item-time - data de cada post

O código CSS para meu modelo ficou assim (comentários em azul):

#BlogList1_container{
padding:4px; (espaço para os limites do gadget, possibilitando ver o background escolhido)
background: url(http://i29.tinypic.com/jpykqw.gif)  repeat; (imagem do background)
border: 1px dotted #111 (borda do gadget)}

.blog-list-container ul{margin: 10px;} (margem da lista)

#BlogList1_blogs li{
margin-bottom: 5px;
padding: 5px;
font-size: 12px;
background: #222;
border: 1px dotted #111} (estilo para cada item da lista)

#BlogList1_blogs li:hover{background: #333} (estilo para cada item da lista no estado hover)

.blog-title a:link, .blog-title a:visited{
display:block;
width: 95%;
padding-left:514px;
padding-top: 3px;
background: url(http://i26.tinypic.com/1z4byma.jpg)  no-repeat bottom left
font-size: 13px;
color: #8e8eff;
font-family:'Palatino Linotype'; } (estilo para os títulos dos blogs)

.blog-title a:hover{color: #ccc} (estilo para os títulos no estado hover)

#BlogList1_container .blog-content{
width: 95%;
background: #111;
padding: 5px;} (estilo para o espaço ocupado pelo conteúdo de cada item da lista)


.item-content{margin: 0px 0px;padding: 4px 13px;margin: 3px 0 0 }(estilo para o espaço ocupado pelo título do post e resumo)

.item-title a:link,.item-title a:visited{color:#b88df9; font-size:12px;}(estilo para os títulos dos posts)

.item-snippet{font-family: Verdana; text-transform:capitalize;line-height:0px;color: #ccc; }(estilo para os resumos)

.item-time {color: #dad8d8}(estilo para as datas)

 
resultado
Leia Mais