広告 Perl

MarkdownをHTMLに変換する

やりたいこと

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を吐いてくれるよ!

もっと使い勝手をよくしたいです。

Sponsor Link

-Perl