Pregunta

Mi blog, por powerred Jekyll , sirve un feed 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>

I necesidad de cambiar el contenido de cada poste, de modo que

<img href="/images/01.jpg" />
<a href="/2010/post/">Post</a>

se convierte en:

<img href="http://stefan.artspace44.com/images/01.jpg" />
<a href="http://stefan.artspace44.com/2010/post/">Post</a>

Yo estaba pensando en hacer algo en la línea de

<content type='html'>
  {{ post.content | make_hrefs_base page.rooturi }}
</content>

¿Dónde podría codificar esto en Jekyll o líquido, y cómo podría resolver el problema de cambiar sólo el href valores que punto a "/ " y no " http://otherdomain.com/ "?

Gracias

¿Fue útil?

Solución

  

¿Dónde podría codificar esto en Jekyll o líquido?

En el recientemente publicado Jekyll 0.6.0, puede crear sus propios plugins, incluyendo plugins etiqueta líquidos. Se puede extraer de la Jekyll complemento documentación para obtener más información, pero eso sería lo mejor apuesta.

  

¿Cómo podría resolver el problema de cambiar sólo los valores href que apuntan a "/" y no " http: // otherdomain .com / "?

Parece bastante fácil. En su etiqueta personalizada líquido, comprobar para ver si el primer carácter es un '/'; si lo es, entonces anteponer su nuevo dominio. Probablemente se podría utilizar un analizador de Ruby HTML para encontrar todas las instancias de <a>, y luego cambiar los atributos href según el caso.

Otros consejos

Yo tenía el mismo problema en la alimentación de mi blog , y logré resolverlo sin utilizar un plugin, es decir, sólo con vainilla líquido.

mi Atom XML archivo , el contenido de mi está poblada como esto:

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

... y tengo estas variables en mi fichero de configuración :

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

En otras palabras, acabo de hacer dos sustituye cadena ordinarias , uno de los enlaces y uno para las imágenes.

El truco es:
En ambos casos, sustituyo por href="/ href="http://christianspecht.de/, por lo que sólo aquellos enlaces que realmente Iniciar con / se ven afectados.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top