llms-txt-ruby 0.0.0 → 0.1.1
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 +4 -4
- data/.github/workflows/ci.yml +71 -0
- data/.github/workflows/push.yml +35 -0
- data/.gitignore +11 -1
- data/.rubocop.yml +27 -0
- data/.ruby-version +1 -0
- data/CHANGELOG.md +15 -0
- data/Gemfile +10 -0
- data/Gemfile.lock +88 -0
- data/README.md +442 -30
- data/Rakefile +10 -0
- data/bin/llms-txt +242 -0
- data/lib/llms_txt/bulk_transformer.rb +137 -0
- data/lib/llms_txt/config.rb +113 -0
- data/lib/llms_txt/errors.rb +31 -0
- data/lib/llms_txt/generator.rb +234 -0
- data/lib/llms_txt/markdown_transformer.rb +90 -0
- data/lib/llms_txt/parser.rb +223 -0
- data/lib/llms_txt/validator.rb +222 -0
- data/lib/llms_txt/version.rb +6 -0
- data/lib/llms_txt.rb +130 -0
- data/llms-txt-ruby.gemspec +22 -11
- data/llms-txt.yml.example +26 -0
- data/renovate.json +30 -0
- metadata +119 -12
- data/lib/llms-txt/version.rb +0 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 59e6ef21e4d8e7cfad82d91a1d0c6eede9528850622efef8738b718bbbe0ea43
|
4
|
+
data.tar.gz: 0247ceaaed63bea7ba5d86753cd77e19e032ec31561ab6fbfe35874d875cbda6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 13bcd98389bbfd2193e1d21b3b5372bd1656145aec325a0f1456ce95cb699106008c35914cdab9c6ed4e7cefa4c955791347179e003def2a8569ab267c387abc
|
7
|
+
data.tar.gz: 4115db81602c0137224f7e5c8b9c536b5684776c3398e04893d6f1e0b2a327af71918d34c661d83eae9e773654ef282947fcd231af0a3c4cfe8263f085455381
|
@@ -0,0 +1,71 @@
|
|
1
|
+
name: CI
|
2
|
+
|
3
|
+
concurrency:
|
4
|
+
group: ${{ github.workflow }}-${{ github.ref }}
|
5
|
+
cancel-in-progress: true
|
6
|
+
|
7
|
+
on:
|
8
|
+
pull_request:
|
9
|
+
branches: [ master ]
|
10
|
+
push:
|
11
|
+
branches: [ master ]
|
12
|
+
schedule:
|
13
|
+
- cron: '0 1 * * *'
|
14
|
+
|
15
|
+
permissions:
|
16
|
+
contents: read
|
17
|
+
|
18
|
+
jobs:
|
19
|
+
specs:
|
20
|
+
timeout-minutes: 15
|
21
|
+
runs-on: ubuntu-latest
|
22
|
+
strategy:
|
23
|
+
fail-fast: false
|
24
|
+
matrix:
|
25
|
+
ruby:
|
26
|
+
- '3.4'
|
27
|
+
- '3.3'
|
28
|
+
- '3.2'
|
29
|
+
include:
|
30
|
+
- ruby: '3.4'
|
31
|
+
coverage: 'true'
|
32
|
+
steps:
|
33
|
+
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
|
34
|
+
with:
|
35
|
+
fetch-depth: 0
|
36
|
+
|
37
|
+
- name: Set up Ruby
|
38
|
+
uses: ruby/setup-ruby@v1
|
39
|
+
with:
|
40
|
+
ruby-version: ${{ matrix.ruby }}
|
41
|
+
bundler-cache: true
|
42
|
+
bundler: 'latest'
|
43
|
+
|
44
|
+
- name: Install latest bundler
|
45
|
+
run: |
|
46
|
+
gem install bundler --no-document
|
47
|
+
bundle config set without 'tools benchmarks docs'
|
48
|
+
|
49
|
+
- name: Bundle install
|
50
|
+
run: bundle install --jobs 4 --retry 3
|
51
|
+
|
52
|
+
- name: Run all tests
|
53
|
+
env:
|
54
|
+
GITHUB_COVERAGE: ${{ matrix.coverage }}
|
55
|
+
run: bundle exec rspec
|
56
|
+
|
57
|
+
|
58
|
+
ci-success:
|
59
|
+
name: CI Success
|
60
|
+
runs-on: ubuntu-latest
|
61
|
+
if: always()
|
62
|
+
needs:
|
63
|
+
- specs
|
64
|
+
steps:
|
65
|
+
- name: Check all jobs passed
|
66
|
+
if: |
|
67
|
+
contains(needs.*.result, 'failure') ||
|
68
|
+
contains(needs.*.result, 'cancelled') ||
|
69
|
+
contains(needs.*.result, 'skipped')
|
70
|
+
run: exit 1
|
71
|
+
- run: echo "All CI checks passed!"
|
@@ -0,0 +1,35 @@
|
|
1
|
+
name: Push Gem
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
tags:
|
6
|
+
- v*
|
7
|
+
|
8
|
+
permissions:
|
9
|
+
contents: read
|
10
|
+
|
11
|
+
jobs:
|
12
|
+
push:
|
13
|
+
if: github.repository_owner == 'mensfeld'
|
14
|
+
runs-on: ubuntu-latest
|
15
|
+
environment: deployment
|
16
|
+
|
17
|
+
permissions:
|
18
|
+
contents: write
|
19
|
+
id-token: write
|
20
|
+
|
21
|
+
steps:
|
22
|
+
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
23
|
+
with:
|
24
|
+
fetch-depth: 0
|
25
|
+
|
26
|
+
- name: Set up Ruby
|
27
|
+
uses: ruby/setup-ruby@0481980f17b760ef6bca5e8c55809102a0af1e5a # v1.263.0
|
28
|
+
with:
|
29
|
+
bundler-cache: false
|
30
|
+
|
31
|
+
- name: Bundle install
|
32
|
+
run: |
|
33
|
+
bundle install --jobs 4 --retry 3
|
34
|
+
|
35
|
+
- uses: rubygems/release-gem@a25424ba2ba8b387abc8ef40807c2c85b96cbe32 # v1.1.1
|
data/.gitignore
CHANGED
@@ -9,9 +9,11 @@
|
|
9
9
|
/test/tmp/
|
10
10
|
/test/version_tmp/
|
11
11
|
/tmp/
|
12
|
+
mise.toml
|
12
13
|
|
13
14
|
# Used by dotenv library to load environment variables.
|
14
|
-
|
15
|
+
.env
|
16
|
+
.env.*
|
15
17
|
|
16
18
|
# Ignore Byebug command history file.
|
17
19
|
.byebug_history
|
@@ -54,3 +56,11 @@ build-iPhoneSimulator/
|
|
54
56
|
|
55
57
|
# Used by RuboCop. Remote config files pulled in from inherit_from directive.
|
56
58
|
# .rubocop-https?--*
|
59
|
+
|
60
|
+
# Project-specific generated files
|
61
|
+
llms.txt
|
62
|
+
*-output.txt
|
63
|
+
|
64
|
+
# Config files that might contain sensitive data
|
65
|
+
llms-txt.yml
|
66
|
+
.llms-txt.yml
|
data/.rubocop.yml
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
AllCops:
|
2
|
+
TargetRubyVersion: 3.1
|
3
|
+
NewCops: enable
|
4
|
+
|
5
|
+
Style/Documentation:
|
6
|
+
Enabled: false
|
7
|
+
|
8
|
+
Style/StringLiterals:
|
9
|
+
EnforcedStyle: single_quotes
|
10
|
+
|
11
|
+
Layout/LineLength:
|
12
|
+
Max: 120
|
13
|
+
|
14
|
+
Metrics/ClassLength:
|
15
|
+
Max: 150
|
16
|
+
|
17
|
+
Metrics/MethodLength:
|
18
|
+
Max: 20
|
19
|
+
|
20
|
+
Metrics/AbcSize:
|
21
|
+
Max: 20
|
22
|
+
|
23
|
+
Metrics/CyclomaticComplexity:
|
24
|
+
Max: 10
|
25
|
+
|
26
|
+
Style/FrozenStringLiteralComment:
|
27
|
+
Enabled: true
|
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
3.4.6
|
data/CHANGELOG.md
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
# Changelog
|
2
|
+
|
3
|
+
## 0.1.1 (2025-10-07)
|
4
|
+
- [Change] Updated repository metadata to use `master` branch instead of `main`.
|
5
|
+
|
6
|
+
## 0.1.0 (2025-10-07)
|
7
|
+
- [Feature] Generate `llms.txt` files from markdown documentation.
|
8
|
+
- [Feature] Transform individual markdown files to be AI-friendly.
|
9
|
+
- [Feature] Bulk transformation of entire documentation directories.
|
10
|
+
- [Feature] CLI with commands: `generate`, `transform`, `bulk-transform`, `parse`, `validate`.
|
11
|
+
- [Feature] Configuration file support (`llms-txt.yml`).
|
12
|
+
- [Feature] Automatic link expansion from relative to absolute URLs.
|
13
|
+
- [Feature] File prioritization (README first, then guides, APIs, etc.).
|
14
|
+
- [Feature] Exclusion patterns for bulk transformations.
|
15
|
+
- [Feature] Ruby API for programmatic usage.
|
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,88 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
llms-txt-ruby (0.1.1)
|
5
|
+
zeitwerk (~> 2.6)
|
6
|
+
|
7
|
+
GEM
|
8
|
+
remote: https://rubygems.org/
|
9
|
+
specs:
|
10
|
+
ast (2.4.3)
|
11
|
+
byebug (12.0.0)
|
12
|
+
coderay (1.1.3)
|
13
|
+
diff-lcs (1.6.2)
|
14
|
+
docile (1.4.1)
|
15
|
+
json (2.13.2)
|
16
|
+
language_server-protocol (3.17.0.5)
|
17
|
+
lint_roller (1.1.0)
|
18
|
+
method_source (1.1.0)
|
19
|
+
parallel (1.27.0)
|
20
|
+
parser (3.3.9.0)
|
21
|
+
ast (~> 2.4.1)
|
22
|
+
racc
|
23
|
+
prism (1.4.0)
|
24
|
+
pry (0.15.2)
|
25
|
+
coderay (~> 1.1)
|
26
|
+
method_source (~> 1.0)
|
27
|
+
pry-byebug (3.11.0)
|
28
|
+
byebug (~> 12.0)
|
29
|
+
pry (>= 0.13, < 0.16)
|
30
|
+
racc (1.8.1)
|
31
|
+
rainbow (3.1.1)
|
32
|
+
rake (13.3.0)
|
33
|
+
regexp_parser (2.11.2)
|
34
|
+
rspec (3.13.1)
|
35
|
+
rspec-core (~> 3.13.0)
|
36
|
+
rspec-expectations (~> 3.13.0)
|
37
|
+
rspec-mocks (~> 3.13.0)
|
38
|
+
rspec-core (3.13.5)
|
39
|
+
rspec-support (~> 3.13.0)
|
40
|
+
rspec-expectations (3.13.5)
|
41
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
42
|
+
rspec-support (~> 3.13.0)
|
43
|
+
rspec-mocks (3.13.5)
|
44
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
45
|
+
rspec-support (~> 3.13.0)
|
46
|
+
rspec-support (3.13.5)
|
47
|
+
rubocop (1.80.0)
|
48
|
+
json (~> 2.3)
|
49
|
+
language_server-protocol (~> 3.17.0.2)
|
50
|
+
lint_roller (~> 1.1.0)
|
51
|
+
parallel (~> 1.10)
|
52
|
+
parser (>= 3.3.0.2)
|
53
|
+
rainbow (>= 2.2.2, < 4.0)
|
54
|
+
regexp_parser (>= 2.9.3, < 3.0)
|
55
|
+
rubocop-ast (>= 1.46.0, < 2.0)
|
56
|
+
ruby-progressbar (~> 1.7)
|
57
|
+
unicode-display_width (>= 2.4.0, < 4.0)
|
58
|
+
rubocop-ast (1.46.0)
|
59
|
+
parser (>= 3.3.7.2)
|
60
|
+
prism (~> 1.4)
|
61
|
+
ruby-progressbar (1.13.0)
|
62
|
+
simplecov (0.22.0)
|
63
|
+
docile (~> 1.1)
|
64
|
+
simplecov-html (~> 0.11)
|
65
|
+
simplecov_json_formatter (~> 0.1)
|
66
|
+
simplecov-html (0.13.2)
|
67
|
+
simplecov_json_formatter (0.1.4)
|
68
|
+
unicode-display_width (3.1.5)
|
69
|
+
unicode-emoji (~> 4.0, >= 4.0.4)
|
70
|
+
unicode-emoji (4.0.4)
|
71
|
+
zeitwerk (2.7.3)
|
72
|
+
|
73
|
+
PLATFORMS
|
74
|
+
ruby
|
75
|
+
x86_64-linux
|
76
|
+
|
77
|
+
DEPENDENCIES
|
78
|
+
bundler (~> 2.0)
|
79
|
+
llms-txt-ruby!
|
80
|
+
pry
|
81
|
+
pry-byebug
|
82
|
+
rake (~> 13.0)
|
83
|
+
rspec (~> 3.0)
|
84
|
+
rubocop (~> 1.0)
|
85
|
+
simplecov (~> 0.21)
|
86
|
+
|
87
|
+
BUNDLED WITH
|
88
|
+
2.7.1
|