Слайды уровня 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