es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Omitir enlaces de previo/siguiente basándose en el valor de la información frontal?

Estoy ejecutando un blog basado en Jekyll y en la parte inferior de mis publicaciones de blog tengo enlaces a la publicación anterior y siguiente. Así es como se ve:

<div class="post-nav full-bleed">
  <div>
    {% if page.previous.url %}
    <p><-- El anterior<br>
    <a href="{{page.previous.url}}">{{page.previous.title}}</a></p>
    {% endif %}
  </div>
  <div class="post-nav-next">
    {% if page.next.url %}
    <p> Siguiente --><br>
    <a href="{{page.next.url}}">{{page.next.title}}</a></p>
    {% endif %}
  </div>
</div>

Sin embargo, publico solo publicaciones RSS en mi blog que están ocultas de la alimentación principal del blog. Para ocultarlas, tengo una parte front llamada ‘rss_only’ que tiene un valor de true/false.

Lo que me gustaría hacer es ocultar también esas publicaciones de mis enlaces de anterior/siguiente. He editado el código como se muestra a continuación para intentar ocultar los elementos, pero no parece funcionar.

<div class="post-nav full-bleed">
  <div>
    {% if page.previous.url %}
    {% assign previous = page.previous.url | where_exp: "item", "item.rss_only != true" %}
    <p><-- El anterior<br>
    <a href="{{page.previous.url}}">{{page.previous.title}}</a></p>
    {% endif %}
  </div>
  <div class="post-nav-next">
    {% if page.next.url %}
    {% assign next = page.next.url | where_exp: "item", "item.rss_only != true" %}
    <p> Siguiente --><br>
    <a href="{{page.next.url}}">{{page.next.title}}</a></p>
    {% endif %}
  </div>
</div>

Lo que quisiera es que el elemento anterior o siguiente esté oculto si ‘rss_only’ es ‘true’ y saltar a la siguiente publicación de la lista y mostrar un enlace a esa.

Puede ser que esté pidiendo demasiado, pero cualquier orientación sería apreciada.

Gracias.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para ocultar las publicaciones con rss_only establecido en verdadero de los enlaces de publicaciones anteriores/siguientes en un blog basado en Jekyll, puedes modificar el código existente de la siguiente manera:

    <div class="post-nav full-bleed">
      <div>
        {% assign previous_index = site.posts | reversed | index: page %}
        {% assign previous_post = site.posts[previous_index - 1] %}
        {% if previous_post and previous_post.rss_only != true %}
        <-- La anterior<br>
        <a href="{{previous_post.url}}">{{previous_post.title}}</a>
        {% endif %}
      </div>
      <div class="post-nav-next">
        {% assign next_index = site.posts | reversed | index: page %}
        {% assign next_post = site.posts[next_index + 1] %}
        {% while next_post and next_post.rss_only == true %}
        {% assign next_index = next_index + 1 %}
        {% assign next_post = site.posts[next_index + 1] %}
        {% endwhile %}
        {% if next_post %}
        A continuación --><br>
        <a href="{{next_post.url}}">{{next_post.title}}</a>
        {% endif %}
      </div>
    </div>
    

    Este código utiliza el filtro index para determinar el índice de la publicación actual en la matriz site.posts, y luego calcula el índice de las publicaciones anteriores y siguientes basado en ese índice. Luego verifica si la metainformación rss_only de esas publicaciones está establecida en verdadero y omite cualquier publicación con ese valor. Si se encuentra una publicación anterior o siguiente que no tiene rss_only establecido en verdadero, se mostrará como enlace de publicación anterior o siguiente.

    Esto debería lograr el resultado deseado de omitir las publicaciones ocultas y mostrar enlaces solo a las publicaciones visibles en la navegación de publicaciones anteriores/siguientes.

Comments are closed.