2

Jekyllを利用した私のブログは、 Atomフィードを提供しています。

---
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のどこにコーディングしますか? また、「 http://otherdomain.com/ 」ではなく「 /」を指すhref値のみを変更するという問題をどのように解決できますか?

ありがとうございました

4

2 に答える 2

3

これをjekyllまたはliquidでどこにコーディングしますか?

最近リリースされた Jekyll 0.6.0 では、Liquid タグ プラグインを含む独自のプラグインを作成できます。詳細については、Jekyll プラグインのドキュメントを参照してください。

「 http://otherdomain.com/ 」ではなく「/」を指す href 値のみを変更するという問題を解決するにはどうすればよいですか?

かなり簡単に思えます。カスタム Liquid タグで、最初の文字が「/」であるかどうかを確認します。そうである場合は、新しいドメインを先頭に追加します。おそらく、Ruby HTML パーサーを使用して のすべてのインスタンスを検索し、必要に応じて属性を<a>変更できます。href

于 2010-06-29T14:40:14.260 に答える
2

ブログのフィードで同じ問題が発生しましたが、プラグインを使用せずに、つまりバニラリキッドのみで解決することができました。

私の Atom XML ファイルでは、私のコンテンツは次のように取り込まれます。

<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>

...そして、構成ファイルにこれらの変数があります:

# 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/

つまり、リンク用と画像用の2 つの通常の文字列 replaceを実行するだけです。

秘訣は次のとおりです
。どちらの場合も で置き換えるのでhref="/href="http://christianspecht.de/実際にで始まる/リンクのみが影響を受けます。

于 2015-06-23T21:44:06.307 に答える