标签: templating

统一的HTML模板语言

似乎每个Web框架都有自己的宠物模板语言.Ruby有eRuby,Python的django使用Django模板语言,Haskell有HeistHamlet,Java有JSP,然后有PHP ...

我的问题是,有没有人试图创造一种模板语言来统治它们?是否有至少有任何这样的模板语言,一些跻身不同的Web框架的广泛支持?

html language-agnostic templating dynamic-html

9
推荐指数
1
解决办法
981
查看次数

node.js - 使用带快速的焊接?

我是node.js的新手,并尝试使用焊接在服务器端渲染模板并使用express作为路由器.

但是,node.js的示例并未显示为内容提供服务,并且模糊了如何使用express:

var fs = require('fs'),
jsdom = require('jsdom');

jsdom.env(
  './test.html', 
  ['./jquery.js', './weld.js'],
  function(errors, window) {
    var data = [{ name: 'hij1nx',  title : 'code slayer' },
              { name: 'tmpvar', title : 'code pimp' }];
    window.weld(window.$('.contact')[0], data);
  }
);
Run Code Online (Sandbox Code Playgroud)

帮助或示例将不胜感激.

html templating node.js express

9
推荐指数
1
解决办法
1156
查看次数

在把手中的助手内渲染模板

大家好!

因为似乎没有答案:通过把手部分传递变量,我正在努力解决这个问题.因此,我们的想法是注册一个辅助函数,该函数使特定模板具有可能的值.一些代码使得理解更好.

这是我如何调用我的助手:

<div>
    {{myHelper}}
</div>
Run Code Online (Sandbox Code Playgroud)

这个帮助器注册了这个小代码:

hbs.registerHelper(name, function (args) {
    args = args || {};
    var template = hbs.compile(fs.readFileSync(__dirname + '/' + file, 'utf8'));
    return template(args);
});
Run Code Online (Sandbox Code Playgroud)

我把这个snippiet放到一个循环中,一次注册不同的帮助器.这意味着给出了'name'和'file'.

好的,现在我可以做这样的事情:

// 'values' could be something like this:

var values = { headline: 'HEADLINE' }

<div>
    {{myHelper values}}
</div>
Run Code Online (Sandbox Code Playgroud)

在帮助器中,我现在可以测试是否给出了某些值:

// myHelper template

