标签: template-engine

在Java中更好的Html Builder

我想低于输出.

<html>
<head>
</head>
<body>
<table>
<tbody>
<thead>
Blah Blah table Header--Constant Part
</thead>
<tr>
some text-constant part
</tr>
<!---Main Customization Part-->
for(i=0;i<some value;i++)
{
<tr>
    for(j=0;j<another value;j++)
    {
        if(some condition)
        {
            <td class=another varibale>some text</td>
        }
        else
        {
            <td class=yet another varibale>some text</td>
        }
    }
</tr>
}
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

正如你可以看到它的混合html,它将从java逻辑生成其余部分.现在这里是我的问题 - 如何在独立的java中实现(即不是jsp).我知道我可以将它写入普通文件.但不知怎的,我觉得这是一个丑陋的解决方案.有什么方法可以在一些更好的方式完成它办法?基本上我正在为java寻找一个好的HTML构建器.已经检查过 - Freemarker.我也愿意用任何语言实现,因为java是我最喜欢的语言,所以我更喜欢它.

html java template-engine

5
推荐指数
2
解决办法
2万
查看次数

Scala使用JSON和/或XML模板

我正在使用Scalatra,但这个问题应该适用于任何Scala编程.我来自Ruby on Rails背景.简单地说,使用诸如XML Builder或jsonbuilder(https://github.com/rails/jbuilder)之类的模板化系统,我可以通过创建模板来完全控制RESTful API中的JSON或XML输出.以下:

Jbuilder.encode do |json|
  json.content format_content(@message.content)
  json.(@message, :created_at, :updated_at)

  json.author do
    json.name @message.creator.name.familiar
    json.email_address @message.creator.email_address_with_name
    json.url url_for(@message.creator, format: :json)
  end

  if current_user.admin?
    json.visitors calculate_visitors(@message)
  end

  json.comments @message.comments, :content, :created_at

  json.attachments @message.attachments do |attachment|
    json.filename attachment.filename
    json.url url_for(attachment)
  end
end
Run Code Online (Sandbox Code Playgroud)

这里的理想是,我将一个@message对象与控制器+动作中所需的任何逻辑组合在一起.这会传递给具有逻辑的模板,例如if current_user.admin?包含一些东西,否则不会.

什么是Scala或Scalatra中可用的类似工具?我知道serializer会让我覆盖从特定模型生成的JSON或XML,但这在Ruby中是相同的(如果我错了,请纠正我)作为覆盖as_jsonas_xml.然而,有时候,模板要复杂得多,包括多个模型,特定的数据结构,特定的数据排序等.这就是我需要的灵活性.目前有一个工具可以在Scala/Scalatra环境中进行这样的模板化吗?

xml json template-engine scala scalatra

5
推荐指数
1
解决办法
1247
查看次数

在yesod模板中逃脱`@`

我试图@font-face在cassius模板中使用选择器而没有运气.

Cassius @用于插值,有什么方法可以逃脱它吗?

我试过@@\@,他们没有工作.

以下模板

@font-face
      font-family: 'Monsieur La Doulaise'
      src: url('http://fonts.googleapis.com/css?family=Monsieur+La+Doulaise')
Run Code Online (Sandbox Code Playgroud)

结果是

src: url('http://fonts.googleapis.com/css?family=Monsieur+La+Doulaise');}
Run Code Online (Sandbox Code Playgroud)

haskell template-engine escaping yesod

5
推荐指数
1
解决办法
138
查看次数

如何在Play Framework中更改模板引擎?

我如何在Play中更改模板引擎!与默认的引擎不同的引擎?你能给我举个例子吗?

java template-engine playframework

5
推荐指数
1
解决办法
1774
查看次数

嵌套的Nunjucks循环

我正在尝试编写一个nunjucks模板,该模板遍历外部数组并填充列,然后遍历嵌套数组以在每一列中创建行。

因此,我的数据结构如下所示:

var data = [
    {
        'type' : 'fruit',
        'list' : ['banana', 'kiwi', 'strawberry']
    },
    {
        'type' : 'vegetables'
        'list' : ['tomato', 'carrot', 'zucchini']
    }
]
Run Code Online (Sandbox Code Playgroud)

我想创建一个如下所示的html文档:

<div>
    <span>fruit</span>
    <ul>
         <li>banana</li>
         <li>kiwi</li>
         <li>strawberry</li>
    </ul>
</div>

