19 lines
510 B
Elixir
19 lines
510 B
Elixir
defmodule OrgGarden.Resolvers.DOI do
|
|
@moduledoc """
|
|
Last-resort citation resolver — always succeeds.
|
|
|
|
If the citation key looks like a DOI (starts with "10."), returns a
|
|
`https://doi.org/...` link. Otherwise returns the key itself as a
|
|
plain label with no URL.
|
|
"""
|
|
|
|
@spec resolve(String.t()) :: {:ok, map()}
|
|
def resolve(key) do
|
|
if String.starts_with?(key, "10.") do
|
|
{:ok, %{label: key, url: "https://doi.org/#{key}"}}
|
|
else
|
|
{:ok, %{label: key, url: nil}}
|
|
end
|
|
end
|
|
end
|