whole_func_string: function icons(done) {
      const stream = gulp.src(config.src)
        .pipe(iconfont({
          fontName: config.iconName,
          appendUniconde: true,
          formats: config.formats,
          timestamp: config.useTimestamp ? getTimestamp() : 0,
          autohint: config.autohint,
          normalize: config.normalize,
        }));
      // write icons to disk
      stream.pipe(gulp.dest(config.dest));
  
      // reload browser
      core.events.emit('reload');
  
      if (config.templates.enabled && config.templates.sets.length) {
        stream.on('glyphs', (glyphs) => {
          // console.log(glyphs);
          const iconData = {
            glyphs: glyphs.map(glyph => ({ // returns the object
              name: glyph.name,
              content: glyph.unicode[0].toString(16).toUpperCase(),
            })),
            fontName: config.iconName,
            fontPath: config.fontPathPrefix,
            classNamePrefix: config.classNamePrefix,
          };
  
          Promise.all(config.templates.sets.map(set => new Promise((resolve, reject) => {
            processIconTemplate(set.src, set.dest, iconData, (err) => {
              if (err) reject();
              resolve();
            });
          }))).then(() => done());
        });
      } else {
        done();
      }
    }
func_code_string: function icons(done) {
      const stream = gulp.src(config.src)
        .pipe(iconfont({
          fontName: config.iconName,
          appendUniconde: true,
          formats: config.formats,
          timestamp: config.useTimestamp ? getTimestamp() : 0,
          autohint: config.autohint,
          normalize: config.normalize,
        }));
      // write icons to disk
      stream.pipe(gulp.dest(config.dest));
  
      // reload browser
      core.events.emit('reload');
  
      if (config.templates.enabled && config.templates.sets.length) {
        stream.on('glyphs', (glyphs) => {
          // console.log(glyphs);
          const iconData = {
            glyphs: glyphs.map(glyph => ({ // returns the object
              name: glyph.name,
              content: glyph.unicode[0].toString(16).toUpperCase(),
            })),
            fontName: config.iconName,
            fontPath: config.fontPathPrefix,
            classNamePrefix: config.classNamePrefix,
          };
  
          Promise.all(config.templates.sets.map(set => new Promise((resolve, reject) => {
            processIconTemplate(set.src, set.dest, iconData, (err) => {
              if (err) reject();
              resolve();
            });
          }))).then(() => done());
        });
      } else {
        done();
      }
    }
func_documentation_string: Build font icons from SVG files and optionally make scss and demo templates.
  @param done {function} - Callback when all done.