defmodule Quillon.MixProject do use Mix.Project @version "0.2.2" @source_url "https://gitlab.com/tristanperalta/quillon" def project do [ app: :quillon, version: @version, elixir: "~> 1.18", start_permanent: Mix.env() == :prod, aliases: aliases(), deps: deps(), dialyzer: dialyzer(), # Hex package description: "A pure Elixir library for structured document representation with rich text support", package: package(), # Documentation name: "Quillon", source_url: @source_url, docs: docs() ] end # Run "mix help compile.app" to learn about applications. def application do [ extra_applications: [:logger], mod: {Quillon.Application, []} ] end def cli do [ preferred_envs: [precommit: :test] ] end # Run "mix help deps" to learn about dependencies. defp deps do [ {:ex_doc, "~> 0.38", only: :dev, runtime: false}, {:credo, "~> 1.7", only: [:dev, :test], runtime: false}, {:dialyxir, "~> 1.4", only: [:dev, :test], runtime: false} ] end defp docs do [ main: "readme", source_ref: "v#{@version}", extra_section: "GUIDES", extras: [ "README.md", "guides/getting_started.md", "guides/cheatsheet.md", "guides/marks.md", "guides/schema.md", "guides/cookbook.md", "guides/roadmap.md", "guides/document_model.md" ], groups_for_extras: [ Guides: [ "guides/getting_started.md", "guides/cheatsheet.md" ], Concepts: [ "guides/marks.md", "guides/schema.md", "guides/cookbook.md" ], Reference: [ "guides/roadmap.md", "guides/document_model.md" ] ], groups_for_modules: [ "Creating Documents": [ Quillon.Factory ], "Inspecting Nodes": [ Quillon.Node, Quillon.Mark, Quillon.Types ], Transforming: [ Quillon.Transform, Quillon.Transform.Split, Quillon.Transform.Normalize, Quillon.Transform.Position, Quillon.Transform.MarkOrder, Quillon.Commands, Quillon.Commands.List, Quillon.Commands.Table ], "Tree Operations": [ Quillon.Path ], Validation: [ Quillon.Schema, Quillon.Schema.Validator, Quillon.Schema.ContentExpr ], Serialization: [ Quillon.JSON ] ] ] end defp package do [ licenses: ["MIT"], links: %{ "Gitlab" => @source_url } ] end defp dialyzer do [ plt_add_apps: [:ex_unit] ] end defp aliases do [ precommit: [ "compile --warnings-as-errors", "deps.unlock --unused", "format", "credo --strict", "dialyzer", "test" ] ] end end