llm-docs-builder 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.dockerignore +44 -0
- data/.github/workflows/ci.yml +71 -0
- data/.github/workflows/docker.yml +102 -0
- data/.github/workflows/push.yml +35 -0
- data/.gitignore +66 -0
- data/.rubocop.yml +74 -0
- data/.ruby-version +1 -0
- data/CHANGELOG.md +66 -0
- data/CLAUDE.md +178 -0
- data/Dockerfile +64 -0
- data/Gemfile +10 -0
- data/Gemfile.lock +88 -0
- data/LICENSE +21 -0
- data/README.md +684 -0
- data/Rakefile +10 -0
- data/bin/llm-docs-builder +7 -0
- data/bin/rspecs +7 -0
- data/lib/llm_docs_builder/bulk_transformer.rb +135 -0
- data/lib/llm_docs_builder/cli.rb +434 -0
- data/lib/llm_docs_builder/comparator.rb +238 -0
- data/lib/llm_docs_builder/config.rb +116 -0
- data/lib/llm_docs_builder/errors.rb +31 -0
- data/lib/llm_docs_builder/generator.rb +234 -0
- data/lib/llm_docs_builder/markdown_transformer.rb +90 -0
- data/lib/llm_docs_builder/parser.rb +223 -0
- data/lib/llm_docs_builder/validator.rb +216 -0
- data/lib/llm_docs_builder/version.rb +6 -0
- data/lib/llm_docs_builder.rb +130 -0
- data/llm-docs-builder.gemspec +45 -0
- data/llm-docs-builder.yml +7 -0
- data/llm-docs-builder.yml.example +26 -0
- data/renovate.json +33 -0
- metadata +171 -0
@@ -0,0 +1,45 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative 'lib/llm_docs_builder/version'
|
4
|
+
|
5
|
+
Gem::Specification.new do |spec|
|
6
|
+
spec.name = 'llm-docs-builder'
|
7
|
+
spec.version = LlmDocsBuilder::VERSION
|
8
|
+
spec.authors = ['Maciej Mensfeld']
|
9
|
+
spec.email = %w[maciej@mensfeld.pl]
|
10
|
+
|
11
|
+
spec.summary = 'Build and optimize documentation for LLMs - generate llms.txt, transform markdown, and more'
|
12
|
+
spec.description = <<~DESC
|
13
|
+
A comprehensive Ruby tool for building and optimizing documentation for Large Language Models.
|
14
|
+
Features include: generating llms.txt files from documentation directories with automatic file
|
15
|
+
prioritization, transforming individual markdown files by expanding relative links to absolute URLs,
|
16
|
+
bulk transforming entire documentation trees with customizable exclusion patterns, comparing content
|
17
|
+
sizes to measure context window savings, and serving LLM-optimized documentation. Provides both CLI
|
18
|
+
and Ruby API with configuration file support.
|
19
|
+
DESC
|
20
|
+
|
21
|
+
spec.homepage = 'https://github.com/mensfeld/llm-docs-builder'
|
22
|
+
spec.license = 'MIT'
|
23
|
+
spec.required_ruby_version = '>= 3.2'
|
24
|
+
|
25
|
+
spec.metadata['allowed_push_host'] = 'https://rubygems.org'
|
26
|
+
spec.metadata['homepage_uri'] = spec.homepage
|
27
|
+
spec.metadata['source_code_uri'] = 'https://github.com/mensfeld/llm-docs-builder'
|
28
|
+
spec.metadata['changelog_uri'] = 'https://github.com/mensfeld/llm-docs-builder/blob/master/CHANGELOG.md'
|
29
|
+
spec.metadata['documentation_uri'] = 'https://github.com/mensfeld/llm-docs-builder'
|
30
|
+
spec.metadata['rubygems_mfa_required'] = 'true'
|
31
|
+
|
32
|
+
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(spec|test)/}) }
|
33
|
+
|
34
|
+
spec.bindir = 'bin'
|
35
|
+
spec.executables = spec.files.grep(%r{\Abin/}) { |f| File.basename(f) }
|
36
|
+
spec.require_paths = ['lib']
|
37
|
+
|
38
|
+
spec.add_dependency 'zeitwerk', '~> 2.6'
|
39
|
+
|
40
|
+
spec.add_development_dependency 'bundler', '~> 2.0'
|
41
|
+
spec.add_development_dependency 'rake', '~> 13.0'
|
42
|
+
spec.add_development_dependency 'rspec', '~> 3.0'
|
43
|
+
spec.add_development_dependency 'rubocop', '~> 1.0'
|
44
|
+
spec.add_development_dependency 'simplecov', '~> 0.21'
|
45
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# Example llms-txt.yml configuration file
|
2
|
+
# Copy to llms-txt.yml and customize for your project
|
3
|
+
|
4
|
+
# Path to documentation directory or file
|
5
|
+
docs: ./docs
|
6
|
+
|
7
|
+
# Base URL for expanding relative links (optional)
|
8
|
+
base_url: https://myproject.io
|
9
|
+
|
10
|
+
# Project information (optional - will auto-detect from docs if not provided)
|
11
|
+
title: My Awesome Project
|
12
|
+
description: A Ruby library that helps developers build amazing applications
|
13
|
+
|
14
|
+
# Output file path (optional)
|
15
|
+
output: llms.txt
|
16
|
+
|
17
|
+
# Transform options (optional)
|
18
|
+
convert_urls: true # Convert .html links to .md
|
19
|
+
verbose: false # Verbose output
|
20
|
+
|
21
|
+
# Bulk transformation options (optional)
|
22
|
+
suffix: .llm # Suffix for transformed files (creates file.llm.md)
|
23
|
+
excludes: # Patterns for files to exclude from bulk transformation
|
24
|
+
- "**/private/**" # Exclude private directories
|
25
|
+
- "**/draft-*.md" # Exclude draft files
|
26
|
+
- "**/.*" # Exclude hidden files
|
data/renovate.json
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
{
|
2
|
+
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
|
3
|
+
"extends": [
|
4
|
+
"config:recommended"
|
5
|
+
],
|
6
|
+
"ignorePaths": [
|
7
|
+
"spec/integrations"
|
8
|
+
],
|
9
|
+
"github-actions": {
|
10
|
+
"enabled": true,
|
11
|
+
"pinDigests": true
|
12
|
+
},
|
13
|
+
"packageRules": [
|
14
|
+
{
|
15
|
+
"matchCategories": [
|
16
|
+
"ruby"
|
17
|
+
],
|
18
|
+
"enabled": true
|
19
|
+
},
|
20
|
+
{
|
21
|
+
"matchManagers": [
|
22
|
+
"github-actions"
|
23
|
+
],
|
24
|
+
"minimumReleaseAge": "7 days"
|
25
|
+
},
|
26
|
+
{
|
27
|
+
"matchManagers": [
|
28
|
+
"bundler"
|
29
|
+
],
|
30
|
+
"minimumReleaseAge": "7 days"
|
31
|
+
}
|
32
|
+
]
|
33
|
+
}
|
metadata
ADDED
@@ -0,0 +1,171 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: llm-docs-builder
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.3.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Maciej Mensfeld
|
8
|
+
bindir: bin
|
9
|
+
cert_chain: []
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
11
|
+
dependencies:
|
12
|
+
- !ruby/object:Gem::Dependency
|
13
|
+
name: zeitwerk
|
14
|
+
requirement: !ruby/object:Gem::Requirement
|
15
|
+
requirements:
|
16
|
+
- - "~>"
|
17
|
+
- !ruby/object:Gem::Version
|
18
|
+
version: '2.6'
|
19
|
+
type: :runtime
|
20
|
+
prerelease: false
|
21
|
+
version_requirements: !ruby/object:Gem::Requirement
|
22
|
+
requirements:
|
23
|
+
- - "~>"
|
24
|
+
- !ruby/object:Gem::Version
|
25
|
+
version: '2.6'
|
26
|
+
- !ruby/object:Gem::Dependency
|
27
|
+
name: bundler
|
28
|
+
requirement: !ruby/object:Gem::Requirement
|
29
|
+
requirements:
|
30
|
+
- - "~>"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '2.0'
|
33
|
+
type: :development
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - "~>"
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: '2.0'
|
40
|
+
- !ruby/object:Gem::Dependency
|
41
|
+
name: rake
|
42
|
+
requirement: !ruby/object:Gem::Requirement
|
43
|
+
requirements:
|
44
|
+
- - "~>"
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '13.0'
|
47
|
+
type: :development
|
48
|
+
prerelease: false
|
49
|
+
version_requirements: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - "~>"
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '13.0'
|
54
|
+
- !ruby/object:Gem::Dependency
|
55
|
+
name: rspec
|
56
|
+
requirement: !ruby/object:Gem::Requirement
|
57
|
+
requirements:
|
58
|
+
- - "~>"
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: '3.0'
|
61
|
+
type: :development
|
62
|
+
prerelease: false
|
63
|
+
version_requirements: !ruby/object:Gem::Requirement
|
64
|
+
requirements:
|
65
|
+
- - "~>"
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: '3.0'
|
68
|
+
- !ruby/object:Gem::Dependency
|
69
|
+
name: rubocop
|
70
|
+
requirement: !ruby/object:Gem::Requirement
|
71
|
+
requirements:
|
72
|
+
- - "~>"
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: '1.0'
|
75
|
+
type: :development
|
76
|
+
prerelease: false
|
77
|
+
version_requirements: !ruby/object:Gem::Requirement
|
78
|
+
requirements:
|
79
|
+
- - "~>"
|
80
|
+
- !ruby/object:Gem::Version
|
81
|
+
version: '1.0'
|
82
|
+
- !ruby/object:Gem::Dependency
|
83
|
+
name: simplecov
|
84
|
+
requirement: !ruby/object:Gem::Requirement
|
85
|
+
requirements:
|
86
|
+
- - "~>"
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: '0.21'
|
89
|
+
type: :development
|
90
|
+
prerelease: false
|
91
|
+
version_requirements: !ruby/object:Gem::Requirement
|
92
|
+
requirements:
|
93
|
+
- - "~>"
|
94
|
+
- !ruby/object:Gem::Version
|
95
|
+
version: '0.21'
|
96
|
+
description: |
|
97
|
+
A comprehensive Ruby tool for building and optimizing documentation for Large Language Models.
|
98
|
+
Features include: generating llms.txt files from documentation directories with automatic file
|
99
|
+
prioritization, transforming individual markdown files by expanding relative links to absolute URLs,
|
100
|
+
bulk transforming entire documentation trees with customizable exclusion patterns, comparing content
|
101
|
+
sizes to measure context window savings, and serving LLM-optimized documentation. Provides both CLI
|
102
|
+
and Ruby API with configuration file support.
|
103
|
+
email:
|
104
|
+
- maciej@mensfeld.pl
|
105
|
+
executables:
|
106
|
+
- llm-docs-builder
|
107
|
+
- rspecs
|
108
|
+
extensions: []
|
109
|
+
extra_rdoc_files: []
|
110
|
+
files:
|
111
|
+
- ".dockerignore"
|
112
|
+
- ".github/workflows/ci.yml"
|
113
|
+
- ".github/workflows/docker.yml"
|
114
|
+
- ".github/workflows/push.yml"
|
115
|
+
- ".gitignore"
|
116
|
+
- ".rubocop.yml"
|
117
|
+
- ".ruby-version"
|
118
|
+
- CHANGELOG.md
|
119
|
+
- CLAUDE.md
|
120
|
+
- Dockerfile
|
121
|
+
- Gemfile
|
122
|
+
- Gemfile.lock
|
123
|
+
- LICENSE
|
124
|
+
- README.md
|
125
|
+
- Rakefile
|
126
|
+
- bin/llm-docs-builder
|
127
|
+
- bin/rspecs
|
128
|
+
- lib/llm_docs_builder.rb
|
129
|
+
- lib/llm_docs_builder/bulk_transformer.rb
|
130
|
+
- lib/llm_docs_builder/cli.rb
|
131
|
+
- lib/llm_docs_builder/comparator.rb
|
132
|
+
- lib/llm_docs_builder/config.rb
|
133
|
+
- lib/llm_docs_builder/errors.rb
|
134
|
+
- lib/llm_docs_builder/generator.rb
|
135
|
+
- lib/llm_docs_builder/markdown_transformer.rb
|
136
|
+
- lib/llm_docs_builder/parser.rb
|
137
|
+
- lib/llm_docs_builder/validator.rb
|
138
|
+
- lib/llm_docs_builder/version.rb
|
139
|
+
- llm-docs-builder.gemspec
|
140
|
+
- llm-docs-builder.yml
|
141
|
+
- llm-docs-builder.yml.example
|
142
|
+
- renovate.json
|
143
|
+
homepage: https://github.com/mensfeld/llm-docs-builder
|
144
|
+
licenses:
|
145
|
+
- MIT
|
146
|
+
metadata:
|
147
|
+
allowed_push_host: https://rubygems.org
|
148
|
+
homepage_uri: https://github.com/mensfeld/llm-docs-builder
|
149
|
+
source_code_uri: https://github.com/mensfeld/llm-docs-builder
|
150
|
+
changelog_uri: https://github.com/mensfeld/llm-docs-builder/blob/master/CHANGELOG.md
|
151
|
+
documentation_uri: https://github.com/mensfeld/llm-docs-builder
|
152
|
+
rubygems_mfa_required: 'true'
|
153
|
+
rdoc_options: []
|
154
|
+
require_paths:
|
155
|
+
- lib
|
156
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
157
|
+
requirements:
|
158
|
+
- - ">="
|
159
|
+
- !ruby/object:Gem::Version
|
160
|
+
version: '3.2'
|
161
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
162
|
+
requirements:
|
163
|
+
- - ">="
|
164
|
+
- !ruby/object:Gem::Version
|
165
|
+
version: '0'
|
166
|
+
requirements: []
|
167
|
+
rubygems_version: 3.6.9
|
168
|
+
specification_version: 4
|
169
|
+
summary: Build and optimize documentation for LLMs - generate llms.txt, transform
|
170
|
+
markdown, and more
|
171
|
+
test_files: []
|