2017-05-02 10 views
0

私はFreeMarkerに変換したいVelocityテンプレートを多数持っています。USCavalryコンバータを使用してVelocityテンプレートをFreeMarkerに変換する

USCavalryと呼ばれるコンバータツールが見つかりました。

私はIntelliJでMavenプロジェクトとしてセットアップし、VelocityとFreemarkerの依存関係をpom.xmlに追加しました。

ツールはうまく動作しますが、私が得られる出力に満足できません。これは、ASTのトークン化された出力のようです。適切なFreeMarkerシンボルは置換されません。

他に誰かがこの問題に遭遇しましたか?意味のあるFreeMarkerテンプレートを出力として取得するために何を変更しましたか?

ベロシティRuntimeServices.parse()の成果以外のものを出力するようにソースを修正しようとしていますが、他の誰かがすでにこの問題を解決している場合に役立つと思いました。

答えて

3

USCavarlryは非常に単純なツールであり、非常に古くなっています(リンクされたWebページは10年前のスナップショットであり、おそらくそれも古くなっています)。非常に基本的なことについては、動作するようです(#if($x == 1)$y#endは少なくとも私にとって<#if x == 1>${y}</#if>に翻訳されています)。理論的にも適切な自動翻訳は不可能であり、半分にすることは非常に手間がかかります(if条件で論理的真とみなされるような意味上の違いを考慮する必要があったように、広く使用されているVelocityツール式を?xxxなどに変換します)。私が知る限り、そのようなツールは存在しません。だから、手作業で手作業で正規表現の代用をして、すべてを手作業で行うか、USCavalryのソースコードを修正する必要があります。

+0

いいえ、それは私にとっては基本的なものでもありません。しかし、私はあなたの答えに感謝します。それが手作業であることを知ることは価値があります。私は手動でそれをやり始めましたが、ツールを使って物事を短くすることは可能かもしれないと思っていました。あなたの時間をありがとう! – duffymo

関連する問題