Class: LlmDocsBuilder::Generator

Inherits:
Object
  • Object
show all
Defined in:
lib/llm_docs_builder/generator.rb

Overview

Simple generator that creates llms.txt from existing markdown documentation

Takes a documentation directory or file and generates a properly formatted llms.txt file by analyzing markdown files, extracting titles and descriptions, and organizing them by priority.

Examples:

Generate from docs directory

generator = LlmDocsBuilder::Generator.new('./docs', base_url: 'https://myproject.io')
content = generator.generate

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(docs_path, options = {}) ⇒ Generator

Initialize a new generator

Parameters:

  • docs_path (String)

    path to documentation directory or file

  • options (Hash) (defaults to: {})

    generation options

Options Hash (options):

  • :base_url (String)

    base URL for expanding relative links

  • :title (String)

    project title (overrides auto-detection)

  • :description (String)

    project description (overrides auto-detection)

  • :output (String)

    output file path for saving

  • :verbose (Boolean)

    enable verbose output



30
31
32
33
# File 'lib/llm_docs_builder/generator.rb', line 30

def initialize(docs_path, options = {})
  @docs_path = docs_path
  @options = options
end

Instance Attribute Details

#docs_pathString (readonly)

Returns path to documentation directory or file.

Returns:

  • (String)

    path to documentation directory or file



16
17
18
# File 'lib/llm_docs_builder/generator.rb', line 16

def docs_path
  @docs_path
end

#optionsHash (readonly)

Returns generation options.

Returns:

  • (Hash)

    generation options



19
20
21
# File 'lib/llm_docs_builder/generator.rb', line 19

def options
  @options
end

Instance Method Details

#generateString

Generate llms.txt content from documentation

Scans documentation files, extracts metadata, prioritizes them, and builds a formatted llms.txt file.

Returns:

  • (String)

    generated llms.txt content



41
42
43
44
45
46
47
48
49
50
51
# File 'lib/llm_docs_builder/generator.rb', line 41

def generate
  docs = find_documentation_files

  content = build_llms_txt(docs)

  if (output_path = options[:output])
    File.write(output_path, content)
  end

  content
end