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
すると、markdown
とsplit_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