いくつかのブログ投稿を移行するためのスクリプトを書いています。
各ブログ投稿には、マークダウンでインデントされたコードサンプルが含まれている場合があります。そのうちのいくつかは、3つのコロンと言語識別子で始まる最初の行を持っています。
::: ruby
def test
puts "meh"
end
これらは、より大きなテキストの一部です。
さて、与えられたテキストについて、これらのコードブロックを見つけて、これに置き換えたいと思います。
{% codeblock lang:ruby %}
def test
puts "meh"
end
{% endcodeblock %}
コロンまたは言語識別子が3つない場合は、lang:<lang>
ビットを省略します。
私は現在、これらを見つけるための正規表現の書き方に困惑しています。私が思いつくことができるのは、この厳粛で働いていない獣だけです:
/^\s{4}(:::(\w+))+\n(\s{4}.*)\n^\s{0}$/mi
詳細については、 http://www.rubular.com/r/kycM8SDQLbを参照してください。
各投稿を更新する適切な方法は何でしょうか?私は正規表現に取り組んでいるだけで、ルビーコードは問題になりません。
ありがとう。