Randomize the ordering of clients displayed.

This commit is contained in:
Amir Taaki 2012-07-09 16:53:08 +01:00
parent 47b73f5d6d
commit 6850fc8c83
2 changed files with 26 additions and 2 deletions

23
_plugins/random.rb Normal file
View file

@ -0,0 +1,23 @@
class Random < Liquid::Tag
Syntax = /(\w+[.]?\w+)\s+(\w+)/o
def initialize(tag_name, markup, tokens)
if markup =~ Syntax
@collection_name = $1
@randomized_name = $2
else
raise SyntaxError.new("Syntax Error in 'random' - Valid syntax: random [source] [var]")
end
super
end
def render(context)
collection = context[@collection_name]
collection = collection.sort_by{rand}
context[@randomized_name] = collection
return
end
end
Liquid::Template.register_tag('random', Random)

View file

@ -97,8 +97,9 @@ clients:
<p>Bitcoin is a system of merchants, individuals, a network of participants and software. Together they maintain a mutually co-operating infrastructure without the need for authorities - a decentralised peer-to-peer system. A core layer of the Bitcoin system is the Bitcoin network through which people interact with it using Bitcoin client software. Below we list such software.</p>
<p>Bitcoin clients are the base level of technology for conducting Bitcoin transactions. Clients usually store a collection of keys on that computer (often termed a wallet). These keys allow you to send and receive payments through the Bitcoin network. Nobody has access to these keys except yourself, and they must be kept secure. This is where clients differ, with ingenious strategies and ongoing research into making a user-friendly and secure client - not an easy task when both goals often conflict!</p>
<div class="row">
{% for client in page.clients %}
{% cycle '', '', '', '</div><br><div class="row">' %}
{% random page.clients clients %}
{% for client in clients %}
{% cycle '', '', '', '</div><br><div class="row">' %}
<div class="span-one-third">
<h2><a href="http://{{ client.url }}">{{ client.name }}</a></h2>
<img src="img/clients/{{ client.image }}" />