Skip to content

Commit 1637dc7

Browse files
committed
Include latest and searchNodes metadata into hosted docs
1 parent 618d03b commit 1637dc7

File tree

1 file changed

+28
-5
lines changed

1 file changed

+28
-5
lines changed

lib/elixir/scripts/docs_config.exs

Lines changed: 28 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
{text_tags, 0} = System.cmd("git", ["tag"])
55
skipped = Version.parse!("1.0.3")
66

7-
list_contents =
7+
versions =
88
for(
99
"v" <> rest <- String.split(text_tags),
1010
not String.ends_with?(rest, "-latest"),
@@ -13,10 +13,33 @@ list_contents =
1313
do: version
1414
)
1515
|> Enum.sort({:desc, Version})
16-
|> Enum.map_intersperse(", ", fn version ->
16+
17+
latest =
18+
versions
19+
|> Stream.filter(&(&1.pre == []))
20+
|> Enum.fetch!(0)
21+
|> Version.to_string()
22+
23+
version_nodes =
24+
for version <- versions do
1725
version_string = Version.to_string(version)
18-
~s[{"version":"v#{version_string}", "url":"https://hexdocs.pm/#{app}/#{version_string}"}]
19-
end)
26+
map = %{version: "v#{version_string}", url: "https://hexdocs.pm/#{app}/#{version_string}"}
27+
28+
if version_string == latest do
29+
Map.put(map, :latest, true)
30+
else
31+
map
32+
end
33+
end
34+
35+
search_nodes =
36+
for app <- ~w(eex elixir ex_unit iex logger mix)s do
37+
%{name: app, version: latest}
38+
end
2039

2140
File.mkdir_p!("doc/#{app}")
22-
File.write!("doc/#{app}/docs_config.js", ["var versionNodes = [", list_contents, "];\n"])
41+
42+
File.write!("doc/#{app}/docs_config.js", """
43+
var versionNodes = #{JSON.encode_to_iodata!(version_nodes)};
44+
var searchNodes = #{JSON.encode_to_iodata!(search_nodes)};
45+
""")

0 commit comments

Comments
 (0)