evancz/url-parserは、 '/'で区切られたセグメントのみを処理しているようです。 あなた自身のパーサーを書く必要があると思います。 (ここでは、url-parserを使用して既存のパーサーであるyourparser
と統合しました)
urlParser : Navigation.Parser (Result String String)
urlParser =
let
parser : Navigation.Location -> (Result String String)
parser location =
Maybe.oneOf
[ Result.toMaybe (yourparser location)
, Result.toMaybe (extractSearch location.pathname)
]
|> Result.fromMaybe "parse error"
extractSearch pathname =
if String.startsWith "/search/" pathname
then Ok (String.dropLeft 8 pathname)
else Err "failed to extract search string"
in Navigation.makeParser yourparser