constructor ({
    path: _path,
    meta,
    title,
    content,
    filePath,
    relative,
    permalink,
    frontmatter = {},
    permalinkPattern,
    extractHeaders = ['h2', 'h3']
  }, context) {
    this.title = title
    this._meta = meta
    this._filePath = filePath
    this._content = content
    this._permalink = permalink
    this.frontmatter = frontmatter
    this._permalinkPattern = permalinkPattern
    this._extractHeaders = extractHeaders
    this._context = context

    if (relative) {
      this.regularPath = encodeURI(fileToPath(relative))
    } else if (_path) {
      this.regularPath = encodeURI(_path)
    } else if (permalink) {
      this.regularPath = encodeURI(permalink)
    }

    if (filePath) {
      this.relativePath = path.relative(context.sourceDir, filePath).replace(/\\/g, '/')
    }

    this.key = 'v-' + hash(`${this._filePath}${this.regularPath}`)
    // Using regularPath first, would be override by permalink later.
    this.path = this.regularPath
  }
@param {string} path the URL (excluding the domain name) for your page/post.
@param {string} title markdown title
@param {string} content markdown file content
@param {string} filePath absolute file path of source markdown file.
@param {string} relative relative file path of source markdown file.
@param {string} permalink same to path, the URL (excluding the domain name) for your page/post.
@param {object} frontmatter
@param {string} permalinkPattern