1

我想我什至不确定我应该寻找什么。在我的Jekyll 博客上,我目前只有一些博客文章,这些文章已经写好并在主页上列出了它们的全部内容并使用了分页。我想遵循更多独立网络标准并遵循PESOS(在其他地方发布,联合(到您的)自己的站点)方法。我想出了一种方法来自动从我的 Twitter 获取数据(例如 post_date、嵌入代码等)到 YAML 数据文件中。我想要做的是从我的帖子中获取数据并结合来自 Twitter 的数据并将这些帖子包括在内,就好像它们也是博客帖子一样(计划也对 Instagram 做同样的事情)。

我已经尝试了很多东西,但我什至不确定这样做的最佳方法是什么。我假设它将使用类似于Using Jekyll 的东西,如何使用 for 循环更改数组的内容?,但我似乎无法让它工作。我的博客文章代码目前如下:


{% for post in paginator.posts %}

{% if post.header.teaser %}
  {% capture teaser %}{{ post.header.teaser }}{% endcapture %}
{% else %}
  {% assign teaser = site.teaser %}
{% endif %}

{% if post.id %}
  {% assign title = post.title | markdownify | remove: "<p>" | remove: "</p>" %}
{% else %}
  {% assign title = post.title %}
{% endif %}

<div class="list__item">
  <article class="archive__item" itemscope itemtype="https://schema.org/CreativeWork">
    <h1 class="archive__item-title" itemprop="headline">
      {% if post.link %}
        <a href="{{ post.link }}">{{ title }}</a> <a href="{{ post.url | relative_url }}" rel="permalink"><i class="fas fa-link" aria-hidden="true" title="permalink"></i><span class="sr-only">Permalink</span></a>
      {% else %}
        <a href="{{ post.url | relative_url }}" rel="permalink">{{ title }}</a>
      {% endif %}
    </h1>

<p>Posted on <a href="{{ post.url }}">{{ post.date | date: "%A %B %-d, %Y" }}</a> by <a href="/contact/">Jacob Campbell</a>.</p>

{{ post.content }}

  </article>
</div>
{% endfor %}

{% include paginator.html %}

4

1 回答 1

0

也许,如果您poststweets确实在字段方面具有相同的结构,那么您可以concat两者:

{% comment %} Given that you make the tweets accessible from site, as a collection, for example {% endcomment %}
{% assign posts = paginator.posts | concat: site.tweets | sort: "date" %} 
{% for post in posts %}
  <h2>{{ post.title }}</h2>
  <div>{{ post.content }}</div>
{% endfor %}

请注意,在这里我还concat通过sort过滤器将列表放在 之后,因此推文确实出现在帖子的正常时间序列中。

如果你的结构不一样,你总是可以求助于collectionpost所在的:

{% assign posts = paginator.posts | concat: site.tweets | concat: site.instagram | sort: "date" %} 
{% for post in posts %}
  {% if post.collection == 'posts' %}
    <h2>{{ post.title }}</h2>
    <div>{{ post.content }}</div>
  {% elsif post.collection == 'tweets' %}
    {% comment %} If I am not mistaken, twitter have no title concept {% endcomment %}
    <h2>There was a bird singing about:</h2> 
    <div>{{ post.content }}</div>
  {% elsif post.collection == 'instagram' %}
    {% comment %} So, now, it can fit any social media of your choice {% endcomment %}
  {% endif %}
{% endfor %}
于 2020-06-27T12:27:52.507 回答