问题标签 [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:未处理的异常类型异常

通过http://fiddle.rythmengine.com/#/editor上的 Rythm 引擎小提琴尝试下面的 rythm 模板代码时

我得到错误:

我试过的模板是:

我查看了某种 try/catch 构造的文档,并咨询了我最喜欢的搜索引擎。我没有找到有关如何处理异常的提示。

在 Rythm 模板代码中如何处理异常?

0 投票
1 回答
78 浏览

java - 节奏:根据请求创建新引擎或在现有引擎实例上设置语言/区域设置

Rythm 可以用作单例或实例化为普通对象。Init()目前我在 Servlet方法的 webapp 中实例化它一次。(这与使用单例几乎相同,因为我只创建一次)

现在我需要为我的站点添加 i18n 支持,并且需要在渲染之前动态设置语言。

我可以这样做:

我假设如果我使用单例(或在 servlet 中创建的单个实例),那么我可能会在两个语句之间获得竞争条件。

  1. 这是正确的还是没有竞争条件?
  2. 我应该为每个请求创建一个 Rythm 实例吗?
  3. 是否有另一种方法可以在不更改引擎状态的情况下更改每次渲染的语言?
0 投票
1 回答
124 浏览

java - Rythm 使用带有@i18n 标签的转换器和嵌套标签

首先我对Rythm很满意!出色的工作是免费的。

最近我开始使用 Rythm 对我的模板进行国际化,有些事情似乎比需要的更麻烦。我想知道是否有更好的方法来做我想做的事情。

1. 将标签链接到@i18n()

这不起作用:

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

解决方法是:

这有效,但并不漂亮。

2. @i18n() 在 javascript 中转义

如果我有一个部分

那么 Rythm 会很好地避开该描述中的任何 ' 或 "。但是当我使用时:

逃脱没有完成。我也尝试过:

但两者都不起作用(见上文)。再次起作用的是使用

3. 使用@i18n() 中的标签作为参数

有时我需要一个翻译字符串中的链接,如下所示:

我想在模板中使用它,如下所示:

注意:person这里是一个类型为模板的参数Person@genlink是使用查找生成链接的便利模板(或标签)。我目前使用的解决方案是:

请注意,语言资源已更改为:无论如何,这可能是编写资源字符串的更好方法,但如果我能以某种方式about.text=See my profile here {0} 摆脱它并编写以下代码,那就太好了:@assign()

编辑:

我尝试了您的建议,但只是部分成功。

  1. 链标签到@i18n()

doing@("about.text".i18n())有效,而 doing@("about.text".i18n().nl2br())无效,并抱怨@i18n(). 如果我像这样添加缺少的参数:@("about.txt".i18n("").nl2br())它抱怨nl2br()未定义String

对我有用的是:@s().i18n("about.txt").nl2br()

更奇怪的是,当我在 Chrome 上运行你的小提琴时,它可以完美运行。当我在 Mac/Safari 上运行它时,我得到了与我刚才描述的相同的错误:见截图:节奏 Safari 截图

  1. @i18n()在 javascript 中转义

按照你的解释工作!

  1. 使用内部标签@i18n()作为参数

明白了。当前的解决方案@assign()适合一次性使用。Using@def()是一个更好的通用解决方案。

0 投票
1 回答
313 浏览

intellij-idea - IntelliJ 的节奏引擎插件

我正在编写一个 IntelliJ 插件,它应该能够识别 .html 文件中的节奏引擎代码。Rythm 是一个模板引擎,语法以 @ 开头

我已经完成了 JetBrains 文档中的自定义语言插件教程。

到目前为止,我的语法突出显示部分适用于节奏。如果我将下面的代码复制并粘贴到 .rythm 文件中,一切都会被很好地识别。但是随后将无法识别 HTML。

我尝试了 IntelliLang 插件的语言注入,但现在它只识别 HTML 标记之间的节奏代码。

在此示例中,@i18n 和 @something 将被识别为节奏。但@rythmCode 仍未突出显示。

即使@rythmCode 在 HTML 标签之外,我有什么想法可以让它工作吗?

编辑:

最后它起作用了。现在我想实现一个格式化程序。如何实现 HTML 部分的 HTML 格式化程序和 Rythm 部分的 Rythm 格式化程序?

编辑 2:HTML 格式化程序有效。现在我需要一点关于节奏格式的帮助。我认为我的 .bnf 文件有问题。

0 投票
1 回答
100 浏览

rythm - 使用 Java 将参数添加到节奏模板

我正在编写一个 MVC portlet 框架,并计划在我的视图中使用 Rythm。我想将各种参数传递给视图,并想知道是否有办法在运行时使用 Java 为视图声明这些参数?我知道我可以使用 @args 标记在视图中声明参数,并且可以从 Java 添加自定义标记,但我想做一些类似于 ASP.NET MVC 如何传递帮助程序类(HtmlHelper @Html、UrlHelper @Url、对象@Model) 到视图。

0 投票
0 回答
112 浏览

java - 在 IntelliJ 插件中实现多种语言

我目前正在编写一个 IntelliJ 插件。这个插件应该处理 HTML、Java(有时也是 JavaScript)和rythm(一个模板引擎)我遵循了 JetBrains 的插件文档。

我的词法分析器(我使用 JFlex)匹配所有内容并将匹配的代码识别为 HTML。

对于节奏代码部分,我的词法分析器中有正则表达式。

我还想实现一些 Java 语言功能,例如完成包和类。

另外我不知道我的方法是否正确。因为我的词法分析器在某些时候拆分了 HTML :

@, (, ), {, }

匹配完整代码并将其识别为 HTML 的正则表达式是:

文本 = [^@*(){}]+

此正则表达式导致我的 HTML 代码在代码以 @、(、)、{ 和 } 开头的点处被拆分的问题将不再起作用,因为它会匹配所有内容。

有没有更好的方法来支持多种语言以及如何在我的插件中实现 Java 语言功能?

0 投票
2 回答
776 浏览

java - 模板框架基准

我需要从预定义的模板中准备消息,我们要构建的系统将在一秒钟内准备 100 条消息。所以我编写了一个程序,使用市场上可用的多个模板框架顺序构建 1000 条消息,这些模板框架是

我用于此性能测试的模板包含一些带有多个 if/else 、 for 和替换语句的逻辑。

依次准备 1000 条消息。下面列出了这些的最终结果

在这些方面,我相信 Rythm 模板击败了所有其他模板框架。

让我知道您对节奏模板的想法。使用它有什么缺点吗。

0 投票
1 回答
108 浏览

java - 节奏模板继承

我们有一个通用的页眉/页脚模板作为父模板,我们将为 100 个子模板重复使用。扩展指令不支持此...

当我浏览 Rythm 文档时,我找到了一种通过 include/invoke 指令来实现这一点的方法,但 include/invoke 指令的主要目的是调用公共函数。扩展指令以相反的方式支持,将带有渲染指令的主模板内容作为父模板,将页眉/页脚模板作为子模板,但实时用例完全不同

我的理解对吗?有没有办法解决我的问题?

编辑:

我编写了如下代码来实现它:

页脚.html

模板1.html

我所做的是在包含/调用方法调用的帮助下,我得到了结果,但是当我使用扩展时它不起作用。如果可能的话,你可以使用扩展来解决我的问题吗?