---
layout: nill
rooturi: http://stefan.artspace44.com
---
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
...
{% for post in site.posts %}
<entry>
<title>{{ post.title }}</title>
<link href="{{ page.rooturi }}{{ post.url }}" />
<updated>{{post.date | date_to_xmlschema }}</updated>
<id>{{ page.rooturi }}{{ post.id }}</id>
<content type="html">{{ post.content | xml_escape }}</content>
</entry>
{% endfor %}
</feed>
我需要更改每个帖子的内容,以便
<img href="/images/01.jpg" />
<a href="/2010/post/">Post</a>
成为:
<img href="http://stefan.artspace44.com/images/01.jpg" />
<a href="http://stefan.artspace44.com/2010/post/">Post</a>
我正在考虑按照
的方式做点什么<content type='html'>
{{ post.content | make_hrefs_base page.rooturi }}
</content>
我会在jekyll或liquid中对此进行编码,如何解决仅更改指向“/ ”的 href 值的问题而不是“http://otherdomain.com/ ”?
谢谢
答案 0 :(得分:3)
我在哪里用jekyll或液体编码?
在最近发布的Jekyll 0.6.0中,您可以创建自己的插件,包括Liquid标签插件。您可以查看Jekyll plugin文档了解更多信息,但这是您最好的选择。
如何解决仅更改指向“/”而非“http://otherdomain.com/”的href值的问题?
似乎很容易。在自定义Liquid标签中,检查第一个字符是否为'/';如果是,则添加新域名。您可以使用Ruby HTML解析器查找<a>
的所有实例,然后根据需要更改href
属性。
答案 1 :(得分:1)
我在the feed of my blog遇到了同样的问题,我设法在不使用插件的情况下解决了这个问题,即只使用了香草液体。
在my Atom XML file中,我的内容填充如下:
<content type="html">
{{ post.content | replace: site.feed_linkurl_find, site.feed_linkurl_replace | replace: site.feed_imgurl_find, site.feed_imgurl_replace | xml_escape }}
</content>
...我在my config file中有这些变量:
# URL replacements for feeds
feed_linkurl_find: href="/
feed_linkurl_replace: href="http://christianspecht.de/
feed_imgurl_find: src="/
feed_imgurl_replace: src="http://christianspecht.de/
换句话说,我只做两个ordinary string replaces,一个用于链接,一个用于图像。
诀窍是:
在这两种情况下,我都会将href="/
替换为href="http://christianspecht.de/
,因此只有开始与/
的链接才会受到影响。