問題タブ [rythm]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
62 参照

rythm - リズムのレンダリング後にロシア語のテキストが正しく表示されない

エラーメッセージを表示するリズムテンプレートがあります。エラー メッセージは、英語、スペイン語、ゼラニウム、ロシア語などの任意の言語にすることができます.

次のロシア語のテキストを rythm に渡そうとしましたが、rythm レンダリングからの出力はすべて ?????? です。

Это объявление должно содержать информацию о товаре из каталога Добавьте в это объявление характеристики товара

エンコードまたはデコードするコードはありません。テンプレートに渡されるプレーンな文字列です。どんな助けでも大歓迎です。

0 投票する
1 に答える
111 参照

java - テンプレート ファイルを Rythm に動的にロードしますか? (ディレクトリ設定なし)

みたいなことができるようになりたい

ユーザーが Web インターフェイスを介してテンプレートを設定/変更できるシンプルなブログ エンジンを構築しています。しかし、Rythm を使用してテンプレートをディレクトリまたは jar ファイルに固定する必要があります。テンプレートを動的にロードできますか?

0 投票する
1 に答える
90 参照

rythm - org.rythmengine.exception.CompileException: Unhandled exception type Exception

http://fiddle.rythmengine.com/#/editorの Rythm エンジン フィドルを介して以下の rythm テンプレート コードを試す場合

エラーが発生します:

私が試したテンプレートは次のとおりです。

ある種の try/catch コンストラクトのドキュメントを調べ、お気に入りの検索エンジンを調べました。例外の処理方法に関するヒントが見つかりませんでした。

Rythm テンプレート コードで例外を処理するにはどうすればよいですか?

0 投票する
1 に答える
78 参照

java - Rythm: 新しいエンジンを作成するか、リクエストごとに既存のエンジン インスタンスに言語/ロケールを設定します

Rythm はシングルトンとして使用することも、通常のオブジェクトとしてインスタンス化することもできます。Init()現在、サーブレットメソッドの webapp で一度インスタンス化しています。(一度しか作成していないので、これはシングルトンを使用するのとほぼ同じです)

ここで、i18n サポートをサイトに追加する必要があり、レンダリングする前に言語を動的に設定する必要があります。

私はこれを行うことができます:

シングルトン (またはサーブレットで作成された単一のインスタンス) を使用すると、2 つのステートメント間で競合状態が発生する可能性があると思います。

  1. これは正しいですか、競合状態はありませんか?
  2. リクエストごとに Rythm インスタンスを作成する必要がありますか?
  3. エンジンの状態を変更せずに、レンダリングごとに言語を変更する別の方法はありますか?
0 投票する
1 に答える
124 参照

java - Rythm は @i18n タグでトランスフォーマーとネストされたタグを使用します

まず第一に、私はリズムにとても満足しています! 無料の素晴らしい作品。

最近、Rythm を使用してテンプレートの国際化を開始しましたが、必要以上に面倒に思えるものもあります。私がやろうとしていることを行うためのより良い方法があるかどうか疑問に思っています。

1. @i18n() にタグをチェーンします。

これは動作しません:

  1. @i18n("about.text").nl2br()
  2. @i18n("about.text").mytransformer()

これに対する回避策は次のとおりです。

これは機能しますが、きれいではありません。

2. JavaScript でエスケープされた @i18n()

セクションがある場合

その場合、Rythm はその説明の ' または " を適切にエスケープします。ただし、次を使用すると:

エスケープは行われません。私もやってみました:

ただし、どちらも機能しません (上記を参照)。再び機能するのは

3. @i18n() 内のタグを引数として使用

次のように、翻訳された文字列内にリンクが必要な場合があります。

これをテンプレートで次のように使用したいと思います。

注:personこれは type のテンプレート引数ですPerson@genlinkルックアップを使用してリンクを生成するための便利なテンプレート (またはタグ) です。私が現在使用しているソリューションは次のとおりです。

言語リソースが次のように変更されていることに注意してください:about.text=See my profile here {0} これはおそらくリソース文字列を記述するためのより良い方法ですが、どうにかして を取り除き、次のように記述できればよいでしょう@assign():

編集:

私はあなたの提案を試みましたが、部分的にしか成功しませんでした.

  1. チェーンタグに@i18n()

@("about.text".i18n())動作しますが、@("about.text".i18n().nl2br())動作しません のパラメーターが欠落していると不平を言います@i18n()。不足しているパラメーターを次のように追加すると、定義されていない@("about.txt".i18n("").nl2br())と文句を言いますnl2br()String

私にとってうまくいったのは:@s().i18n("about.txt").nl2br()

さらに奇妙なことに、あなたのフィドルを Chrome で実行すると、完全に動作します。Mac/Safari で実行すると、先ほど説明したのと同じエラーが表示されます: スクリーンショットを参照してください:Rythm Safariのスクリーンショット

  1. @i18n()JavaScriptでエスケープ

