マークダウンだけでreveal.jsのプレゼンをつくることができるreveal-ck
実は本来の目的はreveal.jsをElectronに埋め込んだものをつくってみようかなと思って調べていたのですが、もっと面白そうなものを見つけたのでそちらを使ってみました。
ちなみにreveal.jsはマークダウンをhtml内に記述すると、かっこよさげなスライドをつくることができるというものです。
しかし、htmlの中にマークダウンを書かないといけなくなるので「ちょっとなー」と思って無意識に避けていました。 ところが、別個のマークダウンファイルを作ればreveal.jsの一式にしてくれるものがあるのです。
reveal.js + markdownでスライドを作る時は reveal-ck が便利だった
http://sue445.hatenablog.com/entry/2015/10/03/201241
これはgemですので、rubyがあればなんとかなります。
今回はMacに導入しました。rubyはrbenvで入れた2.2.3です。
こいつもnokogiriを利用するので、普通にgem installするとビルドで失敗します。 毎回同じところで引っかかってしまうのって…
Homebrewなんかでlibxml2を入れておいて、あとは「--use-system-libraries」をつけてインストールすればいいのです。
インストールできたら、スライドをマークダウンで書きます。 横方向のナビゲーションにするなら「---」を、縦方向のナビゲーションにするなら「***」を入れます。
どうもデフォルトでは実行したフォルダ内にある「slides.md」から「slides」フォルダ内へ一式を吐き出すようです。
$ reveal-ck generate Generating slides for 'slides.md'.. error: undefined method `auto_link' for Rinku:Module
あれ!?なんかエラーが… 調べてもイマイチよくわからなかったのですが、イシューとしてあがってました。
error: undefined method `auto_link' for Rinku:Module when running reveal-ck generate #61
https://github.com/jedcn/reveal-ck/issues/61
クローズしてないみたいですが、bundle exec使ったらよいということで半信半疑、budleを利用することにしました。
とはいっても、またもやnokogiriがビルドに失敗するのでちょっとだけ設定をします。
「Gemfile」にreveal-ckを書いておきます。
source "https://rubygems.org" gem "reveal-ck”
そしたらnokogiri向けの設定をしてインストールします。
bundle config build.nokogiri —use-system-libraries bundle install
bundle exec reveal-ck generate
これでslidesフォルダへ一式が出力されています。
また、冒頭でご紹介しましたブログにありますが「config.yml」というYAMLでタイトルや著者、reveal.jsのテーマを指定することもできます。
title: “テストスライド” author: “m0t0k1x2” theme: solarized
THEME
http://lab.hakim.se/reveal-js/#/themes
テーマ 見た目 black(defalt) white league sky beige simple serif blood night moon solarized
このツール、便利でして「reveal-ck serve」とするとビルトインサーバが「localhost:10000」で起動してくるのでブラウザで確認することができます。 また、マークダウンを変更すると検知してスライドをリビルド、リロードされます。
bundle exec使えばエラーなく利用できますが、以下のスクリプトを書いておいてrubyで実行してもうまくいきました。
別にブラウザでファイルを直接開いて確認するからどっちでもいいよ、という方はこれでもいいかもしれません。
gem install reveal-ck -- --use-system-libraries
そしたらあとはスクリプトを以下のように書いて作っておきます。
require ‘rinku' require 'reveal-ck’ RevealCK::Commands::Generate.new(user_dir: Dir.pwd, gem_dir: RevealCK.path, output_dir: 'slides', slides_file:'slides.md').run puts 'complete.'
どうもrequire ‘rinku’がないとこのスクリプトも失敗しますね。 なんなんでしょう。