Colorindo códigos no blog
Publicado em 30/11/2007 11:16
Categorias:
Já faz tempo que estava querendo colocar meus códigos coloridos no blog, mas talvez por um pouco de preguiça de procurar, não tinha feito ainda.
Foi a uns dois dias, antes de fazer o post anterior, que resolvi tomar vergonha e colocar isso de uma vez por todas no blog.
Bom naquele momento comecei a procurar a solução e acabei achando várias, dentre elas SyntaxHighlighter, GeSHi e SHJS.
Basicamente todas funcionam da seguinte maneira, você coloca o seu código em uma tag pre ou textarea, inclui o css e o javascript no cabeçalho da sua página, e eles se encarregam de converter seu código na aparência devida.
Todos funcionam, decidi usar o SyntaxHighlighter, mas como sou um cara chato, eu estava achando demais todo aquele trabalho, um monte de javascripts carregando minha página, um css enorme só para aquilo e o código não estava tão melhor do que antes, eu estava definitivamente "matando formiga com bazuca".
Comentando isso com o TaQ(Ele, sempre ele!), ele me disse que teve o mesmo problema e me mostrou a solução com nosso querido vim, nem imaginava do que o vim era capaz nesse assunto.
O vim converte qualquer texto(Entenda, código de qualquer linguagem) em HTML e de quebra com CSS separado, usando o tema corrente no editor, sem plugin algum é nativo do editor(pelo menos na versão 7 pra cima).
Agora me pergunte: "Como eu faço essa maravilha?"
Simples, seus problemas acabaram! (sempre quis dizer isso!)
Selecione o tema que deseja, configure para ele gerar o css com este comando :let html_use_css=1, e após isso é só usar o :TOhtml, pronto ele cria um outro arquivo já em formato HTML protinho pra ser colocado onde você desejar.
Observação, ele praticamente gera um printscreen do seu vim, portanto se estiver usando números de linhas e outras coisas no seu tema, ele vai colocar tudo isso no HTML(eu achei ótimo).
Segue um exemplo de código pra vocês verem como fica:
1 class Phone 2 3 attr_reader :country_code, :area_code, :number 4 5 def initialize(country_code, area_code, number) 6 @country_code, @area_code, @number = 7 country_code, area_code, number 8 end 9 10 def ==(value) 11 @country_code == value.country_code && 12 @area_code == value.area_code && 13 @number == value.number 14 end 15 16 def to_s 17 "+#{@country_code} #{@area_code} #{@number}" 18 end 19 end
Pronto, agora além de ver o código mais legível, vocês ainda veêm exatamente da maneira que eu uso meu vim no dia a dia, alias, pra quem gostou, meu tema é o torte, boa diversão.
Segue o link do post do Taq: www.eustaquiorangel.com/blog/show/394
Abraço, T+
Alfredo Ribeiro




