defmodule PhoenixIslands.MixProject do use Mix.Project @version "0.2.2" def project do [ app: :phoenix_islands, version: @version, elixir: "~> 1.15", start_permanent: Mix.env() == :prod, description: description(), package: package(), docs: &docs/0, deps: deps() ] end # Run "mix help compile.app" to learn about applications. def application do [ extra_applications: [:logger] ] end defp docs do [ main: "readme", source_ref: "v#{@version}", source_url: "https://github.com/phoenix-islands/phoenix_islands", extra_section: "GUIDES", extras: extras(), groups_for_extras: groups_for_extras(), # groups_for_modules: groups_for_modules(), # groups_for_functions: [ # Components: &(&1[:type] == :component), # Macros: &(&1[:type] == :macro) # ], skip_undefined_reference_warnings_on: ["CHANGELOG.md"], before_closing_body_tag: &before_closing_body_tag/1 ] end defp before_closing_body_tag(:html) do """ """ end defp before_closing_body_tag(_), do: "" defp extras do ["README.md"] ++ Path.wildcard("guides/*/*.md") ++ ["CHANGELOG.md"] end defp groups_for_extras do [ Introduction: ~r/guides\/introduction\/.?/, "Server-side features": ~r/guides\/server\/.?/, "Client-side integration": ~r/guides\/client\/.?/ ] end defp description() do "Library for creating islands of various frontend framework in Phoenix LiveView" end defp package() do [ name: "phoenix_islands", # These are the default files included in the package # files: ~w(lib priv .formatter.exs mix.exs README* readme* LICENSE* # license* CHANGELOG* changelog* src), files: ~w(lib .formatter.exs mix.exs README*), licenses: ["MIT"], links: %{"GitHub" => "https://github.com/phoenix-islands/phoenix_islands"} ] end defp deps do [ {:ex_doc, ">= 0.19.0", only: :dev, runtime: false}, {:git_ops, "~> 2.6.0", only: [:dev]}, {:makeup_eex, ">= 0.0.0", only: :dev, runtime: false}, {:makeup_html, ">= 0.0.0", only: :dev, runtime: false}, {:phoenix_live_view, ">= 0.20.1"} ] end end