Без использования плагина (что может быть требованием, например, если вы используете страницы github) и не хотите, чтобы выбор устанавливался только во время сборки/перестроения.
Это использует коллекции в качестве источника данных и некоторые флаги функций, установленные на главной странице.
{% if page.announcements %}
<script>
// homepage callout
var taglines=[
{% for txt in site.announcements %}
{{ txt.content | markdownify | jsonify | append: "," }}
{% endfor %}
]
var selection = document.querySelector('#tagline') !== null;
if(selection) {
document.querySelector('#tagline').innerHTML = taglines[ Math.floor(Math.random()*taglines.length) ];
}
</script>
{% endif %}
Я использую markdownify для обработки контента, jsonify, чтобы сделать его безопасным для JavaScript, а затем добавляю запятую, чтобы создать свой массив.
Затем Javascript заполняет его случайным образом при загрузке страницы.
Добавить коллекцию в config.yml
collections:
announcements:
Добавить отметку на страницу
---
layout: home
title:
slider: true
announcements: true
---
элемент содержимого коллекции (test.md)
---
published: true
---
This is a test post
person
Mat
schedule
03.01.2020