Skip to content

Commit 9323742

Browse files
committed
Sort guides in descending version order
1 parent cfa5ee9 commit 9323742

File tree

2 files changed

+34
-7
lines changed

2 files changed

+34
-7
lines changed

_plugins/version_permalink.rb

+19-1
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,27 @@ def generate(site)
1414

1515
# This will be returned
1616
version = data["slug"].gsub re, repl_str
17-
doc.data.merge!('version' => version)
17+
data.merge!('version' => version)
18+
}
19+
20+
number_pattern = /^[0-9.]+$/
1821

22+
# Also add a version scalar that we can use for sorting
23+
i = 0
24+
collection.docs.filter { |doc| doc.data["version"].match?(number_pattern) }.sort_by { |doc| Gem::Version.new(doc.data["version"]) }.reverse.each { |doc|
25+
data = doc.data
26+
i +=1
27+
data.merge!('version_counter' => i)
1928
}
29+
30+
j = 0
31+
# Add a marker for things that don't have a version, because liquid filters are not as flexible as we'd like
32+
collection.docs.filter { |doc| ! doc.data["version"].match?(number_pattern) }.each { |doc|
33+
data = doc.data
34+
j +=1
35+
data.merge!('unversion_counter' => j)
36+
}
37+
2038
end
2139

2240
Jekyll::Hooks.register :migrations, :pre_render do |doc|

migration-guides.html

+15-6
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,19 @@
44

55
<h1>Migration Guides</h1>
66

7-
{% assign doclist = site.migrations %}
8-
<ul>
9-
{% for doc in doclist %}
10-
<li><a href="{{ site.baseurl }}{{ doc.url }}">{{ doc.version }}</a></li>
11-
{% endfor %}
12-
</ul>
137

8+
9+
{% assign doclist = site.migrations | sort: 'version_counter' | where: 'unversion_counter', nil %}
10+
<ul>
11+
{% for doc in doclist %}
12+
<li><a href="{{ site.baseurl }}{{ doc.url }}">{{ doc.version }}</a></li>
13+
{% endfor %}
14+
</ul>
15+
16+
{% assign doclist = site.migrations | sort: 'version_counter' | where: 'version_counter', nil %}
17+
<h2>Special Guides</h2>
18+
<ul>
19+
{% for doc in doclist %}
20+
<li><a href="{{ site.baseurl }}{{ doc.url }}">{{ doc.version }}</a></li>
21+
{% endfor %}
22+
</ul>

0 commit comments

Comments
 (0)