docs: function parse (src, path) {
    const pathSep = typeof path === 'string' ? path : '.'
    return parseLines(src).reduce((res, line) => {
      if (Array.isArray(line)) {
        const [key, value] = line
        if (path) {
          const keyPath = key.split(pathSep)
          let parent = res
          while (keyPath.length >= 2) {
            const p = keyPath.shift()
            if (!parent[p]) {
              parent[p] = {}
            } else if (typeof parent[p] !== 'object') {
              parent[p] = { '': parent[p] }
            }
            parent = parent[p]
          }
          const leaf = keyPath[0]
          if (typeof parent[leaf] === 'object') {
            parent[leaf][''] = value
          } else {
            parent[leaf] = value
          }
        } else {
          res[key] = value
        }
      }
      return res
    }, {})
  }