44{ text_tags , 0 } = System . cmd ( "git" , [ "tag" ] )
55skipped = 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
2140File . 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