Haskellerのためのプレゼンツール"MonadPoint"

去る11月20日Haskellナイトというイベント ( http://hop.timedia.co.jp/ )で、"HaskellerのHaskellによるHaskellerのためのプレゼン"というなんだかよくわからないタイトルで発表してきました。

遅くなりましたが、作った物の公開と発表の補足をしておきます。

概要


Haskell


Haskell

Haskell




MonadPoint

レポジトリ

http://github.com/tanakh/MonadPoint にてMonadPointを公開しています。
http://github.com/tanakh/haskell-night にて当日使ったスライドのソースとWindowsバイナリを公開しています。

使い方


MonadPointcabal(WindowsFTGL).hsimport MonadPoint runPresentation 

http://github.com/tanakh/MonadPoint/blob/master/test/Main.hs

若干説明

















scale調
scale d $ do ... - 縦横に縮小。中央に配置。
scalehu d $ do ... -- 縦方向に縮小。上に配置。
scalehd d $ do ... -- 縦方向に縮小。下に配置。
scalevl d $ do ... -- 横方向に縮小。左に配置。
scalevr d $ do ... -- 横方向に縮小。右に配置。

txtc str -- 文字列。中央揃え。
txtl str -- 文字列。左揃え。
txtr str -- 文字列。右揃え。

pict filename -- 画像を表示。

txtarea strs -- 文字列リストを等幅フォントで表示。




list $ do ... -- 引数に与えられたリスト要素をうまいことレイアウトして表示する

list $ do
  li "hoge"
  ul $ do
    li "moge"

lilist

何がいいのか?

基本的に誰得ではありますが…。

  • 抽象化能力

テンプレートを作りやすいとか。プレゼン=Haskellソースなので、なんとでもできます。

ニコニコ動画Twitterプラグインみたいなのも簡単に書けます。

今後の予定

実装がやっつけで、完成度が低すぎるので、まだまだ色々改良したいところです。

  • ソースをきれいにする
  • GLUT使うのやめる(フルスクリーンから復帰する手段がないとか…)
  • フォントをきれいにする(フルシーンAAとかでどうにかなるのだろうか)
  • もっといろいろカスタマイズできるようにする(ページ遷移時のアニメーションとか)
  • アニメーション実装
  • 賢いレイアウト
  • GHC API対応 (毎回コンパイルするのはさすがにめんどい)

イベントの感想


HaskellerHaskellReal World HaskellHaskellHaskell