diff --git a/README.md b/README.md
index 437794dc650..172c956add7 100644
--- a/README.md
+++ b/README.md
@@ -193,12 +193,13 @@ According to our policy, any minor update may report more errors than the previo
These folks keep the project moving and are resources for help.
+
+
+
### Technical Steering Committee (TSC)
The people who manage releases, review feature requests, and meet regularly to ensure ESLint is properly maintained.
-
-
+
+
+
+
### Committers
The people who review and fix bugs and help triage issues.
-
-
+
+
+
+
## Sponsors
diff --git a/tools/update-readme.js b/tools/update-readme.js
index da7ea03a194..ce6c6e1910b 100644
--- a/tools/update-readme.js
+++ b/tools/update-readme.js
@@ -16,6 +16,7 @@
const path = require("path");
const fs = require("fs");
const { stripIndents } = require("common-tags");
+const ejs = require("ejs");
//-----------------------------------------------------------------------------
// Data
@@ -37,7 +38,6 @@ const heights = {
// remove backers from sponsors list - not shown on readme
delete allSponsors.backers;
-
//-----------------------------------------------------------------------------
// Helpers
//-----------------------------------------------------------------------------
@@ -45,12 +45,11 @@ delete allSponsors.backers;
/**
* Formats an array of team members for inclusion in the readme.
* @param {Array} members The array of members to format.
- * @param {string} label The label for the section of the readme.
* @returns {string} The HTML for the members list.
*/
-function formatTeamMembers(members, label) {
+function formatTeamMembers(members) {
/* eslint-disable indent*/
- return stripIndents`
+ return stripIndents`
`;
+ }`;
/* eslint-enable indent*/
}
@@ -86,10 +85,42 @@ function formatSponsors(sponsors) {
// Main
//-----------------------------------------------------------------------------
+const HTML_TEMPLATE = stripIndents`
+
+
+
+ ### Technical Steering Committee (TSC)
+
+ The people who manage releases, review feature requests, and meet regularly to ensure ESLint is properly maintained.
+
+ <%- formatTeamMembers(team.tsc) %>
+
+ <% if (team.reviewers.length > 0) { %>
+ ### Reviewers
+
+ The people who review and implement new features.
+
+ <%- formatTeamMembers(team.reviewers) %>
+
+ <% } %>
+
+ <% if (team.committers.length > 0) { %>
+ ### Committers
+
+ The people who review and fix bugs and help triage issues.
+
+ <%- formatTeamMembers(team.committers) %>
+
+ <% } %>
+
+`;
+
// replace all of the section
-let newReadme = readme.replace(/[\w\W]*?/u, formatTeamMembers(team.tsc, "tsc"));
+let newReadme = readme.replace(/[\w\W]*?/u, ejs.render(HTML_TEMPLATE, {
+ team,
+ formatTeamMembers
+}));
-newReadme = newReadme.replace(/[\w\W]*?/u, formatTeamMembers(team.committers, "committers"));
newReadme = newReadme.replace(/[\w\W]*?/u, formatSponsors(allSponsors));
// output to the file