おそらくはそれさえも平凡な日々

MarkdownによるHTMLスライド作成のためにText::Markdown::Slidyというのを書いていてそれをCPANizeした

https://metacpan.org/release/Text-Markdown-Slidy

Markdownでアウトラインを書いてそれをSlideにするっていうのはよく聞くわけで、まあなんか色々そういうツールがあるわけですが、とりあえずMarkdownをスライド単位で分割するやつがあればいいんじゃないかと思っていて、実際そういうのを書いて個人的に使っていたのをCPANizeした。

h1、h2の見出し単位でMarkdownを分割して、変換したものを<div class="slide">...</div>で括るようにしているという具合。Markdownはh1とh2の表現方法が2つあるので、----====とかで区切った方で切るようにしてます。

use Text::Markdown::Slidyすると、markdownsplit_markdownという2つの関数がExportされます。split_markdownはうまい具合にMarkdownを分割してくれる関数なので便利。あとは適当にご自由なスライドツールと組み合わせてお使いください。

僕は以下の様なスライド生成スクリプトを作ってApp::watcherとかでmarkdownファイルの変更を検知してスライドを作りなおすとかしています。

% cat gen_slide.pl
#!/usr/bin/env perl
use 5.018;
use warnings;
use utf8;

use Path::Tiny;
use Text::Markdown::Slidy;
use Text::Xslate;

my $file = path('index.md');

state $md = Text::Markdown::Slidy->new;
my $html = $md->markdown($body);
state $tx = Text::Xslate->new(
    path => [qw/tmpl/],
);
my $html = $tx->render('index.tx' => {
    slides => $html,
});

path('index.html')->spew_utf8($html);

とかやって、以下のような感じで動かす。

% watcher --dir=index.md -- perl gen_slide.pl
created at
last modified at

2014-04-25T16:43:16+0900

comments powered by Disqus