
В настоящее время я создаю семинар по программированию (на самом деле он посвящен ООП, но это не должно иметь большого значения).
У меня в основном два вида ресурсов:
- слайды (HTML / reveal.js)
- примеры проектов (Java)
Во многих местах презентации должен присутствовать код из примеров проектов.
Каков хороший способ этого добиться?
Мои требования:
простой способ указать фрагмент кода для использования в презентации и место, где он должен отображаться
изменения в коде автоматически отражаются в презентации (запуск инструмента сборки допустим, ручное копирование и вставка — нет)
Неработающие ссылки (например, попытка встроить несуществующий фрагмент кода или пометка фрагмента, который не используется в презентации) должны создавать предупреждение
Бонусные баллы за наличие связей между кодом и презентацией
решение1
Ассиидокторhttp://asciidoctor.org/может удовлетворить большинство ваших требований:
- используйте простой ASCII для записи содержимого
- включить фрагменты кода из реальных файлов исходного кода
- неработающие ссылки приведут к появлению предупреждения при формировании выходных данных
- создал презентации в reveal.js и deck.js
Вы найдете наhttps://github.com/asciidoctor/asciidoctor-gradle-examplesнесколько примеров использования Asciidoctor с Gradle (но другие инструменты сборки тоже работают).
Ты можешьпросмотрите пример вывода здесьи вы найдете презентацию, созданную с помощью deck.js и reveal.js (ищите подразделы 3.4 и 9.4 с надписью «Выходные данные»)
Еще одним источником вдохновения может стать набор колод Дэна Аллана:https://github.com/mojavelinux/decks
Вы также запросили ссылки из кода обратно на презентацию. Лучшее, что может предоставить вам Asciidoctor, насколько мне известно, это то, что тег, который вы использовали для обозначения фрагмента кода в коде ( // tag::XXX[]
), также будет присутствовать в исходном коде вашей презентации ( include::Class.java[tags=XXX]
)