在JavaScript模板引擎中使用markdown

时间:2018-09-28 20:50:20

标签: javascript markdown template-engine

如何在模板中使用markdown(或任何其他标记-> HTML语言)。可用的JavaScript模板引擎有可能吗?

模板:

This is a *sample* question?
![some_image](image/path)
{{screenshot}}

1 个答案:

答案 0 :(得分:1)

  • 首先运行您的模板引擎。
  • 将呈现的HTML传递给markdown解析器。
  • 运行降价解析器。

我为您提供了一个片段,该片段使用Mustache作为模板引擎,并使用Markdown的CommonMark的JavaScript实现。

在上面的链接中,您可以找到我用于示例的代码。

function loadUser() {
  var template = $('#template').html();
  var rendered = Mustache.render(template, {
    name: "*Luke*"
  });
  $('#target').html(rendered);

  var reader = new commonmark.Parser();
  var writer = new commonmark.HtmlRenderer();
  var parsed = reader.parse($('#target').html());
  var result = writer.render(parsed);
  $('#target').html(result);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/mustache.js/3.0.0/mustache.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/commonmark/0.28.1/commonmark.min.js"></script>

<body onload="loadUser()">
  <div id="target">Loading...</div>
  <script id="template" type="x-tmpl-mustache">
This is an example of **markdown** in a *template*.  
Hello {{ name }}!
  </script>
</body>