jnobuyukiのブログ

JavaScriptとR言語を中心に研究活動に役立つwebアプリケーション技術について考えていきます。twitter ID: @j_nobuyuki

スライド内容をmarkdownで記述するreveal.js

今までにいくつかreveal.jsを利用したプレゼンテーションスライドの作成について投稿してきました。何回かreveal.jsを使ってプレゼンテーションを作成した結果、以下のようなことを感じています。

  • スライドの作成をテキストエディタだけでできるのは便利。
  • 細かい位置の調整を数字で設定できるのは快適。
  • 便利で快適なはずなのにいつもスライド作成に時間がかかる。

自分なりになぜかを考えた結果、各スライドごとに同じようなHTMLタグを繰り返し書いていることに気づきました。テキストエディタでショートカットを作ったとしても、ちょっと面倒ですし、何よりテキストがどんどん長くなってしまいます。

markdown記法の利用

上記のような問題の解消策の一つがmarkdown記法の採用です。markdown記法によって多くのHTMLタグの繰り返しをなくすことができます。以下で、やり方を紹介します。
(今回の投稿はreveal.jsの作者であるHakim El Hattabのgithubを参考にしています。また、reveal.jsをmarkdownで記述す方法を紹介した日本語サイトとしてshu223さんのページ
reveal.js で Markdown
があります。あえて、今回の投稿をしたのは、reveal.jsの設定と主なmarkdown記法などの情報を一か所にまとめておくためです。)

reveal.js

initialize(2014/9/17追記)

reveal.jsを利用するために、bodyタグで囲んだ最後の部分でイニシャライズをします。通常、イニシャライズでは、コントロールをナビゲートする三角印を示すかどうかを決めたりします。markdownで記述する場合には、ここでmarked.jsとmarkdown.jsの設定をする必要があります。

以下のコードで設定可能です。ファイルの相対位置に注意して、必要に応じてパスを修正してください。

dependencies: [
{ src: 'reveal.js-2.6.1/plugin/markdown/marked.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
{ src: 'reveal.js-2.6.1/plugin/markdown/markdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } }
]
section

reveal.jsでは各スライドをsectionタグで囲んでいます。markdownで内容を記述する際にはsectionタグにdata-markdownという属性を与えます。そしてsectionの内側にscriptタグを作ります。markdownを利用したテキストはここに書きます。

<section data-markdown>
    <script>
##ページタイトル
ページ本文
   </script>

</section>

複数のページを一つのscript に書きこむ

上記のやり方で、markdown記法を利用できます。簡単ではありますが、sectionタグを何度も書くのは問題の解消という観点でいまひとつです。少し属性を追加することで、1つのsection内部に複数のページを設定できます。さきほどはsectionタグにdata-markdownという属性を追加しましたが、同じ場所にdata-separatorとdata-verticalという属性を追加します。さらに、それぞれの属性にセパレーターの標識を設定します。

<section data-markdown
         data-separator="^\n\n\n"  
         data-vertical="^\n\n" >
      <script>
##1ページ目のタイトル
1ページ目本文



##2ページ目タイトル
2ページ目本文
     </script>

</section>

markdown記法のまとめ

ここでプレゼンテーション作成に使えそうなmarkdown記法をまとめておきます。

  • 見出し:#の数で決まります。#ならH1,##ならH2,###ならH3です。
  • 斜体と強調:*(斜体の場合)や**(強調の場合)で囲みます。通常のmarkdownはアンダーバーで囲んでも強調されますが、今回の場合はアンダーバーによる強調は使えません。
  • 箇条書き: - や1.で始めます。
  • リンク:通常のmarkdownは[Link](http://www.example.jp)のように書きますが、今回の場合は単純にhttp://www.example.jpと書けばリンクになります。
  • 画像:![代替テキスト](パス/ファイル名)のように書きます。
  • 表:ハイフンとパイプを使います。ハイフンは、行間の罫線、パイプは列間の罫線です。