Skip to content

Commit c63c69b

Browse files
committed
Add versionNodes and searchNodes to help development
1 parent a8fc0f8 commit c63c69b

File tree

1 file changed

+22
-2
lines changed

1 file changed

+22
-2
lines changed

mix.exs

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ defmodule ExDoc.Mixfile do
22
use Mix.Project
33

44
@source_url "https://github.com/elixir-lang/ex_doc"
5-
@version "0.36.1"
5+
@version "0.36.1-dev"
66

77
def project do
88
[
@@ -52,7 +52,7 @@ defmodule ExDoc.Mixfile do
5252

5353
defp aliases do
5454
[
55-
build: ["cmd --cd assets npm run build", "compile --force", "docs"],
55+
build: ["cmd --cd assets npm run build", "compile --force", "docs", &add_docs_config_js/1],
5656
clean: [&clean_test_fixtures/1, "clean"],
5757
fix: ["format", "cmd --cd assets npm run lint:fix"],
5858
lint: ["format --check-formatted", "cmd --cd assets npm run lint"],
@@ -108,6 +108,26 @@ defmodule ExDoc.Mixfile do
108108
]
109109
end
110110

111+
defp add_docs_config_js(_args) do
112+
{text_tags, 0} = System.cmd("git", ["tag"])
113+
114+
[latest | _] =
115+
versions =
116+
for("v" <> rest <- String.split(text_tags), do: Version.parse!(rest))
117+
|> Enum.sort({:desc, Version})
118+
119+
list_contents =
120+
Enum.map_intersperse(versions, ", ", fn version ->
121+
string = Version.to_string(version)
122+
~s[{"version":"v#{string}", "url":"https://hexdocs.pm/ex_doc/#{string}"}]
123+
end)
124+
125+
File.write!("doc/docs_config.js", """
126+
var versionNodes = [#{list_contents}];
127+
var searchNodes = [{"name":"ex_doc","version":"#{Version.to_string(latest)}"}];
128+
""")
129+
end
130+
111131
defp test_dev_examples(:dev), do: Path.wildcard("test/examples/*")
112132
defp test_dev_examples(_), do: []
113133

0 commit comments

Comments
 (0)