code: function decorate (tokenizer, parse, name, options) {
    return decorator
  
    function decorator (eat, value, silent) {
      var node = tokenizer(eat, value, silent)
      var file = this.file
      var frontmatter
      var data
  
  
      if (node && node.value) {
        try {
          frontmatter = parse(node.value)
  
          if (options.name) {
            file.data[options.name] = file.data[options.name] || {}
            file.data[options.name] = xtend({}, file.data[options.name], frontmatter)
          } else {
            file.data = xtend({}, file.data, frontmatter)
          }
        } catch (err) {
          error(err, file, name, options)
        }
  
        return node
      }
    }
  }
docs: Returns a decorator for blockTokenizer
  tokenizer - The tokenizer to decorate, e.g. yamlFrontMatter
  parse - A parse function to run on found frontmatter, e.g. `yamljs.parse`
  name - The name of type of frontmatter to be parsed, e.g. "yaml"
  options - Any options to use