diff --git a/build/validate_format.rb b/build/validate_format.rb index a8f10f3c..bb175ddd 100755 --- a/build/validate_format.rb +++ b/build/validate_format.rb @@ -25,10 +25,36 @@ def add_error(line_num, val_index, message) when INDEX_LINK segment = "Link" end - $errors.push("(L%03d) %-14.14s #{message}" % [line_num, segment]) end +section = '' +sections = [] +section_to_line_num = {} +section_to_entries = Hash.new {|h,k| h[k] = Array.new } +File.foreach(filename).with_index do | line, line_num | + + if line.start_with?('###') + section = line.sub('###', '').lstrip.chop + sections.push(section) + section_to_line_num[section] = line_num + 1 + end + + # Skip non-markdown table lines and table schema lines + if !line.start_with?('|') || line.eql?("|---|---|---|---|---|\n") + next + end + + # char to check is the first char in the first column + check_char = line.split("|")[1].strip[0] + section_to_entries[section].push(check_char) +end +sections.each do | sect | + if section_to_entries[sect] != section_to_entries[sect].sort + add_error(section_to_line_num[sect], INDEX_TITLE, "#{sect} section is not in alphabetical order") + end +end + File.foreach(filename).with_index do | line, line_num | line_num += 1