Class: Docco::DocsBuilder

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

Instance Method Summary collapse

Constructor Details

#initialize(readme_path:, output_dir:, gemspec_path: nil) ⇒ DocsBuilder

Returns a new instance of DocsBuilder.



29
30
31
32
33
34
35
# File 'lib/docco.rb', line 29

def initialize(readme_path:, output_dir:, gemspec_path: nil)
  @readme_path = readme_path
  @output_dir = output_dir
  @sections = []
  @gemspec_path = gemspec_path || find_gemspec
  load_gemspec_info
end

Instance Method Details

#buildObject



37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# File 'lib/docco.rb', line 37

def build
  css = File.join(@output_dir, STYLES)
  if !File.exist?(css)
    CopyStyles.(@output_dir)
  end

  puts "Reading #{@readme_path}..."
  markdown = File.read(@readme_path)

  puts "Parsing markdown..."
  doc = Kramdown::Document.new(markdown, input: 'GFM', auto_ids: true)

  puts "Extracting structure..."
  extract_structure(doc.root)

  puts "Generating HTML..."
  html = generate_html(doc)

  puts "Writing to #{@output_dir}/index.html..."
  FileUtils.mkdir_p(@output_dir)
  File.write(File.join(@output_dir, 'index.html'), html)

  puts "Done! Documentation built successfully."
end