سؤال

مدونتي مدعومة من جيكل, ، يخدم أ ذرة يٌطعم.

---
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 أو سائل, ، وكيف يمكنني حل مشكلة تغيير فقط href القيم التي تشير إلى "/" و لا "http://otherdomain.com/"?

شكرًا لك

هل كانت مفيدة؟

المحلول

أين يمكنني ترميز هذا في jekyll أو السائل؟

في Jekyll 0.6.0 الذي تم إصداره مؤخرًا، يمكنك إنشاء المكونات الإضافية الخاصة بك، بما في ذلك المكونات الإضافية لعلامة Liquid.يمكنك الاطلاع على جيكل البرنامج المساعد وثائق لمزيد من المعلومات، ولكن هذا سيكون أفضل رهان لك.

كيف يمكنني حل مشكلة تغيير قيم href فقط التي تشير إلى "/" وليس "http://otherdomain.com/"?

يبدو سهلا جدا.في علامة Liquid المخصصة الخاصة بك، تحقق لمعرفة ما إذا كان الحرف الأول هو "/"؛إذا كان الأمر كذلك، فقم بإضافة المجال الجديد الخاص بك مسبقًا.ربما يمكنك استخدام محلل Ruby HTML للعثور على كافة مثيلات <a>, ، ثم قم بتغيير href الصفات حسب الاقتضاء.

نصائح أخرى

كان لدي نفس المشكلة في تغذية مدونتي, ، تمكنت من حلها دون استخدام مكون إضافي ، أي فقط مع سائل الفانيليا.

في ملف ذرة 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/

وبعبارة أخرى ، أنا فقط أفعل اثنين سلسلة عادية تستبدل, واحد للروابط والآخر للصور.

الحيلة هي:
في كلتا الحالتين ، استبدل href="/ بواسطة href="http://christianspecht.de/, ، لذلك فقط تلك الروابط التي في الواقع يبدأ مع / تتأثر.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top