LoginSignup
2
2

More than 5 years have passed since last update.

マークダウンに書かれたコードを実行する

Last updated at Posted at 2017-08-25

マークダウンはコードを手軽に表現できる書類です。それからコードだけを出力するコマンドを用意するとドキュメントからコードを生成する事が可能です。従来はコードのコメントでドキュメントを生成しますが、その逆を実現してみようというお話です。

コマンドをmd2codeと名付けてRubyで実装してみました。ソースを以下に示します。とても簡単な内容なのでRuby以外の使用環境に適した言語で実装できるかと思います。

md2code

#!/usr/bin/env ruby

if ARGV.length == 0 || ARGV[0] == '-h' || ARGV[0] == '--help'
  STDERR.puts 'usage: md2code markdownfile'
  exit 1
end

begin
  ARGV.each do |arg|
    File.read(arg).scan(/(```+)(.*?\n)(.*?)(\1\n)/m){puts $3}
  end
rescue => e
  STDERR.puts 'md2code: ' + e.message
end

使用例

$> md2code md2code-doc.rb.md | ruby

マークダウン書類の```で囲まれたコードが抽出されて標準出力、Rubyへと渡されて実行されます。

このドキュメント自体(md2code-doc.rb.md)がmd2codeのサンプルコードでもあります。

*ここまでの上記コードはマークダウンを変換したものではなくHTML埋め込みによる表示なのでmd2codeでは無視されます。

ここから先は実際に動作可能なコードとなります。


これはRubyのサンプルです。

puts 'hello ruby'

もう一度。

puts 'hello ruby (again)'

以上です。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2