Fecha actual Lun Ago 19, 2019 12:38 am

SourceDoc_WIDE: Control de Documentación y Generación de Código Usando Tecnología Web y de Compilación

Registro de aplicaciones que logremos imaginar, e incluso especificaciones para lograrlo.


Usuarios leyendo este tema: Ninguno

SourceDoc_WIDE: Control de Documentación y Generación de Código Usando Tecnología Web y de Compilación

Notapor ~ » Lun Mar 11, 2013 1:40 pm

La idea de este proyecto es la capacidad de unir tanto el código como la documentación en formato HTML, y aún así ser capaces de localizar snippets, pequeñas secciones de código inline y plantillas de código (que contienen código genérico para un caso o programa particular y que hace referencia a snippets y código inline para incluirlas/transformarlas en esas posiciones).

De esta forma, toda nuestra documentación explicará y mostrará código de una forma absolutamente práctica y aplicable directamente, porque el código que explique será precisamente el código que es y será usado en programas, propios o ajenos.

También necesitamos un buscador de snippets, capaz de encontrarlas por categoría, por lenguaje, por etiquetas, y por texto completo o nombres de variables/funciones/identificadores/instrucciones como código fuente, o líneas de código, etc...

Algo como un buscador de código fuente, pero mucho más práctico, y asociado con un documento HTML, del que se pueda extraer fácilmente las porciones de código.

Código: Seleccionar todo
var web_domain="devel.no-ip.org";

var asm;

var dest_dir="C:/";

var vga_reg_write_code_object=SourceDoc.getCodeFromAlias("PC_vga_regs", "controller_register_write_loop.html", "vga_regs_writes" web_domain);

function compile0000()
{
 asm=SourceDoc.CompileSnippetCode(vga_reg_write_code_object, "asm_x86_PC", dest_dir);
}
Imagen
IP for hosts file (email udocproject@yahoo.com to get updates if website becomes offline):
Código: Seleccionar todo
190.150.9.244 archefire.org



See what I'm doing in real time:
Main Desktop 1
Main Desktop 2
Avatar de Usuario
~
Site Admin
 
Mensajes: 2958
Registrado: Sab Nov 10, 2012 1:04 pm

Re: SourceDoc_WIDE: Control de Documentación y Generación de Código Usando Tecnología Web y de Compilación

Notapor ~ » Mar Mar 12, 2013 4:20 pm

Ya que necesitamos reusar estándares web para hacer todo este proceso más fácil, usaremos primero el DOCTYPE de HTML5 en nuestros documentos que contienen código fuente extraíble:

Código: Seleccionar todo
<!DOCTYPE html>




Una vez que hemos hecho esto, podemos usar propiedades personalizadas para nuestros elementos <pre></pre> que son los que contienen el código extraíble.

Necesitamos una propiedad id para darle un nombre único a nuestro snippet, respecto a ese documento HTML.

Ahora necesitamos usar las propiedades personalizadas data-SourceDoc_Type y data-SourceDoc_Language para indicar qué tipo de fragmento de código fuente está contenido ahí (código breve inline que es repetitivo como el de un macro o simple inline; un snippet total o parcialmente autónomo; o un código pensado para ser una plantilla que referencia a otros snippets).
Imagen
IP for hosts file (email udocproject@yahoo.com to get updates if website becomes offline):
Código: Seleccionar todo
190.150.9.244 archefire.org



See what I'm doing in real time:
Main Desktop 1
Main Desktop 2
Avatar de Usuario
~
Site Admin
 
Mensajes: 2958
Registrado: Sab Nov 10, 2012 1:04 pm

Re: SourceDoc_WIDE: Control de Documentación y Generación de Código Usando Tecnología Web y de Compilación

Notapor ~ » Mar Mar 12, 2013 5:53 pm

Así que si tenemos algo como lo siguiente en un documento HTML de un SourceDoc:

Código: Seleccionar todo
<pre id="crtc_protect_unprotect" data-SourceDoc_Type="snippet" data-SourceDoc_Language="RealC_x86_PC">
///...Código aquí...
</pre>




Podemos usar JavaScript para acceder los valores de las propiedades personalizadas, así (nótese especialmente el uso del método document.getElementById("cualquier_ID").getAttribute("data-Atributo_Personalizado")):

Código: Seleccionar todo
<script>
alert(document.getElementById("crtc_protect_unprotect").getAttribute("data-SourceDoc_Type"));

alert(document.getElementById("crtc_protect_unprotect").getAttribute("data-SourceDoc_Language"));
</script>








Lo que necesitamos hacer ahora es determinar cómo, en qué lenguaje definir las plantillas. De forma nativa, SourceDoc_WIDE sería una extensión de Firefox (es decir JavaScript y HTML/HTML5, además de las APIs de extensiones).

Es decir que la plantilla de un programa debería estar directamente escrito en su lenguaje de programación de elección, y debería contener líneas que sea posible encontrar mediante expresiones regulares, y que sean absolutamente únicas en todo el programa, para que estas sean capaces de indicar qué ruta local o web, qué SourceDoc, y qué código inline/snippet/plantilla insertar ahí, además de transformaciones de código deseadas (por ejemplo de RealC o RealASM a Ensamblador de una plataforma y arquitectura determinada, o de RealC a RealASM para x86, etc.).

________
Google: add html custom properties
StackOverflow: Can I add custom attribute to html tag?
Google: access custom data prefixed html from javascript property
HTML5 Doctor: HTML5 Custom Data Attributes (data-*)
Google: html5 doctype
John Resig - HTML5 DOCTYPE
Imagen
IP for hosts file (email udocproject@yahoo.com to get updates if website becomes offline):
Código: Seleccionar todo
190.150.9.244 archefire.org



See what I'm doing in real time:
Main Desktop 1
Main Desktop 2
Avatar de Usuario
~
Site Admin
 
Mensajes: 2958
Registrado: Sab Nov 10, 2012 1:04 pm


Volver a Ideas de Proyectos

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 5 invitados


cron