docs: function processFile(fPath, context) {
      if (context.included[fPath])
          return;
      context.included[fPath] = true;
  
      var relPath = path.relative(context.root, fPath);
      context.write("/* " + relPath + ": begin [depth " + context.includeStack.length + "] */\n", "utf-8");
      context.includeStack.push(relPath);
  
      var parsedFile = context.filetype.parse(fPath);
      parsedFile.forEach(function(item) {
          if (Buffer.isBuffer(item)) {
              context.write(item);
              return;
          }
          try {
              context.filetype.process(fPath, item, context);
          } catch(ex) {
              console.error("------------");
              console.error(JSON.stringify(item));
              throw ex;
          }
      });
  
      context.includeStack.pop();
      context.write("/* " + relPath + ": end */\n", "utf-8");
  
      return parsedFile;
  }