docs: function buildBlock(node, isImport) {
      if (!node) {
        return '';
      }
      init();
      if (node.pending) {
        var error = util.format('A circular reference. (%s:%d:%d)',
          filename, node.line || 0, node.col || 0
        );
        console.error(colors.red(error));
        throw error;
      }
      if (node.fixed) { // 已经编译过
        if (isImport) { // 未触发的 tag
          return node.content;
        }
        return node.value;
      }
      if (node.type === 'text') { // 文本节点直接返回
        return node.value;
      }
      node.pending = true;
      var value = '';
      var fixed = true;
      if (node.attrs && isYes(node.attrs.important)) {
        value = node.content;
      } else if (node.nodes) {
        node.nodes.forEach(function (item) {
          var text = buildBlock(item);
          if (!item.fixed && item.type !== 'text') {
            fixed = false;
          }
          if (item.altered) {
            value = value.replace(/[^\S\n]*$/, '');
          }
          value += text;
        });
      }
      var tagInfo = tags[node.tag];
      var isTrigger = true;
      node.altered = false;
      if (node.attrs && node.attrs.trigger) {
        isTrigger = execTrigger(node.attrs.trigger);
      }
      if (tagInfo && isTrigger) { // 已注册 tag
        if (node.attrs.import && node.attrs.import !== '&') {
          value = execImport(node.attrs.import);
          if (!/^[@:]/.test(node.attrs.import)) {
            fixed = false;
          }
        }
        else {
          value = cleanDefine(value);
        }
        value = process(value, node.attrs.encoding || tagInfo.encoding,
          node.attrs, node);
        if (/^\s+/.test(value)) {
          node.altered = true;
        }
        if (typeof value === 'object') {
          value = JSON.stringify(value);
        } else {
          value = String(value);
        }
        node.content = value;
        if (node.attrs.export && node.attrs.export !== '&') {
          execExport(node.attrs.export, value);
          value = '';
          fixed = false;
        }
        else if (removeList.indexOf(node.tag) >= 0) { // 这是被移除的节点
          value = '';
        }
      }
      else if (node.tag) { // 并不是根目录
        node.content = cleanDefine(value);
        if (isTrigger && removeList.indexOf(node.tag) >= 0) { // 这是被移除的节点
          node.altered = false;
          value = '';
        }
        else if (node.type !== 'single') { // 非空内容标签
          value = node.prefix + value + node.suffix;
        }
        else {
          value = node.value;
        }
      }
      else {
        value = cleanContent(value);
      }
      node.pending = false;
      node.value = value;
      node.fixed = fixed;
      if (isImport) {
        return node.content;
      }
      return value;
    }