docs/script/docify.js
function sammary() {
  const nodeFn = function ({ parentPaths, lang, item, isDir, result }) {
    const navTitle = generateNavTitle({ parentPaths, item, sign: isDir ? '-' : '*', lang });
    result.push(navTitle);
  };

  langs.forEach(dir => {
    const SUMMARY = 'SUMMARY.md';
    const targetFile = path.join(docsDir, `${dir}/${SUMMARY}`);

    const result = walk({
      catalog: docConfig.catalog,
      lang: dir,
      result: [],
      parentPaths: [],
      fn: nodeFn
    });

    if (result && result.length) {
      result.unshift('# whistle\n');
      fs.writeFileSync(targetFile, result.join('\n'));
    }
  });
}
function sammary() {
  const nodeFn = function ({ parentPaths, lang, item, isDir, result }) {
    const navTitle = generateNavTitle({ parentPaths, item, sign: isDir ? '-' : '*', lang });
    result.push(navTitle);
  };

  langs.forEach(dir => {
    const SUMMARY = 'SUMMARY.md';
    const targetFile = path.join(docsDir, `${dir}/${SUMMARY}`);

    const result = walk({
      catalog: docConfig.catalog,
      lang: dir,
      result: [],
      parentPaths: [],
      fn: nodeFn
    });

    if (result && result.length) {
      result.unshift('# whistle\n');
      fs.writeFileSync(targetFile, result.join('\n'));
    }
  });
}
generate `SUMMARY.md` by `config.json`