1

Rubyについてはわかりません:)

問題は、HTML 電子メールのすべての CSS をインライン スタイルに変換する方法が必要なことです。そして、 Alex Dunae の Premailerを使用するよりも良い方法はありません。

しかし、Windowsで実行したいです。私の目標は、C# からスクリプトを実行し、C# で ruby​​ スクリプトによって作成されたファイルを取得し、電子メールに HTML を使用できるようにすることです。

とにかく、Ruby スクリプトを実行するのは私にとって難しい部分です。Ruby Installerをダウンロードしてインストールし、Premailer 1.6.2 パッケージもダウンロードしました。

私はこれを実行しようとします:

C:\Ruby192\bin>ruby.exe C:\Workspace\Premailer\bin\premailer C:\Workspace\index.htm > C:\Workspace\index2.htm

そして、それが私に伝えているのはこれです:

C:\Ruby192\bin>ruby.exe C:\Workspace\Premailer\bin\premailer C:\Workspace\index.htm > C:\Workspace\index2.htm
<internal:lib/rubygems/custom_require>:29:in `require': no such file to load -- hpricot (LoadError)
        from <internal:lib/rubygems/custom_require>:29:in `require'
        from C:/Workspace/Premailer/lib/premailer.rb:4:in `<top (required)>'
        from <internal:lib/rubygems/custom_require>:29:in `require'
        from <internal:lib/rubygems/custom_require>:29:in `require'
        from C:/Workspace/Premailer/bin/premailer:5:in `<main>'

おそらくいくつかの依存関係が必要ですか、それとも何ですか?

4

2 に答える 2

3

HTML パーサーである Hpricot ライブラリがありません。

ただし、なぜ欠落しているのかはわかりません。これは、Premailer のパッケージ仕様に依存関係として適切にリストされており、Premailer をインストールしたときに自動的にインストールされているはずです (--ignore-dependenciesフラグで明示的に無効にしない限り)。

また、Premailer バイナリはC:\Ruby192\binではなくにインストールする必要がありC:\Workspace\Premailer\binます。

Premailer をアンインストールしてみてください。

gem uninstall --force premailer

そして、もう一度インストールしてみてください:

gem install premailer

注: Hpricot は実際には Ruby ではなく C で記述されているため、インストールするには RubyInstaller DevKit をインストールする必要があります。(これは、自動的にインストールされなかった理由の説明である可能性があります。)

一般的なヒント: CLI と Ruby の間で相互運用したい場合は、YARV の代わりに IronRuby Ruby 実装を使用する方がはるかに簡単です。これは、IronRuby が実際には CLI (より正確には DLR) で実行され、には、Ruby から CLI コードを呼び出すための標準化された API があります (また、その API は C# 4 と完全に互換性がありますdynamic)。前述したように、Hpricot は YARV の拡張として C で記述されているため、この特定のケースを除いては機能しないため、IronRuby では機能しません。

于 2010-11-23T20:28:54.660 に答える
1

ええ、「hpricot」がありません。最も簡単な方法は、おそらく ruby​​gems を使用してインストールすることです。

gem install -r hpricot
于 2010-11-23T20:08:03.510 に答える