<div>
    {{#if headline}}
    <h1>{{headline}}</h1>
    {{/if}}
    <p>Lorem ipsum</p>
</div>
Run Code Online (Sandbox Code Playgroud)

这个小小的解决方法适合我,但有一个问题.如上所述注册助手,返回纯HTML转义字符串.因此,调用帮助程序不会输出呈现的HTML代码段.它将HTML作为转义字符串输出.

你有没有人知道如何让我的代码片段将HTML作为HTML返回?

/帕斯卡尔

html rendering templating helpers handlebars.js

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

Mustache.php:模板选择下拉列表的惯用方法

所以我遇到了一些问题,围绕着最好的习惯方式,使用Mustache.php灵活地处理一些复杂的html案例

第一个是预先选择的选择下拉列表,例如

<select>
  <option value=''></option>
  <option value='bob'>Bob Williams</option>
  <option value='james' selected>James Smith</option>
</select>
Run Code Online (Sandbox Code Playgroud)

我有办法解决这个问题,但我的方式似乎非常不灵活:

  • 在php中取一个数组,
  • 将其重新格式化为具有3个元素的多维数组; value,display,selected(boolean)
  • 将它传递给模板,其中option,value和selected在循环中输出

是否有一种很棒的方法可以使用部分或匿名函数或方法或我缺少的mustache.php的其他一些功能来制作预选的选择下拉列表?

编辑:将此问题缩减为单独的部分,以尽量提高清晰度.

templating mustache

9
推荐指数
1
解决办法
3772
查看次数

如何在活跃中使用代码段?

我是一个Rails开发人员在Clojure中弄湿我的脚.我正在尝试用ERB做一些非常简单的事情,但我无法在生活中把它弄清楚.

假设我在layout.html中有一个简单的网站布局文件:

<!DOCTYPE html>
<html>
<head>
</head>
<body>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

我有这些片段,例如header.html和footer.html以及这条简单的路线.

(deftemplate layout "layout.html" [])

(defroutes home-routes
  (GET "/" [] layout))
Run Code Online (Sandbox Code Playgroud)

如果请求转到"/",我怎样才能改变布局并将页眉和页脚片段插入其中?

clojure templating compojure enlive

9
推荐指数
1
解决办法
2896
查看次数

Java泛型,紧密有界参数类型

我希望有一种方法具有类似于method(T1 t1, T2 t2) T2是-T1和/或T1是-T2 的签名 .我不希望T1和T2都是T的情况,但两者都不是 - 另一个.我希望最允许的类型在继承树中以T1或T2的最高值为界.我使用的是Java 6.

下面是尝试显示一些所需的用例

class Experiment
{
  static List genericList = new ArrayList();
  static ArrayList arrayList = new ArrayList();

  static class Test1 { }
  static class Test2 extends Test1 { }
  static class Test3 extends Test1 { }

  static <T> T experiment0(T expected, T actual)
  {
    return actual;
  }

  /** Almost works, but want arbitrary ordering. Cannot overload due to erasure. */
  static <T, S extends T> S experiment1(T expected, S actual) …
Run Code Online (Sandbox Code Playgroud)

java generics static-typing templating

9
推荐指数
1
解决办法
208
查看次数

访问Drupal 8视图模板中的各个字段

我在做一些我认为应该是相对简单的drupal 8视图的问题.

我有一个名为Countries的内容类型.我想在一个视图块中显示我主页上的3个最新国家节点.每个国家/地区都在容器div上显示"views-row"类.我正在使用视图 - 视图 - 未格式化 - 国家/地区 - block_1.tpl来模拟输出.

我想输出类似以下标记的内容:

<a class="view-row-1" href="/link/to/node">
    <img src="source-of-teaser-image.png">
    <h3>Title of node</h3>
</a>

<a class="view-row-2" href="/link/to/node">
    <img src="source-of-teaser-image.png">
    <h3>Title of node</h3>
</a>

<a class="view-row-3" href="/link/to/node">
    <img src="source-of-teaser-image.png">
    <h3>Title of node</h3>
</a>
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是访问模板中的各个字段.如果我使用视图模式,我可以访问各个字段.如果我在视图中选择"显示字段",我可以为"查看结果计数器"和"路径"添加一个字段,这将允许我添加"view-row-N"类并将a标记链接到节点,但我无法单独访问这些字段.我有{{row.content}}变量,但任何进一步挖掘变量的尝试(例如row.content.field_name)都没有给我任何信息并且调用{{dump(row.content)}}会使网站崩溃.

由于两个原因,我无法将其输出为视图模式.我无法在视图模式下访问"查看结果计数器"或"路径"字段,即使我有这些变量,某些字段也会嵌套在其他字段中(图像和标题嵌套在其中)

我觉得这应该真的很简单

<a class="view-row-{{ row.content.view_result_counter }}" href="{{ row.content.path }}">
Run Code Online (Sandbox Code Playgroud)

等等,但我已经尝试了我能想到的一切.我完全走错了路吗?到目前为止,Twig和我相处得不好......

views templating twig drupal-8

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

FreeMarker布局可以减少模板冗余吗?

根据FreeMarker include语句文档,您可以像这样制作页眉和页脚感知模板:

<#include "/header.ftl">
<!-- Content of my this page -->
<#include "/footer.ftl">
Run Code Online (Sandbox Code Playgroud)

但如果我的网络应用程序有数百个页面/视图,这是一个冗余的复制意大利面.如果在FreeMarker中有一个" 布局 "概念,那就太棒了,我可以说" 嘿,这是一个布局: "

<#include "/header.ftl">
<@import_FTL_Somehow>
<#include "/footer.ftl">
Run Code Online (Sandbox Code Playgroud)

然后为每个视图创建/页(单独的模板index.ftl,contactUs.ftl等等),然后告诉FreeMarkers其中FTL文件"使用"的布局.这样我就不必在每个模板文件中继续指定页眉/页脚包含.

FreeMarker是否支持这种概念?

layout freemarker templating

8
推荐指数
1
解决办法
3004
查看次数

有没有办法使用 Kustomize 添加新资源(而不是覆盖它们)?

使用kubectl apply -k,您可以覆盖资源配置(您已经定义)。你也可以创建资源吗?

\n\n

在我的具体情况下,我想为开发环境创建一个本地卷。不过,我的基本文件夹中没有此资源。

\n\n

我的文件夹结构是这样的:

\n\n
\n
~/someApp\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 base\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 deployment.yaml\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 kustomization.yaml\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 service.yaml\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 overlays\n    \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 development\n    \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 cpu_count.yaml\n    \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 kustomization.yaml\n    \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 replica_count.yaml\n    \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 volume.yaml <--- *Is this possible*?\n    \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 production\n        \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 cpu_count.yaml\n        \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 kustomization.yaml\n        \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 replica_count.yaml\n
Run Code Online (Sandbox Code Playgroud)\n
\n

templating kubernetes kustomize

8
推荐指数
1
解决办法
6915
查看次数

AnsibleError:模板化字符串时出现模板错误:预期标记“:”,得到“}”

准备模板时出现错误。谁能告诉你如何解决?

\n

如有必要,还可以编辑变量。

\n
  vars:\n    All\xd0\xa1ountry:\n         - "name1"\n         - "name2"\n    name1:\n         - "region1a"  \n         - "region1b"   \n    name2:\n         - "region2a"\n         - "region2b"\n
Run Code Online (Sandbox Code Playgroud)\n

代码

\n
{% for country in All\xd0\xa1ountry %}   \n{name: "{{ country }}",{% for count in {{ country }} %}My country = {{ count }}\n{% endfor %}{% endfor %}\n
Run Code Online (Sandbox Code Playgroud)\n

结果是一个错误\nAnsibleError:模板化字符串时出现模板错误:预期标记“:”,得到“}”

\n

是的,最后我希望得到整个列表的输出

\n
name: "name1  My country = "region1a" My country = "region1b"   \nname: "name2: My country = "region2a" My country = "region2b"\n
Run Code Online (Sandbox Code Playgroud)\n

templating ansible ansible-template

8
推荐指数
1
解决办法
3万
查看次数