あなたが説明したように動作します!

  1. 内部のタグ@i18n()を引数として使用

了解した。を使用した現在のソリューション@assign()は、1 回限りの場合に適しています。Using@def()は、より優れた一般的なソリューションです。

0 投票する
1 に答える
313 参照

intellij-idea - Rythm Engine plugin for IntelliJ

I'm writing an IntelliJ plugin, which should recognize rythm engine code in .html files. Rythm is a template engine an the syntax starts with @

I've already done the custom language plugin tutorial from the JetBrains doc.

So far I got Syntax Highlighting partially working for rythm. If I would copy and paste the code below in a .rythm file everything would be well recognized. But then HTML wouldn't be recognized.

I tried the language injection from the IntelliLang plugin but now it recognizes the rythm code only between HTML tags.

In this example @i18n and @something would be recognized as rythm. But @rythmCode is still unhighlighted.

Any ideas how I can get it working even if @rythmCode is outside of HTML tags?

#xA;

edit:

Finally it works. Now I want to implement a formatter. How can I implement a HTML formatter for the HTML part and a Rythm formatter for the Rythm part?

edit 2: HTML formatter works. Now I need a bit help with the Rythm Formatting. I think something is wrong with my .bnf file.

0 投票する
1 に答える
100 参照

rythm - Java を使用して Ryth テンプレートに引数を追加する

私は MVC ポートレット フレームワークを作成しており、ビュー内で Rythm を使用する予定です。ビューにさまざまな引数を渡したいのですが、実行時に Java を使用してビューにこれらの引数を宣言する方法があるかどうか疑問に思っていましたか? @args タグを使用してビューで引数を宣言できること、および Java からカスタム タグを追加できることはわかっていますが、ASP.NET MVC がヘルパー クラス (HtmlHelper @Html、UrlHelper @Url、 Object @Model) をビューに追加します。

0 投票する
0 に答える
112 参照

java - IntelliJ プラグインで複数の言語を実装する

現在、IntelliJ プラグインを作成しています。このプラグインは、HTML、Java (場合によっては JavaScript)、およびrythm (テンプレート エンジン) を処理する必要があります。JetBrains のプラグイン ドキュメントに従いました。

私のレクサー (JFlex を使用) はすべてに一致し、一致したコードを HTML として認識します。

リズム コード部分については、レクサーに正規表現を使用しています。

また、パッケージやクラスの補完など、Java 言語の機能をいくつか実装したいと考えています。

また、私のアプローチが正しいかどうかもわかりません。私の字句解析器はいくつかの点でHTML を分割するため:

@、(、)、{、}

完全なコードに一致し、それを HTML として認識するための正規表現は次のとおりです。

テキスト = [^@*(){}]+

この正規表現により、コードが @、(、)、{、} で始まるポイントで HTML コードが分割されるという問題が発生します。これらの文字を除外しないと、プラグインは他の正規表現とブレース マッチャーを認識しません。すべてに一致するため、もう機能しません。

複数の言語をサポートするためのより良い方法はありますか? また、プラグインに Java 言語機能を実装するにはどうすればよいですか?

0 投票する
2 に答える
776 参照

java - テンプレート フレームワークのベンチマーク

事前定義されたテンプレートからメッセージを準備する必要があります。これから構築するシステムは、1 秒間に 100 件のメッセージを準備します。だから私は、市場で入手可能な複数のテンプレートフレームワークを使用して、1000メッセージを順番に構築するプログラムを作成しました。

このパフォーマンス テストに使用したテンプレートには、複数の if/else 、 for 、および置換ステートメントを含むロジックが含まれています。

1000通のメッセージを順次用意する。これらの最終結果を以下に示します

これらの点で、Ryth テンプレートは他のすべてのテンプレート フレームワークに打ち勝っていると思います。

Rythm テンプレートに関するご意見をお聞かせください。使用上のデメリットはありますか?

0 投票する
1 に答える
108 参照

java - Rythm テンプレートの継承

100 個のサブ テンプレートに再利用する親テンプレートとして、共通のヘッダー/フッター テンプレートがあります。Extends ディレクティブはこれをサポートしていません...

Rythm のドキュメントを調べたところ、include/invoke ディレクティブによってこれを実現する方法が見つかりましたが、include/invoke ディレクティブの主な目的は共通関数を呼び出すことです。Extends ディレクティブは、render ディレクティブを親としてメイン テンプレート コンテンツを配置し、サブテンプレートとしてヘッダー/フッター テンプレートを配置することにより、逆の方法でサポートしていますが、リアルタイムのユースケースはまったく異なります

それは私の理解で正しいですか?私の問題を解決する方法はありますか?

編集:

私はそれを達成するために以下のようにコーディングしました:

footer.html

template1.html

私が行ったことは、インクルード/インボークメソッド呼び出しの助けを借りて結果を得ましたが、拡張を使用すると機能しません。可能であれば、拡張を使用して私のケースを解決できますか?