A Aldeia Numaboa ancestral ainda está disponível para visitação. É a versão mais antiga da Aldeia que eu não quis simplesmente descartar depois de mais de 10 milhões de pageviews. Como diz a Sirley, nossa cozinheira e filósofa de plantão: "Misericórdia, ai que dó!"

Se você tiver curiosidade, o endereço é numaboa.net.br.

Leia mais...

Informática Numaboa - Tutoriais e Programação

O que é o GeSHi e como usá-lo

Ter

7

Jul

2009


14:33

(5 votos, média 3.40 de 5) 


Muitos visitantes da Aldeia já fizeram contato perguntando como eu faço para que o código fonte de exemplos de programação fique colorido e destacado. Não são imagens de código, é apenas o GeSHi funcionando :smile:

Lembro que no início tive algumas dificuldades. Pra começar, eu nunca tinha ouvido falar no GeSHi e não sabia que ele fazia parte da instalação padrão do Joomla. Foi a curiosidade que fez com que eu "descobrisse" isto. Aqui vai a história.

Estava dando uma olhada nos plugins (na época em que ainda eram chamados de mambots) quando esbarrei num tal de Code Highlighter (GeSHi). Não tinha a mínima idéia da serventia deste plugin mas, mesmo assim, resolvi ativá-lo. Depois de ativado, dei uma olhada em algumas páginas do site e não vi nada de diferente. Se não mudou nada, pra que serve esta trapizonga? Como era difícil imaginar que o pessoal do Joomla tivesse criado e colocado na instalação padrão um plugin "morto", procurei no Google e achei o site do GeSHi. A partir daí as coisas começaram a fazer algum sentido.

GeSHi vem de Generic Sintax Highlighter. Totalmente escrito em PHP, este aplicativo faz exatamente o que seu nome indica: é um destacador de sintaxe genérico. Compare os exemplos abaixo:

<?php
   $db = new Database( $usuario, 'senha' );
   foreach( $REQUEST as $chave => $valor ) {
      unset( $REQUEST[$chave] );
   }
   ...
$valor ) { unset( $REQUEST[$chave] ); } ...

Como gosto mais do código fonte mostrado via GeSHi, passei a usá-lo no site, mas só depois de mais algumas pesquisas, por que não havia (e ainda não há muitas) explicações de como usar este script. Na verdade, o GeSHi não depende do Joomla (e vice-versa), é apenas um script PHP que, ao ser chamado, transforma um bloco de código fonte. Para ser incorporado ao Joomla, criou-se um plugin que, se estiver ativado, substitui o texto colocado entre as tags <pre> e </pre> com os devidos destaques de acordo com a linguagem de programação indicada. Por exemplo:

Título da página

Este é o texto num parágrafo...

Neste exemplo chamei o GeSHi com o parâmetro lang (linguagem) indicando HTML:

...

Na instalação padrão do Joomla, vários arquivos de linguagem são colocados na pasta /libraries/geshi/geshi. São eles:

  • css.php - para scripts de Cascading Style Sheet - CSS
  • diff.php - para scripts do aplicativo Diff
  • html4strict.php - para scripts HTML
  • ini.php - para arquivos de inicialização
  • javascript.php - para código Javascript
  • mysql.php - para comandos e queries SQL do MySQL
  • php.php - para código PHP
  • php-brief.php - para código PHP
  • sql.php - para comandos e queries SQL
  • xml.php - para código XML

A lista de linguagens disponíveis, além das citadas, é muito extensa e não pára de crescer. Você pode baixar as que precisa no site do GeSHi e, para utilizá-las, basta colocá-las na pasta citada.

Este é o mapa da mina para o GeSHi: habilitar o plugin e depois usar as tags <pre> indicando a linguagem de programação desejada. Se nenhuma for indicada, o padrão é usar o destaque da linguagem PHP.

Só mais uma coisa: o plugin aceita um segundo parâmetro além da linguagem - se é ou não para numerar as linhas de código.


Esta tag produz o seguinte resultado:

.negrito { font-weight: bold; font-color: #FF0000; }

Imagino que você tenha percebido que meus "blocos GeSHi" possuem um título. Se quiser saber como dar um trato no plugin para obter este efeito, leia o tutorial "GeSHi à moda da casa". Se quiser ficar no feijão com arroz, este tutorialzinho basta.

Grande abraço

vó Vicki :vovo:

mfx brokerинтернет магазин складлобановский класс харьковалександр лобановскийдумская нет одессаалександр лобановский broker mfx

Informações adicionais