Packages
phoenix_kit
1.7.91
1.7.208
1.7.207
1.7.206
1.7.205
1.7.204
1.7.203
1.7.202
1.7.201
1.7.200
1.7.199
1.7.198
1.7.197
1.7.196
1.7.194
1.7.193
1.7.192
1.7.191
1.7.190
1.7.189
1.7.187
1.7.186
1.7.185
1.7.184
1.7.183
1.7.182
1.7.181
1.7.180
1.7.179
1.7.178
1.7.177
1.7.176
1.7.175
1.7.174
1.7.173
1.7.172
1.7.171
1.7.170
1.7.169
1.7.168
1.7.167
1.7.166
1.7.165
1.7.164
1.7.162
1.7.161
1.7.160
1.7.159
1.7.157
1.7.156
1.7.155
1.7.154
1.7.153
1.7.152
1.7.151
1.7.150
1.7.149
1.7.146
1.7.145
1.7.144
1.7.143
1.7.138
1.7.133
1.7.132
1.7.131
1.7.130
1.7.128
1.7.126
1.7.125
1.7.121
1.7.120
1.7.119
1.7.118
1.7.117
1.7.116
1.7.115
1.7.114
1.7.113
1.7.112
1.7.111
1.7.110
1.7.109
1.7.108
1.7.107
1.7.106
1.7.105
1.7.104
1.7.103
1.7.102
1.7.101
1.7.100
1.7.99
1.7.98
1.7.97
1.7.96
1.7.95
1.7.94
1.7.93
1.7.92
1.7.91
1.7.90
1.7.89
1.7.88
1.7.87
1.7.86
1.7.85
1.7.84
1.7.83
1.7.82
1.7.81
1.7.80
1.7.79
1.7.78
1.7.77
1.7.76
1.7.75
1.7.74
1.7.71
1.7.70
1.7.69
1.7.66
1.7.65
1.7.64
1.7.63
1.7.62
1.7.61
1.7.59
1.7.58
1.7.57
1.7.56
1.7.55
1.7.54
1.7.53
1.7.52
1.7.51
1.7.49
1.7.44
1.7.43
1.7.42
1.7.41
1.7.39
1.7.38
1.7.37
1.7.36
1.7.34
1.7.33
1.7.31
1.7.30
1.7.29
1.7.28
1.7.27
1.7.26
1.7.25
1.7.24
1.7.23
1.7.22
1.7.21
1.7.20
1.7.19
1.7.18
1.7.17
1.7.16
1.7.15
1.7.14
1.7.13
1.7.12
1.7.11
1.7.10
1.7.9
1.7.8
1.7.7
1.7.6
1.7.5
1.7.4
1.7.3
1.7.2
1.7.1
1.7.0
1.6.20
1.6.19
1.6.18
1.6.17
1.6.16
1.6.15
1.6.14
1.6.13
1.6.12
1.6.11
1.6.10
1.6.9
1.6.8
1.6.7
1.6.6
1.6.5
1.6.4
1.6.3
1.5.2
1.5.1
1.5.0
1.4.9
1.4.8
1.4.7
1.4.6
1.4.5
1.4.4
1.4.3
1.4.2
1.4.1
1.4.0
1.3.2
1.3.1
1.3.0
1.2.10
1.2.9
1.2.8
1.2.7
1.2.5
1.2.4
1.2.2
1.2.1
1.2.0
1.1.0
1.0.0
A foundation for building Elixir Phoenix apps — SaaS, social networks, ERP systems, marketplaces, and more
Current section
Files
Jump to
Current section
Files
lib/modules/llm_text/llm_text.ex
defmodule PhoenixKit.Modules.LLMText do
@moduledoc """
LLM Text module for PhoenixKit.
Generates LLM-friendly text files (llms.txt + per-page .txt files)
from configured sources, served at `/llms.txt` and `/llms/*path`.
## Settings keys
- `llm_text_enabled` — enable/disable the module (boolean, default: false)
## Configuration
Configure sources in the host app:
config :phoenix_kit, :llm_text_sources, [
PhoenixKit.Modules.LLMText.Sources.Publishing
]
## Usage
# Check if enabled
PhoenixKit.Modules.LLMText.enabled?()
# Regenerate all files
PhoenixKit.Modules.LLMText.Generator.run_all()
"""
use PhoenixKit.Module
alias PhoenixKit.Dashboard.Tab
alias PhoenixKit.Modules.LLMText.Generator
alias PhoenixKit.Modules.LLMText.PublishingSubscriber
@enabled_key "llm_text_enabled"
# ── Required Module callbacks ──────────────────────────────────────
@impl PhoenixKit.Module
def module_key, do: "llm_text"
@impl PhoenixKit.Module
def module_name, do: "LLM Text"
@impl PhoenixKit.Module
def enabled? do
settings_call(:get_boolean_setting, [@enabled_key, false])
end
@impl PhoenixKit.Module
def enable_system do
settings_call(:update_boolean_setting, [@enabled_key, true])
end
@impl PhoenixKit.Module
def disable_system do
settings_call(:update_boolean_setting, [@enabled_key, false])
end
# ── Optional Module callbacks ──────────────────────────────────────
@impl PhoenixKit.Module
def permission_metadata do
%{
key: "llm_text",
label: "LLM Text",
icon: "hero-document-text",
description: "Generate LLM-friendly text files (llms.txt) for AI consumption"
}
end
@impl PhoenixKit.Module
def get_config do
%{
enabled: enabled?(),
sources: Generator.get_sources()
}
end
@impl PhoenixKit.Module
def settings_tabs do
[
Tab.new!(
id: :admin_settings_llm_text,
label: "LLM Text",
icon: "hero-document-text",
path: "llm-text",
priority: 935,
level: :admin,
parent: :admin_settings,
permission: "llm_text"
)
]
end
@impl PhoenixKit.Module
def children do
if enabled?() do
[PublishingSubscriber]
else
[]
end
end
# ── Private helpers ────────────────────────────────────────────────
defp settings_module do
PhoenixKit.Config.get(:llm_text_settings_module, PhoenixKit.Settings)
end
defp settings_call(fun, args) do
apply(settings_module(), fun, args)
end
end