Compartiendo código en tu blog con SyntaxHighlighter Evolved

January 15th, 20102:59 pm @ JoSeK

4


Compartiendo código en tu blog con SyntaxHighlighter Evolved

Los que somos algo técnicos, solemos querer compartir algo de código de vez en cuando en nuestros blogs, y a veces resulta complicado compartirlo porque al meterlo dentro de nuestro blog, con los estilos existentes, acaba formándose una amalgama de contenido que no resulta claro a la hora de comprender lo que hace ese fragmento de código. Buscando una opción viable para compartir código de forma más efectiva, he dado con un plugin de WordPress: SyntaxHighlighter Evolved, que quizás algunos ya conocíais pero es nuevo para mi.

Ofrece muchas formas de visualización del código, ajustando el aspecto visual a cómo vemos el código en editores comunes, como Eclipse o Emacs, así como colorea la sintaxis del código en función del lenguaje. Os dejo algunos ejemplos de código para que veáis los resultados:

Código PHP, extraído de los ejemplos de uso de arrays en PHP:

<?php
function object_to_array($mixed) {
    if(is_object($mixed)) $mixed = (array) $mixed;
    if(is_array($mixed)) {
        $new = array();
        foreach($mixed as $key => $val) {
            $key = preg_replace("/^\\0(.*)\\0/","",$key);
            $new[$key] = object_to_array($val);
        }
    }
    else $new = $mixed;
    return $new;
}
?>

Código java, ejemplificado con una función de números fibonacci extraído de Java Examples in a Nutshell:

public class Fibonacci {
  public static void main(String[] args) {
    int current, prev = 1, prevprev = 0;// Initialize some variables
    for(int i = 0; i < 20; i++) {       // Loop exactly 20 times
      current = prev + prevprev;        // Next number is sum of previous two
      System.out.print(current + " ");  // Print it out
      prevprev = prev;                  // First previous becomes 2nd previous
      prev = current;                   // And current number becomes previous
    }
    System.out.println();               // Terminate the line, and flush output
  }
}

Ejemplo de programación de threads en Python, extraído de Python Threads:

import os
import re
import time
import sys

lifeline = re.compile(r"(\d) received")
report = ("No response","Partial Response","Alive")

print time.ctime()

for host in range(60,70):
   ip = "192.168.200."+str(host)
   pingaling = os.popen("ping -q -c2 "+ip,"r")
   print "Testing ",ip,
   sys.stdout.flush()
   while 1:
      line = pingaling.readline()
      if not line: break
      igot = re.findall(lifeline,line)
      if igot:
           print report[int(igot[0])]

print time.ctime()

P.D: Imagen de davestfu, licenciada bajo Creative Commons-NC-SA