Files
n8n-openai-adapter/lib/elixir/scripts/elixir_docs.exs
T

228 lines
6.9 KiB
Elixir

# Returns config for Elixir docs (exclusively)
canonical = System.fetch_env!("CANONICAL")
[
assets: %{"lib/elixir/pages/images" => "assets"},
extras: [
"lib/elixir/pages/getting-started/introduction.md",
"lib/elixir/pages/getting-started/basic-types.md",
"lib/elixir/pages/getting-started/lists-and-tuples.md",
"lib/elixir/pages/getting-started/pattern-matching.md",
"lib/elixir/pages/getting-started/case-cond-and-if.md",
"lib/elixir/pages/getting-started/anonymous-functions.md",
"lib/elixir/pages/getting-started/binaries-strings-and-charlists.md",
"lib/elixir/pages/getting-started/keywords-and-maps.md",
"lib/elixir/pages/getting-started/modules-and-functions.md",
"lib/elixir/pages/getting-started/recursion.md",
"lib/elixir/pages/getting-started/enumerable-and-streams.md",
"lib/elixir/pages/getting-started/processes.md",
"lib/elixir/pages/getting-started/io-and-the-file-system.md",
"lib/elixir/pages/getting-started/alias-require-and-import.md",
"lib/elixir/pages/getting-started/module-attributes.md",
"lib/elixir/pages/getting-started/structs.md",
"lib/elixir/pages/getting-started/protocols.md",
"lib/elixir/pages/getting-started/comprehensions.md",
"lib/elixir/pages/getting-started/sigils.md",
"lib/elixir/pages/getting-started/try-catch-and-rescue.md",
"lib/elixir/pages/getting-started/writing-documentation.md",
"lib/elixir/pages/getting-started/optional-syntax.md",
"lib/elixir/pages/getting-started/erlang-libraries.md",
"lib/elixir/pages/getting-started/debugging.md",
"lib/elixir/pages/cheatsheets/enum-cheat.cheatmd",
"lib/elixir/pages/anti-patterns/what-anti-patterns.md",
"lib/elixir/pages/anti-patterns/code-anti-patterns.md",
"lib/elixir/pages/anti-patterns/design-anti-patterns.md",
"lib/elixir/pages/anti-patterns/process-anti-patterns.md",
"lib/elixir/pages/anti-patterns/macro-anti-patterns.md",
"lib/elixir/pages/references/compatibility-and-deprecations.md",
"lib/elixir/pages/references/gradual-set-theoretic-types.md",
"lib/elixir/pages/references/library-guidelines.md",
"lib/elixir/pages/references/naming-conventions.md",
"lib/elixir/pages/references/operators.md",
"lib/elixir/pages/references/patterns-and-guards.md",
"lib/elixir/pages/references/syntax-reference.md",
"lib/elixir/pages/references/typespecs.md",
"lib/elixir/pages/references/unicode-syntax.md",
"lib/elixir/pages/mix-and-otp/introduction-to-mix.md",
"lib/elixir/pages/mix-and-otp/agents.md",
"lib/elixir/pages/mix-and-otp/genservers.md",
"lib/elixir/pages/mix-and-otp/supervisor-and-application.md",
"lib/elixir/pages/mix-and-otp/dynamic-supervisor.md",
"lib/elixir/pages/mix-and-otp/erlang-term-storage.md",
"lib/elixir/pages/mix-and-otp/dependencies-and-umbrella-projects.md",
"lib/elixir/pages/mix-and-otp/task-and-gen-tcp.md",
"lib/elixir/pages/mix-and-otp/docs-tests-and-with.md",
"lib/elixir/pages/mix-and-otp/distributed-tasks.md",
"lib/elixir/pages/mix-and-otp/config-and-releases.md",
"lib/elixir/pages/meta-programming/quote-and-unquote.md",
"lib/elixir/pages/meta-programming/macros.md",
"lib/elixir/pages/meta-programming/domain-specific-languages.md",
"CHANGELOG.md"
],
deps: [
eex: "https://hexdocs.pm/eex/#{canonical}",
ex_unit: "https://hexdocs.pm/ex_unit/#{canonical}",
iex: "https://hexdocs.pm/iex/#{canonical}",
logger: "https://hexdocs.pm/logger/#{canonical}",
mix: "https://hexdocs.pm/mix/#{canonical}"
],
groups_for_extras: [
"Getting started": ~r"pages/getting-started/.*\.md$",
Cheatsheets: ~r"pages/cheatsheets/.*\.cheatmd$",
"Anti-patterns": ~r"pages/anti-patterns/.*\.md$",
"Meta-programming": ~r"pages/meta-programming/.*\.md$",
"Mix & OTP": ~r"pages/mix-and-otp/.*\.md$",
References: ~r"pages/references/.*\.md$"
],
groups_for_docs: [
Guards: &(&1[:guard] == true)
],
skip_undefined_reference_warnings_on: [
"lib/elixir/pages/references/compatibility-and-deprecations.md"
],
skip_code_autolink_to: [
"Enumerable.List",
"Inspect.MapSet"
],
formatters: ["html", "epub"],
groups_for_modules: [
# [Kernel, Kernel.SpecialForms],
"Data Types": [
Atom,
Base,
Bitwise,
Date,
DateTime,
Duration,
Exception,
Float,
Function,
Integer,
JSON,
Module,
NaiveDateTime,
Record,
Regex,
String,
Time,
Tuple,
URI,
Version,
Version.Requirement
],
"Collections & Enumerables": [
Access,
Date.Range,
Enum,
Keyword,
List,
Map,
MapSet,
Range,
Stream
],
"IO & System": [
File,
File.Stat,
File.Stream,
IO,
IO.ANSI,
IO.Stream,
OptionParser,
Path,
Port,
StringIO,
System
],
Calendar: [
Calendar,
Calendar.ISO,
Calendar.TimeZoneDatabase,
Calendar.UTCOnlyTimeZoneDatabase
],
"Processes & Applications": [
Agent,
Application,
Config,
Config.Provider,
Config.Reader,
DynamicSupervisor,
GenServer,
Node,
PartitionSupervisor,
Process,
Registry,
Supervisor,
Task,
Task.Supervisor
],
Protocols: [
Collectable,
Enumerable,
JSON.Encoder,
Inspect,
Inspect.Algebra,
Inspect.Opts,
List.Chars,
Protocol,
String.Chars
],
"Code & Macros": [
Code,
Code.Fragment,
Kernel.ParallelCompiler,
Macro,
Macro.Env
]
## Automatically detected groups
# Deprecated: [
# Behaviour,
# Dict,
# GenEvent,
# HashDict,
# HashSet,
# Set,
# Supervisor.Spec
# ]
],
before_closing_body_tag: fn
:html ->
"""
<script defer src="https://cdn.jsdelivr.net/npm/mermaid@10.2.3/dist/mermaid.min.js"></script>
<script>
let initialized = false;
window.addEventListener("exdoc:loaded", () => {
if (!initialized) {
mermaid.initialize({
startOnLoad: false,
theme: document.body.className.includes("dark") ? "dark" : "default"
});
initialized = true;
}
let id = 0;
for (const codeEl of document.querySelectorAll("pre code.mermaid")) {
const preEl = codeEl.parentElement;
const graphDefinition = codeEl.textContent;
const graphEl = document.createElement("div");
const graphId = "mermaid-graph-" + id++;
mermaid.render(graphId, graphDefinition).then(({svg, bindFunctions}) => {
graphEl.innerHTML = svg;
bindFunctions?.(graphEl);
preEl.insertAdjacentElement("afterend", graphEl);
preEl.remove();
});
}
});
</script>
"""
_ ->
""
end
]