Boa maneira de gerenciar código em apresentações para workshop de programação

Boa maneira de gerenciar código em apresentações para workshop de programação

Atualmente estou criando um workshop de programação (na verdade é sobre OOD, mas isso não deve importar muito).

Tenho principalmente dois tipos de recursos:

  • slides (HTML/revel.js)
  • projetos de amostra (Java)

Em muitos lugares, o código dos projetos de exemplo deve aparecer na apresentação.

Qual é uma boa maneira de conseguir isso?

Meus requisitos são

  • uma maneira fácil de especificar um trecho de código a ser usado em uma apresentação e o local onde ele deve aparecer

  • alterações no código são refletidas na apresentação automaticamente (executar uma ferramenta de construção está ok, recortar e colar manualmente não é)

  • links quebrados (como tentar incorporar um trecho de código que não existe ou marcar um trecho que não é usado na apresentação deve criar um aviso

  • Pontos de bônus por ter links entre código e apresentação

Responder1

Asciidoctorhttp://asciidoctor.org/pode resolver a maioria dos seus requisitos:

  • use ASCII simples para escrever o conteúdo
  • inclua trechos de código de arquivos de código-fonte reais
  • links quebrados criarão um aviso ao construir a saída
  • criei apresentações em revelado.js e deck.js

Você encontrará emhttps://github.com/asciidoctor/asciidoctor-gradle-examplesalguns exemplos de como usar o Asciidoctor com gradle (mas outras ferramentas de construção também funcionam).

Você podenavegue pelo exemplo de saída aquie você encontrará uma apresentação renderizada com deck.js e revelado.js (procure os subcapítulos 3.4 e 9.4 rotulados como "Saídas")

Outra fonte de inspiração pode ser o conjunto de decks de Dan Allan:https://github.com/mojavelinux/decks

Você também solicitou links do código para a apresentação. O melhor que o Asciidoctor pode fornecer ao AFAIK é que a tag que você usou para marcar seu trecho de código no código ( // tag::XXX[]) também estará presente no código-fonte da sua apresentação ( include::Class.java[tags=XXX]).

informação relacionada