class MarkdownExec::MarkParse

def initialize_and_parse_cli_options


# Sets up the options and returns the parsed arguments
def initialize_and_parse_cli_options
  # @options = base_options
  @options = HashDelegator.new(base_options)
  read_configuration_file!(@options,
                           ".#{MarkdownExec::APP_NAME.downcase}.yml")
  @option_parser = OptionParser.new do |opts|
    executable_name = File.basename($PROGRAM_NAME)
    opts.banner = [
      "#{MarkdownExec::APP_NAME}" \
      " - #{MarkdownExec::APP_DESC} (#{MarkdownExec::VERSION})",
      "Usage: #{executable_name} [(path | filename [block_name])] [options]"
    ].join("\n")
    menu_iter do |item|
      opts_menu_option_append opts, @options, item
    end
  end
  @option_parser.load
  @option_parser.environment
  @rest = rest = @option_parser.parse!(arguments_for_mde)
  @options.pass_args = ARGV[rest.count + 1..]
  @options.merge(@options.run_state.to_h)
  rest
end