Слайды уровня 1 и уровня 2 в раскрытии. Js с использованием pandoc
Я создаю слайд-шоу в уценке, чтобы преобразовать Pandoc в HTML (с pandoc -s -S -t revealjs test.md -o test.html
).
Инфраструктура reve.js позволяет выполнить 2D-настройку: группировать слайды в поднаборах слайдов "по вертикали" и группировать подмножества слайдов по горизонтали. В уценке это может быть достигнуто следующим образом:
# Head1
## Below 1
text below 1
## Below 2
text below 2
# Head 2
Это создает ожидаемый результат. Результат состоит из четырех слайдов, расположенных следующим образом:
[ Head 1 ] [ Head 2 ]
[ Below 1 ]
[ Below 2 ]
Тем не менее, я хотел бы получить дополнительный контент на слайде "Глава 1". Это возможно в reve.js, но pandoc неправильно обрабатывает следующую уценку:
# Head1
Head text 1
## Below 1
text below 1
## Below 2
text below 2
# Head 2
Поскольку уровень слайдов становится 1, а не 2, вместо четырех слайдов я получаю два (по одному на каждый заголовок уровня 1). Я могу сделать уровень слайдов равным 2, используя опцию pandoc:
pandoc -s -S -t revealjs test.md -o test.html --slide-level 2
но потом я снова получаю первое соглашение - теряю любой контент, который был непосредственно под заголовком "Глава 1".
есть идеи?
Ответы
Ответ 1
С Pandoc 2.7 (март 2019 г.):
Изменение поведения форматов слайд-шоу: содержимое под заголовками, меньшими, чем уровень слайда, больше не игнорируется, а включается в слайд с заголовком (для слайд-шоу в формате HTML) или в слайд после слайда с заголовком (для проектора). Это изменение делает возможным показ двухмерных слайд-шоу .js с содержанием на верхнем слайде в каждом стеке (# 4317, # 5237).
Учитывая этот входной файл test.md:
# Head1
Head text 1
## Below 1
text below 1
## Below 2
text below 2
# Head 2
Продолжительность:
pandoc -s -t revealjs test.md -o test.html --slide-level 2
создаст слайд-шоу show.js, в котором содержится первый слайд:
<h1>Head1</h1>
<p>Head text 1</p>
До Pandoc 2.7, если вы хотите вложить слайды на уровень 2, вы не можете поместить контент под заголовок уровня 1. Это ограничение было разработано. По словам разработчика Джона Макфарлейна, в июне 2015 года:
В Pandoc есть метод разделения контента на слайды (описанный в Руководстве пользователя), который работает одинаково для всех форматов слайдов, поэтому вы можете использовать один и тот же источник для reve.js и beamer. Это то, что мотивировало нынешнюю систему, хотя я открыт для лучшего пути, если она работает равномерно со всеми форматами.
Ответ 2
Обновить
Начиная с версии 2.7:
Изменение поведения форматов слайд-шоу: содержимое под заголовками, меньшими, чем уровень слайда, больше не игнорируется, а включается в слайд с заголовком (для слайд-шоу в формате HTML) или в слайд после слайда с заголовком (для проектора). Это изменение делает возможным показ двухмерных слайд-шоу .js с содержимым на верхнем слайде в каждом стеке (# 4317, # 5237).
(выделение добавлено). Я еще не проверял это все же.
Предыдущий ответ
Это работает для меня с текущей версией Пандока
# That presentation
## dummy slide
<!--javascript to remove dummy slide-->
<script>
document.getElementById("dummy-slide").remove();
</script>
<!--end dummy slide-->
</section>
<section>
<section class="titleslide slide level1">
<h1>Head 1<h1>
Head text 1
<!-- dummy-slide creates it section end tag -->
<!-- </section> -->
## Below 1
text below 1
## Below 2
text below 2
</section>
<!-- need extra end tag before next section -->
</section>
<section class="titleslide slide level1">
<h1>Head 2<h1>
Head text 1
</section>
# Head 3
Это как бы удаляет идею уценки и может не работать с некоторыми предыдущими или более поздними версиями Pandoc. Я все же нашел это полезным при работе с Rmarkdown. Вышеуказанное производится с
---
title: "That presentation"
output:
revealjs::revealjs_presentation:
keep_md: TRUE
---
## dummy slide
<!--javascript to remove dummy slide-->
<script>
document.getElementById("dummy-slide").remove();
</script>
<!--end dummy slide-->
</section>
<section>
<section class="titleslide slide level1">
<h1>Head 1<h1>
Head text 1
<!-- dummy-slide creates it section end tag -->
<!-- </section> -->
## Below 1
text below 1
## Below 2
text below 2
</section>
<!-- need extra end tag before next section -->
</section>
<section class="titleslide slide level1">
<h1>Head 2<h1>
Head text 1
</section>
# Head 3
Ответ 3
Если вы правильно поняли, следующее должно сделать трюк:
# Head1
---
Head text 1
## Below 1
text below 1
## Below 2
text below 2
# Head 2
Скомпилируйте первую команду, которую вы упомянули:
pandoc -s -S -t revealjs test.md -o test.html
Ответ 4
Существует обходной путь (https://github.com/rstudio/revealjs/issues/40), который предлагает следующее (работает нормально для меня):
---
title : Title
date : Dec 22, 2016
output :
revealjs::revealjs_presentation
---
<section class="titleslide level1">
<h1>TOP SLIDE</h1>
Some blabla
## SUBSLIDE
Some sub-blabla
</section>
# Next section slide
## Next subslide
Text as per standard layout