Есть ли способ, которым у меня может быть один веб-сайт Jekyll, более одного блога? В настоящее время я хочу иметь два блогов на одном сайте.
Несколько блогов на одном веб-сайте Jekyll
Ответ 1
Я являюсь автором страницы http://www.garron.me/blog/multi-blog-site-jekyll.html
Учитывая, что вам нужны отдельные страницы архивов и последняя публикация в каждом блоге. Просто используйте что-то вроде этого:
Создайте файл archives-blog-1.html и заполните его:
{% for post in site.posts %}
{% if post.categories contains 'blog1' %}
<div class="post">
<h3 class="title"><a href="{{ post.url }}">{{ post.title }}</a></h3>
<p class="meta">Date: {{ post.date }}</p>
</div>
{% endif %}
{% endfor %}
Это даст вам список всех сообщений в блоге 1, вы можете сделать то же самое для blog2. Эта страница может быть в любом месте.
Для последнего сообщения вы можете использовать тот же код, но заключенный между:
{% for post in site.posts limit:5 %}
....
{% endfor %}
Это даст вам 5 сообщений... Я использую это
{% for post in site.posts limit:5 %}
<div class="post">
<ul>
<li><a href="{{ post.url }}">{{ post.title | truncate:200 }} </a><small>{{ post.date }}</small>
{% if post.summary %}
<p class="entry">{{ post.summary }}</p>
{% endif %}
</li>
</ul>
</div>
{% endfor %}
На моей индексной странице. http://www.garron.me/index.html... под подзаголовком (из блогов) я не ограничиваю какую-либо категорию, поэтому там появляются сообщения из всех блогов, вы можете ограничить с помощью {% if post.categories contains 'blog1' %}
Надеюсь, это поможет вам.
Ответ 2
Там есть более простое решение, чем любой из ответов.
Структура папок:
- blog1 / - _posts / - blog2 / - _posts/
Затем в index.html для blog1 используйте site.categories.blog1
вместо site.posts
.
См. Документацию для "site.categories" и "page.categories" в https://jekyllrb.com/docs/variables/.
Ответ 3
Я использовал две отдельные установки Jekyll для запуска двух блогов в одном домене; если ваши блоги будут жить в отдельных корневых каталогах (мои находятся в /
и /photos/
), тогда я бы рекомендовал этот подход. Я также описал, как я объединил файлы sitemap.xml обоих блогов.
Ответ 4
Лучше всего было бы изучить функцию файлов данных. Вы можете поместить файлы .markdown
в отдельную папку в своем source
и ссылаться на них при публикации. Это означает, что для составления сообщения вам нужно будет записать запись файла данных, но вы можете разместить столько "блогов", сколько хотите, каждый со своей собственной папкой. Сообщения автоматически будут иметь папку, в которой они находятся, в качестве URL-адреса. Я использую этот метод для своего личного блога и портфолио.
Либо это, либо вы можете посмотреть в коллекции: http://jekyllrb.com/docs/collections/