秘银模板转换器使用

Posted

技术标签:

【中文标题】秘银模板转换器使用【英文标题】:Mithril template converter usage 【发布时间】:2019-12-23 02:52:20 【问题描述】:

我正在尝试完成这里发生的确切事情:https://arthurclemens.github.io/mithril-template-converter/index.html

基本上,我让用户将 HTML 字符串插入文本框,并且我想将该字符串转换为可以与 m 辅助方法一起使用的对象。

例如我必须转换这个:

<div class="foo"><p>bar</p></div>

变成这样:

m("div", "class":"foo", 
  m("p", 
    "bar"
  )
)

理想情况下,我正在寻找某种类型的工作流程,例如:

function myComponent() 
  let myHTML = "<div class="foo"><p>bar</p></div>";
  return(m(convertHTML(myHTML));

我研究了各种超文本/vdom 转译器,但它们都没有按照 Mithril 期望的确切格式创建树,所以我需要与上面列出的网站非常相似的功能才能工作。

我猜这根本不可能,因为对 m 的嵌套函数调用方面。

【问题讨论】:

【参考方案1】:

我能够通过 eval 即时使用模板:

import  templateBuilder  from "mithril-template-builder"

const source = '<div class="foo"><p>bar</p></div>';

const template = templateBuilder(
  source
);

function myComponent(props) 
  let object = eval(template);
  return(object);

【讨论】:

以上是关于秘银模板转换器使用的主要内容,如果未能解决你的问题,请参考以下文章

html 试试秘银

使用 USCavalry 转换器将 Velocity 模板转换为 FreeMarker

传递 POST 请求。春季安全。休息模板。杰克逊转换器

XSLT转换无法模板匹配

转换器2:ThinkPhp模板转Django模板

将 ARM 模板转换为 Terraform [关闭]