返回介绍

API

发布于 2019-06-04 22:34:54 字数 1865 浏览 1024 评论 0 收藏 0

You can modify data(config, code, parser, AST, doc and content) at hook points with plugins.

Plugin API

First, you set plugins property in config.

  • specify directly JavaScript file (e.g. ./my-plugin.js)
  • specify npm module name (e.g. esdoc-foo-plugin), before you need to install the module.
{
  "source": "./src",
  "destination": "./docs",
  "plugins": [
    {"name": "./MyPlugin.js"},
    {"name": "esdoc-foo-plugin", "option": {"foo": 123}}
  ]
}

Second, you write plugin code.

MyPlugin.js
class MyPlugin {
  onStart(ev) {
    console.log(ev.data);
  }

  onHandlePlugins(ev) {
    // modify plugins
    ev.data.plugins = ...; 
  }

  onHandleConfig(ev) {
    // modify config
    ev.data.config.title = ...;
  }

  onHandleCode(ev) {
    // modify code
    ev.data.code = ...;
  }

  onHandleCodeParser(ev) {
    // modify parser
    ev.data.parser = function(code){ ... };
  }

  onHandleAST(ev) {
    // modify AST
    ev.data.ast = ...;
  }

  onHandleDocs(ev) {
    // modify docs
    ev.data.docs = ...;
  };

  onPublish(ev) {
    // write content to output dir
    ev.data.writeFile(filePath, content);

    // copy file to output dir
    ev.data.copyFile(src, dest);

    // copy dir to output dir
    ev.data.copyDir(src, dest);

    // read file from output dir
    ev.data.readFile(filePath);
  };

  onHandleContent(ev) {
    // modify content
    ev.data.content = ...;
  };

  onComplete(ev) {
    // complete
  };
}

// exports plugin
module.exports = new MyPlugin();

Note: esdoc/esdoc-plugins is helpful for writing plugins.

Data Format

TODO: describe data format.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文