<div>
    <span>vegetables</span>
    <ul>
         <li>tomato</li>
         <li>carrot</li>
         <li>zucchini</li>
    </ul>
</div>
Run Code Online (Sandbox Code Playgroud)

我试图制作一个看起来像这样的nunjucks模板:

{% for category in data %}
    <div>
        <span>{{category.type}}</span>
        <ul>
           {% for thing in category.list %}
            <li>{{thing}}</li>
           {% endfor %}
        </ul>
    </div>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

但是,由于某种原因,我无法访问内部变量。我实际上没有访问内部for循环的权限。我已经看过堆栈溢出,并通过他们的文档,但找不到有关嵌套的for循环的任何信息。

任何帮助将不胜感激。谢谢。

html template-engine nunjucks

5
推荐指数
1
解决办法
2185
查看次数

用javascript对象替换字符串值

我目前正在为NodeJs制作一个小模块.我需要一点帮助.

我会这样说的.我有一个带字符串的变量.它包含一个字符串html值.现在我需要$(title)用我的对象替换这样的东西{ "title" : "my title" }.这可以扩展到用户提供的任何内容.这是当前的代码.我认为我需要RegEx才能做到这一点.你能帮助我吗?

var html = `<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document $(title)</title>
</head>
<body>

  <h1>Test file, $(text)</h1>

</body>
</html>`;

function replacer(html, replace) {
  // i need a regex to replace these data
  //return replacedData;
}

replacer(html, { "title" : "my title", "text" : "text is this" });
Run Code Online (Sandbox Code Playgroud)

javascript regex template-engine object node.js

5
推荐指数
2
解决办法
9939
查看次数

将VueJS与Go后端一起使用

我想使用Go模板和VueJS进行数据绑定.以前有没有人融合?

我希望主要使用VueJS进行Ajax调用,因为手动(或使用jQuery)总是让我的代码变得混乱.

更具体地说,如果我有一个简单的<p>标签,其值是从Go模板生成的,如下所示:

{{.Color}}
Run Code Online (Sandbox Code Playgroud)

现在我想像这样绑定到值
:

{{someVariable}} 
Run Code Online (Sandbox Code Playgroud)

两者都是相同的标签.

javascript template-engine go vue.js

5
推荐指数
1
解决办法
3662
查看次数


在Twig中有条件地扩展模板

采用以下树结构:

????base
?   ????0001
?   ?   ????pages
?   ?           file.twig
?   ?           file_content.twig
?   ????ext
?       ????store
?       ?   ????pages
?       ?       ????all
?       ?       ?       file.twig
?       ?       ????0001
?       ?               file.twig
?       ????newsletter
?           ????pages
?               ????all
?               ?       file.twig
?               ????0001
?                       file.twig
????pages
    ?   file.twig
    ????0001
            file.twig
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,file.twig周围散落着一大堆.

我想渲染文件的内容base/0001/pages/file_content.twig.
但是,我希望以下文件可以更改块内的内容:

  • ext/<...>/pages/0001/file.twig
  • ext/<...>/pages/all/file.twig
  • /pages/0001/file.twig
  • /pages/file.twig

但是,这些文件可能存在也可能不存在,可能需要也可能不需要,并且必须能够更改任何块的内容.

有没有办法让这项工作?

到目前为止,我有以下内容:

{% embed 'base/pages/file_content.twig' %}
    {% block page_file %}
        {{ parent() }}
        {% if data.store_enabled %} …
Run Code Online (Sandbox Code Playgroud)

php template-engine twig

5
推荐指数
1
解决办法
270
查看次数

如何忽略Groovy模板引擎中缺少的参数

我有一个带有占位符的模板(例如$ {PARAM1}),程序成功解析了它们。但是,如果我只想解析传递给模板引擎的占位符,而忽略其他$ {}怎么办?当前,如果程序无法解析所有占位符,则该程序将失败。

static void main(String[] args) {

    def template = this.getClass().getResource('/MyFile.txt').text

    def parameters = [
        "PARAM1": "VALUE1",
        "PARAM2": "VALUE2"
    ]
    def templateEngine = new SimpleTemplateEngine()
    def output = templateEngine.createTemplate(template).make(parameters)
    print output
}
Run Code Online (Sandbox Code Playgroud)

档案:$ {PARAM1} $ {PARAM2} $ {PARAM3}

谢谢

groovy template-engine

5
推荐指数
1
解决办法
561
查看次数