docs: function (layoutName, data, moduleName) {
              if (layoutName === undefined) {
                  return '';
              }
  
              if (moduleName === undefined && typeof data === 'string') {
                  moduleName = data;
                  data = undefined;
              }
  
              if (moduleName === undefined) {
                  // 未指定模块时默认渲染当前模块下layout
                  moduleName = resLocals.current_module;
                  return renderLayout(layoutName, data, moduleName);
              } else {
                  // 跨模块渲染, 在指定模块下完成layout渲染, 完成后切换回原模块
                  var lastModule = resLocals.current_module;
                  self.logger.trace('set current module from:%s to:%s', resLocals.current_module, moduleName);
                  resLocals.current_module = moduleName;
                  var html = renderLayout(layoutName, data, moduleName);
                  self.logger.trace('set current module from:%s to:%s', resLocals.current_module, lastModule);
                  resLocals.current_module = lastModule;
                  return html;
              }
          }