node.js - dust.js 通过函数格式化文本

标签 node.js mongodb express socket.io dust.js

我有一个模糊文本的 javascript 函数:

function blurlines(data) {
    var dataSplit = data.split(" ");
    var lastWord = dataSplit.pop();
    var toBlur = '<span class="blur">' + dataSplit.join(" ") +  '</span>'; 
// Blur entire sentace, show only last word
     var output = '<li>' + toBlur + lastWord + '</li>';
     return output;
}

我试图通过尝试类似的方法让它与 dust.js 一起工作:

{#storylines}
    <script>
        blurlines("{text}");
    </script>                   
{/storylines}

有没有办法通过 JS 函数轻松传递 {text} 值,然后渲染输出?

如果我在控制台中运行它,它似乎可以工作:

> blurlines("This is a test line")

> "<li><span class="blur">This is a test</span>line</li>"

最佳答案

我做了类似的事情,在我的全局上下文中创建了一个辅助函数:

var dustCtx = dust.makeBase({
    blurText: function(chunk, context, bodies, params) { 
        var dataSplit = params.data.split(" ");
        var lastWord = dataSplit.pop();
        var toBlur = '<span class="blur">' + dataSplit.join(" ") +  '</span>'; 
        var output = '<li>' + toBlur + lastWord + '</li>';
        return chunk.write(output);
    }
});

在渲染时将其与本地上下文合并:

dust.render("template", dustCtx.push({storylines:...}), function(err, out) {});

然后这样调用它:

{#storylines}
    {#blurText data=text/}
{/storylines}

例如,如果您想控制模糊,这种方法对于传递附加参数可能很方便。

关于node.js - dust.js 通过函数格式化文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13217906/

相关文章:

node.js - 无法将随机字符串分配给 _id 字段。

node.js - ServiceWorker 注册失败 : A bad HTTP response code (404) was received when fetching the script

MongoDB/Mongoose- 如何使用嵌套对象/文档或子文档

javascript - 发送 socket.io 实例到快速路由

node.js - pino-pretty,如何将文件名添加到日志行

javascript - 如何在 docuSign 中签名完成后重定向到后面

java - @DataMongoTest() 不起作用 - 引发由 : org. springframework.beans.factory.NoSuchBeanDefinitionException 引起

javascript - 在 MongoDB 中插入/更新插入嵌套文档

javascript - passport.js + express : TypeError ('Router.use() requires a middleware function but got a ' + gettype(fn))

javascript - 如何使用 NodeJS Gmail API 获取邮件?