在我的Jekyll include文件中,如何获得帖子的降价?

在我的Jekyll include文件中,如何获得帖子的降价?,jekyll,Jekyll,有没有办法在include文件中获得帖子降价 我的include文件有以下代码:{{workingPost.content} 当我把它包含在一个降价文件中时,我得到了HTML。我将其传递给另一个需要降价的include,而这是传递HTML 有没有一种方法可以访问文章的标记而不是HTML 根据要求,这里是代码文件。他们所做的就是在网站的右侧获得一篇特色文章,比如。在该链接中,代码是静态HTML。我想通过下面的代码来更新它,使之成为动态的。我已经有了第一个图像捕获代码,当它收到降价。我也想用这段代码

有没有办法在include文件中获得帖子降价

我的include文件有以下代码:
{{workingPost.content}

当我把它包含在一个降价文件中时,我得到了HTML。我将其传递给另一个需要降价的include,而这是传递HTML

有没有一种方法可以访问文章的标记而不是HTML

根据要求,这里是代码文件。他们所做的就是在网站的右侧获得一篇特色文章,比如。在该链接中,代码是静态HTML。我想通过下面的代码来更新它,使之成为动态的。我已经有了第一个图像捕获代码,当它收到降价。我也想用这段代码从文章中抓取第一张图片,但是当代码得到它时,标记已经变成了HTML

包含文件time.html
降价不可用。它会更早渲染,因此不可用

从这听起来好像降价是不可用的

在我的例子中,我让我的first-post-image-src2.html包含处理它被标记或html的情况,如下所示:

{% capture result %}
{% assign htmlAgain= 'empty' %}
{% assign foundImageAgain = 0 %}
  {% if include.param contains '![' %}
      {% assign imagesAgain = include.param | split:"![" %}
      {% for imageAgain in imagesAgain %}
        {% if imageAgain contains '](' %}
          {% if foundImageAgain == 0 %}
            {% assign htmlAgain = imageAgain | split:"](" %}
            {% assign htmlAgain = htmlAgain[1] %}
            {% assign htmlAgain = htmlAgain | split:")" | first %}
            {% assign foundImageAgain = 1 %}
          {% endif %}
        {% endif %}
      {% endfor %}
  {% endif %}
    {% if foundImageAgain ==0 %}
    {% assign imagesAgain = include.param | split:"<img" %}
      {% for imageAgain in imagesAgain %}
        {% if imageAgain contains 'src="' %}
          {% if foundImageAgain == 0 %}
            {% assign htmlAgain = imageAgain | split:'src="' %}
            {% assign htmlAgain = htmlAgain[1] %}
            {% assign htmlAgain = htmlAgain | split:'"' | first %}
            {% assign foundImageAgain = 1 %}
          {% endif %}
        {% endif %}
      {% endfor %}
    {% endif %}
{%endcapture%}{{site.url}}{{htmlAgain|strip}}
{%capture result%}
{%assign htmlAgain='空'%}
{%assign FOUNIMAGEREATH=0%}
{%如果include.param包含“![”%}
{%assign imagesAgain=include.param | split:![“%}
{imagesAgain%中的imagesAgain再次为%s}
{%如果图像再次包含']('%}
{%if foundImageReach==0%}
{%assign htmlAgain=IMAGEREATH |拆分:](“%}
{%assign htmlAgain=htmlAgain[1]}
{%assign htmlAgain=htmlAgain | split:”| first%}
{%assign FOUNIMAGEREATH=1%}
{%endif%}
{%endif%}
{%endfor%}
{%endif%}
{%if foundImageReach==0%}

{%assign imagesAgain=include.param | split:“是的,从标记转换为html是Jekyll构建时首先考虑的问题之一。因此,无法在包含中获取标记。绕过此限制的唯一方法是使用插件。但这不是主题

现在回到你的代码。它是复杂和脆弱的

Jekyll具备所有必要的功能来完成您想做的事情。不要尝试使用liquid进行数据处理。使用标签和过滤器,您就不必担心Gem升级会破坏您的站点并使您陷入真正困难的调试

例如:在你的代码中的某个地方,你正在处理一个带有
| split:“/>”
过滤器的字符串,该过滤器依赖于kramdown呈现
ìmg
标记的方式。如果有一天他们决定删除该标记,你的代码将被破坏

方法是:以尽可能简单的形式将所有数据放在帖子中,然后与简单的Jekyll标记和过滤器一起使用

这个想法是使用和杰基尔

在_config.yml中,定义一个新的摘录分隔符:

excerpt_separator: "<!-- excerpt end -->" # default is "\n\n" = two new lines
\u layouts/post.html中:

---
excerpt_image_src: "/images/dollarsToBitcoins.jpg"
excerpt_image_alt: "Bitcoin Bulls converts dollars to bitcoins."
popular : true # I'll explain that latter
---
Bitcoin Bulls customers pay in USD but those dollars are all converted to bitcoin.
<!-- excerpt end -->

Bulls, I'm excited to announce...
<div class="panel panel-default">
  <div class="panel-heading text-center">
    <h3 class="panel-title">Popular</h3>
  </div>
  {% for p in site.posts %}{% if p.popular == true %}
  <div class="panel-body">
    <a href="{{p.url}}">
            <img src="{{p.excerpt_image_src}}" alt="{{excerpt_image_alt}}">
      <p>{{p.excerpt}}</p>
          <p class="btn btn-md btn-success" role="button">READ POST</p><br><br>
        </a>
  </div>
  {% endif %}{% endfor %}
</div>
<li>
  <a href="{{ post.url }}">
    <p>{{post.date | date: "%B %d, %Y" }}</p>
    <img src="{{post.excerpt_image_src}}" alt="{{post.excerpt_image_alt}}">

    <!-- No need to wrap excerpt in <p> tag, Jekyll does it.
         If you want to put your own tag :
         <div>{{ post.excerpt | strip_html }}</div> -->
    {{ post.excerpt }}

    <p class="btn btn-md btn-success" role="button">READ POST</p><br><br>
  </a>
</li>
<h1>{{page.title}}</h1>
<div style="color:#666;">by David Smith on {{page.date | date: "%B %d, %Y"  }}</div>
{% if page.excerpt_image_src %}
    <p><img src="{{page.excerpt_image_src}}" alt="{{page.excerpt_image_alt}}"></p>
{% endif %}
{{ page.content | remove: page.excerpt | markdownify }}
<br>
{{page.title}
David Smith在{page.date | date:%B%d,%Y}
{%if page.extract_image_src%}

{%endif%} {{page.content | remove:page.extract | markdownify}
由于您没有在post页面中实际显示post摘录,因此它是
{{page.content | remove:page.extract | markdownify}
。如果您想显示摘录,它是:
{page.content | markdownify}

我不知道为什么,但是page.content返回mardown而不是html,所以过滤器
|markdownify
将markdown转换为html


Et voila!比特币牛万岁!

我们能看到更多的代码吗?或者可能是一个存储库吗?@DavidJacquel感谢您的关注(以及我的其他qs)我添加了代码,因为它不起作用,也没有签入github repo:谢谢你的史诗般的回答!解析代码突破了标记呈现方式的变化,这是很好的观点。我考虑过将图像放在最前面。这是最清晰的解决方案,但它让我作为一名作家感到困扰。不确定原因:)我知道你可以感觉到,如果把一个图片url放在最前面,你的文章的统一性就被打破了。但是这些数据仍然在文档中。而这个图片作为一个特殊的角色作为文章的“徽标”,所以当涉及到展示(“装饰”)时,拆分帖子徽标、摘录和正文可以让你随心所欲地组合它们“使用模板发布)
<div class="panel panel-default">
  <div class="panel-heading text-center">
    <h3 class="panel-title">Popular</h3>
  </div>
  {% for p in site.posts %}{% if p.popular == true %}
  <div class="panel-body">
    <a href="{{p.url}}">
            <img src="{{p.excerpt_image_src}}" alt="{{excerpt_image_alt}}">
      <p>{{p.excerpt}}</p>
          <p class="btn btn-md btn-success" role="button">READ POST</p><br><br>
        </a>
  </div>
  {% endif %}{% endfor %}
</div>
<li>
  <a href="{{ post.url }}">
    <p>{{post.date | date: "%B %d, %Y" }}</p>
    <img src="{{post.excerpt_image_src}}" alt="{{post.excerpt_image_alt}}">

    <!-- No need to wrap excerpt in <p> tag, Jekyll does it.
         If you want to put your own tag :
         <div>{{ post.excerpt | strip_html }}</div> -->
    {{ post.excerpt }}

    <p class="btn btn-md btn-success" role="button">READ POST</p><br><br>
  </a>
</li>
<h1>{{page.title}}</h1>
<div style="color:#666;">by David Smith on {{page.date | date: "%B %d, %Y"  }}</div>
{% if page.excerpt_image_src %}
    <p><img src="{{page.excerpt_image_src}}" alt="{{page.excerpt_image_alt}}"></p>
{% endif %}
{{ page.content | remove: page.excerpt | markdownify }}
<br>