process_pi_args

in src/_plugins/code_excerpt_processor.rb [125:155]


    def process_pi_args(pi)
      
      match = /<\?code-\w+\s*(.*?)\s*\?>/.match(pi)
      unless match
        log_puts "ERROR: improperly formatted instruction: #{pi}"
        return nil
      end

      arg_string = match[1]
      args = { }

      
      
      match = /^"(([^("]*)(\s+\(([^"]+)\))?)"/.match(arg_string)
      if match
        arg_string = $' # reset to remaining args
        args[''] = match[1]
        path = args['path'] = match[2]
        args['ext'] = File.extname(path)&.sub(/^\./,'')
        args['region'] = match[4]&.gsub(/[^\w]+/, '-') || ''
      end

      # Process remaining args
      arg_string.scan(/\b(\w[-\w]*)(="([^"]*)")?/) { |id,arg,val|
        if id == 'title' && !arg then val = trim_file_vers(args['']) end
        args[id] = val || ''
      }
      # puts "  >> args: #{args}"
      args
    end