module KramdownRFC

def self.handle_name(aups, fn_k, initials_k, surname_k)

def self.handle_name(aups, fn_k, initials_k, surname_k)
  if name = aups.rest[fn_k]
    names = name.split(/ *\| */, 2) # boundary for given/last name
    if names == []
      warn "*** an empty '#{fn_k}:' value is not useful, try leaving it out"
      return
    end
    if names[1]
      aups.rest[fn_k] = name = names.join(" ") # remove boundary
      if surname = aups.rest[surname_k]
        if surname != names[1]
          warn "*** inconsistent embedded surname #{names[1]} and surname #{surname}"
        end
      end
      aups.rest[surname_k] = names[1]
    end
    parts = name.split
    if parts == []
      warn "*** a blank '#{fn_k}:' value is not useful, try leaving it out"
      return
    end
    surname = aups.rest[surname_k] || parts[-1]
    s = surname.split
    aups.rest[initials_k] ||= initials_from_parts_and_surname(aups, parts, s)
    aups.rest[surname_k] = s.join(" ")
  end
end