Creación de un editor de documentos WYSIWYG | Programación en Lenguaje Natural

Cuando mi hijo mayor y yo terminamos de escribir nuestro compilador en inglés sencillo, decidimos probar su utilidad agregando un editor de documentos de lo que ves es lo que obtienes que luego podríamos usar para documentar nuestro sistema. ¡Dos pájaros con una piedra!

Vista de documento

Llamamos a esta instalación el Escritor. Así es como se ve nuestro manual de instrucciones cuando lo abre en Writer:

A esto lo llamamos Vista de documento: una línea por página. En esta vista se pueden seleccionar, copiar, cortar, pegar, duplicar e imprimir páginas enteras (y grupos de páginas, contiguas o no). También se pueden guardar en formato Adobe PDF para que las personas que no tengan Writer puedan leerlos.

Vista de pagina

Cuando abre una página, la ve exactamente como aparecerá cuando se imprima (o se guarde como una página PDF), aunque con líneas de cuadrícula azul cielo para ayudar en el diseño de buen gusto. Así aparece en pantalla la página 8 de nuestro manual de instrucciones:

En esta vista, se pueden ampliar, reducir, rotar y corregir la ortografía de páginas enteras. Y se pueden agregar, eliminar, mover, cambiar de tamaño, colorear, voltear, reflejar, rotar, copiar, cortar, pegar, duplicar, agrupar, etc. varias «formas» de texto y gráficos. Las teclas Inicio, Fin, Re Pág y Av Pág se puede utilizar para hojear cómodamente las páginas, sin volver a la vista de documento.

Páginas externalizadas

Los documentos (y partes de documentos) se pueden guardar, como se mencionó anteriormente, como archivos PDF. Pero el formato nativo para el almacenamiento permanente es mucho más simple y es solo texto. Considere, por ejemplo, el documento a continuación, que tiene solo una página con cuatro formas: una elipse rosa, un triángulo verde, un cuadrado azul y un cuadro de texto con «ABC» en él:

Si usa nuestro comando «Abrir como texto» (o cualquier otro editor de texto) para abrir este documento, esto es lo que verá:

ream cal-3024
  page 15840 12240 1 1440
    ellipse 0 0 0 0 1000 875 1440 1440 2880 2880
    polygon 0 0 0 1500 1000 875 4 4320 1440 5760 2880 4320 2880 4320 1440
    rectangle 0 0 0 2100 1000 875 7200 1440 8640 2880 0
    text 0 0 0 -1 0 0 10080 1440 14400 2880 0 "title" "osmosian" 1440 "center" 0 0 0 yes
       "ABC"
    end
  end
end

Una entrada para todo el documento, una para cada página y una para cada forma de la página. ¡Y ni un solo «<» a la vista!

Sería demasiado pegar aquí las 4.000 oraciones en lenguaje sencillo que definen a todo el escritor. Están incluidos en el código fuente que viene con nuestro sistema www.osmosian.com/cal-4700.zip . Por ahora, conformémonos con una rutina de muestra:

To group any selected shapes on a page:
If the page is nil, exit.
Create a group shape.
Put "group" into the group shape's kind.
Put the page's scale into the group shape's scale.
Move the page's shapes to some original shapes.
Loop.
Put the original shapes' first into a shape.
If the shape is nil, break.
Remove the shape from the original shapes.
If the shape is not selected, append the shape to the page's shapes; repeat.
Deselect the shape.
Append the shape to the group shape's shapes.
Repeat.  
Append the group shape to the page's shapes.
Select the group shape.
Adjust the group shape.

Las formas en las páginas se dibujan al revés, por lo que las formas recién agrupadas aparecerán encima de las otras formas en la página.

No un juguete

Tenga en cuenta que esta instalación no es un «juguete». Lo usamos, como mencioné anteriormente, para escribir la documentación de nuestro sistema. Y desde entonces se ha utilizado para producir un curso ilustrado de 800 páginas para “enseñar a su hijo a leer” que puede ver aquí: www.rhymingreader.com . Sin mencionar varios otros libros para niños, numerosos manuales de capacitación y materiales de presentación de todo tipo, grandes y pequeños. Esta es una de mis páginas favoritas de todos los tiempos, desarrollada por un maestro de escuela primaria en un intento de resolver una vieja pregunta:

QED.

Publicación traducida automáticamente

Artículo escrito por Gerry.Rzeppa y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *