Makefile.js
function generateBlogPost(releaseInfo, prereleaseMajorVersion) {
    const ruleList = ls("lib/rules")

        // Strip the .js extension
        .map(ruleFileName => ruleFileName.replace(/\.js$/u, ""))

        /*
         * Sort by length descending. This ensures that rule names which are substrings of other rule names are not
         * matched incorrectly. For example, the string "no-undefined" should get matched with the `no-undefined` rule,
         * instead of getting matched with the `no-undef` rule followed by the string "ined".
         */
        .sort((ruleA, ruleB) => ruleB.length - ruleA.length);

    const renderContext = Object.assign({ prereleaseMajorVersion, ruleList }, releaseInfo);

    const output = ejs.render(cat("./templates/blogpost.md.ejs"), renderContext),
        now = new Date(),
        month = now.getMonth() + 1,
        day = now.getDate(),
        filename = `../eslint.github.io/_posts/${now.getFullYear()}-${
            month < 10 ? `0${month}` : month}-${
            day < 10 ? `0${day}` : day}-eslint-v${
            releaseInfo.version}-released.md`;

    output.to(filename);
}
function generateBlogPost(releaseInfo, prereleaseMajorVersion) {
    const ruleList = ls("lib/rules")

        // Strip the .js extension
        .map(ruleFileName => ruleFileName.replace(/\.js$/u, ""))

        /*
         * Sort by length descending. This ensures that rule names which are substrings of other rule names are not
         * matched incorrectly. For example, the string "no-undefined" should get matched with the `no-undefined` rule,
         * instead of getting matched with the `no-undef` rule followed by the string "ined".
         */
        .sort((ruleA, ruleB) => ruleB.length - ruleA.length);

    const renderContext = Object.assign({ prereleaseMajorVersion, ruleList }, releaseInfo);

    const output = ejs.render(cat("./templates/blogpost.md.ejs"), renderContext),
        now = new Date(),
        month = now.getMonth() + 1,
        day = now.getDate(),
        filename = `../eslint.github.io/_posts/${now.getFullYear()}-${
            month < 10 ? `0${month}` : month}-${
            day < 10 ? `0${day}` : day}-eslint-v${
            releaseInfo.version}-released.md`;

    output.to(filename);
}
function generateBlogPost ( releaseInfo , prereleaseMajorVersion ) { const ruleList = ls ( "lib/rules" ) // Strip the .js extension . map ( ruleFileName => ruleFileName . replace ( / \.js$ / u , "" ) ) /*
         * Sort by length descending. This ensures that rule names which are substrings of other rule names are not
         * matched incorrectly. For example, the string "no-undefined" should get matched with the `no-undefined` rule,
         * instead of getting matched with the `no-undef` rule followed by the string "ined".
         */ . sort ( ( ruleA , ruleB ) => ruleB . length - ruleA . length ) ; const renderContext = Object . assign ( { prereleaseMajorVersion , ruleList } , releaseInfo ) ; const output = ejs . render ( cat ( "./templates/blogpost.md.ejs" ) , renderContext ) , now = new Date ( ) , month = now . getMonth ( ) + 1 , day = now . getDate ( ) , filename = ` ${ now . getFullYear ( ) } ${ month < 10 ? ` ${ month } ` : month } ${ day < 10 ? ` ${ day } ` : day } ${ releaseInfo . version } ` ; output . to ( filename ) ; }
Generates a release blog post for eslint.org
@param {Object} releaseInfo The release metadata.
@param {string} [prereleaseMajorVersion] If this is a prerelease, the next major version after this prerelease
@returns {void}
@private
Generates a release blog post for eslint . org