3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Yet Another Org-mode Presentation Script

Last updated at Posted at 2013-11-24

紹介

org-mode からプレゼンを出力する手段は過去にもいろいろとありました。

  • org-html5presentation をつかう
  • ox-latex から beamer, ないし ox-beamer
  • ox-html から org-info を使う

etc, etc.

ただ、html5presentationは、環境依存かもしれませんがスライドがズレる。
beamerは latex style をいじるのがめんどうくさい(cssよりは面倒)

org-info はカスタマイズの自由度が少ない。
いえ、やろうと思えば出来るんですが、癖があり、また機能が足りない。
癖というのは、スライドの遷移に innerHTML のコピペをつかっているので、
javascriptで登録したハンドラなどが消えてしまう点です。
機能面は、たとえば任意の章立てへのジャンプはありますが、
普通のプレゼンにはある「リストの折りたたみ」ができない点など。

あと、org-infoで一番むかつくのはあれですね、ソースが異様に長いところですね。
https://github.com/SebastianRose/org-info-js
なんなの2000行って。 抽象度高いクラスタの人間を殺す気か(怒)(違)
まあ、jqueryなど外部ライブラリに依存していないので、長くなるのは仕方ないのかもしれませんが。
しかし、これでは誰も手を付けられませんね。

まあそういうことで、いままでは org-info 付きで生成されたhtmlを
うまくスタイルシートでごまかしてプレゼンをやってきたのですが、
ついに我慢できなくなり、半日ぐらいで自作しました。
リポジトリはここにあります。
https://github.com/guicho271828/another-org-info

一応、プレゼンに必要な機能、つまり

  • 次のスライドへ移動、またはリスト展開 n
  • 履歴機能 (pは、「一つ前のスライドにもどる」という意味です)
  • 任意セクション移動 s

は実装してあります。残る機能は 現在スライドNo./全体スライド数 の表示とかですかね。

使い方

  1. リポジトリを git clone でコピーしてください。こうすれば、ついでに自動でバージョン管理がセットアップされるので
    うれしいですね。ただ、できれば branch を分けてから編集したほうがいいかも。
  2. presen.org を編集して、org-mode の通常の html export を行なってください。1セクションが1スライドです。
    リストは展開されます。
  3. それだけです。 必要な設定は presen.org の中にすでに書いてあります。

拡張方法

コードはだれでも理解しやすいよう短く単純に書いたので、jsがわかる人ならたぶん誰でも拡張できます。
ただし、一応 コードがどういう順で書かれているかは書いておきます。

  1. CSS 関連や セクション関連のヘルパー関数。 80行目当たりまで
  2. スライドをあらわすクラス Slide。 グローバル変数 slide.
  3. onload 関数の実装。
  4. キーバインド。

キーバインドの拡張方法ですが、 keyManager のハッシュに、
打ち込まれる文字の名前(nやp,s)をキーにして関数を代入してください。
たとえばこんな感じです。

keyManager.p = function(){
    console.log(slide.level);
    slide = slide.prev();
    slide.show();
};

いずれ複数キーストロークにも対応させるつもり。 << やりました。

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?