scripts/update-docs-header-and-footer.js
function renderFooter(rule) {
    const docsPath = path.dirname(path.resolve(docsRoot, `${rule.name}.md`))
    const rulePath = path
        .relative(docsPath, path.join(ruleRoot, `${rule.name}.js`))
        .replace(/\\/gu, "/")
    const testPath = path
        .relative(docsPath, path.join(testRoot, `${rule.name}.js`))
        .replace(/\\/gu, "/")

    return `\n\n## 🔎 Implementation\n\n- [Rule source](${rulePath})\n- [Test source](${testPath})`
}
function renderFooter(rule) {
    const docsPath = path.dirname(path.resolve(docsRoot, `${rule.name}.md`))
    const rulePath = path
        .relative(docsPath, path.join(ruleRoot, `${rule.name}.js`))
        .replace(/\\/gu, "/")
    const testPath = path
        .relative(docsPath, path.join(testRoot, `${rule.name}.js`))
        .replace(/\\/gu, "/")

    return `\n\n## 🔎 Implementation\n\n- [Rule source](${rulePath})\n- [Test source](${testPath})`
}
function renderFooter ( rule ) { const docsPath = path . dirname ( path . resolve ( docsRoot , ` ${ rule . name } ` ) ) const rulePath = path . relative ( docsPath , path . join ( ruleRoot , ` ${ rule . name } ` ) ) . replace ( / \\ / gu , "/" ) const testPath = path . relative ( docsPath , path . join ( testRoot , ` ${ rule . name } ` ) ) . replace ( / \\ / gu , "/" ) return ` \n \n n-  [ ul ePath})\ n  [ es tPath})` }
Render the document header of a given rule.
@param {RuleInfo} rule The rule information.
@returns {string} The document header.
Render the document header of a given rule .