Ok, para nuestra buena suerte existe vim en el cual podemos editar nuestros archivos fuente sin ningun problema y que además de todo ofrece una herramienta que traduce todo el código fuente que estemos editando en código html directamente con la opción ":TOhtml" la cual nos arroja un resultado mas que suficiente para poder trabajar.
Para nuestro ejemplo utilizaremos un código bastante sencillo en php como el que muestro a continuacion:
<?php
function saludar{
echo "Hola a todos!!!";
}
?>
Este código lo estamos editando en vim con el nombre de prueba1.php, cuando ya lo tengamos escrito escribiremos ":TOhtml" en la linea de comandos de vim y nos mostrara el siguiente codigo
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>~/temporal/prueba1.php.html</title>
<meta name="Generator" content="Vim/7.2">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body bgcolor="#ffffff" text="#000000"><font face="monospace">
<font color="#ff40ff"><?php</font><br>
<font color="#ff40ff">function</font> saludar<font color="#ff40ff">(){</font><br>
<font color="#ff40ff">echo</font> "<font color="#ff6060">Hola a todos!!!</font>";<br>
<font color="#ff40ff">}</font><br>
<font color="#ff40ff">?></font><br>
</font></body>
</html>
Ahora tienen que retirar algunas lineas osea las 8 o 9 primeras dependiendo es decir retiran las lineas hasta la etiqueta que diga al final:
<span style="font-family:monospace;">
</font></body></html>
Ahora lo siguiente es poner este código en una capa para que pueda contenerlo, la capa la pueden crear ustedes con las etiquetas <div> y asignándole un estilo a la misma pero yo ya les hice el trabajo, tome prestado la capa que genera el CodeSnippet y le hice algunas modificaciones para que puedan usarlo, el código de las capas es el siguiente, casi al final de ese código dejo una marca para que sepan donde pegar el código generado con el vim:
<div style="border-bottom:silver 1px solid;text-align:left;border-left:silver 1px solid;line-height:12pt;background-color:#ffffff;width:97.5%;font-family:'Courier New', courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;border-top:silver 1px solid;cursor:text;border-right:silver 1px solid;margin:20px 0 10px;padding:4px;" id="Wrapper"><div style="text-align:left;line-height:12pt;background-color:#ffffff;width:100%;font-family:'Courier New', courier, monospace;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0;" id="Snippet"><pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:'Courier New', courier, monospace;direction:ltr;color:black;font-size:12pt;overflow:visible;border-style:none;margin:0;padding:0;">AQUI INSERTEN EL CODIGOOOOO!!!!</pre></div></div>
El código final que obtenemos lo probé tanto en Blogger como en Wordpress y funcionan bastante bien además de que el vim tiene coloreado de código para la mayoría de los lenguajes conocidos.
Como prueba final les dejo este código de un programa simple opengl con c++.
/*
* File: main.cpp
* Author: yosel
*
* Created on 24 de noviembre de 2009, 10:49 PM
*/
#ifdef WIN32
#include <windows.h>
#endif
#ifdef __APPLE__
#include <OpenGL/gl.h>
#include <GLUT/glut.h>
#else
#include <GL/gl.h>
#include <GL/glut.h>
#endif
#include <unistd.h>
#include "sphere.h"
float * pos;
TSphere * sphere = NULL;
void initgl(){
glEnable(GL_DEPTH_TEST);
glClearColor(0.0,0.0,0.0,0.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(60.0,1.0,1.0,100.0);
// Proyección perspectiva. El ángulo de visualización es de 60 grados, la razón ancho/alto es 1 (son inguales), la distanciamínima es z=1.0, y la distancia máxima es z=100.0
sphere = new TSphere(5,0.1);
glMatrixMode(GL_MODELVIEW);
gluLookAt(3,3,14,0,0,0,0,1,0);
}
void display(void){
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glColor3f(1.0,1.0,1.0);
glutWireCube(10);
glPushMatrix();
glColor3f(0.0,0.0,1.0);
pos = sphere->getPosv();
glTranslatef(pos[0],pos[1],pos[2]);
glutSolidSphere(1,10,10);
glPopMatrix();
glFlush();
}
void idle(void){
sphere->test();
usleep(33);
glutPostRedisplay();
}
int main(int argc, char ** argv){
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA | GLUT_DEPTH);
glutInitWindowPosition(20,20);
glutInitWindowSize(500,500);
glutCreateWindow(argv[0]);
initgl();
glutDisplayFunc(display);
glutIdleFunc(idle);
glutMainLoop();
return 0;
}
PD: Olvide comentarles que todo este post lo escribi siguiendo el metodo que estamos comentando
Saludos y hasta la proxima