やりたいこと
Text::Markdown::GitHubAPIを使って、MorkdownをHTMLに変換させたい。
Text::Markdownを使うと```で囲んだ部分に空白行があると、
やらが勝手に挿入されて、コレジャナイHTMLが上がってくるので、
いい感じに変換してくれる Text::Markdown::GitHubAPI を使うのです。
Text::Markdown::GitHubAPIのインストールと使えるようにする準備
前提条件は以下のとおり
- Linux環境(Debian8)
- Perlはplenvでインストールしたもの
- gitでソースを取ってくる
Text::Markdown::GitHubAPIのインストールに必要なCPANを入れる
以下のCPANモジュールが入ってないとインストールできないと怒られまくり。
$ cpanm Module::Install
$ cpanm Module::Install::AuthorTests
$ cpanm Module::Install::Repository
$ cpanm Module::CoreList
Text::Markdown::GitHubAPIを使うのに必要なCPANモジュールを入れる
以下のCPANモジュールが入ってないと使えないと怒られまくり。
$ cpanm Furl.pm
$ cpanm JSON.pm
$ cpanm Cache::LRU
$ cpanm Class::Load
$ cpanm IO::Socket::SSL
Text::Markdown::GitHubAPIのインストール
$ git clone git://github.com/Songmu/p5-Text-Markdown-GitHubAPI.git Text-Markdown-GitHubAPI
$ cd Text-Markdown-GitHubAPI
$ perl Makefile.PL
$ make
$ make install
Text::Markdown::GitHubAPIが入ったか確認
perldocコマンド叩いて、下記のようなのが出力されればOK!
root@gealach:~# perldoc Text::Markdown::GitHubAPI
NAME
Text::Markdown::GitHubAPI -
SYNOPSIS
use Text::Markdown::GitHubAPI;
DESCRIPTION
Text::Markdown::GitHubAPI is
AUTHOR
Masayuki Matsuki
SEE ALSO
LICENSE
This library is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
スクリプトを用意する
以下のようなスクリプトをお使いの環境に置いてください。
#!/usr/bin/env perl
use strict;
use warnings;
use Text::Markdown::GitHubAPI 'markdown';
my $in = `cat in.md`;
my $html = markdown($in);
open my $fh, '>', 'out.html';
print $fh $html;
close $fh;
使い方
in.md にMarkdownを書いて、
perl md2html.pl
なかんじで実行するとout.htmlが吐き出される。
Text::Markdownと違って、
```で囲んだ部分に改行が混ざりまくってもきちんと
で囲んでくれてるHTMLを吐いてくれるよ!
もっと使い勝手をよくしたいです。