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. - -

@@ -239,14 +240,15 @@ Kai Cataldo
Teddy Katz
-
+ + + + ### Committers The people who review and fix bugs and help triage issues. - -

@@ -257,7 +259,10 @@ The people who review and fix bugs and help triage issues.
Pig Fang
-
+ + + + ## 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` ${ members.map((member, index) => `${(index + 1) % 9 === 0 ? "" : ""}`).join("") - }
@@ -58,7 +57,7 @@ function formatTeamMembers(members, label) { ${member.name}
`; + }`; /* 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