web-dev-qa-db-ja.com

pandocを使用したreveal.jsのレベル1およびレベル2のスライド

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

これにより、期待される出力が生成されます。結果には、次のように配置された4つのスライドがあります。

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

ただし、「Head1」スライドにさらにコンテンツを追加したいと思います。これはreveal.jsで可能ですが、次のマークダウンはpandocによって正しく処理されません。

# Head1

Head text 1

## Below 1

text below 1

## Below 2

text below 2

# Head 2

スライドレベル は4つのスライドではなく2ではなく1になるため、2つ(レベル1のヘッダーごとに1つ)取得します。 pandocのオプションを使用して、スライドレベルを2に強制できます。

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

しかし、その後、最初の取り決めが再び得られます。「ヘッド1」の直下にあったコンテンツはすべて失われます。

何かご意見は?

20
January

Pandoc 2.7 (2019年3月)以降:

スライドショー形式の動作の変更:スライドレベル未満のヘッダーの下のコンテンツは無視されなくなりましたが、タイトルスライド(HTMLスライドショーの場合)またはタイトルスライドの後のスライド(ビーマーの場合)に含まれています。この変更により、各スタックの一番上のスライドにコンテンツを含む2D reveal.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

最初のスライドに含まれるreveal.jsスライドショーが生成されます。

<h1>Head1</h1>
<p>Head text 1</p>

Pandoc 2.7より前では、スライドをレベル2にネストする場合、レベル1のヘッダーの下にコンテンツを配置することはできません。これ 制限 は仕様によるものです。開発者のJohnMacFarlaneによると、 2015年6月

Pandocには、すべてのスライド形式で同じように機能するスライドにコンテンツを分割する方法(ユーザーガイドで説明)があるため、reveal.jsとbeamerに同じソースを使用できます。それが現在のシステムの動機となったのですが、すべてのフォーマットで均一に機能する限り、私はより良い方法を受け入れています。

16
approxiblue

更新

pandoc 2.7 現在:

スライドショー形式の動作の変更:スライドレベル未満のヘッダーの下のコンテンツは無視されなくなりましたが、タイトルスライド(HTMLスライドショーの場合)またはタイトルスライドの後のスライド(ビーマー用)。この変更により、各スタック(#4317、#5237)の一番上のスライドにコンテンツを含む2Dのreveal.jsスライドショーが可能になります。

(強調が追加されました)。私はまだそれをテストしていません。

前の答え

これは、現在のpandocvesionで機能します

# 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

私があなたを正しく理解していれば、次のことがうまくいくはずです:

# 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
0
Khalid Hussain