扩展 Jekyll 和 Liquid 来解析帖子内容
---
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 或 液体,以及如何解决仅更改指向“/”而不是“http://otherdomain.com/”?
谢谢
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
在最近发布的 Jekyll 0.6.0 中,您可以创建自己的插件,包括 Liquid 标签插件。您可以查看 Jekyll 插件 文档以获取更多信息,但这将是您最好的选择赌注。
看起来很容易。在您的自定义 Liquid 标签中,检查第一个字符是否为“/”;如果是,则在前面添加您的新域。您可以使用 Ruby HTML 解析器来查找
的所有实例,然后根据需要更改
href
属性。In the recently-released Jekyll 0.6.0, you can create your own plugins, including Liquid tag plugins. You can check out the Jekyll plugin documentation for more info, but that would be your best bet.
Seems pretty easy. In your custom Liquid tag, check to see if the first character is a '/'; if it is, then prepend your new domain. You could probably use a Ruby HTML parser to find all instances of
<a>
, and then change thehref
attributes as appropriate.我在我的博客提要中遇到了同样的问题,并且我设法解决了这个问题,而无需使用插件,即仅使用 vanilla Liquid。
在 我的 Atom XML 文件 ,我的内容填充如下:
...并且我在 我的配置文件:
换句话说,我只做了两个 普通字符串替换,一个用于链接,一个用于图像。
诀窍是:
在这两种情况下,我都将
href="/
替换为href="http://christianspecht.de/
,因此只有那些实际开始的链接 > 与/
受到影响。I had the same problem in the feed of my blog, and I managed to solve it without using a plugin, i.e. only with vanilla Liquid.
In my Atom XML file, my content is populated like this:
...and I have these variables in my config file:
In other words, I just do two ordinary string replaces, one for links and one for images.
The trick is:
In both cases, I replace
href="/
byhref="http://christianspecht.de/
, so only those links that actually begin with/
are affected.