Povedzme napríklad, že chcem toto pole vygenerovať:
random_numbers = []
1000.times { random_numbers << rand(2) }
A odovzdajte ju šablóne, aby som k nej mohol pristupovať z aplikácie Liquid:
{% for num in random_numbers %}
... here I"d use logic around the number to generate something.
{% endfor %}
Poznámka: Chcem generovať pole dynamicky v Ruby. A vo vnútri šablóny chcem pole, s ktorým môžem iterovať, nechcem reťazec.
Ako to možno urobiť v Jekyll?
odpovede:
6 pre odpoveď č. 1Potrebujete plugin: https://github.com/mojombo/jekyll/wiki/Plugins
Ak ste boli radi, že logiku vo vašomplugin, môžete to urobiť vo vlastnom Liquid :: Tag, ale vaše požiadavky znejú ako by "d potrebovali generátor, čo je v poriadku. Len som to hodil dokopy a zdá sa, že funguje ako vy"
module Jekyll
class RandomNumberGenerator < Generator
def generate(site)
site.pages.each do |page|
a = Array.new
1000.times { a << rand(2) }
page.data["random_numbers"] = a
end
end
end
end
ktorý by mal prejsť do adresára _plugins / (ako rand.rb alebo tak niečo). V šablónach potom môžete urobiť
<ul>
{% for number in page.random_numbers %}
<li>{{ number }}</li>
{% endfor %}
</ul>
Alebo čo chcete. "Predpokladám, že chcete pre každú stránku použiť inú množinu čísel - ale ak chcete nastaviť jednu stránku pre celú stránku, môžete ľahko vytvoriť pole raz a potom ho buď pripojiť k objektu lokality alebo na každú stránku.
Toto nebude fungovať s automatickou generáciouGithub Pages (nedovoľujú vlastné pluginy, zo zrejmých dôvodov), ale to by nemalo byť problémom - aj keď používate stránky Github, existuje veľa riešení.