rubyでブログアーカイブコンバータを作成しています。 Wordpressの投稿コンテンツをHTML形式に変換するには、wordpressのwpautop()関数を実装する必要があります。ruby1.8でregexp(?<!...)を書き換える方法(wpautop関数の再実装)
オリジナルwpautop()関数:http://pastebin.com/BzV8bXxQ
マイルビー実装:https://github.com/chloerei/blog_converter/blob/master/lib/blog_converter/adaptor/wordpress.rbを、1.8.7でBU、それはruby1.9.2で正常に動作Wordpress#wpautop_filter
を参照してください、それはエラーに
blog_converter/lib/blog_converter/adaptor/wordpress.rb:147: undefined (?...) sequence: /(?<!<br \/>)\s*\n/
を投げます
ソース
// In php
$pee = preg_replace('|(?<!<br />)\s*\n|', "<br />\n", $pee); // optionally make line breaks
# In ruby
string.gsub!(%r|(?<!<br />)\s*\n|, "<br />\n") # optionally make line breaks
検索の結果、ruby1.8.7に新しい正規表現エンジン「Oniguruma」がないことが判明しました。新しい正規表現構文をサポートしていません。
だから私は、私は2つの方法があると思う:
- 古い構文に書き換え
/(?<!<br \/>)\s*\n/
をルビー< 1.9.0
感謝を試してみて、私の簡単なユニットテストに合格。 – Rei