2022-07-28 07:57:39 +12:00
|
|
|
defmodule AshHqWeb.Helpers do
|
2022-08-07 11:22:58 +12:00
|
|
|
@moduledoc "Simple helpers for doc liveviews"
|
|
|
|
|
2022-09-13 11:36:28 +12:00
|
|
|
require Logger
|
|
|
|
|
2022-07-28 07:57:39 +12:00
|
|
|
def latest_version(library) do
|
2022-10-31 13:58:34 +13:00
|
|
|
case library.versions do
|
|
|
|
[] ->
|
|
|
|
nil
|
|
|
|
|
|
|
|
versions ->
|
|
|
|
Enum.min(versions, &(Version.compare(&1.version, &2.version) != :lt))
|
|
|
|
end
|
2022-07-28 07:57:39 +12:00
|
|
|
end
|
2022-09-13 11:36:28 +12:00
|
|
|
|
|
|
|
def source_link(%AshHq.Docs.Module{file: file}, library, library_version) do
|
2022-12-15 21:28:03 +13:00
|
|
|
"https://github.com/#{library.repo_org}/#{library.name}/tree/v#{library_version.version}/#{file}"
|
2022-09-13 11:36:28 +12:00
|
|
|
end
|
|
|
|
|
2022-09-30 05:56:07 +13:00
|
|
|
def source_link(%AshHq.Docs.MixTask{file: file}, library, library_version) do
|
2022-12-15 21:28:03 +13:00
|
|
|
"https://github.com/#{library.repo_org}/#{library.name}/tree/v#{library_version.version}/#{file}"
|
2022-09-30 05:56:07 +13:00
|
|
|
end
|
|
|
|
|
2022-09-13 11:36:28 +12:00
|
|
|
def source_link(%AshHq.Docs.Function{file: file, line: line}, library, library_version) do
|
|
|
|
if line do
|
2022-12-15 21:28:03 +13:00
|
|
|
"https://github.com/#{library.repo_org}/#{library.name}/tree/v#{library_version.version}/#{file}#L#{line}"
|
2022-09-13 11:36:28 +12:00
|
|
|
else
|
2022-12-15 21:28:03 +13:00
|
|
|
"https://github.com/#{library.repo_org}/#{library.name}/tree/v#{library_version.version}/#{file}"
|
2022-09-13 11:36:28 +12:00
|
|
|
end
|
|
|
|
end
|
2023-02-15 15:20:09 +13:00
|
|
|
|
|
|
|
def source_link(%AshHq.Docs.Guide{route: route}, library, library_version) do
|
|
|
|
"https://github.com/#{library.repo_org}/#{library.name}/tree/v#{library_version.version}/documentation/#{route}.md"
|
|
|
|
end
|
2022-07-28 07:57:39 +12:00
|
|
|
end
|