Sha256: 5841ec9e5c503da6b63d13c30e7a7114943b65f5e80d99e779845c074a339852

Contents?: true

Size: 1.94 KB

Versions: 8

Compression:

Stored size: 1.94 KB

Contents

#!/usr/bin/env ruby
# Copyright (c) 2010-2017 Kenshi Muto
#
# This program is free software
# You can distribute or modify this program under the terms of
# the GNU LGPL, Lesser General Public License version 2.1.
# For details of the GNU LGPL, see the file "COPYING".
#

# simple validator for Re:VIEW
require 'pathname'

bindir = Pathname.new(__FILE__).realpath.dirname
$LOAD_PATH.unshift((bindir + '../lib').realpath)
require 'review/logger'

block = nil
maxcolcount = 0
colcount = 0
ln = 0

@logger = ReVIEW.logger

ARGF.each do |line|
  ln += 1
  if line =~ %r{\A//([a-z]+)\{\s*\Z} || line =~ %r{\A//([a-z]+)\[.+?\{\s*\Z}
    # block
    new_block = $1
    if block
      @logger.warn "#{ln}: block #{new_block} started, but previous block #{block} didn't close yet."
    end
    block = new_block
  elsif line =~ %r{\A//\}}
    if block.nil?
      @logger.warn "#{ln}: block ended, but not opened."
    end
    block = nil
    maxcolcount = 0
    colcount = 0
  elsif line =~ /\A(\d+\.)\s+/
    # number
    unless %w[list emlist listnum emlistnum cmd image table].include?(block)
      @logger.warn "#{ln}: found '#{$1}' without the head space. Is it correct?"
    end
  elsif line =~ /\A\*\s+/
    # itemize
    unless %w[list emlist listnum emlistnum cmd image table].include?(block)
      @logger.warn "#{ln}: found '*' without the head space. Is it correct?"
    end
  elsif line =~ /\A\s+(\d+\.)\s+/ && line =~ /\A\s+\*\s+/
    unless Tw[list emlist listnum emlistnum cmd image table].include?(block)
      @logger.warn "#{ln}: found itemized list or numbered list in #{block}. Is it correct?"
    end
  elsif block == 'table'
    next if line.start_with?('#@')
    if line !~ /\A\-\-\-\-\-/
      # table
      colcount = line.split("\t").size
      if maxcolcount == 0
        maxcolcount = colcount
      end
      if colcount != maxcolcount
        @logger.warn "#{ln}: the number of table columns seems mismatch. (#{maxcolcount} != #{colcount})"
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
review-3.2.0 bin/review-validate
review-3.1.0 bin/review-validate
review-3.0.0 bin/review-validate
review-3.0.0.rc1 bin/review-validate
review-3.0.0.preview4 bin/review-validate
review-3.0.0.preview3 bin/review-validate
review-3.0.0.preview2 bin/review-validate
review-3.0.0.preview1 bin/review-validate