在RSS提要中包含JS创建的文本

时间:2017-10-19 23:24:47

标签: javascript xml rss jekyll

我通过RSS Feed从博客帖子中生成每周电子简报。我用javascript数组生成每周生日列表。文本显示对帖子很好,但在Feed中忽略了它。同样,如果我尝试通过Jekyll / Liquid包含它。

有没有办法解决这个问题,或者xml只会读取javascript以外生成的html?

使用相关的html和javascript

修改Here's a CodePen。您可以通过yaml前端材料看到它非常简单的Jekyll博客。 javascript从数组中读取,将其与发布日期进行比较,并在下一周返回带有生日的人员列表。

所以这是xml:

<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>{{ site.title | xml_escape }}</title>
        <description>{{ site.description | xml_escape }}</description>
        <link>{{ site.url }}{{ site.baseurl }}/</link>
        <atom:link href="http://stpaulsmalone.org/feed.xml" rel="self" type="application/rss+xml"/>
        <pubDate>{{ site.time | date_to_rfc822 }}</pubDate>
        <lastBuildDate>{{ site.time | date_to_rfc822 }}</lastBuildDate>
        <generator>Jekyll v{{ jekyll.version }}</generator>
        {% for post in site.posts limit:10 %}
        {% if post.categories contains 'news' %}
          <item>
            <title>{{ post.title | xml_escape }}</title>
            <description>
                {{ post.teaser | xml_escape }}
                <![CDATA[ <img src="http://stpaulsmalone.org/img/news/{{ post.img }}"> ]]>
                {{ post.content | xml_escape }}
            </description>
            <pubDate>{{ post.date | date_to_rfc822 }}</pubDate>
            <link>{{ post.url | prepend: site.baseurl | prepend: site.url }}</link>
            <guid isPermaLink="true">{{ post.url | prepend: site.baseurl | prepend: site.url }}</guid>
            {% for tag in post.tags %}
            <category>{{ tag | xml_escape }}</category>
            {% endfor %}
            {% for cat in post.categories %}
            <category>{{ cat | xml_escape }}</category>
            {% endfor %}
          </item>
        {% endif %}
        {% endfor %}
      </channel>
</rss>

使用Liquid变量构建xml文件可以正常工作。可以通过RSS提要分发可以放在前面材料中的任何内容。 Feed 不会做的是获取生日列表,或通过Liquid包含的任何内容。所以问题是:有没有办法让它做到这一点,或者我只是被卡住了?

0 个答案:

没有答案