繁体   English   中英

使用javascript中的液体'include'标签

[英]Use liquid 'include' tag from javascript

我正在尝试实施基于jekyll的网站的搜索,并且我遵循了这个实现。 一切都按预期工作,但是,当我返回搜索结果时,我想在我的首页上使用我的模板进行预览,该模板存储在我的jekyll设置的_includes /文件夹中。 在液体中,它会像

{% for post in search_results %}
{% include post-preview.html %}
{% endfor %}

但是,搜索结果html字符串是用javascript构建的,我收集你不能使用液体标签。 那有什么简单的方法吗?

自从我提出这个问题以来,我发现了一种有点过时的方法,所以我会把它放在这里,万一有人需要它。

因此,要加载模板文件,我使用了ajax:

  var xhReq = new XMLHttpRequest();
  xhReq.open("GET", 'post-preview.html', false);
  xhReq.send(null);
  var template = xhReq.responseText;

现在,在此之后,变量模板保存post-.html后的文本文件的内容,如下所示:

 <div class="post-preview"> <div class="post-title"> <div class="post-name"> <a href="{{ post.url }}">{{ post.title }}</a> </div> <div class="post-date"> {% include time.html %} </div> </div> <div class="post-snippet"> {% if post.content contains ' <!--break-->' %} {{ post.content | split:' <!--break-->' | first }} <div class="post-readmore"> <a href="{{ post.url }}">read more-></a> </div> {% endif %} </div> {% include post-meta.html %} </div> 

现在我们的工作是用javascript替换post.url之类的液体调用。 对于post.url和post.title来说这很容易,我们可以使用.replace方法处理javascript中的字符串。 但是,对于诸如分割帖子内容的代码而言,它更复杂,因此在预览中只能显示一个片段。

所以,至少对我来说,似乎我们需要编写执行相同操作的javascript代码。 由于本练习的整个目的不是要在两个地方保留相同的HTML代码(post-preview.html文件和search.js文件),似乎我们需要一些自动方法来删除液体代码和注入javascript。 我在这里问过(某些)这个效果的问题

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM