Buena forma de gestionar código en presentaciones para taller de programación.

Buena forma de gestionar código en presentaciones para taller de programación.

Actualmente estoy creando un taller de programación (en realidad se trata de OOD, pero eso no debería importar mucho).

Tengo principalmente dos tipos de recursos:

  • diapositivas (HTML/revelar.js)
  • proyectos de muestra (Java)

En muchos lugares, el código de los proyectos de muestra debería aparecer en la presentación.

¿Cuál es una buena manera de lograrlo?

Mis requisitos son

  • una manera fácil de especificar un fragmento de código que se usará en una presentación y el lugar donde debe aparecer

  • Los cambios en el código se reflejan en la presentación automáticamente (ejecutar una herramienta de compilación está bien, cortar y pegar cosas manualmente no).

  • Los enlaces rotos (como intentar incrustar un fragmento de código que no existe o marcar un fragmento que no se utiliza en la presentación deberían crear una advertencia).

  • Puntos de bonificación por tener vínculos entre el código y la presentación

Respuesta1

asciidoctorhttp://asciidoctor.org/podría resolver la mayoría de sus requisitos:

  • use ASCII simple para escribir el contenido
  • incluir fragmentos de código de archivos de código fuente reales
  • Los enlaces rotos crearán una advertencia al crear la salida.
  • presentaciones creadas en reveló.js y deck.js

Lo encontrarás enhttps://github.com/asciidoctor/asciidoctor-gradle-examplesalgunos ejemplos de cómo usar Asciidoctor con gradle (pero otras herramientas de compilación también funcionan).

Puedeexplore el resultado de muestra aquíy encontrará una presentación renderizada con deck.js y reveló.js (busque los subcapítulos 3.4 y 9.4 etiquetados como "Salidas")

Otra fuente de inspiración podría ser el conjunto de barajas de Dan Allan:https://github.com/mojavelinux/decks

También solicitó enlaces desde el código a la presentación. Lo mejor que Asciidoctor puede ofrecerle, AFAIK, es que la etiqueta que utilizó para marcar su fragmento de código en el código ( // tag::XXX[]) también estará presente en la fuente de su presentación ( include::Class.java[tags=XXX]).

información relacionada