2016-09-13 5 views
0

Я хочу создать архив для старых сообщений в блоге на моем сайте jekyll. Раньше моя структура обслуживала содержимое _posts на домашней странице моего сайта, index.html. После прочтения коллекции документов и несколько учебных пособий в Интернете, я добавил папку коллекции _archive в моей структуре и тестовый файл внутри называется test-file.markdown.Jekyll Collection Not Rendering

Однако URL mysite.com/archive/test-file полностью регенерирует мой основной index.html, а не содержимое коллекции.


Структура:

_archive 
    index.html 
    test-file.markdown 
_includes 
    about.html 
    head.html 
    ... other stuff ... 
_layouts 
    default.html 
_posts 
    post1.markdown 
    post2.markdown 
    ... other stuff ... 
css 
img 
js 
_config.yaml 
... other stuff ... 

тест-file.markdown

--- 
layout: default 
title: test 
--- 

_config.yml

# Site settings 
title: test 
email: [email protected] 
url: http://www.test.com 


# Color settings (hex-codes without the leading hash-tag) 
color: 
    primary: ffffff #80B3FF 
    primary-rgb: "24,288,156" #"128,179,255" 
    secondary: 2c3e50 #FD6E8A 
    secondary-dark: 233140 #A2122F 
    third: 979797 

collections: 
    archive: 
    output: true 
    permalink: /archive/:path/ 

# Build settings 
markdown: kramdown 
permalink: pretty 

mysite.com/archive/index.html

--- 
--- 
{% for p in site.archive %} 
    {{ p}} 
    {{ p.title }} 
{% endfor %} 

Это повторное оказывает основное index.html, а не содержимое тест-file.markdown.


Как правильно визуализировать содержимое _archive на mysite.com/archive/?


EDIT: добавлен --- к index.html

ответ

0

Добавили ли вы:

--- 
--- 

{% for p in site.archive %} 
{{ p}} 
{{ p.title }} 
{% endfor %} 

на верхней части файла index.html? Если он отсутствует, он не будет запускать какой-либо контент внутри этого файла с помощью механизма шаблонов jekyll.

+0

Да, спасибо. Сайт по-прежнему обслуживает всю мою папку '_posts' в url: site.com/archive/test/ –

+0

Что-нибудь еще, что мне здесь не хватает? Спасибо @arniekoz за любые идеи. –

+0

Нет, не завершайте содержимое. Но сделайте редактирование выше @NickB, посмотрите, работает ли оно. – arnolds

0

Трудно сказать, какова ваша проблема на самом деле, не видя всего сайта. Предоставьте URL-адрес репо, если это возможно.


Если содержимое /index.html появляются в /_archive/test-file.markdown выходе, пост цикла, вероятно, в файле макета по умолчанию, так как файлы разделяют эту раскладку. Решением здесь было бы перемещение соответствующего содержимого в /index.html.


Я считаю, что ваш /_archive/index.html не выводится. Переместить /_archive/index.html в /archive.html. Jekyll не обрабатывает страницы внутри папки _archive, потому что начинается с подчеркивания.

Вы бы затем эти файлы вывода с текущей конфигурации:

  • /archive/index.html
  • /archive/test-file/index.html

На мой взгляд, вы должны держать сообщения в качестве сообщений, будь они архивируются или нет. Затем вы сохранили бы URL-адреса, если записи были заархивированы, вместо того, чтобы устанавливать 301 или потерять их до большой пустоты.

Чтобы сделать это, добавьте вводный в архивированных сообщения:

--- 
archived: true 
--- 

И текущие сообщения (вы можете использовать defaults для сохранения повторения):

--- 
archived: false 
--- 

Исключить заархивированные сообщения в вашем главный почтовый контур:

{% assign posts = site.posts | where: "archived", false %} 

Исключить текущие посты вашего архива. p возраст:

{% assign archived_posts = site.posts | where: "archived", true %}