Current section
Files
Jump to
Current section
Files
mix.exs
defmodule Breeze.MixProject do
use Mix.Project
@version "0.4.0"
def project do
[
app: :breeze,
version: @version,
description: "LiveView inspired TUI library for writing terminal applications",
package: package(),
elixir: "~> 1.16",
start_permanent: Mix.env() == :prod,
deps: deps(),
aliases: aliases(),
test_ignore_filters: [~r{(^|/)test/support/}],
name: "Breeze",
source_url: "https://github.com/Gazler/breeze",
docs: docs()
]
end
# Run "mix help compile.app" to learn about applications.
def application do
[
extra_applications: [:logger]
]
end
defp package() do
[
files: ~w(lib .formatter.exs mix.exs README.md LICENCE.md),
licenses: ["MIT"],
links: %{"GitHub" => "https://github.com/Gazler/breeze"}
]
end
# Run "mix help deps" to learn about dependencies.
defp deps do
[
{:termite, "~> 0.4 or ~> 0.5"},
{:back_breeze, "~> 0.4.1"},
{:file_system, "~> 1.1", optional: true, runtime: Mix.env() == :dev},
{:telemetry, "~> 1.0"},
{:ex_doc, "~> 0.34", only: :dev, runtime: false},
{:makeup_eex, "~> 2.0", only: :dev, runtime: false},
{:makeup_html, "~> 0.2.0", only: :dev, runtime: false}
]
end
defp aliases do
[
docs: [&generate_docs/1]
]
end
defp docs do
[
main: "readme",
assets: %{"doc_src/assets" => "assets"},
extras: [
"README.md",
"doc_src/guides/simple_app.md",
"doc_src/guides/debugging.md",
"doc_src/guides/persistent_multi_instance.md",
"doc_src/generated/blocks.md"
],
source_ref: "v#{@version}",
before_closing_head_tag: &before_closing_head_tag/1,
before_closing_body_tag: &before_closing_body_tag/1,
groups_for_modules: [
"Applications and views": [
Breeze.Server,
Breeze.View,
Breeze.Term
],
"Components and styling": [
Breeze.Blocks,
Breeze.Implicit,
Breeze.Theme,
Breeze.Viewport
],
"Development tools": [
Breeze.IO,
Breeze.Inspector,
Breeze.Server.Diagnostics,
Breeze.Logger,
Breeze.Logger.Collector,
Breeze.Test
],
Storybook: [
Breeze.Storybook.Story,
Breeze.Storybook
],
Tooling: [Breeze.HTMLFormatter]
],
groups_for_extras: [
Guides: [
"README.md",
"doc_src/guides/simple_app.md",
"doc_src/guides/debugging.md",
"doc_src/guides/persistent_multi_instance.md"
],
Components: ["doc_src/generated/blocks.md"]
]
]
end
defp before_closing_head_tag(:html) do
Breeze.Docs.Assets.head_html()
end
defp before_closing_head_tag(_), do: ""
defp before_closing_body_tag(:html) do
Breeze.Docs.Assets.body_html()
end
defp before_closing_body_tag(_), do: ""
defp generate_docs(args) do
Mix.Task.run("compile")
register_heex_highlighter()
assets_path = Path.expand("doc_support/docs_assets.ex", __DIR__)
generator_path = Path.expand("doc_support/block_previews.ex", __DIR__)
Code.require_file(assets_path)
Code.require_file(generator_path)
generator = Module.concat([Breeze, Docs, BlockPreviews])
apply(generator, :write_markdown!, [])
Mix.shell().info("Generated #{Path.relative_to_cwd(apply(generator, :output_path, []))}")
Mix.Tasks.Docs.run(args, Mix.Project.config(), &ExDoc.generate/4)
end
defp register_heex_highlighter do
Application.ensure_all_started(:makeup_html)
Application.ensure_all_started(:makeup_eex)
Makeup.Lexers.ElixirLexer.register_sigil_lexer("H", Makeup.Lexers.HEExLexer)
end
end