old_contents: /**
   * Slugger generates header id
   */
  module.exports = class Slugger {
    constructor() {
      this.seen = {};
    }
  
    /**
     * Convert string to unique id
     */
    slug(value) {
      let slug = value
        .toLowerCase()
        .trim()
        // remove html tags
        .replace(/<!?\/?[\w-]+(?: .*)?\/?>/g, '')
        // remove unwanted chars
        .replace(/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g, '')
        .replace(/\s/g, '-');
  
      if (this.seen.hasOwnProperty(slug)) {
        const originalSlug = slug;
        do {
          this.seen[originalSlug]++;
          slug = originalSlug + '-' + this.seen[originalSlug];
        } while (this.seen.hasOwnProperty(slug));
      }
      this.seen[slug] = 0;
  
      return slug;
    };
  };
  
new_contents: /**
   * Slugger generates header id
   */
  module.exports = class Slugger {
    constructor() {
      this.seen = {};
    }
  
    /**
     * Convert string to unique id
     */
    slug(value) {
      let slug = value
        .toLowerCase()
        .trim()
        // remove html tags
        .replace(/<[!\/a-z].*?>/ig, '')
        // remove unwanted chars
        .replace(/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g, '')
        .replace(/\s/g, '-');
  
      if (this.seen.hasOwnProperty(slug)) {
        const originalSlug = slug;
        do {
          this.seen[originalSlug]++;
          slug = originalSlug + '-' + this.seen[originalSlug];
        } while (this.seen.hasOwnProperty(slug));
      }
      this.seen[slug] = 0;
  
      return slug;
    };
  };
  
subject: simplify tag regex