@@ -2,7 +2,7 @@ defmodule ExDoc.Mixfile do
2
2
use Mix.Project
3
3
4
4
@ source_url "https://github.com/elixir-lang/ex_doc"
5
- @ version "0.36.1"
5
+ @ version "0.36.1-dev "
6
6
7
7
def project do
8
8
[
@@ -52,7 +52,7 @@ defmodule ExDoc.Mixfile do
52
52
53
53
defp aliases do
54
54
[
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 ] ,
56
56
clean: [ & clean_test_fixtures / 1 , "clean" ] ,
57
57
fix: [ "format" , "cmd --cd assets npm run lint:fix" ] ,
58
58
lint: [ "format --check-formatted" , "cmd --cd assets npm run lint" ] ,
@@ -108,6 +108,26 @@ defmodule ExDoc.Mixfile do
108
108
]
109
109
end
110
110
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
+
111
131
defp test_dev_examples ( :dev ) , do: Path . wildcard ( "test/examples/*" )
112
132
defp test_dev_examples ( _ ) , do: [ ]
113
133
0 commit comments