使用pandoc

时间:2015-06-22 19:33:00

标签: pandoc reveal.js

我在markdown中生成一个幻灯片,通过pandoc转换为html(带pandoc -s -S -t revealjs test.md -o test.html)。

reveal.js框架允许2D设置:幻灯片子集内的幻灯片分组"垂直",以及水平滑动子集的分组。降价时,可以这样实现:

# Head1

## Below 1

text below 1

## Below 2

text below 2

# Head 2

这会生成预期的输出。结果有四张幻灯片,排列如下:

[  Head 1 ] [ Head 2 ]
[ Below 1 ]
[ Below 2 ]

但是,我想在" Head 1"滑动。这在reveal.js中是可行的,但pandoc:

未正确处理以下markdown
# Head1

Head text 1

## Below 1

text below 1

## Below 2

text below 2

# Head 2

因为slide level变为1而不是2,而不是4张幻灯片,我得到两个(每个1级标题一个)。我可以使用pandoc选项强制滑动级别为2:

pandoc -s -S -t revealjs test.md -o test.html --slide-level 2

然后我再次得到第一个安排 - 放弃直接在" Head 1"。

之下的任何内容。

有什么想法吗?

4 个答案:

答案 0 :(得分:13)

如果要将幻灯片嵌套到级别2,则无法将内容置于级别1标题下。这个limitation是设计的。根据开发人员John MacFarlane的说法,as of June 2015

  

Pandoc有一种将内容刻录到幻灯片中的方法(在“用户指南”中描述),对所有幻灯片格式都有相同的工作方式,因此您可以使用相同的来源进行reveal.js和beamer。这就是推动现有系统的动力,尽管我可以采用更好的方式,只要它能统一适用于所有格式。

你需要一个带补丁的英雄。

答案 1 :(得分:2)

更新

截至pandoc 2.7

  

幻灯片放映格式行为更改:标题下小于幻灯片级别的内容不再被忽略,但包含在标题幻灯片中(对于HTML幻灯片放映)或在标题幻灯片后的幻灯片中(用于投影仪)。此更改使得2D reveal.js幻灯片可以在每个堆栈的顶部幻灯片中显示内容(#4317,#5237)。

(重点补充)。我还没有测试过它。

以前的回答

这适用于我当前的pandoc vesion

# 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's 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's 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

答案 2 :(得分:0)

如果我理解正确,以下应该可以解决问题:

# 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

答案 3 :(得分:-1)

此处提供了一种解决方法(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