code: function wrap (rule) {
    return ($) => {
      let value = rule($)
      if (typeof value !== 'string') return
      if (isUrl(value)) return
      if (value.indexOf('www.') === 0) return
      if (value.includes('|')) return
  
      // trim extra whitespace
      value = value.replace(/\s+/g, ' ')
      value = value.trim()
  
      // remove any extra "by" in the start of the string
      value = value.replace(/^[\s\n]*by[\s\n]*/im, '')
  
      // make it title case, since some sites have it in weird casing
      value = toTitleCase(value)
  
      return value
    }
  }
docs: Wrap a rule with validation and formatting logic.
  
  @param {Function} rule
  @return {Function} wrapped